¿Cuál es el equivalente de GNU / Linux de "route get ..." de BSD?

16

El routecomando BSD tiene una función que mostrará qué ruta se seleccionará para un host determinado. Por ejemplo:

/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 

De vez en cuando encuentro esto útil si estoy jugando manualmente con las tablas de enrutamiento para asegurarme de que las reglas de enrutamiento funcionen como se esperaba.

La versión de ruta de GNU no tiene el mismo subcomando "get". ¿Hay algún equivalente o alternativa para GNU / Linux?

Mark E. Haase
fuente
1
Estaba buscando el / BSD / equivalente de ip ro pero esta página todavía es suficiente :)
Benjamin Goodacre

Respuestas:

21

Ahi esta

ip route get 74.125.137.100

pero no tiene resolución de nombre de host (que creo que es algo bueno). El comando generalmente está disponible en los paquetes iproute o iproute2.

Philippe Gauthier
fuente
3
ip route get "$(dig google.com +short)"para la resolución del nombre de host.
jordanm
55
@jordanm, más como:dig google.com +short | xargs -tn1 ip route get
Stéphane Chazelas
1
@ StéphaneChazelas, por favor, hágame saber que el comando anterior de Linux requería Internet o obtiene el resultado de cualquier tabla de enrutamiento / caché.
kd12
El comando 'cavar' realiza una búsqueda de DNS. Eso puede requerir acceso a la red a menos que la entrada DNS esté en el caché local.
WillW
> pero no resuelve el nombre de host (lo cual creo que es algo bueno). ¿Quiere explicar por qué cree que las molestias que causa realmente valen la pena?
poige 01 de