一个蛋疼的 IPsec 问题

13 天前
 unpay

IPsec 组的 VPN 。。。ping 都是通的。。但是通过 IPSEC 开内网的网页很慢很慢。 通过抓包看了。。全是 TCP Spurious Retransmission ,

我猜测是 MTU 问题? ICMP 或 TCP 将被迫分片,而部分运营商又对对分片或 ESP 分片极不友好,导致丢包或重传。

运营商现在也找不到问题所在。。

2112 次点击
所在节点    宽带症候群
27 条回复
rrfeng
13 天前
两端强制调小 mtu
rrfeng
13 天前
mss
Tianao
13 天前
直接改小 overlay 接口的 MTU 或者 overlay 流量的 TCP MSS, 一个保守的 MTU 值供参考是 1280.
unpay
13 天前
@rrfeng 也就是 MTU 和 MSS 都要调对吧 大神
rrfeng
13 天前
@unpay
一两句很难说清……
能改接口 mtu 最好,但是前提是应用程序要感知到 mtu ,如果不是本地接口(比如 ipsec 在路由器上)就可能……

改 mss 要么在终端设备,要不在链路中间强改 tcp 握手
unpay
13 天前
@Tianao 但现在主设备是支持调 MTU 和 MSS 。。下面的设备不支持。。蛋疼中。。
maybeonly
13 天前
@unpay mss 在一边搞就行了
iptables -A FORWARD -i $dev -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1401:1500 -j TCPMSS --set-mss 1400
iptables -A FORWARD -o $dev -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1401:1500 -j TCPMSS --set-mss 1400
双向设置 mss
Tianao
13 天前
@unpay #6
#5 正解,MTU 只要改 overlay 接口的,不用端到端改,然后确保沿途所有防火墙允许 ICMP Type 3 Code 4, 就可以期望 PMTUD 发挥作用。TCP MSS 只需要在途径任意位置改握手包的,握手后会自动取最小值;但是 UDP 没有 MSS 协商的概念。某些厂商的设备(如 FortiGate )允许配置是先把 overlay 流量分片再根据 underlay 接口的 MTU 封装 ESP, 还是先封装成 ESP 再对 ESP 进行分片,改成前一种逻辑就可以避免 ESP 分片。
szqh97
13 天前
我们之前在客户那边也遇到过类似问题,也是 overlay mtu 问题,客户那边还不让改 overlay 配置,我们自己写了个透明代理,操蛋的一批
wy315700
13 天前
有一端的 MTU 改了就行
a33291
13 天前
搭一个新的 vpn 比如 softether 对比测一下,看是不是链路就不行?
unpay
13 天前
问题已解决。。。。。菊花工程师。。。。远程更新了一下固件。。好了
mikaelson
13 天前
@a33291 softether 可以透传 IP ,不做 nat 吗?
mikaelson
13 天前
@szqh97 有没有能透传 ip 保留原 IP 的方案,最近 ipsec 被限速异常严重。。。
a33291
13 天前
@mikaelson #13 可以的,直接服务端桥接到本地网卡,就直接把整个主机所在网络给暴露出去了

为了安全的话,还是用他那个 secureNAT,所有进去的设备组成一个 lan
mikaelson
13 天前
@a33291 #15 教程好少,能不能指点一下,我是 2 台 ubuntu ,想打通 2 个内网,不想做 nat ,不然所有服务的安全组都要改过
life90
12 天前
@mikaelson 现在可以问 AI 。教程这东西只会越来越少
mikaelson
12 天前
@life90 #17 肯定问过了,都在胡说八道。。。claude 和 gpt
bobryjosin
11 天前
@mikaelson 两台机器跑一个隧道,在隧道里面跑 vxlan ,两端把 vxlan 接口桥接进一个 Bridge 就可以了,二层打通就不用 nat 了。
barnettluo1994
11 天前
@bobryjosin 真是不嫌麻烦弄 vxlan

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

https://ex.noerr.eu.org/t/1146500

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

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

© 2021 V2EX