Как посмотреть таблицу маршрутизации в Linux?

«Как посмотреть таблицу маршрутизации в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основная команда для работы с маршрутизацией в современных дистрибутивах — ip route (из пакета iproute2). Устаревшая, но ещё встречающаяся команда — route.

1. Просмотр всей таблицы маршрутизации:

# Предпочтительный способ (показывает таблицу main)
ip route show
# или с явным указанием таблицы
ip route show table main

# Альтернатива (устаревшая, требует net-tools)
route -n  # Ключ -n отключает DNS-резолвинг, что ускоряет вывод

Пример вывода ip route show:

default via 192.168.1.1 dev eth0 proto dhcp metric 100
10.0.0.0/24 dev docker0 proto kernel scope link src 10.0.0.1 linkdown
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100
  • Первая строка — маршрут по умолчанию (шлюз).
  • Вторая строка — сеть Docker-моста.
  • Третья строка — прямая маршрутизация для локальной сети.

2. Проверка маршрута для конкретного адреса:

# Показывает, через какой интерфейс и шлюз пойдёт пакет до 8.8.8.8
ip route get 8.8.8.8
# Вывод: 8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.100 uid 1000

3. Просмотр других таблиц маршрутизации: Linux поддерживает несколько таблиц (например, для политик).

# Показать все таблицы, указанные в /etc/iproute2/rt_tables
ip route show table all

# Показать таблицу с определённым именем (например, local)
ip route show table local

В продакшене при работе с VPN, overlay-сетями (Calico, Weave) или multipath-маршрутизацией эти команды — первый инструмент для диагностики сетевых проблем.