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)