Что такое GNU / Linux-эквивалент BSD «route get…»?

16

Команда BSD routeимеет функцию, которая покажет, какой маршрут будет выбран для данного хоста. Например:

/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 

Иногда я нахожу это полезным, если я вручную связываюсь с таблицами маршрутизации, чтобы убедиться, что правила маршрутизации работают должным образом.

GNU-версия route не имеет такой же подкоманды get. Есть ли какой-то эквивалент или альтернатива для GNU / Linux?

Марк Э. Хаас
источник
1
Я искал / BSD / эквивалент ip ro, но этой страницы все еще достаточно :)
Бенджамин Гудэйкр

Ответы:

21

Есть

ip route get 74.125.137.100

но это не делает разрешение имени хоста (что я считаю хорошей вещью). Команда обычно доступна из пакетов iproute или iproute2.

Филипп Готье
источник
3
ip route get "$(dig google.com +short)"для разрешения имени хоста.
Иордания
5
@jordanm, Больше похоже на:dig google.com +short | xargs -tn1 ip route get
Стефан Шазелас
1
@ StéphaneChazelas, пожалуйста, дайте мне знать, что для этой команды linux требуется интернет или она извлекает результат из любой таблицы / кэша маршрутизации?
kd12
Команда 'dig' выполняет поиск DNS. Для этого может потребоваться доступ к сети, если запись DNS не находится в локальном кэше.
WillW
> но это не делает разрешение имени хоста (что я думаю, что это хорошо) - хотите прояснить, почему вы думаете, что доставленные неудобства действительно чего-то стоят?
августа