强制对通过 VPN 隧道的某些流量进行 IP 分段和重组

强制对通过 VPN 隧道的某些流量进行 IP 分段和重组

有没有办法在 IP 数据包进入 tun0 之前强制对其进行分段,然后在 tun 设备的另一端强制对其进行重组?

我有一些无法控制的 IPSec 流量,它需要 1500 MTU 并且在 tun 设备上被丢弃。

我猜想可以将流量封装到 TCP 流中,然后将流重新组装为数据包 - 但由于各种原因,这肯定不是它应该的工作方式。所以我想知道是否有一种方法可以在 Linux 中的操作系统级别强制对至少一些匹配的数据包进行碎片化和重组?

答案1

你有没有尝试过

 ip link set mtu xxx dev tun0

其中 xxx 是您认为合适的任何值?

编辑

你可能想看看:这个人有和你类似的问题,

一段时间后我又遇到了同样的问题。我的上行链路无法传递长度超过 1496 字节的 tcp 数据包。我通过清除所有传出的 tcp 数据包中的 DF 位来解决这个问题。Linux 默认不允许清除 Df 位,我为 iptables 编写了 small=20 内核模块和补丁来清除 DF 位。

使用:清除传出数据包上的 DF:

iptables -t mangle -A POSTROUTING -j DF --clear

对于传入数据包的干净 DF:

iptables -t mangle -A PREROUTING -j DF --clear

并且其他 iptables 选项也是允许的。

他的代码的引用已经死了,但你可以试着写他, [电子邮件保护]

相关内容