我们现在的网络结构是这样的
办公室防火墙跟 IDC 的防火墙之间创建了一个 IPSec VPN,IPSec 两端 tunnel interface 均设置了 1428 的 MTU。
在更换了办公室接入的线路(同个运营商,同条物理线路,只是账号变更), IPSec VPN 出现了一些诡异的问题,具体表现是
1. 从办公室访问 IDC 的 Web 服务正常
2. Ubuntu 从办公室 ssh 访问 IDC 的服务器会卡住,设置 Ubuntu 的 MTU 到 1400 可以解决问题
3. Windows 和 macOS ssh IDC 的服务器没有问题。
4. 从 IDC 的 Ubuntu ssh 办公室的 Ubuntu 一切正常
从以上现象判断应该是跟 MTU 有关,PMTU 检测不正确。
抓包之后发现
1. Ubuntu ssh 的时候,Sync 包里的 MSS 是 1460,也就是说 PMTU 检测出来是 1500
2. macOS ssh 的时候, Sync 包里的 MSS 是 1388,PMTU 检测正常
3. 设置 tcp_mtu_probing 为 1 的时候,TCP 连接会以 1460 的 MSS 建立连接,在中途丢包三次,降低 MSS 发送,符合预期表现。
4. 设置 ipv4.ip_no_pmtu_disc 为 0,Ubuntu MTU 1500 ssh 也正常。
5. 从 IDC 的 Ubuntu ssh 办公室的 Ubuntu 的时候,一切正常,MSS 1388,符合 MTU 1428 的设定。
5. 办公室防火墙上 icmp unreachable 已经开启,但是抓包没有看到 ICMP code 3 type 4 的消息。
目前临时的解决方案是,在防火墙把 DF 位清理了,但是总感觉这方式不合理,除了在办公室的设备上设置 MTU 1400 以及防火墙把 Sync 包的 MSS 修改了之外,还有什么解决办法?以及建立连接的时候两端的 Sync 包的 MSS 会是不一样的数值,中途的链路和节点都是完全相同的。
(0)
最佳答案
看一下防火墙ipsec自动协商出来的MTU是多少
(0)
<FW-SH-Office>dis ipsec sa | include MTU Path MTU: 1356 <FW-SH-Office>dis interface Tunnel 0 | include unit Maximum transmission unit: 1428 <FW-SH-Office>
我们原来在两台防火墙之间建立了ipsec,然后在一头访问另一头的oracle服务器也不对,不能读取数据,也是修改了终端的MTU才解决的。比较奇怪的是,SQL Server可以正常访问,不用修改MTU。
(0)
暂时还是找不到问题所在,开始的理解都是错的,请忽略。
<FW-SH-Office>dis ipsec sa ------------------------------- Interface: Tunnel0 ------------------------------- ----------------------------- IPsec profile: 5 Mode: ISAKMP ----------------------------- Tunnel id: 0 Encapsulation mode: tunnel Perfect forward secrecy: Transmitting entity: Responder Path MTU: 1356 Tunnel: local address: 140.207.103.218 remote address: 116.112.94.134 Flow: sour addr: 0.0.0.0/0.0.0.0 port: 0 protocol: ip dest addr: 0.0.0.0/0.0.0.0 port: 0 protocol: ip [Inbound ESP SAs] SPI: 3907848939 (0xe8ed0aeb) Connection ID: 708669603841 Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1 SA duration (kilobytes/sec): 1843200/3600 SA remaining duration (kilobytes/sec): 727564/1840 Max received sequence-number: 2202626 Anti-replay check enable: Y Anti-replay window size: 64 UDP encapsulation used for NAT traversal: N Status: Active [Outbound ESP SAs] SPI: 3468151787 (0xceb7cbeb) Connection ID: 3448858738692 Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1 SA duration (kilobytes/sec): 1843200/3600 SA remaining duration (kilobytes/sec): 1748026/1840 Max sent sequence-number: 1033617 UDP encapsulation used for NAT traversal: N Status: Active
IPSec SA MTU 是 1538, dis int tunnel 0 是 1428
我重新研究了一下,你看看。
暂时还是找不到问题所在,开始的理解都是错的,请忽略。
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
<FW-SH-Office>dis ipsec sa | include MTU Path MTU: 1356 <FW-SH-Office>dis interface Tunnel 0 | include unit Maximum transmission unit: 1428 <FW-SH-Office>