(copiado de Unix Stack Exchange )
Você tem os sintomas de um problema MTU : algumas conexões TCP congelam, mais ou menos reprodutível para um determinado comando ou URL, mas sem um padrão geral facilmente discernível. Um sintoma revelador é que as sessões ssh interativas funcionam bem, mas as transferências de arquivos quase sempre falham. Além disso, pppoe é o principal responsável pelo problema de MTU para usuários domésticos. Então, eu prescrevo uma verificação de MTU.
O que é isso? O m aximum t ransmission u nit é o tamanho máximo de um pacote em um link de rede. O MTU varia de meio de transporte para meio de transporte, e. Ethernet com fio e Wi-Fi (802.11) têm MTUs diferentes e links ATM (que compõem a maior parte da infraestrutura de longa distância) cada um tem seu próprio MTU. O PPPOE é um protocolo encapsulado, o que significa que cada pacote consiste em alguns bytes de cabeçalho seguidos pelo subjacente pacote - por isso diminui o tamanho máximo do pacote pelo tamanho do cabeçalho. O IP permite que os roteadores fragmentem pacotes se detectarem que eles são grandes demais para o próximo salto, mas isso nem sempre trabalhos. Em teoria, o próprio MTU deve ser descoberto automaticamente , mas isso também nem sempre funciona. Em particular, o googling sugere que o Network Manager nem sempre atua adequadamente nas informações da MTU obtidas a partir da descoberta da MTU, mas não sei quais versões são afetadas ou quais são os casos de uso problemáticos.
Como medir isso.
Tente enviar pacotes de ping de um determinado tamanho para hosts externos que respondem a eles, por exemplo, ping -c 1 -s 42 8.8.8.8
(no Linux; em outros sistemas, procure a documentação do seu comando ping
). Seus pacotes devem passar por valores pequenos o suficiente de 42 (se 42 não funcionar, algo está bloqueando pings). Para valores maiores, o pacote não passará. 1464 é um valor máximo típico se a parte limitadora da infraestrutura for sua rede Ethernet local. Se tiver sorte, quando enviar um pacote muito grande, você verá uma mensagem como Frag needed and DF set (mtu = 1492)
. Se você não tiver sorte, continue experimentando o valor até encontrar o máximo e, em seguida, adicione 28 ( -s
especifica o tamanho da carga útil e há 28 bytes de cabeçalhos além disso).
Veja também Como otimizar sua conexão com a Internet usando MTU e RWIN nos fóruns do Ubuntu.
Como configurá-lo (substitua 1454 pelo MTU que você determinou e eth0
pelo nome da sua interface de rede)
- Como uma vez (Linux):
executar
ifconfig eth0 mtu 1454
- Permanentemente (Debian e derivados como o Ubuntu, se não estiver usando o Network Manager):
Edite
/etc/network/interfaces
. Logo após a entrada da sua interface de rede (após a diretivaiface eth0 …
), adicione uma linha compre-up ifconfig $IFACE mtu 1454
. Como alternativa, se o seu endereço IP for estático, você poderá adicionar o parâmetromtu 1454
à diretivaiface eth0 inet static
. -
Permanentemente (Debian e derivados como o Ubuntu, com ou sem o Network Manager): Crie um script chamado
/etc/network/if-pre-up.d/mtu
com o seguinte conteúdo e torne-o mundialmente executável (chmod a+rx
):#!/bin/sh ifconfig $IFACE mtu 1454