Quel est l'équivalent GNU / Linux de la «route get…» de BSD?

16

La routecommande BSD a une fonction qui montrera quel itinéraire sera sélectionné pour un hôte donné. Par exemple:

/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 

Je trouve parfois cela utile si je joue manuellement avec des tables de routage pour m'assurer que les règles de routage fonctionnent comme prévu.

La version GNU de route n'a pas cette même sous-commande "get". Existe-t-il un équivalent ou une alternative pour GNU / Linux?

Mark E. Haase
la source
1
Je cherchais le / BSD / équivalent d'ip ro mais cette page suffit quand même :)
Benjamin Goodacre

Réponses:

21

Il y a

ip route get 74.125.137.100

mais il ne fait pas de résolution de nom d'hôte (ce qui, je pense, est une bonne chose). La commande est généralement disponible à partir des packages iproute ou iproute2.

Philippe Gauthier
la source
3
ip route get "$(dig google.com +short)"pour la résolution du nom d'hôte.
jordanm
5
@jordanm, Plus comme:dig google.com +short | xargs -tn1 ip route get
Stéphane Chazelas
1
@ StéphaneChazelas, faites-moi savoir que cette commande Linux ci-dessus nécessite un Internet ou récupère le résultat de n'importe quelle table / cache de routage?
kd12
La commande 'dig' effectue une recherche DNS. Cela peut nécessiter un accès réseau à moins que l'entrée DNS ne se trouve dans le cache local.
WillW
> mais il ne fait pas de résolution de nom d'hôte (ce qui, je pense, est une bonne chose).
poige