Co to jest odpowiednik GNU / Linux dla BSD „route get…”?

16

Polecenie BSD routema funkcję, która pokaże, która trasa zostanie wybrana dla danego hosta. Na przykład:

/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 

Czasami uważam to za przydatne, jeśli ręcznie popsuję tabele routingu, aby upewnić się, że reguły routingu działają zgodnie z oczekiwaniami.

Wersja trasy GNU nie ma tej samej komendy „get”. Czy istnieje odpowiednik lub alternatywa dla GNU / Linux?

Mark E. Haase
źródło
1
Szukałem / BSD / odpowiednika ip ro, ale ta strona wciąż wystarcza :)
Benjamin Goodacre

Odpowiedzi:

21

Jest

ip route get 74.125.137.100

ale nie rozpoznaje nazw hostów (co uważam za dobrą rzecz). Polecenie jest zwykle dostępne z pakietów iproute lub iproute2.

Philippe Gauthier
źródło
3
ip route get "$(dig google.com +short)"do rozpoznawania nazw hostów.
jordanm
5
@jordanm, Bardziej jak:dig google.com +short | xargs -tn1 ip route get
Stéphane Chazelas
1
@ StéphaneChazelas, proszę dać mi znać, że powyższe polecenie linux wymagało internetu lub pobiera wynik z tabeli routingu / pamięci podręcznej?
kd12
Polecenie „dig” wykonuje wyszukiwanie DNS. Może to wymagać dostępu do sieci, chyba że wpis DNS znajduje się w lokalnej pamięci podręcznej.
WillW
> ale nie rozwiązuje problemu z rozpoznawaniem nazw hostów (co uważam za dobrą rzecz) - starasz się wyjaśnić, dlaczego uważasz, że związane z tym niedogodności są naprawdę warte czegoś?
poige