ICMP es esencial en la conectividad de redes, ya que se utiliza para enviar mensajes de control y error entre dispositivos. Ping y Traceroute son herramientas importantes que utilizan ICMP para verificar la conectividad entre dispositivos y rastrear paquetes de datos en una red. Estas herramientas son vitales para solucionar problemas de conectividad en redes y mejorar la eficacia de la comunicación.
Mensajes ICMP
Mensajes ICMPv4 e ICMPv6
Aunque IP es solo un protocolo de nivel superior, el conjunto TCP/IP proporciona mensajes de error e información cuando se comunica con otros dispositivos IP. Estos mensajes se envían a través de los servicios de ICMP. El objetivo de estos mensajes es proporcionar respuestas sobre cuestiones relacionadas con el procesamiento de paquetes IP en ciertas condiciones, no hacer que IP sea confiable. Los mensajes de ICMP no son obligatorios y a menudo no se permiten en una red por razones de seguridad.
El protocolo ICMP está disponible tanto para IPv4 como para IPv6. El protocolo de mensajes para IPv4 es ICMPv4. ICMPv6 proporciona estos mismos servicios para IPv6, pero también incluye funcionalidades adicionales. En este curso, se usará el término ICMP para referirse tanto a ICMPv4 como a ICMPv6.
Accesibilidad al host
Es posible utilizar un mensaje de eco ICMP para probar la accesibilidad de un host en una red IP. El host local envía una solicitud de eco ICMP a otro host. Si el host de destino está disponible, este responderá con un mensaje de eco. En la ilustración, al hacer clic en el botón de reproducción se puede ver una animación de la solicitud y respuesta de eco ICMP. Este uso de los mensajes ICMP Echo es la base de la utilidad Ping.
Destino o servicio inaccesible
Cuando un host o gateway recibe un paquete que no puede entregar, puede enviar un mensaje ICMP de destino inalcanzable para notificar al origen que el destino o el servicio son inalcanzables. El mensaje incluye un código que indica la razón por la que no se pudo entregar el paquete.
Algunos de los códigos de destino inalcanzable para ICMPv4 son los siguientes:
0: Red inalcanzable
1: Host inalcanzable
2: Protocolo inalcanzable
3: Puerto inalcanzable
Algunos de los códigos de destino inalcanzable para ICMPv6 son los siguientes:
0 – No hay ruta para el destino
1 – Comunicación con el destino prohibida por administración (por ejemplo, por un firewall)
2 — Dirección de origen fuera del alcance
3 – Dirección inalcanzable
4 – Puerto inalcanzable
Es importante tener en cuenta que ICMPv6 tiene códigos similares pero ligeramente diferentes para los mensajes de destino inalcanzable.
Tiempo excedido
Los routers utilizan los mensajes de tiempo superado de ICMPv4 para indicar que un paquete no puede reenviarse debido a que el campo de tiempo de duración (TTL) del paquete se ha disminuido a cero. Si un router recibe un paquete y disminuye el campo TTL en el paquete IPv4 a cero, descarta el paquete y envía un mensaje de tiempo superado al host de origen.
ICMPv6 también envía un mensaje de tiempo superado si el router no puede reenviar un paquete IPv6 debido a que el paquete ha caducado.
Mensajes ICMPv6
Los mensajes de información y error en ICMPv6 son similares a los de ICMPv4, pero ICMPv6 tiene nuevas características y funcionalidades mejoradas. Los mensajes ICMPv6 están encapsulados en IPv6.
ICMPv6 incluye cuatro nuevos mensajes como parte del protocolo de detección de vecinos (ND o NDP).
Los mensajes entre un enrutador IPv6 y un dispositivo IPv6, incluida la asignación dinámica de direcciones, son los siguientes:
- Mensaje de solicitud de enrutador (RS)
- Un router habilitado para IPv6 envia un mensaje RA para dar respuesta a un mensaje RS.
- Mensaje de anuncio de enrutador (RA)
- Los enrutadores habilitados para IPv6 envían mensajes de Anuncio de Enrutador (RA) cada 200 segundos para proporcionar información de direccionamiento a los hosts habilitados para IPv6. El mensaje RA puede incluir información de direccionamiento para el host, como el prefijo, la longitud del prefijo, la dirección DNS y el nombre de dominio.
Los mensajes entre dispositivos IPv6, incluida la detección de direcciones duplicadas y la resolución de direcciones, son los siguientes:
- Mensaje de solicitud de vecino (NS)
- Cuando se asigna una dirección de unidifusión global IPv6 o de unidifusión local de enlace a un dispositivo, puede realizar una detección de dirección duplicada (DAD) para asegurar que la dirección IPv6 sea única. Para verificar la unicidad de una dirección, el dispositivo enviará un mensaje NS con su propia dirección IPv6 como la dirección objetivo IPv6.
- Mensaje de anuncio de vecino (NA)
- Para determinar la dirección MAC del destino, el dispositivo envía un mensaje de NS a la dirección de nodo solicitado.
Es importante destacar que ICMPv6 ND también incluye el mensaje de redireccionamiento, que cumple una función similar al mensaje de redireccionamiento utilizado en ICMPv4.
Pruebas de ping y traceroute
Ping: Prueba de Conectividad
El comando ping se utiliza para probar la conectividad con otro host en una red, enviando una solicitud de eco a la dirección del host. Si el host responde con una respuesta de eco, ping proporciona información sobre el tiempo de ida y vuelta. El comando ping tiene un valor de tiempo de espera para la respuesta y, si no se recibe una respuesta, puede indicar un problema o funciones de seguridad habilitadas en la red.
Al finalizar, ping proporciona un resumen con la tasa de éxito y el tiempo promedio de ida y vuelta al destino. Los tipos de pruebas de conectividad que se realizan con ping son hacer ping al loopback local, a la puerta de enlace predeterminada y al host remoto.
Los tipos de pruebas de conectividad que se realizan con ping son los siguientes:
- Hacer ping al loopback local
- Hacer ping a la puerta de enlace predeterminada
- Hacer ping al host remoto
Traceroute: Prueba el Camino
Traceroute es una herramienta de diagnóstico que determina la ruta que sigue un paquete a través de una red IP y el tiempo que tarda en llegar a cada salto. Se envía una serie de paquetes ICMP con valores de TTL cada vez mayores, lo que provoca que cada salto en la ruta disminuya el valor de TTL en 1. Traceroute recopila esta información para determinar la ruta de los paquetes y el tiempo que tarda cada paquete en llegar a cada salto en la ruta. El uso de traceroute proporciona el tiempo de ida y vuelta para cada salto y puede ser útil para solucionar problemas de red y mejorar el rendimiento. Traceroute utiliza una función del campo TTL en IPv4 y el campo Límite de salto en IPv6 en los encabezados de Capa 3, junto con el mensaje ICMP Time Exceeded.