Protocolo ICMP

Siguiendo con el post anterior llamado "WireShark, analizando protocolos", esta vez veremos con un poco mas de detalle el funcionamiento así como algunos parámetros técnicos de los protocolos más importantes que podemos analizar hasta en la mas sencillas de las redes. En este ocasión nos tocará revisar el protocolo ICMP.

Empecemos diciendo que el ICMP o Protocolo de Control de Mensajes de Internet, es un protocolo complementario del Protocolo IP, y que de igual manera que este, opera en la capa de red del modelo OSI. La utilidad de este reside, no en transportar datos de usuario, sino en controlar si un paquete ha alcanzado su destino, determinar si es un paquete de eco o de respuesta, es decir se usa para manejar mecanismos de control en la red. No olvidemos mencionar que ICMP solo detecta los posibles errores y no toma acciones sobre estos. Eso corresponde a capas superiores. Generalmente ICMP no es usado de manera directa por los usuarios, a excepción de las herramientas PING y TRACEROUTE que usan paquetes del tipo Echo ICMP.


Revisemos el formato del protocolo. Este comienza con un campo de 8 bits donde se define el tipo de mensaje. Como veremos en el listado que se muestra más abajo, este puede tomar numerosos tipos, siendo los más comunes, el Echo Reply, Echo Request y el Destination Unreachable. Como segundo campo vemos "Code" que contiene una breve descripción del error producido. Luego tenemos el campo CheckSum de 16 Bits. Para terminar, viene el cuerpo del mensaje (ICMP Data), el cuál depende del Campo Tipo. Este contiene además los 8 primeros bytes del datagrama que produjo el error.

Veamos la lista de los mensajes de control del ICMP
  • 0 - Echo Reply
  • 1 - Reservado
  • 2 - Reservado
  • 3 - Destination Unreachable
  • 4 - Source Quench
  • 5 - Redirect Message
  • 6 - Dirección Alterna de Host
  • 7 - Reservado
  • 8 - Echo Request
  • 9 - Anuncio de Router
  • 10 - Solicitud de Router
  • 11 - Tiempo Excedido
  • 12 - Problema de Parámetro
  • 13 - Marca de tiempo
  • 14 - Respuesta de Marca de tiempo
  • 15 - Petición de Información
  • 16 - Respuesta de Información
  • 17 - Petición de Máscara de Dirección
  • 18 - Respuesta de Máscara de Dirección
  • 19 - Reservado para seguridad
  • 20-29 - Reservado para experimentos de robustez
  • 30 - Traceroute
  • 31 - Error de Conversión de Datagrama
  • 32 - Redirección de Host Móvil
  • 33 - IPv6 ¿Dónde estas?
  • 34 - IPv6 Estoy aquí
  • 35 - Petición de Registro de Móvil
  • 36 - Respuesta de registro de Móvil
  • 37 - Petición de Nombre de Dominio
  • 38 - Respuesta de Nombre de Dominio
  • 39 - SKIP Protocolo de Algoritmo de Descubrimiento
  • 40 - Photuris, Fallas de Seguridad
  • 41-255 - Reservado
Ahora veamos algunos ejemplos de como podemos ver y experimentar con este protocolo desde nuestra PC con el WireShark.

Una vez tengamos abierto y monitoreando la red con WireShark, escribimos en la opción filter "icmp" para que solo nos muestre los datos capturados de dicho protocolo.

Nos debería mostrar algo como vez en la foto de abajo. Se ve claramente el "Echo Reply" y el "Echo Request", que en este caso aparecen en el WireShark cuando le hice ping a una ip de mi red. Prueba haciendo ping a alguna pc de tu red o a alguna dirección de internet y verás como el WireShark captura los paquetes Reply y Request.

Si entramos más en detalle en cada uno, al hacer doble clic sobre algunos de estos, se carga en la parte inferior la información detallada de dicho registro. Si revisamos un poco debemos encontrar la opción "Internet Control Message Protocol (ICMP)", el cual nos muestra alguno de sus parámetros, como en el caso de la foto inferior, esta resaltado el tipo de mensaje que transmite este.


Para terminar, quizá deberías revisar, "WireShark, analizando protocolos".

Alberto Peves M.

No hay comentarios.: