He configurado una red de prueba con 2 PC con Linux que funcionan como enrutadores y 2 PC con Linux que funcionan como clientes normales. Los 2 enrutadores están conectados entre sí y cada cliente está conectado a un enrutador. En la ruta desde el cliente a uno de los enrutadores, la MTU es 1500, sin embargo, entre los dos enrutadores es 1200. También estoy usando IPv6 únicamente.
Si ahora intento enviar un paquete de más de 1200 bytes, espero recibir un error ICMPv6 "paquete demasiado grande" del enrutador y el cliente debería fragmentar el paquete e intentar reenviarlo. Sin embargo esto no sucede. Si miro Wireshark puedo ver que el cliente recibe los errores ICMPv6, sin embargo, el cliente no intenta reenviar los paquetes como fragmentos.
¿Cuál podría ser la razón de este comportamiento?
Respuesta1
IPv6 no admite la fragmentación.
Con IPv4, un enrutador puede fragmentar un paquete cuando lo reenvía de un enlace a otro enlace con una MTU más pequeña (a menos queDFEstá establecido).
Con IPv6, los puntos finales deben utilizarDescubrimiento de MTU de rutadescubrirlo por sí mismos y luego usar este MTU entre ellos...
Editardespués de los muy apreciados comentarios de @Patrick Mevzek:
... o recurrir a utilizar la MTU garantizada para IPv6 de 1280 bytes (con o sin fragmentación del paquete en el host).