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). ICMPv6 se define en RFC 4443. [1] ICMPv6 es una parte integral de IPv6 y realiza funciones de diagnóstico y notificación de errores (p. Ej., Ping )
ICMPv6 tiene un marco de extensiones para implementar cambios futuros. 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, el Protocolo de descubrimiento de vecinos (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. Los enrutadores IPv6 utilizan el descubrimiento de escucha de multidifusión (MLD) para descubrir oyentes de multidifusión en un enlace directamente adjunto, de forma muy similar a como se usa el Protocolo de administración de grupo de Internet (IGMP) en IPv4 . Descubrimiento de enrutadores de multidifusión (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 de 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). type 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. El valor del campo de código depende del tipo de mensaje y proporciona un nivel adicional de granularidad del mensaje. El campo de suma de comprobación proporciona un nivel mínimo de verificación de integridad para el mensaje ICMP.
Desplazamiento de bits | 0–7 | 8-15 | 16–31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Tipo | Código | Suma de comprobación | |||||||||||||||||||||||||||||
32 | Cuerpo del mensaje |
Tipos
Los mensajes de control se identifican por el valor en el campo de tipo . El campo de código proporciona información de contexto adicional para el mensaje. Algunos mensajes tienen el mismo propósito que los tipos de mensajes ICMP con el nombre correspondiente.
Tipo | Código | ||
---|---|---|---|
Valor | Significado | Valor | Significado |
Mensajes de error de ICMPv6 | |||
1 | Destino inalcanzable | 0 | sin ruta al destino |
1 | comunicación con destino administrativamente prohibida | ||
2 | más allá del alcance de la dirección de origen | ||
3 | dirección inalcanzable | ||
4 | puerto inalcanzable | ||
5 | dirección de origen fallida política de entrada / salida | ||
6 | rechazar ruta a destino | ||
7 | Error en el encabezado de enrutamiento de origen | ||
2 | Paquete demasiado grande | 0 | |
3 | Tiempo excedido | 0 | límite de salto excedido en tránsito |
1 | se excedió el tiempo de reensamblaje del fragmento | ||
4 | Problema de parámetro | 0 | campo de encabezado erróneo encontrado |
1 | Se ha encontrado un tipo de encabezado siguiente no reconocido | ||
2 | Se encontró una opción IPv6 no reconocida | ||
100 | Experimentación privada | ||
101 | Experimentación privada | ||
127 | Reservado para la expansión de mensajes de error ICMPv6 | ||
Mensajes informativos de ICMPv6 | |||
128 | Solicitud de eco | 0 | |
129 | Respuesta de eco | 0 | |
130 | Consulta de escucha de multidifusión ( MLD ) | 0 | Hay dos subtipos de mensajes de consulta de escucha de multidifusión:
Estos dos subtipos se diferencian por el contenido del campo Dirección de multidifusión, como se describe en la sección 3.6 de RFC 2710. |
131 | Informe de escucha de multidifusión ( MLD ) | 0 | |
132 | Escucha de multidifusión finalizada ( MLD ) | 0 | |
133 | Solicitud de enrutador ( NDP ) | 0 | |
134 | Anuncio de enrutador ( NDP ) | 0 | |
135 | Solicitud de vecinos ( NDP ) | 0 | |
136 | Anuncio de vecinos ( NDP ) | 0 | |
137 | Mensaje de redireccionamiento ( NDP ) | 0 | |
138 | Renumeración de enrutadores | 0 | Comando de renumeración del enrutador |
1 | Resultado de la renumeración del enrutador | ||
255 | Restablecimiento del número de secuencia | ||
139 | Consulta de información de nodo ICMP | 0 | El campo de datos contiene una dirección IPv6 que es el asunto de esta consulta. |
1 | El campo de datos contiene un nombre que es el asunto de esta consulta, o está vacío, como en el caso de un NOOP. | ||
2 | El campo de datos contiene una dirección IPv4 que es el tema de esta consulta. | ||
140 | Respuesta de información de nodo ICMP | 0 | Una respuesta exitosa. El campo de datos de respuesta puede estar vacío o no. |
1 | El Respondedor se niega a dar la respuesta. El campo de datos de respuesta estará vacío. | ||
2 | El Respondedor desconoce el Qtype de la consulta. El campo de datos de respuesta estará vacío. | ||
141 | Mensaje de solicitud de descubrimiento de vecino inverso | 0 | |
142 | Mensaje de anuncio de descubrimiento de vecino inverso | 0 | |
143 | Informes de descubrimiento de escucha de multidifusión ( MLDv2 ) (RFC 3810) | ||
144 | Mensaje de solicitud de descubrimiento de dirección de agente local | 0 | |
145 | Mensaje de respuesta al descubrimiento de la dirección del agente local | 0 | |
146 | Solicitud de prefijo móvil | 0 | |
147 | Anuncio de prefijo móvil | 0 | |
148 | Solicitud de ruta de certificación ( ENVIAR ) | ||
149 | Anuncio de ruta de certificación (ENVIAR) | ||
151 | Anuncio de enrutador de multidifusión ( MRD ) | ||
152 | Solicitud de enrutador de multidifusión ( MRD ) | ||
153 | Terminación de enrutador de multidifusión ( MRD ) | ||
155 | Mensaje de control de RPL | ||
200 | Experimentación privada | ||
201 | Experimentación privada | ||
255 | Reservado para la expansión de mensajes informativos ICMPv6 |
Tenga en cuenta que la tabla anterior no es completa. La lista completa actual de tipos de ICMPv6 asignados se puede encontrar en este enlace: IANA: Parámetros de ICMPv6 .
Suma de comprobación
ICMPv6 proporciona un nivel mínimo de verificación de la integridad del mensaje 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, [3] 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 pseudo encabezado, 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 una suma de complemento de 16 bits , seguida de un complemento final de la propia suma de comprobación e insertándola en el campo de suma de comprobación. [4] 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 .
Desplazamiento de bits | 0 - 7 | 8-15 | 16-23 | 24–31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Dirección de la fuente | |||||||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||||||||
128 | Dirección de destino | |||||||||||||||||||||||||||||||
160 | ||||||||||||||||||||||||||||||||
192 | ||||||||||||||||||||||||||||||||
224 | ||||||||||||||||||||||||||||||||
256 | Longitud de ICMPv6 | |||||||||||||||||||||||||||||||
288 | Ceros | Siguiente encabezado |
Procesamiento de mensajes
Cuando un nodo ICMPv6 recibe un paquete, debe realizar 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 de red fija. Nunca se debe enviar un mensaje de error ICMP en respuesta a otro mensaje de error ICMP.
Referencias
- ^ RFC 4443, Protocolo de mensajes de control de Internet (ICMPv6) para la especificación del Protocolo de Internet versión 6 (IPv6)
- ^ RFC 3315, § 3
- ^ RFC 2460, Protocolo de Internet, Especificación de la versión 6 (IPv6) , Sección 8.1 ( Suma de comprobación de la capa superior ), S. Deering, R. Hinden (diciembre de 1998)
- ^ RFC 1071, Computación de la suma de comprobación de Internet , R. Braden, D. Borman, C. Partridge (septiembre de 1988)
enlaces externos
- IANA: parámetros ICMPv6
- Renumeración de enrutadores para IPv6 . doi : 10.17487 / RFC2894 . RFC 2894 .