Problemas com retransmissão TCP, duplicatas, etc. no CentOS Linux

1

Estou executando o Vyatta gateway com CentOS Linux atrás e IPSec túnel na frente.

Tentando exibir minha configuração:

PARTNER-NETWORK <--- IPSec (GRE, MTU 1420) ---> VYATTA (TUNNEL, MTU 1420 <> eth0, MTU 1500) <---> CentOS (eth0, MTU 1500) <---> internet (eth0, MTU 1500)

Eu vejo muitas retransmissões TCP, dublicados etc. e eu acho que é por causa de diferentes MTU / MSS - é difícil depurar: (

Eu tentei adicionar o seguinte no meu CentOS:

iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Mas isso não parece resolver o problema.

Como posso depurar onde o problema é exatamente e alguma ideia de como resolver os problemas?

    
por Alfred Balle 10.04.2018 / 11:02

1 resposta

1

Tem certeza de que está permitindo mensagens de código 4 do ICMP tipo 4 (isto é, fragmentação necessária) do seu gateway para os dois pontos de extremidade? E os terminais realmente os recebem?

Desde o Windows 95, praticamente todos os sistemas operacionais usam o Path MTU Discovery. Na prática, isso significa que eles enviarão todos os seus pacotes TCP com o conjunto de sinalizadores Não Fragmentar. Se o pacote for maior que o MTU de algum salto na rota do pacote, o roteador que está encontrando o problema deve enviar uma mensagem ICMP "Fragmentation Needed" de volta ao remetente. A partir dessa mensagem, o remetente saberá a MTU exata nesse salto e saberá redimensionar os pacotes de acordo. Como resultado, os endpoints acabarão por dimensionar seus pacotes para que nenhum roteador precise fragmentá-los. Isso melhora o desempenho.

Mas se alguém estiver bloqueando as mensagens ICMP "Fragmentation Needed", o mecanismo Path Path MTU Discovery não funcionará. Como o destinatário nunca recebe o pacote maior que o MTU de um determinado salto na rota do pacote, o destinatário nunca o reconhece. Uma vez que o remetente percebe que um pacote não foi reconhecido, ele reenviará aquele pacote - e como não tem idéia de que o MTU deve ser reduzido para essa conexão em particular, ele reenviará o pacote exatamente como estava: com o mesmo MTU que foi muito grande para um salto. Então, reenviar não ajudará nesse caso.

    
por 10.04.2018 / 11:34