Configurei uma rede de teste com 2 PCs Linux funcionando como roteadores e 2 PCs Linux funcionando como clientes normais. Os 2 roteadores estão conectados entre si e cada cliente está conectado a um roteador. No caminho do cliente para um dos roteadores o MTU é 1500, porém entre os dois roteadores é 1200. Também estou usando apenas IPv6.
Se eu tentar enviar um pacote maior que 1200 bytes, espero receber um erro ICMPv6 "pacote muito grande" do roteador e o cliente deverá fragmentar o pacote e tentar reenviá-lo. Contudo isso não acontece. Se eu olhar para o wireshark, posso ver o cliente recebendo os erros ICMPv6, porém o cliente não tenta reenviar os pacotes como fragmentos.
Qual poderia ser o motivo desse comportamento?
Responder1
IPv6 não suporta fragmentação.
Com o IPv4, um roteador pode fragmentar um pacote ao encaminhá-lo de um enlace para outro enlace com um MTU menor (a menos queDFestá definido).
Com o IPv6, os endpoints precisam usarDescoberta de MTU de caminhopara realmente descobrirem por si mesmos e então usarem esse MTU entre si...
Editarapós os comentários muito apreciados de @Patrick Mevzek:
... ou recorrer ao MTU garantido para IPv6 de 1280 bytes (com ou sem fragmentação do pacote no host).