При попытке настроить сервер Ubuntu Linux в качестве клиента для сервера l2tp / IPSEC я замечаю несоответствия при попытке отправить данные.
Туннель / VPN правильно устанавливает соединение / рукопожатие, и с клиента я могу пинговать / ssh на все машины, как и ожидалось.
Я заметил проблему при попытке отправить данные с клиента на удаленный компьютер при использовании scp.
Могу без проблем скопировать / получить что угодно:
scp user@vpn:/tmp/test.file
Но если я попытаюсь отправить данные, а размер отправляемого файла> vpn MTU (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.
Есть идеи или возможные патчи для решения этой проблемы?