一个很奇妙的问题L2TPVPN mru mtu问题

2013-05-18 01:31:43 +08:00
 xunandotme
ubuntu,ipsec,xl2tpd,freeradius。服务启动后,ios和osx连接正常,但是我的安卓4.1设备连过一次后,这些水果设备就再也联不上了,安卓还可以连接。要开设的话难免android设备会连上去。。pptp一直好使。关闭freeradius也一样,似乎是xl2tpd服务进程的问题,安卓设备连一次后,就不认水果设备的包了,准备下面贴日志啊。发现个小问题,就是
安卓
Connect: ppp1 <--> /dev/pts/3
sent [LCP ConfReq id=0x1 <mru 1404> <asyncmap 0x0> <auth chap MD5> <magic 0x3de44c57> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <mru 1400> <asyncmap 0x0> <magic 0xb7d775a8> <pcomp> <accomp>]
sent [LCP ConfAck id=0x1 <mru 1400> <asyncmap 0x0> <magic 0xb7d775a8> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <mru 1404> <asyncmap 0x0> <auth chap MD5> <magic 0x3de44c57> <pcomp> <accomp>]
macosx
sent [LCP ConfReq id=0x1 <mru 1404> <asyncmap 0x0> <auth chap MD5> <magic 0x6b287c7> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <mru 1404> <asyncmap 0x0> <auth chap MD5> <magic 0x6b287c7> <pcomp> <accomp>]
请问这个是协议允许的么。我可以在/etc/xl2tpd文件夹下的conf文件包含的/etc/ppp/option文件里自己定义嘛,参照pptpd-options也是这么设置的,就木有问题,麻烦大神介绍一下吧
11205 次点击
所在节点    问与答
8 条回复
xunandotme
2013-05-18 01:32:04 +08:00
pptp就是都可以连,一直连。断了再连。。
ericFork
2013-05-18 01:36:37 +08:00
android 是不是没有正常断开 L2TP?

L2TP over IPsec 的话,同一局域网下同时连接的设备只有一台
xunandotme
2013-05-18 01:44:13 +08:00
3个苹果设备可以同时连啊,需要断开么。正常断开和连着的时候,只要拨了安卓的,苹果就歇菜了,改了mru,mtu,还是没有效果,都改到1400了。安卓一连,xl2tpd服务就不接收水果包了感觉。pptp日志没有输出mru,也没有影响。
@ericFork
xunandotme
2013-05-18 01:45:22 +08:00
安卓再连的话,很随意。。。今天下午还好顿高兴,终于找到何时的freeradius的web前端了,唉
xunandotme
2013-05-18 01:47:32 +08:00
因为之前4.0安卓的l2tp好像改动之后不好使了,当时也没明白那个secret是ipsec的,所以一直没配通,经过这几天折腾,觉得试一下,居然通了,当时还好顿兴奋,然后就是噩梦来了,总连不上l2tp的,挨个找原因,最后找到这里,发现无论什么情况,安卓一直可以连,4.1。服务没掉,就是接受4.1的包之后魔障了 哈
xunandotme
2013-05-18 01:51:30 +08:00
/*
Ethernet MinSize = 512bit = 64 Byte
Ethernet MaxSize = 1518 Byte
so Ethernet IP MTU = 1518 - 18 ( 6 SRCMAC+ 6 DSTMAC+ 2 TYPE+ 4 CRC) = 1500 B
so Ethernet IP TCP MSS = 1500 - 40 ( 20 IP_HEADER + 20 TCP_HEADER) = 1460 B
so Ethernet IP UDP MTU/MRU = 1500 - 28 ( 20 IP_HEADER + 8 UDP_HEADER ) = 1472 B
so PPPoE MTU/MRU = 1500 - 8 ( 6 PPPoE_SESSION + 2 PPP_HEADER ) = 1492 B
so TCP over PPPoE MSS = 1492 ( PPPoE MTU/MRU ) - 40 ( 20 IP_HEADER + 20 TCP_HEADER) = 1452
so PPTP MTU/MRU = 1500 - 56 ( 20 IP_HEADER + 20 TCP_HEADER + 12 GRE_HEADER + 4 PPP_HEADER ) = 1444 B
so TCP over PPTP MSS = 1444 ( PPTP MTU/MRU ) - 40 ( 20 IP_HEADER + 20 TCP_HEADER) = 1404
so L2TP MTU/MRU = 1500 - 40 ( 20 IP_HEADER +8 UDP_HEADER + 8 L2TP_HEADER + 4 PPP_HEADER ) = 1460 B
so TCP over L2TP MSS = 1460 ( L2TP MTU/MRU ) - 40 ( 20 IP_HEADER + 20 TCP_HEADER) = 1420 B
so PPTP over PPPoE MTU/MRU = 1492 ( PPPoE MTU/MRU ) - 56 ( 20 IP_HEADER + 20 TCP_HEADER + 12 GRE_HEADER + 4 PPP_HEADER ) = 1436 B
so PPTP over PPTP MTU/MRU = 1444 ( PPTP MTU/MRU ) - 56 ( 20 IP_HEADER + 20 TCP_HEADER + 12 GRE_HEADER + 4 PPP_HEADER ) = 1388 B
so PPTP over L2TP MTU/MRU = 1460 ( L2TP MTU/MRU ) - 56 ( 20 IP_HEADER + 20 TCP_HEADER + 12 GRE_HEADER + 4 PPP_HEADER ) = 1404 B
so L2TP over PPPoE MTU/MRU = 1492 ( PPPoE MTU/MRU ) - 40 ( 20 IP_HEADER +8 UDP_HEADER + 8 L2TP_HEADER + 4 PPP_HEADER ) = 1452 B
so L2TP over PPTP MTU/MRU = 1444 ( PPTP MTU/MRU ) - 40 ( 20 IP_HEADER +8 UDP_HEADER + 8 L2TP_HEADER + 4 PPP_HEADER ) = 1404 B
so L2TP over L2TP MTU/MRU = 1460 ( L2TP MTU/MRU ) - 40 ( 20 IP_HEADER +8 UDP_HEADER + 8 L2TP_HEADER + 4 PPP_HEADER ) = 1420 B

通过上面计算,PPTP over PPPoE的准确MTU值为1436,L2TP over PPPoE的准确MTU值为1452。
MSS = MTU - 40
*/

http://nonkr.iteye.com/blog/1652269 转自前面这里 不知道我该怎么做呢
xunandotme
2013-05-18 01:53:59 +08:00
这个的意思是,pptp的mtu,mru设置成1436长度,l2tp的设成1452?
xunandotme
2013-05-18 10:55:08 +08:00
设与不设,设多少,都不好使,其他l2tp包都不接受了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/69262

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX