ICMPv6

Protocolo de Internet utilizado para mensajes de error en operaciones de red
Protocolo de mensajes de control de Internet para IPv6
Protocolo de comunicación
Estructura general de los mensajes ICMPv6
AbreviaturaICMPv6
ObjetivoProtocolo auxiliar para IPv6
IntroducciónDiciembre de 1995 ; hace 28 años ( 1995-12 )
Capa OSICapa de red
RFC(s)RFC 4443

El Protocolo de mensajes de control de Internet versión 6 ( ICMPv6 ) es la implementación del Protocolo de mensajes de control de Internet (ICMP) para el Protocolo de Internet versión 6 (IPv6). [1] ICMPv6 es una parte integral de IPv6 y realiza funciones de diagnóstico e informes de errores.

ICMPv6 tiene un marco para extensiones para implementar nuevas características. Se han publicado varias extensiones, que definen nuevos tipos de mensajes ICMPv6, así como nuevas opciones para los tipos de mensajes ICMPv6 existentes. Por ejemplo, Neighbor Discovery Protocol (NDP) es un protocolo de descubrimiento de nodos basado en ICMPv6 que reemplaza y mejora las funciones de ARP . [2] Secure Neighbor Discovery (SEND) es una extensión de NDP con seguridad adicional. Multicast Listener Discovery (MLD) es utilizado por enrutadores IPv6 para descubrir oyentes de multidifusión en un enlace conectado directamente, de manera similar a como se utiliza el Protocolo de administración de grupos de Internet (IGMP) en IPv4 . Multicast Router Discovery (MRD) permite el descubrimiento de enrutadores de multidifusión.

Tipos y formatos de mensajes

Los mensajes ICMPv6 pueden clasificarse como mensajes de error y mensajes de información . Los mensajes ICMPv6 se transportan mediante paquetes IPv6 en los que el valor del encabezado siguiente IPv6 para ICMPv6 se establece en el valor 58 .

El mensaje ICMPv6 consta de un encabezado y la carga útil del protocolo. El encabezado contiene solo tres campos: Tipo (8 bits), Código (8 bits) y Suma de comprobación (16 bits).

Mensaje ICMPv6
CompensarOcteto0123
OctetoPoco012345678910111213141516171819202122232425262728293031
00TipoCódigoSuma de comprobación
432Cuerpo del mensaje
864
Tipo: 8 bits
Especifica el tipo de mensaje. Los valores en el rango de 0 a 127 (el bit de orden superior es 0) indican un mensaje de error, mientras que los valores en el rango de 128 a 255 (el bit de orden superior es 1) indican un mensaje de información.
Código: 8 bits
El valor del campo Código depende del tipo de mensaje y proporciona un nivel adicional de granularidad del mensaje.
Suma de comprobación: 16 bits
Proporciona un nivel mínimo de verificación de integridad para el mensaje ICMP. La suma de comprobación se calcula a partir del mensaje ICMP (comenzando con el campo Tipo ), precedido por un pseudoencabezado IPv6 . [1] Véase a continuación.
Cuerpo del mensaje: Variable
El contenido depende del mensaje.

Tipos

Los mensajes de control se identifican por el valor del campo de tipo . El campo de código proporciona información de contexto adicional para el mensaje. Algunos mensajes cumplen la misma función que los tipos de mensajes ICMP con el nombre correspondiente.

TipoCódigo
ValorSignificadoValorSignificado
Mensajes de error de ICMPv6
1Destino inalcanzable0No hay ruta al destino
1Comunicación con destino prohibida administrativamente
2más allá del alcance de la dirección de origen
3dirección inalcanzable
4puerto inalcanzable
5La dirección de origen falló en la política de ingreso/egreso
6rechazar ruta a destino
7Error en el encabezado de enrutamiento de origen
2Paquete demasiado grande0
3Tiempo excedido0Se excedió el límite de saltos en tránsito
1Se ha excedido el tiempo de reensamblaje del fragmento
4Problema de parámetros0Se encontró un campo de encabezado erróneo
1Se encontró un tipo de encabezado siguiente no reconocido
2Se encontró una opción IPv6 no reconocida
100Experimentación privada
101Experimentación privada
127Reservado para la expansión de mensajes de error ICMPv6
Mensajes informativos de ICMPv6
128Solicitud de eco0
129Respuesta de eco0
130Consulta de escucha de multidifusión ( MLD )0

Hay dos subtipos de mensajes de consulta de escucha de multidifusión:

  • Consulta general, utilizada para saber qué direcciones de multidifusión tienen oyentes en un enlace adjunto.
  • Consulta específica de dirección de multidifusión, utilizada para saber si una dirección de multidifusión particular tiene algún oyente en un enlace adjunto.

Estos dos subtipos se diferencian por el contenido del campo Dirección de multidifusión, como se describe en la sección 3.6 del RFC 2710.

131Informe de escucha de multidifusión ( MLD )0
132Escucha de multidifusión realizada ( MLD )0
133Solicitud de enrutador ( NDP )0
134Anuncio de enrutador ( NDP )0
135Solicitud de vecinos ( NDP )0
136Anuncio de Vecinos ( NDP )0
137Mensaje de redireccionamiento ( NDP )0
138Renumeración de enrutadores [3]0Comando de renumeración de enrutador
1Resultado de la renumeración del enrutador
255Restablecimiento del número de secuencia
139Consulta de información de nodo ICMP0El campo de Datos contiene una dirección IPv6 que es el objeto de esta consulta.
1El campo de Datos contiene un nombre que es el Asunto de esta Consulta, o está vacío, como en el caso de un NOOP.
2El campo de Datos contiene una dirección IPv4 que es el objeto de esta consulta.
140Respuesta de información del nodo ICMP0Una respuesta exitosa. El campo Datos de respuesta puede estar vacío o no.
1El respondedor se niega a proporcionar la respuesta. El campo Datos de respuesta estará vacío.
2El tipo de consulta es desconocido para el respondedor. El campo Datos de respuesta estará vacío.
141Mensaje de solicitud de descubrimiento de vecino inverso0
142Mensaje de anuncio de descubrimiento de vecino inverso0
143Informes de descubrimiento de escucha de multidifusión ( MLDv2 ) [4]
144Inicio Agente Dirección Solicitud de descubrimiento Mensaje0
145Inicio Agente Dirección Descubrimiento Responder Mensaje0
146Solicitud de prefijo móvil0
147Anuncio de prefijo móvil0
148Solicitud de ruta de certificación ( SEND )
149Anuncio de ruta de certificación (SEND)
151Anuncio de enrutador de multidifusión ( MRD )
152Solicitud de enrutador de multidifusión ( MRD )
153Terminación de enrutador de multidifusión ( MRD )
155Mensaje de control RPL
160Solicitud de eco extendida [5]0Solicitar eco extendido
161Respuesta de eco extendida [5]0Sin error
1Consulta mal formada
2No existe tal interfaz
3No existe tal entrada en la tabla
4Varias interfaces satisfacen las consultas
200Experimentación privada
201Experimentación privada
255Reservado para la expansión de mensajes informativos ICMPv6

Tenga en cuenta que la tabla anterior no es exhaustiva. La lista completa actual de tipos ICMPv6 asignados se puede encontrar en este enlace: IANA: Parámetros ICMPv6.

Suma de comprobación

ICMPv6 proporciona un nivel mínimo de verificación de integridad de mensajes mediante la inclusión de una suma de comprobación de 16 bits en su encabezado. La suma de comprobación se calcula comenzando con un pseudoencabezado de campos de encabezado IPv6 de acuerdo con el estándar IPv6, [6] que consta de las direcciones de origen y destino, la longitud del paquete y el siguiente campo de encabezado, el último de los cuales se establece en el valor 58. Después de este pseudoencabezado, la suma de comprobación continúa con el mensaje ICMPv6. El cálculo de la suma de comprobación se realiza de acuerdo con los estándares del protocolo de Internet utilizando la suma de complemento a uno de 16 bits , seguida de un complemento a uno final de la suma de comprobación misma e insertándola en el campo de suma de comprobación. [7] Tenga en cuenta que esto difiere de la forma en que se calcula para IPv4 en ICMP , pero es similar al cálculo realizado en TCP .

Pseudoencabezado ICMPv6
CompensarOcteto0123
OctetoPoco012345678910111213141516171819202122232425262728293031
00Dirección de origen
432
864
1296
16128Dirección de destino
20160
24192
28224
32256Longitud de ICMPv6
36288CerosEncabezado siguiente  (58)

Formato

La carga útil de un mensaje ICMPv6 varía según el tipo de mensaje que se envía. Comienza en el bit 32, inmediatamente después del encabezado descrito anteriormente. Para algunos mensajes, como destino inalcanzable o tiempo excedido, no hay un cuerpo de mensaje definido.

Destino inalcanzable
Desplazamiento de bits0–78–1516–31
01CódigoSuma de comprobación
32No usado
64Cuerpo del mensaje (tamaño variable)
Tiempo excedido
Desplazamiento de bits0–78–1516–31
03CódigoSuma de comprobación
32No usado
64Cuerpo del mensaje (tamaño variable)

Otros definen un uso solo para los primeros cuatro bytes del cuerpo sin ningún otro contenido definido:

Paquete demasiado grande
Desplazamiento de bits0–78–1516–31
020Suma de comprobación
32Unidad de medida máxima
64Cuerpo del mensaje (tamaño variable)
Problema de parámetros
Desplazamiento de bits0–78–1516–31
04CódigoSuma de comprobación
32Puntero
64Cuerpo del mensaje (tamaño variable)
Solicitud de eco
Desplazamiento de bits0–78–1516–31
01280Suma de comprobación
32IdentificadorNúmero de secuencia
64Datos (Tamaño variable)
Respuesta de eco
Desplazamiento de bits0–78–1516–31
01290Suma de comprobación
32IdentificadorNúmero de secuencia
64Datos (Tamaño variable)

En el caso de los mensajes NDP , los primeros cuatro bytes están reservados o se utilizan para indicadores o límites de saltos. Mientras que el restablecimiento del cuerpo tiene datos estructurados no especificados:

Solicitud de enrutador
Desplazamiento de bits0–78–1516–31
01330Suma de comprobación
32Reservado
64Opciones (Tamaño variable)
Anuncio de enrutador
Desplazamiento de bits0–78–1516–31
01340Suma de comprobación
32Límite de saltos de CurBandera de dirección administradaOtra bandera de configuraciónReservadoDuración de vida del enrutador
64Tiempo alcanzable
96Tiempo de retransmisión
128Opciones (Tamaño variable)
Solicitud de vecinos
Desplazamiento de bits0–78–1516–31
01350Suma de comprobación
32Reservado
64Dirección de destino (16 bytes)
192Opciones (Tamaño variable)
Anuncio de vecino
Desplazamiento de bits0–78–1516–31
01360Suma de comprobación
32Desde el enrutador (R)Bandera(s) solicitada(s)Anular(O)Reservado
64Dirección de destino (16 bytes)
192Opciones (Tamaño variable)

Para una redirección, los primeros bytes del cuerpo del mensaje se reservan pero no se utilizan. A continuación, se incluye una dirección de destino. Se pueden adjuntar opciones no especificadas al final:

Redirección ICMPv6
Desplazamiento de bits0–78–1516–31
01370Suma de comprobación
32Reservado
64Dirección de destino (16 bytes)
192Dirección de destino (16 bytes)
320Opciones (Tamaño variable)

Procesamiento de mensajes

Cuando un nodo ICMPv6 recibe un paquete, debe llevar a cabo acciones que dependen del tipo de mensaje. El protocolo ICMPv6 debe limitar la cantidad de mensajes de error enviados al mismo destino para evitar la sobrecarga de la red. Por ejemplo, si un nodo continúa reenviando paquetes erróneos, ICMP señalará el error al primer paquete y luego lo hará periódicamente, con un período mínimo fijo o con una carga máxima fija de la red. Nunca se debe enviar un mensaje de error ICMP en respuesta a otro mensaje de error ICMP.

Referencias

  1. ^ ab A. Conta; S. Deering (marzo de 2006). M. Gupta (ed.). Protocolo de mensajes de control de Internet (ICMPv6) para la especificación del protocolo de Internet versión 6 (IPv6). Grupo de trabajo de redes. doi : 10.17487/RFC4443 . STD 89. RFC 4443. Estándar de Internet 89. Obsoleto RFC 2463. Actualiza RFC 2780. Actualizado por RFC 4884.
  2. ^ T. Mrugalski; M. Siodelski; B. Volz; A. Yourtchenko; M. Richardson; S. Jiang; T. Lemon; T. Winters (noviembre de 2018). Protocolo de configuración dinámica de host para IPv6 (DHCPv6). IETF . doi : 10.17487/RFC8415 . ISSN  2070-1721. RFC 8415. Norma propuesta. Sec. 3. Deja obsoletas las RFC 3315, 3633, 3736, 4242, 7083, 7283 y 7550.
  3. ^ M. Crawford (agosto de 2000). Renumeración de enrutadores para IPv6. Grupo de trabajo de redes. doi : 10.17487/RFC2894 . RFC 2894. Norma propuesta.
  4. ^ R. Vida; L. Costa, eds. (junio de 2004). Multicast Listener Discovery Version 2 (MLDv2) para IPv6. Grupo de trabajo de redes. doi : 10.17487/RFC3810 . RFC 3810. Norma propuesta. Actualizaciones RFC 2710. Actualizado por RFC 4604.
  5. ^ ab R. Bonica; R. Thomas; J. Linkova; C. Lenart; M. Boucadair (febrero de 2018). PROBE: una utilidad para sondear interfaces. Grupo de trabajo de ingeniería de Internet (IETF). doi : 10.17487/RFC8335 . ISSN  2070-1721. RFC 8335. Norma propuesta. Actualizaciones RFC 4884.
  6. ^ S. Deering ; R. Hinden (julio de 2017). Especificación del Protocolo de Internet, versión 6 (IPv6). IETF . doi : 10.17487/RFC8200 . STD 86. RFC 8200. Estándar de Internet 86. seg. 8.1. Obsoleto RFC 2460.
  7. ^ R. Braden ; D. Borman; C. Partridge (septiembre de 1988). Cálculo de la suma de comprobación de Internet. Grupo de trabajo de redes. doi : 10.17487/RFC1071 . RFC 1071. Informativo. Actualizado por RFC 1141.
  • IANA: Parámetros ICMPv6
Retrieved from "https://en.wikipedia.org/w/index.php?title=ICMPv6&oldid=1251087665"