ICMP

De Departamento de Informatica
Saltar a: navegación, buscar

Contenido

ICMP (Internet Control Message Protocol)

Es el sub protocolo para el control de errores y notificación de errores del protocolo de internet (IP), los errores pueden ser de host inalcanzables, de red, puerto, protocolo. Para determinar si un host o routers están disponibles se hace un ping a ellos para saber si está disponible y el tiempo que se demora en ir y regresar un paquete.

Los mensajes de error ICMP se envían a través de la red en forma de datagramas, como cualquier otro dato. Por lo tanto, los mismos mensajes de error pueden contener errores.

Sin embargo, si existe un error en un datagrama que lleva un mensaje ICMP, no se envía ningún mensaje de error para evitar el efecto "bola de nieve", si hay un incidente en la red.

A continuación encontrará a qué se asemeja un mensaje ICMP encapsulado en un datagrama IP: Mensaje ICMP (8 bits) (8 bits) (16 bits) (tamaño variable)

Datagrama.jpg.png


Comienzan con un campo de 8 bits que define el tipo de mensaje de que se trata. A continuación viene un campo código, de o bits, que a veces ofrece una descripción del error concreto que se ha producido y después un campo suma de control, de 16 bits, que incluye una suma de verificación de errores de transmisión. Tras estos campos viene el cuerpo del mensaje, determinado por el contenido del campo "tipo". Contienen además los 8 primeros bytes del datagrama que ocasionó el error.

Comportamiento de redirección ICMP

La suposición en redes IP es que los hosts IP (nonrouters) sólo necesitan la mínima información de enrutamiento y pueden depender de los enrutadores IP que tenga conocimiento de la topología de la interconexión de redes y todas las rutas mejores. Por lo tanto, hosts IP normalmente se configuran sólo con una dirección IP de un encaminador predeterminado (también llamado puerta de enlace predeterminada). Cualquier tráfico remoto desde el host IP se reenvía al enrutador IP predeterminado. Aunque esto es más fácil de configurar los hosts IP, en redes IP que hay varios enrutadores en una red específica, el comportamiento de enviar todo el tráfico remoto al mismo router puede producir el enrutamiento de host no óptimo. Para evitar que la perpetuación de encaminamiento de host no óptimo, los enrutadores IP pueden actualizar las tablas de enrutamiento de hosts mediante un mensaje ICMP Redirect.

Sólo se envía el mensaje de redirección ICMP en la situación siguiente:

  1. El host a envía que un paquete al enrutador IP predeterminada del Host B. Host A es el enrutador R1. Como Host B es un host remoto, el Host A reenvía el paquete destinado para el Host B a su enrutador predeterminado R1.
  2. R1 comprueba su tabla de enrutamiento y descubre que el siguiente salto para la ruta a la red para el Host B es enrutador R2.
  3. Si el Host A y R2 están en la misma red que está conectada también directamente a R1, se envía un mensaje de redirección ICMP para alojar un informar que R2 es la mejor ruta cuando se envía al Host B.
  4. Enrutador R1, a continuación, reenvía el datagrama IP a R2.
  5. El host a agrega una ruta de host a su tabla de enrutamiento para la dirección IP del Host B con la dirección IP del enrutador del R2 como la dirección de reenvío. Datagramas posteriores en el Host al Host B se reenvían mediante enrutador R2.
  6. No se envía un mensaje de redirección ICMP para los datagramas IP con las opciones de ruta de origen IP incluso si hay una ruta mejor para el destino final de la siguiente dirección en la ruta de origen.

Mensajes informativos

  • 0 Echo Reply (respuesta de eco)
  • 3 Destination Unreacheable (destino inaccesible)
  • 4 Source Quench (disminución del tráfico desde el origen)
  • 5 Redirect (redireccionar - cambio de ruta)
  • 8 Echo (solicitud de eco)
  • 11 Time Exceeded (tiempo excedido para un datagrama)
  • 12 Parameter Problem (problema de parámetros
  • 13 Timestamp (solicitud de marca de tiempo)
  • 14 Timestamp Reply (respuesta de marca de tiempo)
  • 15 Information Request (solicitud de información) - obsoleto-
  • 16 Information Reply (respuesta de información) - obsoleto-
  • 17 Addressmask (solicitud de máscara de dirección)
  • 18 Addressmask Reply (respuesta de máscara de dirección

Códigos de error

  • 0 no se puede llegar a la red
  • 1 no se puede llegar al host o aplicación de destino
  • 2 el destino no dispone del protocolo solicitado
  • 3 no se puede llegar al puerto destino o la aplicación destino no está libre
  • 4 se necesita aplicar fragmentación, pero el flag correspondiente indica lo contrario
  • 5 la ruta de origen no es correcta
  • 6 no se conoce la red destino
  • 7 no se conoce el host destino
  • 8 el host origen está aislado
  • 9 la comunicación con la red destino está prohibida por razones administrativas
  • 10 la comunicación con el host destino está prohibida por razones administrativas
  • 11 no se puede llegar a la red destino debido al Tipo de servicio
  • 12 no se puede llegar al host destino debido al Tipo de servicio


Herramientas

Traceroute

Programa de diagnostico que permite conocer la ruta (routers) por los que pasan los paquetes que viajan desde nuestra máquina (la que ejecuta el programa traceroute) hasta la máquina destino, ejemplo del comando:

      traceroute [flags] nodo destino
  • Funciona aprovechando los servicios proporcionados por el ICMP (Internet Control Message Protocol), que se utiliza para conocer que esta ocurriendo en la red.
  • Uno de los mensajes que el ICMP proporciona es el de tiempo excedido (time exceeded). Estos mensajes son generados solo por los routers cuando no retransmiten un paquete porque su TTL (Time To Live) es 0.
  • El campo TTL asegura en todas las cabeceras de los paquetes que son transmitidos a traves de Internet y sirven para controlar como de lejos

van a viajar. Cada vez que un paquete atraviesa un router su TTL se decrementa.

  • Traceroute fuerza a que los distintos routers contesten con un ICMP TIME EXCEEDED, enviando paquetes con un TTL que se va incre-mentando en 1 en cada iteracion. Entonces traceroute calcula los tiempos de ida y vuelta o RTT (Round-Trip Time) en 3 ocasiones.
  • Otro de los mensajes que el ICMP proporciona es el de puerto inalcan-zable (unreacheable port). Este tipo de mensaje es generado únicamente por los hosts cuando les llega un paquete cuyo puerto destino no esta siendo escuchado por ninguna aplicación.
  • Traceroute obtiene el RTT del host destino aprovechando el mensaje ICMP PORT UNREACHEABLE generado por este, ya que el puerto

destino usado (el 33:434) no suele utilizarse para otro proposito.

  • Un ejemplo de ejecucion en una host linux es :
    traceroute www.cica.es
    traceroute to ataman.cica.es (150.214.4.16), 30 hops max, 38 byte packets
    1 rou118.ual.es (193.147.118.1) 0.701 ms 0.574 ms 0.480 ms
    2 11.0.0.5 (11.0.0.5) 0.840 ms 0.783 ms 0.767 ms
    3 192.168.1.1 (192.168.1.1) 0.653 ms 0.644 ms 0.608 ms
    4 almeria.cica.es (150.214.231.97) 1.795 ms 1.761 ms 2.740 ms
    5 jds-rt2-almeria.cica.es (150.214.0.33) 13.333 ms 13.354 ms 12.946 ms
    6 ataman.cica.es (150.214.4.16) 13.476 ms * 18.044 ms
Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas