MTU de IPv6

IPv6 requiere que el nivel de vínculo admita un tamaño mínimo de 1.280 bytes para los paquetes IPv6. Los niveles de vínculo que no admiten este tamaño deben proporcionar una combinación de fragmentación y reensamblado de nivel de vínculo transparente para IPv6. En los niveles de vínculo que admiten un tamaño de MTU que se puede configurar, se recomienda que se configuren con un tamaño de MTU de, al menos, 1.500 bytes (la unidad MTU IPv6 de encapsulación Ethernet II). La Unidad de recepción máxima (MRU, Maximum Receive Unit) de un vínculo de protocolo punto a punto (PPP, Point-to-Point Protocol) es un ejemplo de MTU que se puede configurar.

Al igual que IPv4, IPv6 proporciona un proceso de descubrimiento de MTU de ruta de acceso mediante el mensaje Packet Too Big (Paquete demasiado grande) de ICMPv6 que se describe en "Descubrimiento de MTU de ruta de acceso". El descubrimiento de MTU de ruta de acceso permite la transmisión de paquetes IPv6 de tamaños superiores a 1.280 bytes.

Los hosts de origen de IPv6 pueden fragmentar cargas de protocolos de nivel superior que sean mayores que la unidad MTU de ruta de acceso mediante el proceso y el encabezado Fragment descrito anteriormente. Sin embargo, no se recomienda en absoluto utilizar la fragmentación de IPv6. Un nodo IPv6 debe ser capaz de reensamblar un paquete fragmentado con un tamaño de, al menos, 1.500 bytes.

Sumas de comprobación de nivel superior

La implementación actual de TCP y UDP para IPv4 incorpora en el cálculo de suma de comprobación un pseudo-encabezado que incluye los campos Source Address (Dirección de origen) y Destination Address (Dirección de destino) de IPv4. Este cálculo de suma de comprobación debe modificarse para que el tráfico de TCP y UDP que se envía a través de IPv6 incluya direcciones IPv6. En la figura 28 se muestra el nuevo pseudo-encabezado que debe utilizarse en las sumas de comprobación de TCP y UDP.

Figura 28 Pseudo-encabezado de IPv6

El pseudo-encabezado de IPv6 incluye los campos Source Address, Destination Address, un campo Upper-Layer Packet Length (Longitud de paquete de nivel superior) que indica la longitud de PDU de nivel superior, y un campo Next Header (Encabezado siguiente) que indica el protocolo de nivel superior para el que se va a calcular la suma de comprobación.

Este pseudo-encabezado se utiliza también para el cálculo de suma de comprobación de ICMPv6.

ICMPv6

Al igual que IPv4, IPv6 no proporciona servicios para informar acerca de la existencia de errores. En su lugar, IPv6 utiliza una versión actualizada del Protocolo de mensajes de control de Internet (ICMP, Internet Control Message Protocol), denominado ICMP versión 6 (ICMPv6). ICMPv6 presenta las funciones comunes de ICMP IPv4 relativas a la elaboración de informes acerca de errores de entrega o reenvío y proporciona un servicio de eco simple para la solución de problemas.

El protocolo ICMPv6 también proporciona un marco para lo siguiente:

MLD es un conjunto de tres mensajes ICMP que reemplazan a la versión 2 del Protocolo de administración de grupos de Internet (IGMP) para que IPv4 administre la pertenencia a grupos de multidifusión de subred. MLD se describe más detalladamente en "Descubrimiento de escucha de multidifusión".

Neighbor Discovery es un conjunto de cinco mensajes ICMPv6 que administran la comunicación entre nodos en un vínculo. Neighbor Discovery reemplaza al Protocolo de resolución de direcciones (ARP), al proceso Router Discovery (Descubrimiento de enrutadores) de ICMPv4 y al mensaje Redirect (Redirección) de ICMPv4. Neighbor Discovery se describe más detalladamente en "Descubrimiento de vecino".

Una implementación de IPv6 requiere ICMPv6, que está documentado en RFC 2463.

Tipos de mensajes ICMPv6

Hay dos tipos de mensajes ICMPv6:

1.       Mensajes de error

Los mensajes de error se utilizan para informar de la existencia de errores en el reenvío o en la entrega de paquetes IPv6 por parte del nodo de destino o de un enrutador intermedio. El valor del campo Type (Tipo) de 8 bits en los mensajes de error ICMPv6 se encuentra en el intervalo comprendido entre 0 y 127 (el bit de orden superior se establece en el valor 0). Los mensajes de error ICMPv6 son Destination Unreachable (No se puede tener acceso al destino), Packet Too Big (Paquete demasiado grande), Time Exceeded (Fin de tiempo de espera) y Parameter Problem (Problema de parámetro).

2.       Mensajes informativos

Los mensajes informativos se utilizan para proporcionar funciones de diagnóstico y otras funciones adicionales de host, como MLD y Neighbor Discovery. El valor del campo Type (Tipo) en los mensajes informativos ICMPv6 se encuentra en el intervalo comprendido entre 128 y 255 (el bit de orden superior se establece en el valor 1). Los mensajes informativos ICMPv6 se describen en RFC 2463 e incluyen Echo Request (Solicitud de eco) y Echo Reply (Respuesta de eco).

Encabezado de ICMPv6

 

En la figura 29 se muestra la estructura de todos los mensajes ICMPv6.

Figura 29 Estructura de los mensajes ICMPv6

 

 

Los campos del encabezado ICMPv6 son los siguientes:

Type (Tipo): indica el tipo de mensaje ICMPv6. El tamaño de este campo es de 8 bits. En los mensajes de error ICMPv6, el bit de orden superior se establece en el valor 0. En los mensajes informativos ICMPv6, el bit de orden superior se establece en el valor 1.

 

Code (Código): distingue entre varios mensajes dentro de un tipo de mensaje dado. El tamaño de este campo es de 8 bits. Si sólo hay un mensaje de un tipo dado, el campo Code se establece en 0.

 

Checksum (Suma de comprobación): almacena una suma de comprobación del mensaje ICMP. El tamaño de este campo es de 16 bits. El pseudo-encabezado de IPv6 se agrega al mensaje ICMPv6 cuando se calcula la suma de comprobación.

 

Message body (Cuerpo del mensaje): contiene datos específicos del mensaje ICMPv6.

Mensajes de error ICMPv6

Los mensajes de error ICMPv6 se utilizan para informar de errores de reenvío o entrega por parte de un enrutador o del host de destino.

Destination Unreachable (Destino inaccesible)

El enrutador o el host de destino envía un mensaje ICMPv6 Destination Unreachable cuando el paquete no se puede reenviar a su destino.

 

En la figura 30 se muestra el mensaje ICMPv6 Destination Unreachable.

Figura 30 Mensaje ICMPv6 Destination Unreachable (Destino inaccesible)

 

 

En el mensaje Destination Unreachable, el campo Type (Tipo) se establece en el valor 1 y el campo Code (Código) se establece en un valor comprendido entre 0 y 4. Después del campo Checksum (Suma de comprobación) se encuentra el campo Unused (No utilizado), de 32 bits, y la porción del paquete descartado que hace que todo el paquete IPv6 que contiene el mensaje ICMPv6 no sea mayor de 1.280 bytes (la unidad MTU mínima de IPv6). El número de bytes del paquete descartado incluido en el mensaje varía si hay encabezados de extensión IPv6. Para un mensaje ICMPv6 sin encabezados de extensión, se incluyen 1.232 bytes del paquete descartado (1.280 menos un encabezado IPv6 de 40 bytes y un encabezado ICMPv6 Destination Unreachable de 8 bytes).

En la tabla 7 se muestra el valor del campo Code para los distintos mensajes Destination Unreachable.

 

Tabla 7 Mensajes ICMPv6 Destination Unreachable (Destino inaccesible)

 

Valor del código

Descripción

0

No se ha encontrado ninguna ruta que coincida con el destino en la tabla de enrutamiento.

1

La comunicación con el destino está prohibida por la directiva administrativa. Normalmente, se envía cuando un servidor de seguridad descarta el paquete.

2

La dirección se encuentra fuera del ámbito de la dirección de origen.

3

No se puede tener acceso a la dirección de destino. Normalmente, se envía debido a la incapacidad de resolver la dirección del nivel de vínculo del destino.

4

No se puede tener acceso al puerto de destino. Normalmente, se envía cuando un paquete IPv6 que contiene un mensaje UDP ha llegado al destino, pero no había ninguna aplicación a la escucha en el puerto UDP de destino.

 

 

 

Packet Too Big (Paquete demasiado grande)

Se envía un mensaje ICMPv6 Packet Too Big cuando el paquete no se puede reenviar debido a que la unidad MTU del vínculo de reenvío es menor que el tamaño del paquete IPv6.

 

En la figura 31 se muestra el mensaje ICMPv6 Packet Too Big.


 

Figura 31 Mensaje ICMPv6 Packet Too Big (Paquete demasiado grande)

 

 

En el mensaje Packet Too Big, el campo Type (Tipo) se establece en el valor 2 y el campo Code (Código) se establece en el valor 0. Después del campo Checksum (Suma de comprobación) se encuentra el campo MTU, de 32 bits, en el que se almacena la unidad MTU del vínculo sobre el que se iba a reenviar el paquete. Después sigue la parte del paquete descartado que hace que todo el paquete IPv6 que contiene el mensaje ICMPv6 tenga la longitud máxima de 1.280 bytes. El mensaje Packet Too Big se utiliza para el proceso Path MTU Discovery (Descubrimiento MTU de ruta de acceso) de IPv6 que se describe en "Path MTU Discovery (Descubrimiento de MTU de ruta de acceso)".

Time Exceeded (Fin de tiempo de espera)

Normalmente, un enrutador envía un mensaje ICMPv6 Time Exceeded cuando el campo Hop Limit (Límite de saltos) del encabezado de IPv6 es cero al recibir el paquete o después de reducir su valor durante el proceso de reenvío.

 

En la figura 32 se muestra el mensaje ICMPv6 Time Exceeded.


Figura 32 Mensaje ICMPv6 Time Exceeded (Fin de tiempo de espera)

 

 

En el mensaje Time Exceeded, el campo Type (Tipo) se establece en el valor 3 y el campo Code (Código) se establece en el valor 0 (cuando el campo Hop Limit del encabezado IPv6 pasa a 0) o en 1 (cuando se sobrepasa el tiempo de reensamblado de la fragmentación del host de destino). Después del campo Checksum (Suma de comprobación), se encuentra el campo Unused (No utilizado), de 32 bits, y la parte del paquete descartado, de modo que todo el paquete IPv6 que contiene el mensaje ICMPv6 no tiene más de 1.280 bytes. La recepción de mensajes Time Exceeded para Code=0 indica que el límite de saltos de los paquetes salientes no es suficientemente grande para llegar al destino o que existe un bucle de enrutamiento.

Parameter Problem (Problema de parámetro)

El mensaje ICMPv6 Parameter Problem es enviado por un enrutador o por el destino. Ocurre cuando se detecta un error en el encabezado de IPv6 o en un encabezado de extensión, e impide que continúe el procesamiento de IPv6.

 

En la figura 33 se muestra el mensaje ICMPv6 Parameter Problem.


 

 

Figura 33 Mensaje ICMPv6 Parameter Problem (Problema de parámetro)

 

 

En el mensaje Parameter Problem, el campo Type (Tipo) se establece en el valor 4 y el campo Code (Código) es un valor comprendido entre 0 y 2. Después del campo Checksum (Suma de comprobación) se encuentra el campo Pointer (Puntero), de 32 bits, que indica el desplazamiento en bytes del paquete IPv6 en el que se detectó el error. Después del campo Pointer sigue la parte del paquete descartado, con un tamaño tal que todo el mensaje ICMPv6 no supera los 1.280 bytes. El valor del campo Pointer se establece en el desplazamiento correcto incluso cuando la ubicación del error no esté en la parte del paquete descartado.

En la tabla 8 se muestran los valores del campo Code para los mensajes Parameter Problem.

 

Tabla 8 Mensajes ICMPv6 Parameter Problem (Problema de parámetro)

 

Valor del código

Descripción

0

Error en un campo del encabezado IPv6 o en un encabezado de extensión.

1

Valor no reconocido en el campo Next Header (Encabezado siguiente). Equivale al mensaje Destination Unreachable-Protocol Unreachable (Destino inaccesible o protocolo inaccesible) de IPv4.

2

Opción de IPv6 no reconocida.

 

 

 

Mensajes informativos ICMPv6

 

Los mensajes informativos ICMPv6, definidos en RFC 2463, proporcionan capacidades de diagnóstico para la solución de problemas.

Echo Request (Solicitud de eco)

El mensaje ICMPv6 Echo Request se envía a un destino para solicitar un mensaje Echo Reply (Respuesta de eco) de inmediato. El servicio de mensajes Echo Request/Echo Reply proporciona un diagnóstico simple para la solución de diversos problemas de posibilidad de acceso y enrutamiento.

 

En la figura 34 se muestra el mensaje ICMPv6 Echo Request.

ipver34

Figura 34 Mensaje ICMPv6 Echo Request (Solicitud de eco)

 

 

En el mensaje Echo Request, el campo Type (Tipo) se establece en el valor 128 y el campo Code (Código) se establece en el valor 0. Después del campo Checksum (Suma de comprobación), se encuentran los campos Identifier (Identificador) de 16 bits y Sequence Number (Número de secuencia). Los campos Identifier y Sequence Number se establecen mediante el host de envío y se utilizan para hacer coincidir un mensaje Echo Reply entrante con su mensaje Echo Request correspondiente. El campo Data (Datos) contiene cero o más bytes de datos opcionales y también lo establece el host de envío.

Echo Reply (Respuesta de eco)

Se envía un mensaje ICMPv6 Echo Reply en respuesta a la recepción de un mensaje ICMPv6 Echo Request.

 

En la figura 35 se muestra el mensaje ICMPv6 Echo Reply.

Figura 35 Mensaje ICMPv6 Echo Reply (Respuesta de eco)

 

 

En el mensaje Echo Reply, el campo Type (Tipo) se establece en el valor 129 y el campo Code (Código) se establece en el valor 0. Después del campo Checksum (Suma de comprobación) se encuentran los campos Identifier (Identificador) de 16 bits y Sequence Number (Número de secuencia). Los campos Identifier, Sequence Number y Data se establecen con los mismos valores que los del mensaje Echo Request que solicitó inicialmente el mensaje Echo Reply.

Diferencias entre los mensajes ICMPv4 e ICMPv6

En la tabla 9 se muestran los mensajes ICMPv4 y sus equivalentes en ICMPv6.

 

 

Tabla 9 Mensajes ICMPv4 y sus equivalentes en ICMPv6

 

Mensaje ICMPv4

Equivalente en ICMPv6

Destination Unreachable-Network unreachable (Destino inaccesible: red inaccesible) (Type 3, Code 1)

Destination Unreachable-No route to destination (Destino inaccesible: no hay ruta al destino) (Type 1, Code 0)

Destination Unreachable-Host unreachable (Destino inaccesible: host inaccesible) (Type 3, Code 1)

Destination Unreachable-Address unreachable (Destino inaccesible: dirección inaccesible) (Type 1, Code 3)

Destination Unreachable-Protocol unreachable (Destino inaccesible: protocolo inaccesible) (Type 3, Code 2)

Parameter Problem-Unrecognized Next Header field (Problema de parámetro: no se reconoce el campo Next Header) (Type 4, Code 1)

Destination Unreachable-Port unreachable (Destino inaccesible: puerto inaccesible) (Type 3, Code 3)

Destination Unreachable-Port unreachable (Destino inaccesible: puerto inaccesible) (Tipo 1, Código 4)

Destination Unreachable-Fragmentation needed and DF set (Destino inaccesible: se necesita fragmentación y DF (Type 3, Code 4)

Packet Too Big (Paquete demasiado grande) (Type 2, Code 0)

Destination Unreachable-Communication with destination host administratively prohibited (Destino inaccesible: comunicación con el host de destino prohibida administrativamente) (Type 3, Code 10)

Destination Unreachable-Communication with destination administratively prohibited (Destino inaccesible: comunicación con el destino prohibida administrativamente) (Type 1, Code 1)

Time Exceeded-TTL expired (Fin de tiempo de espera: caducó TTL) (Type 11, Code 0)

Time Exceeded-Hop Limit exceeded (Fin de tiempo de espera: se excedió el límite de saltos) (Type 3, Code 0)

Time Exceeded-Fragmentation timer expired (Fin de tiempo de espera: caducó el cronómetro de fragmentación) (Type 11, Code 1)

Time Exceeded-Fragmentation timer exceeded (Fin de tiempo de espera: se excedió del cronómetro de fragmentación) (Type 3, Code 1)

Parameter Problem (Problema de parámetro) (Type 12, Code 0)

Parameter Problem (Problema de parámetro) (Type 4, Code 0 o Code 2)

Source Quench (Paquetes de control de flujo) (Type 4, Code 0)

Este mensaje no está implementado en IPv6.

Redirect (Redirección) (Type 5, Code 0)

Mensaje Neighbor Discovery Redirect (Redirección para descubrimiento de vecino) (Type 137, Code 0). Para obtener más información, consulte "Descubrimiento de vecino".

 

 

 

Descubrimiento de MTU de ruta de acceso

 

La unidad MTU de ruta de acceso es la MTU de vínculo mínima de todos los vínculos que hay en una ruta de acceso entre un origen y un destino. Los paquetes IPv6 con un tamaño máximo de MTU de ruta de acceso no necesitan que el host los fragmente y todos los enrutadores de la ruta de acceso los reenviarán correctamente. Para descubrir la unidad MTU de ruta de acceso, el nodo de envío utiliza la recepción de mensajes ICMP Packet Too Big (Paquete demasiado grande).

La unidad MTU de ruta de acceso se descubre mediante el siguiente proceso:

1.       El nodo de envío asume que la unidad MTU de la ruta de acceso es la MTU de vínculo de la interfaz en la que se está reenviando el tráfico.

2.       El nodo de envío envía datagramas IP con el tamaño de MTU de ruta de acceso.

3.       Si un enrutador de la ruta de acceso no puede reenviar el paquete a través de un vínculo con una MTU de vínculo menor que el tamaño del paquete, descarta el paquete IPv6 y devuelve un mensaje Packet Too Big al nodo de envío. El mensaje ICMP Packet Too Big contiene la unidad MTU del vínculo en el que se produjo el error de reenvío.

4.       El nodo de envío configura la unidad MTU de ruta de acceso para los paquetes que se envían al destino con el valor del campo MTU en el mensaje ICMPv6 Packet Too Big.

El nodo de envío vuelve a empezar en el paso 2 y repite los pasos 2 a 4 tantas veces como sea necesario para descubrir la unidad MTU de ruta de acceso. La unidad MTU de ruta de acceso se determina cuando no se reciben mensajes ICMPv6 Packet Too Big adicionales o cuando se recibe un mensaje de confirmación del destino.

En RFC 1981, se recomienda que los nodos IPv6 admitan el descubrimiento de MTU de ruta de acceso. Aquéllos que no lo hagan, deben utilizar la unidad MTU de vínculo mínima de 1.280 bytes como MTU de ruta de acceso.

 

Cambios en MTU de ruta de acceso

Debido a los cambios de la topología de enrutamiento, la ruta de acceso entre el origen y el destino puede cambiar con el tiempo. Cuando una nueva ruta de acceso necesita una MTU de ruta de acceso menor, el proceso anterior empieza en el paso 3 y repite los pasos 2 a 4 hasta que se descubre la nueva MTU de ruta de acceso.

Las disminuciones de MTU de ruta de acceso se descubren inmediatamente a través de la recepción de mensajes ICMP Packet Too Big. El nodo de envío debe detectar los incrementos en la MTU de ruta de acceso. Tal como se describe en RFC 1981, el nodo de envío puede intentar enviar un paquete IPv6 mayor después de un mínimo de 5 minutos (se recomienda 10 minutos) al recibir un mensaje ICMPv6 Packet Too Big.

 

 

Atrás    Inicio    Siguiente