O NAT apenas altera endereços IP / portas nos pacotes, não inclui nenhuma informação extra (cabeçalhos, etc.) no pacote. Portanto, ele não reduz o MTU de nenhuma maneira, e ter o mesmo MTU é bom.
Eu tenho uma rede doméstica com dois roteadores, um atrás do outro. A porta WAN do roteador externo é uma conexão PPPoE VDSL2 com um endereço IP ativo e o tamanho MTU de 1492. A porta WAN do roteador interno é atribuída via DHCP como apenas outro cliente na rede LAN do roteador externo. A MTU padrão para ela era 1500 por padrão. Eu mudei para 1492 para combinar com o roteador externo.
Agora eu me pergunto se faz algum sentido reduzir ainda mais o tamanho da MTU para a rede interna. Isso tornaria a rede interna mais robusta nesse cenário duplo de NAT?
Embora o NAT não aumente o tamanho dos pacotes (ou, talvez com mais precisão, diminua o tamanho máximo de carga útil por pacote), o PPOE e outros protocolos de encapsulamento geralmente fazem isso.
No entanto, a maioria dos sistemas operacionais modernos implementou o Path MTU Discovery , descrito em RFC1191 , que, de maneira ideal, adaptará pacotes de saída àquele do menor MTU de qualquer um dos links entre o host de envio e o destino, automaticamente. Isso é feito definindo o DF bit
(não fragmentar) em pacotes de saída grandes e procura por um erro de ICMP Fragmentation Needed
.
No MacOS e em outros sistemas operacionais semelhantes ao Unix, o utilitário ping
tem vários comutadores que podem definir o DF bit
, definir o tamanho da carga útil e até varrer um intervalo de tamanhos, determinando efetivamente uma MTU entre host e destino de origem. Há 8 bytes de sobrecarga no ICMP Echo Request
ping
envia e 20 bytes de sobrecarga no pacote IP, fazendo a carga máxima de 1472 para um pacote de ping com o DF bit
definido em uma interface de MTU de 1500 bytes. / p>
Você pode configurar seu MTU para otimizar, de uma maneira muito pequena, esse caminho específico, em troca de um tamanho de pacote muito menos otimizado para todos os outros fluxos de pacotes dos quais o host participa.
Portanto, a menos que você tenha problemas com a transferência de arquivos, talvez seja melhor deixar o sistema operacional lidar com o MTU automaticamente.
[nevin-mac-mini:~] nevin% ping -c 1 -D -s 1472 192.168.2.1 PING 192.168.2.1 (192.168.2.1): 1472 data bytes 1480 bytes from 192.168.2.1: icmp_seq=0 ttl=64 time=0.667 ms --- 192.168.2.1 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.667/0.667/0.667/0.000 ms [nevin-mac-mini:~] nevin% ping -c 1 -D -s 1473 192.168.2.1 PING 192.168.2.1 (192.168.2.1): 1473 data bytes ping: sendto: Message too long --- 192.168.2.1 ping statistics --- 1 packets transmitted, 0 packets received, 100.0% packet loss