Tengo una dirección IP y puedo localizarla, pero no puedo hacer ping.
Ya ves, puedo traceroute 43.224.226.50
:
dele-MBP:~ ll$ traceroute 43.224.226.50
traceroute to 43.224.226.50 (43.224.226.50), 64 hops max, 52 byte packets
1 router.asus.com (192.168.2.1) 2.082 ms 1.039 ms 0.924 ms
2 100.64.0.1 (100.64.0.1) 3.648 ms 3.795 ms 3.955 ms
3 118.112.212.225 (118.112.212.225) 4.252 ms 4.569 ms 4.168 ms
4 171.208.203.73 (171.208.203.73) 6.378 ms
171.208.198.25 (171.208.198.25) 6.943 ms
171.208.203.61 (171.208.203.61) 7.055 ms
5 202.97.36.225 (202.97.36.225) 38.149 ms
202.97.36.221 (202.97.36.221) 39.949 ms
202.97.36.225 (202.97.36.225) 40.780 ms
6 202.97.90.158 (202.97.90.158) 37.894 ms
202.97.94.146 (202.97.94.146) 39.885 ms 39.354 ms
7 202.97.38.166 (202.97.38.166) 45.324 ms
202.97.39.149 (202.97.39.149) 40.097 ms
202.97.94.77 (202.97.94.77) 40.580 ms
8 202.97.51.118 (202.97.51.118) 374.218 ms
202.97.27.238 (202.97.27.238) 187.573 ms
202.97.86.138 (202.97.86.138) 197.524 ms
9 218.30.53.190 (218.30.53.190) 201.597 ms
218.30.54.190 (218.30.54.190) 194.194 ms
218.30.53.190 (218.30.53.190) 204.027 ms
10 182.54.129.91 (182.54.129.91) 220.026 ms 282.360 ms
et-11-1-5.r01.laxus01.us.bb.bgp.net (182.54.129.38) 185.700 ms
11 182.54.129.91 (182.54.129.91) 229.700 ms 508.509 ms 266.683 ms
12 * 212.95.128.2 (212.95.128.2) 565.161 ms *
13 43.224.226.50 (43.224.226.50) 200.531 ms 201.911 ms 191.566 ms
Pero no puedo hacer ping:
dele-MBP:~ ll$ ping 43.224.226.50
PING 43.224.226.50 (43.224.226.50): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
Request timeout for icmp_seq 6
Request timeout for icmp_seq 7
Request timeout for icmp_seq 8
Request timeout for icmp_seq 9
Request timeout for icmp_seq 10
Request timeout for icmp_seq 11
Si hay una prohibición de ICMP, traceroute
tampoco debería funcionar. ¿Cuál es el motivo?
Verifiqué que el firewall del servidor esté detenido.
ping
networking
icmp
traceroute
244boy
fuente
fuente
Respuestas:
En una pregunta similar aquí, Luke Savage lo explicó perfectamente:
fuente
traceroute
comando y no lotracert
que me hizo pensar que está usando un sistema operativo basado en Unix o GNU. En la respuesta que mencioné, puede ver que los sistemas basados en Unix no están utilizandoICMP
paratraceroute
. En otras palabras, dado quePING
está utilizandoICMP
(que creo que está bloqueado por el sistema que está tratando de alcanzar) y traceroute está utilizandoUDP
paquetes con un método deTTL
campo de incremento (que creo que no está bloqueado en el sistema que está tratando de alcanzar)PING
falla PeroTraceroute
tiene éxito.traceroute
está utilizando ICMP, incluso si está enviando UDP, es decir, espera y evalúa losTTL exceeded
mensajes de los saltos en el camino. Un host que bloquea todo ICMP es una mala idea, peroping
ya fallará cuando lasICMP echo
solicitudes o respuestas se bloqueen en el host de destinoPara agregar a la respuesta de @ naïveRSA , si hay filtrado / cortafuegos en la ruta, uno también podría tener la situación en la que un paquete ICMP de "respuesta de eco" (ping) está bloqueado, pero se permite un paquete ICMP de "tiempo excedido" (tracert) . Esto daría los mismos resultados incluso cuando solo se utiliza ICMP (Windows).
En ambos casos (remitente que utiliza UDP o ICMP) la comunicación de error será ICMP (es decir, el nodo que responde a un paquete ping o trazador *).
fuente
Veamos qué pasa, ¿de acuerdo?
8.8.8.8 es un buen ejemplo, porque al menos desde mi ubicación, puedo alcanzarlo con
traceroute
yping
.Primero intentemos
ping 8.8.8.8
y veamos qué sucede:Por lo tanto,
ping
envía una solicitud de eco ICMP y espera una respuesta de eco ICMP.Ahora
traceroute -n 8.8.8.8
:Entonces
traceroute
, al menos la implementación que he instalado, no envía ICMP. Más bien, envía paquetes UDP.Lo que no es visible en esta traza (aunque lo sería, si le diera
tcpdump
a-v
para aumentar la verbosidad) es que las primeras sondas tienen un ttl de 1, y luego incrementa el ttl para las sondas posteriores. Esto hace que los enrutadores entre yo y 8.8.8.8 respondan con un error ICMP ttl excedido, que es cómo traceroute descubre los enrutadores entre aquí y allá.Finalmente, el ttl es lo suficientemente largo como para llegar hasta 8.8.8.8, y 8.8.8.8 responde con un error inalcanzable del puerto ICMP, porque no tiene proceso escuchando en el puerto UDP 44838. Así es como Traceroute sabe que ha llegado al destino final .
Si algo entre aquí y allá está bloqueando todo ICMP, entonces ni ping ni traceroute funcionarán.
Pero generalmente no es el caso de que todo ICMP esté bloqueado, aunque tampoco es raro. Bloquear todo ICMP es problemático: por ejemplo, rompe el descubrimiento de MTU de ruta , que se basa en un error requerido de fragmentación ICMP. Los paquetes ICMP tienen un tipo y un código, y los operadores de red responsables solo bloquearán selectivamente algunos tipos o códigos, aquellos que representan un potencial de abuso o revelan información particular.
Por ejemplo, algunos hosts no responderán a una solicitud de eco ICMP y, por lo tanto, el ping no funcionará. La idea es que al no responder a los pings, es más difícil para un atacante descubrir qué hosts existen en la red. En la práctica, esto es cuestionable, ya que hay otras formas de buscar un host. Por ejemplo, uno puede enviar un TCP SYN al puerto 80 para buscar servidores web.
Muchos hosts tampoco enviarán un error inalcanzable de puerto ICMP cuando obtengan un datagrama UDP o un SYN TCP a un puerto en el que no tienen proceso de escucha, y esto interrumpe el traceroute. Una vez más, la idea es hacer que sea más difícil para un atacante mapear la red, pero nuevamente esto es solo una frustración menor para un atacante.
Debido a que traceroute es un programa y no un protocolo particular, tiene otras formas de sondeo. Todos confían en incrementar el TTL para descubrir los enrutadores, pero se pueden enviar diferentes tipos de sondas que pueden tener más o menos posibilidades de obtener una respuesta desde el punto final. Por ejemplo, my
man tcpdump
enumera una-I
opción para usar sondas de eco ICMP, lo mismo que ping. También tiene-T
que usar sondas TCP SYN en lugar de UDP. Si sabe que un host responderá,ping
entonces-I
tiene mucho sentido. Si sabe que el host está escuchando en un puerto TCP en particular, entonces-T
tiene sentido, quizás junto con la-p
opción de seleccionar el puerto.Desafortunadamente, estas opciones pueden requerir funciones raíz o especiales, por lo que UDP hace un valor predeterminado justo. De hecho, una herramienta similar
tracepath
tiene esto que decir en su página de manual:fuente
TLDR; Los pings se pueden bloquear (bloqueo ICMP) en un host remoto, pero Traceroute aún puede encontrar la ruta hacia él utilizando el enrutamiento de red estándar UDP o TCP / IP (cualquier protocolo realmente; ref /networkengineering//a/36509/ 58968 ). Tenga en cuenta que su ping también puede llegar al host (a menos que tenga un cortafuegos muy inteligente que bloquee el tráfico de ping ICMP en alguna parte), el host simplemente no responde.
fuente
Linux usando UDP en lugar de ICMP para traceroute, el firewall no bloqueó ese puerto UDP
fuente
Puede instalar nmap (insecure.org) y usar nping con UDP o TCP y cualquier puerto. Funciona muy bien en redes con ping bloqueado saliente.
Para hacer ping a un servidor web nping --tcp -p 80,443
Para hacer ping a un servidor de hora nping --udp -p 123
https://nmap.org/book/nping-man.html
fuente
Una breve respuesta a su pregunta es que la
ping
utilidad se basa en el protocolo ICMP que a veces está bloqueado en el firewall de la red o en el firewall del dispositivo. La razón más común por la cual los administradores de red bloquean ICMP es para evitar el "escaneo" de la red que consideran un problema de seguridad. Latraceroute
utilidad en Linux usa UDP, un protocolo completamente diferente, que en este caso no está bloqueado por los administradores de la red. UDP tiene una variedad de usos y bloquear esto provocaría que muchas cosas no se puedan usar en una red. El tipo de 'mensaje de control' ICMP que necesitaping
es un subconjunto de un protocolo, lo que significa que el bloqueo de ese tipo de paquete ICMP causa menos problemas en una red y, por lo tanto, es más probable que sea bloqueado que UDP.fuente