Como corrijo o SSH enviando pacotes fragmentados

5

Meu ISP às vezes derruba fragmentos de IP. Isso se manifesta no SSH: Eu consigo fazer login e executar comandos que geram strings curtas, mas executar algo como "ps fax" faz com que o link seja bloqueado.

O PMTU é 1500. Assim, parece que o SSH está tentando transmitir pacotes maiores que isso, que estão sendo fragmentados e, portanto, perdidos. Não consigo reduzir facilmente o MTU remoto, e estou relutante em fazer isso, já que o MTU está correto (1500).

O que está acontecendo aqui? Eu pensei que o TCP define seu MSS para o valor correto para evitar a fragmentação. Como estou recebendo fragmentos?

EDITAR: A máquina remota é o Centos 6.4. Por "às vezes" eu quis dizer que o ISP tem dias ruins em que sua rede quebra e realmente solta apenas fragmentos. Farejando ambas as extremidades do link, vejo o pacote e fragmentos de um ping grande saem do meu sistema, mas apenas o pacote "principal" chega ao destino.

O problema se manifestou como acima e também uma tela preta ao fazer login em uma sessão RDP. O problema está corrigido agora, então não posso fazer mais testes até que isso aconteça novamente.

Um pouco mais de testes em outro sistema mostra que o SSH define o bit DF. Então agora eu realmente não entendo o que está acontecendo.

Não consegui testar se a Fragmentação precisava de mensagens ICMP (como não deveriam), já que a rede aceita pacotes até o tamanho Ethernet (1500) para que o meu próprio roteador emitisse a mensagem necessária.

Reclamei com o ISP, mas eles tentaram me convencer de que isso era por design e que sua rede nunca permitiria um ping como "ping -s 5000". Não é verdade, claro. Especialmente porque eles consertaram.

    
por Neik 22.08.2013 / 19:01

1 resposta

1

Neste caso, ignorei o fato de que as sessões SSH e RDP estavam passando por uma VPN IPSEC. Os grandes pacotes SSH na PMTU ou perto dela estavam fazendo com que os pacotes IPSEC fossem maiores que a MTU e, portanto, se fragmentassem. Esses fragmentos foram perdidos e a sessão foi interrompida.

Eu presumo que a sessão acabará expirando e se recuperando, mas os humanos demoram mais tempo.

    
por 23.08.2013 / 15:26