Qual é o equivalente ao GNU / Linux do “route get…” do BSD?

16

O routecomando BSD possui um recurso que mostra qual rota será selecionada para um determinado host. Por exemplo:

/Users/mhaase $ route get google.com
   route to: iad23s07-in-f8.1e100.net
destination: iad23s07-in-f8.1e100.net
    gateway: 10.36.13.1
  interface: en0
      flags: <UP,GATEWAY,HOST,DONE,WASCLONED,IFSCOPE,IFREF>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 

Ocasionalmente, acho isso útil se estiver mexendo manualmente com as tabelas de roteamento para garantir que as regras de roteamento estejam funcionando conforme o esperado.

A versão GNU da rota não possui esse mesmo subcomando "get". Existe algum equivalente ou alternativa para o GNU / Linux?

Mark E. Haase
fonte
11
Eu estava olhando para a / BSD / equivalente de ip ro mas esta página ainda é suficiente :)
Benjamin Goodacre

Respostas:

21

Há sim

ip route get 74.125.137.100

mas não resolve o nome do host (o que eu acho bom). O comando geralmente está disponível nos pacotes iproute ou iproute2.

Philippe Gauthier
fonte
3
ip route get "$(dig google.com +short)"para resolução de nome de host.
Jordanm #
5
@jordanm, Mais como:dig google.com +short | xargs -tn1 ip route get
Stéphane Chazelas
11
@ StéphaneChazelas, por favor, deixe-me saber que o comando linux acima exigia uma internet ou busca o resultado de qualquer tabela / cache de roteamento?
Kd12 3/07
O comando 'dig' faz uma pesquisa de DNS. Isso pode exigir acesso à rede, a menos que a entrada DNS esteja no cache local.
WillW 16/03/19
> mas ele não resolve o nome do host (o que eu acho bom) - lembre-se de explicar por que você acha que a inconveniência que ela causa realmente vale alguma coisa?
poige