ICMP Lo que Debes Saber
ICMP Lo que Debes Saber

ICMP (Internet Control Message Protocol): Lo que Debes Saber

ICMP funciona como el “check” de mensajes en aplicaciones de mensajería instantánea. Transmite mensajes desde el receptor hacia el emisor sobre los datos que se suponía que debían llegar. El protocolo ICMP notifica al emisor si los datos no son recibidos por el receptor o si son recibidos en el orden incorrecto. Así, ICMP es un protocolo para comunicar información sobre datos, pero no administra los datos en sí.

¿Qué es ICMP en Redes de Computadoras?

Concepto de ICMP o Internet Control Message Protocol
Concepto de ICMP o Internet Control Message Protocol

Un dispositivo de red utiliza el Protocolo de Mensajes de Control de Internet (ICMP, Internet Control Message Protocol) para diagnosticar problemas de comunicación en la red. La información sobre si los datos están llegando a su destino deseado a tiempo se determina principalmente mediante ICMP. Comúnmente, el protocolo ICMP se utiliza en dispositivos de red, como enrutadores. ICMP es esencial para informar errores y pruebas, y también puede usarse en ataques de denegación de servicio distribuido (DDoS).

Ilustración sobre la solicitud eco y respuesta eco
Ilustración sobre la solicitud eco y respuesta eco

Los mensajes de ping se refieren tanto a las solicitudes de eco ICMP como a las respuestas de eco. Un dispositivo de red recibe una solicitud de eco ICMP del comando ping y envía inmediatamente una respuesta de eco ICMP.

Además, carece de un nivel dentro del modelo de Interconexión de Sistemas Abiertos (OSI), que describe las siete capas involucradas en las transmisiones de red. Cuando comprendes ICMP, verás por qué es una herramienta tan valiosa, pero también es importante comprender cómo ICMP puede usarse en ataques DDoS que pueden amenazar a una organización.

¿Para qué se utiliza el Protocolo de Mensajes de Control de Internet?

  • Un problema de red se diagnostica y reporta utilizando el Protocolo de Mensajes de Control de Internet (ICMP). Cuando los datos no llegan como se esperaba, ICMP envía un mensaje desde el emisor hasta el receptor. Los comandos ping y traceroute utilizan mensajes ICMP como parte del proceso de diagnóstico para proporcionar información sobre cómo se están transmitiendo los datos.
  • Algunos emisores desean enviar un mensaje a un destino, pero el enrutador no puede hacerlo. El enrutador notifica al emisor que no puede enviar el mensaje a ese destino.
  • ICMP también se utiliza comúnmente para diagnósticos de red. Tanto traceroute como ping utilizan ICMP. Traceroute y ping son mensajes enviados cuando los datos se transmiten con éxito. Se incluyen los enrutadores físicos que manipularon los datos.
  • ICMP también se utiliza para afectar el rendimiento de la red. Se utilizan ataques de inundación ICMP, ataques Smurf y ataques ping de la muerte para abrumar un dispositivo en la red y evitar que funcione correctamente.

¿Cómo Funciona ICMP en Redes de Computadoras?

  • En ICMP, no se forma una conexión. El mensaje simplemente se envía. Además, a diferencia de TCP y UDP, que especifican los puertos a los que se envía la información, ICMP no especifica un puerto específico al que se recibirá la información.
  • Cuando la red deshabilita la entrega de paquetes al dispositivo de destino, genera y envía mensajes de error al dispositivo emisor. Los mensajes de error incluyen tiempo excedido, problema de parámetro, destino inalcanzable, congestión de red, etc.
  • Un datagrama de Protocolo de Internet (IP) se envía desde un dispositivo a otro a través de múltiples enrutadores e intermediarios cuando se envía desde un dispositivo a otro. Puede haber un error al reenviar ese datagrama IPV4. Por lo tanto, los mensajes ICMP se dividen en dos categorías amplias:
    • Mensajes de error
    • Mensajes de consulta

Formato del Mensaje ICMP

Hasta ahora, hemos aprendido acerca de dos formas diferentes de mensajes ICMP.

Ahora veamos el formato de los mensajes ICMP actualmente. El siguiente es el formato del mensaje ICMP inferior:

Formato mensaje ICMP
Formato de mensaje ICMP

Aunque el encabezado ICMP difiere para cada tipo de mensaje, los primeros tres campos son iguales en todos los mensajes. Estos tres campos ocupan un total de 4 bytes.

Estos campos se describen con gran detalle:

  • Tipo: Esto especifica el tipo de mensaje del campo. Este campo, por ejemplo, se utiliza para establecer el código asociado con cualquier forma de informe de error. Del mismo modo, si hay un mensaje de consulta, este campo aparecerá en el código de esa consulta.
  • Código: Para mensajes de error, esto define un subtipo de campo de error. Por ejemplo, si ocurre un error de destino inalcanzable, el campo de código indica qué tipo de destino es el error. Ejemplos: destino inalcanzable en la red (código 0), host inalcanzable (código 1), protocolo inalcanzable (código 2), etc. El código también define los subtipos de estos errores.
  • Checksum (Suma de comprobación): Las sumas de comprobación se calculan a partir de los encabezados y datos utilizados para detectar errores. En los datagramas IP, se incluyen mensajes ICMP. Los encabezados IP restantes se pueden ver en la sección de encabezado de mensaje ICMP.
  • Datos: En el contexto de mensajes de error, el paquete contiene la información completa para el paquete en esta sección.

Tipos de Mensajes de Informe de Error ICMP

Un router/host envía un mensaje de error cuando encuentra un problema al procesar paquetes IP. Siempre se envía un datagrama que contiene solo las direcciones IP de origen y destino al origen.

Lista de códigos de error y mensajes de error

TipoCódigoDescripción
30-15Destino inalcanzable: Notificación de un paquete que no puede ser transmitido. Este último es abandonado. El campo del código proporciona una explicación.
50-3Redirección: Informe de una ruta alternativa para el datagrama y debería resultar en una actualización de la tabla de enrutamiento. El campo de código explica la razón del cambio de ruta.
110,1Tiempo excedido: Enviado cuando el campo TTL ha llegado a cero (código 0) o cuando hay un tiempo de espera para el reensamblaje de los segmentos (código 1).
120,11Problema de parámetro: Enviado cuando el encabezado IP es inválido (código 0) o cuando falta una opción del encabezado IP (código 1).
Mensaje de errorDescripción
Destination UnreachableEste mensaje se genera cuando un paquete de datos no puede llegar a su destino final por alguna razón. Por ejemplo, puede haber fallas en hardware, fallas de puerto, desconexiones de red, etc.
Redirection ErrorEste mensaje se genera cuando la computadora fuente (como el PDC) solicita que el flujo de paquetes de datos se envíe por una ruta diferente a la originalmente planeada. Esto se hace a menudo para optimizar el tráfico de red, especialmente si hay otra ruta más rápida para que los paquetes de datos lleguen a su destino. Esto implica la actualización de las tablas de enrutamiento en los routers asociados afectados.
Source QuenchEste es un mensaje generado por la computadora fuente para reducir o disminuir el flujo de tráfico de red enviado a la computadora de destino. En otras palabras, el PDC detecta que la velocidad de transmisión de los paquetes de datos es demasiado alta y debe disminuir para asegurarse de que la computadora de destino reciba todos los paquetes de datos que se supone debe recibir.
Time ExceededEste evento está relacionado con el Tiempo de Vida (TTL) basado en la red.

Tipo Destino inalcanzable

El propósito de este tipo es anunciar errores de red cuando un dispositivo de red es incapaz de comunicarse con otro. Estos son los códigos de error y mensajes para el tipo Destino inalcanzable (Código 3).

Código de errorMensaje ICMP
0Red de destino inalcanzable
1Host de destino inalcanzable
2Protocolo de destino inalcanzable
3Puerto de destino inalcanzable
4Se requiere fragmentación y se establece la bandera DF
5Ruta de origen fallida
6Red de destino desconocida
7Host de destino desconocido
8Host de origen aislado
9Prohibido administrativamente por la red
10Prohibido administrativamente por el host
11Red inalcanzable para ToS
12Host inalcanzable para ToS
13Comunicación prohibida administrativamente
14Violación de precedencia del host
15Efecto de corte de precedencia

Tipo de mensaje de redirección

Este tipo es utilizado por los routers para informar de una ruta alternativa para el datagrama.

Está diseñado para informar a un host de una ruta más óptima a través de una red, lo que puede dar lugar a una actualización de la tabla de enrutamiento.

Mensaje de errorDescripción
Destination UnreachableEste mensaje se genera cuando un paquete de datos no puede llegar a su destino final por alguna razón. Por ejemplo, puede haber fallas en hardware, fallas de puerto, desconexiones de red, etc.
Redirection ErrorEste mensaje se genera cuando la computadora fuente (como el PDC) solicita que el flujo de paquetes de datos se envíe por una ruta diferente a la originalmente planeada. Esto se hace a menudo para optimizar el tráfico de red, especialmente si hay otra ruta más rápida para que los paquetes de datos lleguen a su destino. Esto implica la actualización de las tablas de enrutamiento en los routers asociados afectados.
Source QuenchEste es un mensaje generado por la computadora fuente para reducir o disminuir el flujo de tráfico de red enviado a la computadora de destino. En otras palabras, el PDC detecta que la velocidad de transmisión de los paquetes de datos es demasiado alta y debe disminuir para asegurarse de que la computadora de destino reciba todos los paquetes de datos que se supone debe recibir.
Time ExceededEste evento está relacionado con el Tiempo de Vida (TTL) basado en la red.

Tipo Tiempo Excedido

El mensaje ICMP – Time exceeded se genera cuando la pasarela que procesa el datagrama (o paquete, según se mire) encuentra que el campo Time To Live (este campo se encuentra en la cabecera IP de todos los paquetes) es igual a cero y por tanto debe ser descartado. Esta misma pasarela también puede notificar al host de origen a través del mensaje de tiempo de espera.

El término “fragmento” significa “cortar en trozos”. Cuando los datos son demasiado grandes para caber en un solo paquete, se cortan en trozos pequeños y se envían al destino. En el otro extremo, el host de destino recibirá los trozos fragmentados y los volverá a ensamblar para crear el gran paquete de datos original que se fragmentó en origen.

Código de errorMensaje ICMP
0TTL expirado en tránsito
1Tiempo de reensamblado de fragmentos excedido

Tipo Problema de Parámetro

Los mensajes ICMP Parameter Problem se utilizan para indicar que un host o router no ha podido interpretar un parámetro inválido en la cabecera de un datagrama IPv4.

Cuando un host o router de la red encuentra un parámetro inválido en la cabecera de un datagrama IPv4, desecha el paquete y envía un mensaje ICMP Parameter Problem al remitente original.

El mensaje ICMP Parameter Problem también incluye una opción de puntero especial para informar al remitente dónde se produjo el error en la cabecera IPv4 original.

Código de errorMensaje ICMP
0El puntero indica el error
1Falta una opción requerida
2Longitud incorrecta

Ejemplo con comando

Comando de ejemplo:

ping 192.168.1.1

Interpretación:

  • Si el resultado del comando muestra un mensaje “Destination network unreachable”, podría indicar que la red de destino no está disponible o inalcanzable. Código de error: 0.
  • Si el resultado muestra un mensaje “Redirection Error”, podría sugerir que hay un cambio en la ruta de red planificada originalmente. Código de error: 1.
  • Si el mensaje es “Source Quench”, podría significar que la velocidad de transmisión de paquetes de datos desde la fuente es demasiado alta, y se necesita reducir para evitar congestión en el destino. Código de error: No aplica directamente, ya que este mensaje no tiene un código específico.
  • Si el mensaje es “Time Exceeded”, podría indicar que el tiempo de vida (TTL) del paquete ha expirado en el camino. Código de error: No aplica directamente, ya que este mensaje no tiene un código específico.

Es importante indicar que el comando ping se utiliza comúnmente para probar la conectividad y la latencia de red, y los mensajes de error ICMP mencionados anteriormente podrían surgir en diversas situaciones durante esta prueba. También te puede interesar ¿Hiciste “ping” a una Máquina? Aprende a Leer los Resultados

ICMP en Ataques DDoS

Ilustración de ataque DDOS

Los ataques de Protocolo de Mensajes de Control de Internet (ICMP) en Internet, también conocidos como ataques de inundación de ping, son ataques comunes de denegación de servicio (DoS) en los cuales un atacante intenta utilizar ICMP para hacer eco en un dispositivo objetivo.

Los mensajes de solicitud y respuesta de eco ICMP se utilizan típicamente para hacer ping a dispositivos de red y diagnosticar la salud y conectividad del dispositivo, así como la conexión entre el emisor y el dispositivo.

Al inundar el destino con paquetes de solicitud, se fuerza a la red a responder con la misma cantidad de paquetes de respuesta, lo que hace que el destino sea inaccesible para el tráfico normal.

El formato DDoS para las inundaciones de ping (ICMP) se puede dividir en dos pasos repetitivos:

  1. El atacante envía numerosos paquetes de solicitud de eco ICMP al servidor objetivo a través de múltiples dispositivos.
  2. El servidor objetivo luego envía un paquete de respuesta de eco ICMP a la dirección IP de cada dispositivo solicitante.

Conclusión

ICMP proporcionará retroalimentación limitada sobre la comunicación cuando algo sale mal. Se utiliza para intercambiar información sobre el estado de Internet de un host a otro, no para transferir datos.

El estado que desencadena un paquete ICMP se debe principalmente al resultado encontrado en el encabezado IP del paquete fallido.

ICMP no existe en los paquetes de transmisión de datos. ICMP se utiliza principalmente por los administradores de red para mejorar la conexión a Internet mediante utilidades de diagnóstico.

ICMP seguirá siendo una herramienta poderosa para que los administradores de red diagnostiquen problemas de red y otros problemas relacionados.