como encontrar o gateway usado para o roteamento

45

Este é um ambiente unix. Eu tenho várias rotas em um host (visível com o comando 'ip route show'). Se estou pingando um endereço, como posso descobrir qual gateway foi usado para rotear o tracffic?

Tentei usar o comando traceroute, mas ele não mostra o gateway imediato.

Abaixo da saída, 10.58.227.1 é o meu gateway padrão.

# ip r l
10.58.227.0/24 dev front_eth1  proto kernel  scope link  src 10.58.227.231
169.254.0.0/17 dev bond0  proto kernel  scope link  src 169.254.0.4
default via 10.58.227.1 dev front_eth1  proto gated

Quando faço o rastreamento para um endereço externo, o gateway usado (gateway padrão 10.58.227.1) não é mostrado na saída.

# traceroute -n -I 10.63.21.118
traceroute to 10.63.21.118 (10.63.21.118), 30 hops max, 40 byte packets
 1  10.58.112.1  0.507 ms  1.008 ms  1.017 ms
 2  10.63.21.118  0.228 ms  0.233 ms  0.234 ms

Existe alguma opção para exibir as mesmas informações fornecidas pelo comando traceroute, incluindo o gateway usado para o roteamento?


fonte

Respostas:

73

Você pode usar o ip route get <address>comando para solicitar ao kernel que relate a rota que ele usaria para enviar um pacote para o endereço especificado:

$ ip route get 4.2.2.1
4.2.2.1 via 192.168.0.1 dev eth0  src 192.168.0.121 
    cache 
$ 

192.168.0.1é a minha rota padrão. Se eu pedir um endereço que não ultrapasse a rota padrão:

$ ip route get 192.168.0.116
192.168.0.116 dev eth0  src 192.168.0.121 
    cache 
$ 
sarnold
fonte
Isso é muito. :) Isso resolve o problema.
Pergunta lateral aleatória - Se 192.168.0.1é "rota padrão" ou "gateway" ... qual nome seria usado para se referir 192.168.0.121? Apenas "fonte"?
precisa saber é o seguinte
@arnold, confirme se precisa de internet nesse servidor.
Kd12 4/07
@ kd12 só precisa de uma ligação à Internet nesse servidor se pretender encaminhar pacotes para a Internet. Você pode configurar redes IP sem estar conectado à Internet, se desejar; as tabelas de roteamento não sabem e não se importam, tudo funciona da mesma maneira. :)
sarnold