Ao tentar configurar um servidor Ubuntu Linux como um cliente para um servidor l2tp / IPSEC, noto inconsistências ao tentar enviar dados.
O túnel / VPN estabelece a conexão / handshake corretamente e do cliente eu posso pingar / ssh para todas as máquinas como esperado.
Percebo o problema ao tentar enviar dados do cliente para uma máquina remota enquanto uso scp.
Eu posso copiar / obter qualquer coisa sem problemas:
scp user@vpn:/tmp/test.file
Mas se eu tentar enviar dados e o tamanho do arquivo a ser enviado for > a vpn MTU (1280):
scp /tmp/test.file user@vpn:/tmp
Eu recebo uma mensagem " Packet Corrupt ".
Sem sucesso, tentei isto: ethtool -K eth0 tx off
Usando o tcpdump eu noto que todos os pacotes de saída, não importa o tamanho, todos contêm o sinalizador DF, por algum motivo os pacotes que passam pela interface ppp0 não são fragmentados.
A configuração que estou usando é:
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
Alguns dos logs que recebo:
pppd[26423]: sent [LCP EchoReq id=0x1 magic=0x4501dc87]
pppd[26423]: rcvd [LCP EchoRep id=0x1 magic=0xd6736575]
Se eu enviar arquivos em blocos maiores que o MTU:
pppd[12603]: Protocol-Reject for unsupported protocol 0xb8af
pppd[12603]: rcvd [LCP ProtRej id=0x8 ...]
Uma maneira de contornar isso é usar o rsync e limitar a largura de banda de saída:
rsync -vvv --bwlimit=16 -P -e "ssh -i ssh_key.pem" /tmp.test.file user@vpn:/tmp
Outros clientes que executam o iOS / OS X da mesma rede não têm nenhum problema, ambos podem enviar / obter dados sem problemas, portanto, não suspeito de um problema com o servidor VPN.
Alguma ideia ou possíveis correções para corrigir esse problema?