ubuntu xl2tp ppp0 在发送包时无法正确处理 DF 标志(数据包损坏)> 定义的 MTU

ubuntu xl2tp ppp0 在发送包时无法正确处理 DF 标志(数据包损坏)> 定义的 MTU

当尝试将 Ubuntu Linux 服务器设置为 l2tp/IPSEC 服务器的客户端时,我注意到在尝试发送数据时存在不一致的情况。

隧道/VPN 正确建立连接/握手,并且从客户端我可以按预期 ping/ssh 到所有机器。

当我尝试使用 scp 将数据从客户端发送到远程机器时,我注意到了这个问题。

我可以毫无问题地复制/获取任何东西:

scp user@vpn:/tmp/test.file

但如果我尝试发送数据,并且要发送的文件大小> vpn最大传输单元(1280):

scp /tmp/test.file user@vpn:/tmp

我收到一个“数据包损坏“ 信息。

我没有成功,我尝试了这个:ethtool -K eth0 tx off

使用 tcpdump 我注意到所有传出的包无论大小都包含 DF 标志,由于某种原因,通过 ppp0 接口的包不会被碎片化。

我使用的配置是:

ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-mschap-v2
noccp
noauth
idle 1800
mtu 1280
mru 1280
defaultroute
usepeerdns
debug
lock
connect-delay 5000

我收到的一些日志:

pppd[26423]: sent [LCP EchoReq id=0x1 magic=0x4501dc87]
pppd[26423]: rcvd [LCP EchoRep id=0x1 magic=0xd6736575]

如果我发送的文件块大于 MTU:

pppd[12603]: Protocol-Reject for unsupported protocol 0xb8af
pppd[12603]: rcvd [LCP ProtRej id=0x8 ...]

解决此问题的方法是使用 rsync 并限制传出带宽:

rsync -vvv --bwlimit=16 -P -e "ssh -i ssh_key.pem" /tmp.test.file user@vpn:/tmp

在同一网络下运行 iOS / OS X 的其他客户端没有任何问题,都可以毫无问题地发送/获取数据,因此我并不怀疑 VPN 服务器存在问题。

有什么想法或可能的补丁可以解决这个问题吗?

相关内容