O comando Unix traceroute
rastreia os endereços IP dos nós de um nó de origem para um nó de destino. Cada nó intermediário possui uma interface de entrada e saída.
A execução traceroute -n dst
em src
mostra os endereços IP de src, dst e todas as interfaces de entrada dos saltos intermediários.
Mas como rastrear os endereços IP de saída?
Atualizar
Eu tentei a ping -R
sugestão, mas ela não parece funcionar. Este é o traceroute para um servidor web público:
$ ping -n -c 1 -R 212.227.222.9 PING 212.227.222.9 (212.227.222.9) 56 (124) bytes de dados. 64 bytes de 212.227.222.9: icmp_req = 1 ttl = 57 time = 47.4 ms RR: 192.168.2.111 169.254.1.1 87.186.224.94 62.154.76.34 62.154.12.175 212.227.117.13 212.227.117.8 10.71.3.253 212.227.222.9 --- 212.227.222.9 estatísticas de ping --- 1 pacotes transmitidos, 1 recebido, 0% de perda de pacotes, tempo 0ms rtt min / avg / max / mdev = 47.441 / 47.441 / 47.441 / 0.000 ms
E este é o endereço IP da minha conexão dial-up.
$ curl -s https://toolbox.googleapps.com/apps/browserinfo/info/ | jq -r .remoteAddr 93.192.75.247
Mas não foi gravado pelo comando ping. Qual pode ser a razão?
ping
traceroute
ceving
fonte
fonte
curl ifconfig.me
. Coisa mais simples da internet. Mãos para baixo.Respostas:
Não sou exatamente a resposta da sua pergunta, mas é uma maneira simples (mas limitada) de fazer (em certos casos) o que você deseja. Estou lidando com a opção -R da página do manual ping:
Assim, você também pode ver o caminho de retorno do ECHO_REQUEST, que não é a interface de saída (sobre a qual você está perguntando), a menos que o caminho de saída seja o mesmo do caminho de retorno. Somente nesse caso, o caminho de retorno é o endereço IP da interface de saída que você está solicitando.
Esse é um exemplo real da minha rede de provedores de internet, talvez não seja tão claro, mas agora não tenho um roteador para se conectar :)
fonte
-R
opção. O quarto salto foi o primeiro, que respondeu ao pedido. Mas a resposta não contém meu endereço público. E embora tenha sido apenas o quarto salto, a resposta contém 9 endereços.ping -R
deve ser útil apenas para saltos muito limitados. Eu digo antes que é uma maneira restritatraceroute 212.227.222.9
e depois faça umping -R
para o terceiro salto que você encontrou no traceroute. Dessa forma, você tem o mesmo esquema que eu fiz para ler a resposta. Os nove rota total de movimento média e voltar, por isso, se você fazping -R 212.227.222.9
que você não pode ver o caminho completo, mas apenas a última parteDe acordo com o RFC1812, o endereço de origem da mensagem ICMP gerada pelo roteador deve ser o da interface de saída pela qual o pacote normalmente retornaria ao remetente.
Na realidade, é muito provável que você enfrente um comportamento fora do padrão, em que o roteador fornecerá a resposta ICMP com a fonte da interface de entrada. Isso geralmente facilita a leitura do traceroute.
Como acompanhamento da pergunta do YLearn, estou postando um diagrama de rede e algumas saídas.
Vamos supor que estamos buscando o traceroute do loopback R5 5.5.5.5 para o loopback R1 1.1.1.1. Como você pode ver, o caminho direto é via R4-R2, enquanto o caminho reverso é R3-R4.
A saída do traceroute do R5 é a seguinte:
Portanto, enquanto o tráfego ICMP real gerado por R1 está voltando para R5 via R3, o cabeçalho IP da mensagem Inacessível ICMP terá a fonte da interface de entrada 10.1.12.1.
Na minha experiência, como os roteadores Cisco e Juniper se comportam, não tenho certeza sobre outros fornecedores.
fonte