Eu tenho um endereço IP e posso rastrear, mas não consigo executar ping.
Você vê, eu posso rastrear 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
Mas não consigo executar 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
Se houver uma proibição do ICMP, traceroute
também não deve funcionar. Qual o motivo disso?
Eu verifiquei se o firewall do servidor está parado.
ping
networking
icmp
traceroute
244boy
fonte
fonte
Respostas:
Em uma pergunta semelhante aqui, Luke Savage explicou perfeitamente:
fonte
traceroute
comando e não otracert
que me levou a pensar que você está usando um sistema operacional baseado em Unix ou gnu. Na resposta que eu mencionei você pode ver que os sistemas baseados em Unix não estiver usandoICMP
paratraceroute
. Em outras palavras, uma vez quePING
está usandoICMP
(que eu acho que está bloqueado pelo sistema que você está tentando acessar) e o traceroute está usandoUDP
pacotes com um método de incremento deTTL
campo (que eu acho que não está bloqueado no sistema que você está tentando acessar)PING
falha masTraceroute
consegue.traceroute
está usando o ICMP, mesmo que esteja enviando UDP, ou seja, espera e avalia asTTL exceeded
mensagens dos saltos no caminho. Um host que bloqueia todo o ICMP é uma péssima idéia, masping
sempre falha quandoICMP echo
solicitações ou respostas são bloqueadas no host de destinoPara adicionar à resposta da @ naïveRSA , se houver filtragem / firewall no caminho, também é possível que um pacote de "resposta de eco" (ping) do ICMP esteja bloqueado, mas um pacote de "tempo excedido" (tracert) do ICMP seja permitido . Isso daria os mesmos resultados mesmo quando apenas o ICMP (Windows) for usado.
Nos dois casos (remetente usando UDP ou ICMP), a comunicação de erro será ICMP (ou seja, o nó que responde a um pacote ping ou tracer *).
fonte
Vejamos o que acontece, não é?
8.8.8.8 é um bom exemplo, porque pelo menos da minha localização, posso acessá-lo com
traceroute
eping
.Primeiro vamos tentar
ping 8.8.8.8
ver o que acontece:Portanto,
ping
envia uma solicitação de eco do ICMP e espera uma resposta de eco do ICMP.Agora
traceroute -n 8.8.8.8
:Portanto
traceroute
, pelo menos a implementação que instalei, não envia ICMP. Em vez disso, ele envia pacotes UDP.O que não é visível nesta trace (apesar de que seria, se eu dei
tcpdump
um-v
para aumentar a verbosidade) é que as primeiras sondas têm um TTL de 1, e em seguida, ele incrementa o TTL para sondas posteriores. Isso faz com que os roteadores entre mim e 8.8.8.8 respondam com um erro excedido de ICMP ttl, que é como o traceroute descobre os roteadores entre aqui e ali.Eventualmente, o ttl é longo o suficiente para chegar até 8.8.8.8 e 8.8.8.8 responde com um erro inacessível da porta ICMP, porque não possui processo de escuta na porta UDP 44838. É assim que o traceroute sabe que chegou ao destino final .
Se algo entre aqui e ali estiver bloqueando todo o ICMP, nem o ping nem o traceroute funcionarão.
Mas geralmente não é o caso de todo o ICMP estar bloqueado, embora também não seja raro. Bloquear todo o ICMP é problemático: por exemplo, ele interrompe a descoberta da MTU do caminho , que depende de um erro necessário à fragmentação do ICMP. Os pacotes ICMP têm um tipo e um código, e os operadores de rede responsáveis apenas bloquearão seletivamente alguns tipos ou códigos, aqueles que apresentam potencial para abuso ou revelam informações específicas.
Por exemplo, alguns hosts não respondem a uma solicitação de eco do ICMP e, portanto, o ping não funciona. A idéia é que, ao não responder aos pings, é mais difícil para um invasor descobrir quais hosts existem na rede. Na prática, isso é questionável, pois existem outras maneiras de investigar um host. Por exemplo, pode-se enviar um TCP SYN para a porta 80 para encontrar servidores da web.
Muitos hosts também não enviam um erro inacessível da porta ICMP quando obtêm um datagrama UDP ou um TCP SYN em uma porta na qual eles não têm processo de escuta, e isso interrompe o traceroute. Novamente, a idéia é tornar mais difícil para um invasor mapear a rede, mas, novamente, isso é apenas uma pequena frustração para um invasor.
Como o traceroute é um programa e não um protocolo específico, ele tem outras maneiras de investigar. Todos eles contam com o incremento do TTL para descobrir os roteadores, mas podem ser enviados diferentes tipos de análises que podem ter mais ou menos chance de obter uma resposta do ponto de extremidade. Por exemplo, minhas
man tcpdump
listas incluem uma-I
opção para usar as sondas de eco ICMP, da mesma forma que o ping. Ele também deve-T
usar testes TCP SYN em vez de UDP. Se você sabe que um host responderáping
,-I
faz muito sentido. Se você sabe que o host está escutando uma porta TCP específica,-T
faz sentido, talvez em conjunto com a-p
opção de selecionar a porta.Infelizmente, essas opções podem exigir recursos raiz ou especiais, portanto, o UDP faz um padrão justo. De fato, uma ferramenta semelhante,,
tracepath
tem isso a dizer em sua página de manual:fonte
TLDR; os pings podem ser bloqueados (bloco ICMP) em um host remoto, mas o traceroute ainda pode encontrar a rota para ele usando o roteamento de rede padrão UDP ou TCP / IP (qualquer protocolo realmente; ref /networkengineering//a/36509/ 58968 ). Observe que seu ping provavelmente também pode alcançar o host (a menos que você tenha um firewall muito inteligente bloqueando o tráfego de ping ICMP em algum lugar), o host simplesmente não responde.
fonte
Linux usando UDP em vez de ICMP para traceroute, o firewall não bloqueou essa porta UDP
fonte
Você pode instalar o nmap (insecure.org) e usar o nping com UDP ou TCP e qualquer porta. Funciona muito bem em redes com saída bloqueada por ping.
Para executar ping em um servidor da web nping --tcp -p 80,443
Para executar ping em um servidor de horário nping --udp -p 123
https://nmap.org/book/nping-man.html
fonte
Uma breve resposta à sua pergunta é que o
ping
utilitário depende do protocolo ICMP, que às vezes é bloqueado no firewall da rede ou no firewall do próprio dispositivo. O motivo mais comum pelo qual os administradores de rede bloqueiam o ICMP é impedir a "varredura" da rede, que eles consideram uma preocupação de segurança. Otraceroute
utilitário no Linux usa UDP, um protocolo completamente diferente, que neste caso não é bloqueado pelos administradores da rede. O UDP tem vários usos e o bloqueio disso faria com que muitas coisas fossem inutilizáveis em uma rede. O tipo de 'mensagem de controle' do ICMP necessáriaping
é um subconjunto de um protocolo, o que significa que o bloqueio desse tipo de pacote ICMP causa menos problemas em uma rede e, portanto, é mais provável que seja bloqueado que o UDP.fonte