як знайти шлюз, який використовується для маршрутизації


45

Це в середовищі Unix. У мене є декілька маршрутів у хості (видно командою 'ip route show'). Якщо я ввожу пінг-адресу, як я можу дізнатися, який шлюз був використаний для маршрутного проходження?

Я спробував скористатися командою traceroute, але вона не показує негайний шлюз.

Знизу вихід 10.58.227.1 - це мій шлюз за замовчуванням.

# ip r l
10.58.227.0/24 dev front_eth1  proto kernel  scope link  src 10.58.227.231
169.254.0.0/17 dev bond0  proto kernel  scope link  src 169.254.0.4
default via 10.58.227.1 dev front_eth1  proto gated

Коли я роблю traceroute до зовнішньої адреси, використовуваний шлюз (шлюз за замовчуванням 10.58.227.1) не відображається у висновку.

# traceroute -n -I 10.63.21.118
traceroute to 10.63.21.118 (10.63.21.118), 30 hops max, 40 byte packets
 1  10.58.112.1  0.507 ms  1.008 ms  1.017 ms
 2  10.63.21.118  0.228 ms  0.233 ms  0.234 ms

Чи є можливість переглядати ту саму інформацію, що і команда traceroute, включаючи шлюз, який використовується для маршрутизації?

Відповіді:


73

Ви можете скористатися ip route get <address>командою, щоб попросити ядро ​​повідомити про маршрут, який він використовував би для відправлення пакета за вказаною адресою:

$ ip route get 4.2.2.1
4.2.2.1 via 192.168.0.1 dev eth0  src 192.168.0.121 
    cache 
$ 

192.168.0.1мій маршрут за замовчуванням. Якщо я запитаю адресу, яка не переходитиме маршрут за замовчуванням:

$ ip route get 192.168.0.116
192.168.0.116 dev eth0  src 192.168.0.121 
    cache 
$ 

Дуже багато. :) Це вирішує питання.

Випадкове бічне запитання - Якщо 192.168.0.1це "маршрут за замовчуванням" або "шлюз" ... на яке ім'я буде посилатися 192.168.0.121? Просто "джерело"?
dtmland

@sarnold, підтвердьте, чи потрібен Інтернет на цьому сервері.
kd12

@ kd12 вам потрібне підключення до Інтернету на цьому сервері, лише якщо ви хочете направити пакети до Інтернету. Ви можете налаштувати IP-мережі без підключення до Інтернету, якщо бажаєте; таблиці маршрутизації не знають і не цікавлять, все працює однаково. :)
sarnold
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.