O ajuste da MTU é um dos vários que podem ser feitos na sua rede. Este pode trazer ganhos significativos, em termos de eficiência de tráfego de dados, em uma rede estável.
A sigla MTU (Maximum Transmission Unit) corresponde a Unidade de Transmissão Máxima. Está relacionada a redes TCP/IP nos sistemas operacionais GNU Linux, BSD, UNIX etc.
A MTU se refere ao tamanho (em bytes) do maior datagrama (ou pacote) que uma determinada camada de um protocolo de comunicação pode passar por vez.
Usar pacotes de dados maiores, pode aumentar a eficiência do tráfego na interface. Em redes instáveis ou com problemas, isto pode não acontecer, contudo — uma vez que basta um bit estar com defeito para demandar que o pacote seja retransmitido.
Se você tiver interesse em saber mais sobre a MTU, pode encontrar informações neste artigo, no quadro de pesquisa do site ou nos links ao final do texto.
Você pode verificar o valor atual da MTU com o comando ifconfig, no Linux.
As instruções abaixo também podem ser aplicáveis ao seu smartphone Android, se você tiver um emulador de terminal instalado.
Veja alguns exemplos:
ifconfig
O resultado pode ser um pouco extenso, a depender da quantidade de interfaces de rede presentes no seu sistema:
docker0 Link encap:Ethernet Endereço de HW 56:84:7a:fe:87:99 inet end.: 172.17.42.1 Bcast:0.0.0.0 Masc:255.255.0.0 UP BROADCAST MULTICAST MTU:1500 Métrica:1 pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) eth0 Link encap:Ethernet Endereço de HW 50:b7:c3:15:da:48 UP BROADCAST MULTICAST MTU:1500 Métrica:1 pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereço inet6: ::1/128 Escopo:Máquina UP LOOPBACK RUNNING MTU:65536 Métrica:1 pacotes RX:3763 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:3763 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:0 RX bytes:333273 (333.2 KB) TX bytes:333273 (333.2 KB) wlan0 Link encap:Ethernet Endereço de HW c4:85:08:a7:0b:aa inet end.: 192.168.0.112 Bcast:192.168.0.255 Masc:255.255.255.0 endereço inet6: fe80::c685:8ff:fea5:aaa/64 Escopo:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 pacotes RX:298331 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:216836 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:425353002 (425.3 MB) TX bytes:21561532 (21.5 MB)
Se quiser, é possível combinar o ifconfig com o comando grep, para obter resultados mais objetivos.
Outra forma de obter informações sobre a MTU das suas interfaces de rede é a seguinte:
ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000 link/ether 50:b7:c3:04:da:48 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000 link/ether c4:85:08:a5:0a:aa brd ff:ff:ff:ff:ff:ff 4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 56:84:7a:fe:97:99 brd ff:ff:ff:ff:ff:ff
O ifconfig é usado para configurar (e posteriormente manter) as interfaces de rede.
É usado durante o boot para configurar a maioria delas para um estado usável. Depois disto, é normalmente somente necessário durante depurações ou quando for necessária uma configuração fina do sistema.
(Manual do ifconfig)
Como alterar a MTU da interface de rede
Os comandos que seguem, necessitam ser executados com privilégios administrativos — uma vez que alteram as configurações de dispositivos importantes do seu sistema.
Só para deixar registrado, no Android, você precisa de um aparelho rooteado para poder fazer esta configuração.
Para alterar a MTU da interface eth0 para 1400, por exemplo, use o ifconfig da seguinte maneira:
sudo ifconfig eth0 mtu 1400
Para obter o mesmo resultado com o comando ip, proceda da seguinte forma:
sudo ip link set dev eth0 mtu 1400
Agora verifique se a alteração surtiu efeito com os comandos ifconfig
ou ip link list
.
Como alterar definitivamente a MTU da interface de rede
Para que as alterações sejam definitivas e permaneçam, mesmo que você desligue ou reinicie o sistema, é necessário editar alguns arquivos de configuração — que podem variar de acordo com o sistema operacional ou “sabor” do GNU/Linux em uso.
Nas distros baseadas no Debian (Ubuntu, Mint, Trisquel etc), edite o arquivo /etc/network/interfaces
.
O exemplo, abaixo, mostra como configurar uma interface Ethernet. Adapte-o à sua realidade:
auto eth0 iface eth0 inet static name Ethernet LAN card address 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 network 192.168.0.0 gateway 192.168.0.254 mtu 1400 post-up /etc/fw.start post-down /etc/fw.stop
Feito isto, grave o arquivo e reinicie a interface de rede:
sudo /etc/init.d/networking restart
Nas distros baseadas no Red Hat (Fedora, CentOS etc), a configuração se dá no arquivo /etc/sysconfig/network-scripts/ifcfg-eth0
:
DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.1.255 HWADDR=00:0F:EA:91:04:07 IPADDR=192.168.1.111 NETMASK=255.255.255.0 NETWORK=192.168.1.0 MTU=1400 ONBOOT=yes TYPE=Ethernet
Após gravar e fechar o arquivo, reinicie o serviço de rede:
sudo service network restart
ou (funciona no Debian também)
sudo service networking restart
Possíveis erros ao tentar configurar a interface de rede
A maioria dos erros pode ocorrer por que você não está executando algum comando com os privilégios administrativos que ele possivelmente requer.
Outros erros podem advir de se estar tentando aplicar um ajuste além das limitações do próprio hardware: SIOCSIFMTU: Invalid argument. Neste caso, tente usar outros valores (mais baixos) na configuração da MTU.
Se você tiver quiser ler mais sobre configuração de rede, no site, use a caixa de busca para encontrar outros artigos do seu interesse.
Referências
Exemplos de uso do comando ifconfig: https://elias.praciano.com/2015/05/como-configurar-sua-interface-de-rede-com-o-ifconfig/.
Wiki Debian: https://wiki.debian.org/NetworkConfiguration#A.2Fetc.2Fnetwork.2Finterfaces.