Como configurar MTU da placa de rede no Linux
Como fazer para configurar o MTU da placa de rede nos sistemas Linux.
O que é MTU?
MTU é uma sigla que significa Maximum Transmission Unit, em português significa Unidade Máxima de Transmissão.
Essa valor define o tamanho máximo do datagrama que pode ser enviado pela rede, datagramas de tamanho maior serão fragmentados em unidades menores e transmitidos.
Valor padrão
O valor padrão do MTU em redes ethernet é de 1.500 bytes.
Visualizando o valor atual
Para saber o valor atual do MTU na placa de rede você deve usar o comando ifconfig eth0
# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0c:29:ac:b2:8e inet addr:172.23.134.101 Bcast:172.23.134.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:feac:b28e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6164356 errors:0 dropped:0 overruns:0 frame:0 TX packets:96179 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:515490533 (491.6 MiB) TX bytes:22206002 (21.1 MiB)
Na linha 5 você pode ver MTU:1500, esse é o valor atual do MTU, agora vamos alterar esse valor.
Como alterar o valor padrão do MTU
Vou dar algumas dicas simples de como alterar o MTU da placa de rede ethernet no Linux.
Alteração manual
Para alterar o MTU manualmente e fazer testes basta executar o seguinte comando.
# ifconfig eth0 mtu 1460
Agora vamos ver o resultado
# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0c:29:ac:b2:8e inet addr:172.23.134.101 Bcast:172.23.134.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:feac:b28e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1460 Metric:1 RX packets:6168787 errors:0 dropped:0 overruns:0 frame:0 TX packets:96489 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:515839287 (491.9 MiB) TX bytes:22249757 (21.2 MiB)
Fixando a configuração
Para que a alteração de MTU não seja perdida depois que você der um boot no seu sistema Linux é necessário alterar a configuração do sistema, o arquivo a ser alterado vai depender da sua distribuição, aqui vamos mostrar como fazer isso no Debian e RedHat.
Debian
No Debian você deve editar o arquivo /etc/network/interfaces, nesse arquivo basta adicionar a linha mtu <valor>, veja o exemplo abaixo de uma configuração com duas placas de redes, apenas uma delas, a eth1 terá o MTU alterado.
auto eth0 iface eth0 inet static address 192.168.1.30 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 auto eth1 iface eth1 inet static address 192.168.254.3 netmask 255.255.255.0 network 192.168.254.0 broadcast 192.168.254.255 mtu 1460
RedHat
Para efetuar a configuração do MTU em uma distribuição baseada em RedHat vamos precisar alterar o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0 e adicionar a linha MTU=<valor>, veja o exemplo abaixo.
DEVICE=eth0 ONBOOT=yes TYPE=Ethernet NETMASK=255.255.0.0 IPADDR=172.17.1.50 GATEWAY=172.17.1.1 MTU=1460
Pronto, com essas pequenas dicas você pode alterar sem medo o MTU da sua placa de rede no Linux.
Mais informações
http://pt.wikipedia.org/wiki/MTU
http://monespaceperso.org/blog-en/2009/02/26/how-to-change-the-default-mtu-of-a-network-card-on-ubuntu/
http://vivaotux.blogspot.com/2008/08/ajustando-o-mtu-no-ubuntu-debian.html
Para dhcp eu achei uma solução legal para distros baseadas em Debian e postei no meu blog
http://vivaotux.blogspot.com/2008/08/ajustando-o-mtu-no-ubuntu-debian.html
Sérgio Luiz Araújo silva(Citar)
Show de bola, obrigado pela dica.
Rodrigo Luis Silva(Citar)
Valeu pela dica, beti em varios foruns e ja tava desistindo do linux, nao entrava em alguns sites, agora ficou show,
sucesso!
Adriano(Citar)