ICMP (Internet Control Message Protocol)

 

¿Qué es ICMP?

El Internet Control Message Protocol (Protocolo de Mensajes de Control de Internet) es un protocolo de la capa de red (Capa 3) del modelo OSI, utilizado por dispositivos de red (como routers y hosts) para enviar mensajes de control, diagnósticos y notificaciones de error.

A diferencia del protocolo IP, que se encarga de transportar datos de usuario, el ICMP no se utiliza para enviar información entre aplicaciones, sino para que los nodos de la red se comuniquen entre sí sobre el estado de la comunicación misma.

Funciones Principales

  • Notificación de errores: Informa al emisor si un paquete no pudo ser entregado (por ejemplo, porque el destino es inalcanzable o el tiempo de vida del paquete expiró).

  • Diagnóstico de red: Permite verificar la conectividad entre dos puntos de la red.

  • Control de flujo: Puede avisar a un emisor que reduzca la velocidad de envío si el receptor o un router intermedio están saturados.

¿Cómo funciona? (Estructura del mensaje)

Los mensajes ICMP se encapsulan dentro de paquetes IP. Constan de una cabecera con tres campos fundamentales:

  1. Tipo: Indica de qué tipo de mensaje se trata (consulta o error).

  2. Código: Proporciona detalles adicionales sobre el tipo de mensaje (por ejemplo, por qué el destino es inalcanzable).

  3. Checksum: Para verificar que el mensaje no se haya corrompido.

Mensajes ICMP más comunes

En el día a día de un administrador de redes o en prácticas con Packet Tracer, los mensajes más frecuentes son:

  • Tipo 8 (Echo Request) y Tipo 0 (Echo Reply): Son los utilizados por el comando ping. El primero solicita una respuesta y el segundo la devuelve.

  • Tipo 3 (Destination Unreachable): Indica que el paquete no pudo ser entregado. Los códigos comunes incluyen:

    • Código 0: Red inalcanzable.

    • Código 1: Host inalcanzable.

    • Código 3: Puerto inalcanzable.

  • Tipo 11 (Time Exceeded): Se genera cuando el campo TTL (Time To Live) de un paquete llega a cero. Es la base del funcionamiento del comando traceroute.

Herramientas que utilizan ICMP

  • PING: Utiliza mensajes Echo Request/Reply para comprobar la latencia y disponibilidad de un host.

  • TRACERT / TRACEROUTE: Utiliza mensajes Time Exceeded para identificar cada uno de los saltos (routers) que recorre un paquete hasta su destino.

Importancia en Seguridad

Aunque es vital para el diagnóstico, muchos administradores de red bloquean ciertos mensajes ICMP en los firewalls para evitar ataques de reconocimiento (como el escaneo de hosts) o ataques de denegación de servicio (como el Ping of Death).



Actividad Práctica: Diagnóstico con ICMP

Para esta práctica, utilizaremos la siguiente topología (2 subredes conectadas a un router R1):

Objetivo

Identificar el estado de la red utilizando exclusivamente comandos basados en el protocolo ICMP.

Escenario de Error

Imagina que has configurado la red, pero PC1 (192.168.10.10) no puede comunicarse con PC4 (192.168.11.11).

Instrucciones

Prueba de conectividad local: Desde la terminal de PC1, ejecuta un ping 192.168.10.1 (la IP del Router).

  • Si recibes un "Reply": ICMP confirma que el tramo PC-Switch-Router está sano.

  • Si recibes "Request timed out": Revisa el cableado o la IP de la interfaz del router.

Paso 1: El éxito del Ping (Echo Request/Reply)

  1. Entra en el Modo Simulación (abajo a la derecha, icono del reloj con una flecha).

  2. En el panel de "Event List Filters", haz clic en "Edit Filters" y deja marcado solo ICMP.

  3. Desde PC1, abre la terminal (Command Prompt) y haz un ping a PC2: ping 192.168.10.11.

  4. Pulsa el botón "Play" y observa cómo el sobre (PDU) de color viaja al Switch y luego al PC2.

  5. Pregunta: ¿Qué tipo de mensaje ICMP aparece en la información de la PDU cuando el sobre regresa de PC2 a PC1?

Paso 2: Forzando el error (Destination Unreachable)

  1. Vuelve al Modo Tiempo Real y elimina el cable que conecta el Router R1 con el Switch S2.

  2. Regresa al Modo Simulación.

  3. Desde PC1, intenta hacer un ping a PC4 (que está en la otra red): ping 192.168.11.10.

  4. Observa el viaje del paquete. Llegará al Router, pero el Router no podrá entregarlo.

  5. Análisis: Haz clic en el sobre rojo que el Router devuelve a PC1. Verás que el mensaje ICMP es de Tipo 3 (Destination Unreachable).

Rastreo de ruta: Ejecuta el comando tracert 192.168.11.11 desde PC1.

  • Observa en qué salto se detiene el paquete. ICMP te devolverá un mensaje de "Time Exceeded" o "Destination Host Unreachable" indicándote exactamente dónde muere el paquete.

Modo Simulación: Activa el modo simulación en Packet Tracer y filtra solo el protocolo ICMP. Fíjate en el "sobre" que viaja por la red:

  • Haz clic en el sobre cuando llegue al Router.

  • En la pestaña Outbound PDU Details, busca los campos Type y Code.

Paso 3: Traceroute y el tiempo de vida (TTL)

  1. Reconecta el cable del paso anterior y espera a que los puntos se pongan en verde.

  2. Desde la terminal de PC1, escribe: tracert 192.168.11.10.

  3. Observa cómo se generan varios mensajes ICMP.

  4. Desafío: ¿Cuántos "saltos" (routers) detecta ICMP antes de llegar al destino final?