Un tcpdump de una sesión de ping muestra las dos líneas siguientes:
IP gateway.comp.com > somehost.comp.com: ICMP redirect 10.8.0.10 to host othergateway.comp.com, length 68
IP gateway.comp.com > somehost.comp.com: ICMP 10.8.0.10 protocol 1 port 21475 unreachable, length 68
Entiendo el primer mensaje. Simplemente le dice somehost
que no moleste al main gateway
con paquetes a 10.8.0.10 sino que los enrute directamente a través de othergateway
.
Pero, ¿qué significa el segundo mensaje? Llega 17 ms después y parece estar relacionado. Qué hay protocol 1 port XXX
en este contexto. ¿Qué es exactamente lo que es inalcanzable? ICMP (= protocolo 1) no tiene puertos, que yo sepa, entonces, ¿qué significa esto?
Respuesta1
Esto es probableMensaje de control ICMP Tipo 3 (destino inalcanzable) Código 3 (Puerto inalcanzable)
Significa que no hay ningún proceso de servidor asociado con ese puerto TCP o UDP en el destino.
"Una regla de UDP es que si recibe un datagrama UDP y el puerto de destino no corresponde a un puerto que algún proceso tiene en uso, UDP responde con un puerto ICMP inalcanzable".- deTCP/IP ilustrado, Stevens.
¿Por qué UDP? El ping
comando se implementa tradicionalmente mediante solicitudes de eco ICMP, pero en algunas plataformas, algunas herramientas pueden usar otros protocolos. Un ejemplo seríanmap -sU
Respuesta2
Qué hay
protocol 1 port XXX
en este contexto.
El protocolo número 1 es ICMP. ICMP no utiliza puertos, pero utiliza un identificador de 16 bits al que nos referimos port
aquí por simplicidad. (Tal vez el programador no se molestaría en hacer la distinción o los usuarios estarían más confundidos por una identifier
etiqueta).
El campo de identificador también lo utilizan los enrutadores NAT para asignar respuestas a la sesión NAT original y, por supuesto, la propia pila de IP local para enrutar una respuesta de eco al proceso que originó la solicitud, de manera muy similar a un número de puerto de capa de transporte. .