Qué es ICMP y por qué forma parte del funcionamiento de IP
ICMP es un protocolo de control asociado a IP. No transporta el flujo normal de una aplicación como TCP o UDP: comunica condiciones de error, información diagnóstica y señales necesarias para que hosts y routers entiendan qué ha ocurrido con un paquete. ICMP para IPv4 parte de RFC 792; ICMPv6 está definido por RFC 4443 y además es pieza fundamental de varios mecanismos de IPv6.
Por eso la frase “ICMP sólo sirve para ping” es incorrecta. Echo Request/Echo Reply son apenas un conjunto de mensajes. Destination Unreachable, Time Exceeded y las señales relacionadas con MTU son esenciales para diagnosticar rutas y, en algunos casos, para que las comunicaciones funcionen correctamente.
Echo Request y Echo Reply: qué demuestra realmente ping
ping envía solicitudes Echo y mide si recibe respuestas, normalmente calculando tiempo de ida y vuelta y pérdida aparente. Una respuesta confirma que existe conectividad IP suficiente en ambos sentidos para ese intercambio ICMP y que los dispositivos intermedios permiten esos mensajes.
Que un host no responda a ping no demuestra que esté apagado. Puede existir filtrado, rate limiting o una política que ignore Echo. Del mismo modo, responder a ping no demuestra que HTTPS, SSH o una aplicación específica funcionen. El diagnóstico debe continuar con las capas y puertos relevantes usando la metodología de troubleshooting.
Destination Unreachable y errores útiles
Los mensajes de destino inalcanzable permiten indicar que una entrega no puede completarse por distintas razones. Dependiendo de la versión de IP y el escenario, pueden representar problemas de red, host, protocolo, puerto o filtrado. Una aplicación o una herramienta diagnóstica puede usar esa información para distinguir una respuesta explícita de un simple silencio.
En IPv4 existe además el caso “Fragmentation Needed” relacionado con Path MTU Discovery. En IPv6 los routers no fragmentan paquetes en tránsito, por lo que el mensaje Packet Too Big de ICMPv6 es especialmente importante para que el emisor adapte el tamaño.
Time Exceeded, TTL/Hop Limit y traceroute
Cada router reduce el TTL de IPv4 o el Hop Limit de IPv6. Cuando el valor llega a cero, el paquete se descarta y normalmente se genera un mensaje Time Exceeded. traceroute y herramientas equivalentes aprovechan este comportamiento enviando tráfico con límites crecientes para descubrir los saltos que van respondiendo.
El resultado no debe interpretarse como un mapa perfecto: algunos routers no responden, aplican rate limiting o encaminan la respuesta por un camino diferente. Un salto con asteriscos no implica necesariamente pérdida del tráfico final. Conviene correlacionar traceroute con routing, latencia extremo a extremo y capturas.
ICMP y Path MTU Discovery
Path MTU Discovery intenta determinar el mayor paquete que puede cruzar un camino sin requerir una operación incompatible con ese tramo. Si un enlace tiene una MTU menor, la señal ICMP adecuada permite al emisor reducir el tamaño. Bloquear esa señal puede producir el conocido “PMTUD black hole”: conexiones que establecen sesión pero se atascan con transferencias de mayor tamaño.
Este problema conecta directamente con TCP/UDP, MSS y encapsulaciones de VPN. Cuando un túnel añade cabeceras, el margen útil disminuye y una MTU mal tratada puede manifestarse como fallos intermitentes difíciles de identificar.
ICMPv6 es todavía más importante en IPv6
ICMPv6 utiliza Next Header 58 y no es simplemente una copia de ICMPv4. IPv6 apoya funciones críticas en mensajes ICMPv6. Neighbor Discovery, Router Solicitation/Advertisement y otras operaciones del enlace dependen de esta familia de mensajes. Un filtrado excesivo puede impedir autoconfiguración, descubrimiento de vecinos o señalización de errores.
La guía de IPv6 explica cómo Neighbor Discovery sustituye funciones que en IPv4 asociamos con ARP. Esto es importante al diseñar ACL y firewalls: las reglas válidas para IPv4 no se trasladan literalmente a IPv6.
ICMP Redirect: qué significa y por qué no es una base de diseño
Un router puede indicar a un host que existe un siguiente salto mejor en la misma red mediante un Redirect. Es un mecanismo histórico de optimización y no debería utilizarse como sustituto de un diseño de routing correcto. En redes gestionadas suele controlarse o deshabilitarse según política de seguridad.
Si aparecen redirects inesperados, revisa gateway por defecto, direccionamiento y topología. Una estación debería tener una vista coherente de su primer salto, y la redundancia del gateway se resuelve de forma más explícita con mecanismos como VRRP o HSRP, explicados en FHRP.
Seguridad: no bloquear todo, no confiar en todo
ICMP puede utilizarse para reconocimiento, amplificación en determinados escenarios históricos o generación excesiva de mensajes. Eso justifica filtrado y rate limiting, no una prohibición indiscriminada. La política debe permitir los tipos requeridos para operación y diagnóstico y bloquear los que no encajan con la arquitectura.
En un firewall conviene documentar qué ICMP/ICMPv6 se permite por zona y por dirección. En IPv6, una lista demasiado agresiva puede romper funciones esenciales. La guía de firewalls conecta esta decisión con estado, zonas y políticas.
Cómo reconocer ICMP en una captura
Una captura permite ver tipo, código y campos asociados al mensaje. En un ping aparecen Echo Request y Echo Reply; en traceroute pueden observarse Time Exceeded; en un problema de MTU puede aparecer Fragmentation Needed o Packet Too Big. El contenido ICMP suele incluir parte del paquete que originó el error, lo que ayuda a relacionarlo con la conversación afectada.
Con Wireshark filtra por icmp o icmpv6 y correlaciona tiempo, direcciones y flujo original. Una captura aislada nunca sustituye revisar la tabla de rutas y la interfaz por la que debería salir el paquete.
Método práctico para diagnosticar con ICMP
Primero verifica configuración local: dirección, prefijo y gateway. Después usa ping contra la propia interfaz, un vecino del mismo segmento, el gateway y un destino remoto. Si falla al cruzar redes, revisa tabla de routing. Si el tráfico llega pero una aplicación concreta falla, pasa a puertos TCP/UDP, DNS, ACL y firewall.
- No concluyas “la red funciona” sólo porque responde ping.
- No concluyas “el host está caído” sólo porque no responde Echo.
- Investiga mensajes de error ICMP: a menudo contienen la pista que evita probar cambios aleatorios.
- En IPv6 trata ICMPv6 como parte de la operación del protocolo, no como tráfico accesorio.