ubuntu xl2tp ppp0在发送软件包>定义的MTU时没有正确处理DF标志(Packet Corrupt)

在尝试将Ubuntu Linux服务器设置为l2tp / IPSEC服务器的客户端时,发现尝试发送数据时出现不一致。

隧道/ VPNbuild立连接/握手正确,从客户端我可以按预期ping / SSH到所有的机器。

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

我可以复制/得到任何没有问题的东西:

scp user@vpn:/tmp/test.file 

但是,如果我尝试发送数据,并且要发送的文件大小> vpn MTU (1280):

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

我收到“ Packet Corrupt ”消息。

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

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

我正在使用的configuration是:

 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 

从同一networking运行iOS / OS X的其他客户端根本没有问题,都可以发送/获取数据,没有任何问题,所以我不怀疑VPN服务器的问题。

任何想法或可能的补丁来解决这个问题?