Состояние маршрутизации Linux определяет, какие следующий переход, интерфейс и источник подходят для IP-назначения. Устаревшее представление route -n всё ещё встречается, но ip route точнее показывает современные понятия маршрутизации ядра.
Маршрутизация · Урок 2
Таблица маршрутизации
Узнайте, как читать маршруты Linux и проверять маршрут, выбранный для назначения.
Чтение маршрутов IPv4
Пример вывода:
$ ip -4 route show
default via 192.168.224.2 dev eth0 proto dhcp src 192.168.224.10 metric 100
192.168.224.0/24 dev eth0 proto kernel scope link src 192.168.224.10 metric 100
Подключённый маршрут /24 отправляет совпавшие назначения напрямую через eth0. Маршрут по умолчанию использует шлюз следующего перехода 192.168.224.2. proto описывает способ установки маршрута, src — предпочтительный источник для совпавшего трафика, а метрика помогает ранжировать другие сопоставимые маршруты.
Что обозначает via 192.168.224.2?
Подключённые маршруты и маршруты по умолчанию
Маршрут со scope link и без следующего перехода via считает префикс непосредственно доступным через интерфейс. Маршрут по умолчанию совпадает с любым адресом, но уступает каждому подходящему более конкретному маршруту.
Как обычно достигается подключённое назначение scope link?
Длина префикса и метрика
Выбор маршрута учитывает правила политик и использует самый длинный подходящий префикс. Метрики ранжируют маршруты внутри подходящих сопоставимых наборов; маршрут по умолчанию с малой метрикой не переопределяет совпавший /24 только потому, что его число меньше.
Какой маршрут конкретнее совпадает с 192.168.224.50?
Правила политик и несколько таблиц
Linux может обращаться к нескольким таблицам маршрутизации согласно политике ip rule, основанной на источнике, метке, интерфейсе и других селекторах. Поэтому просмотр только основной таблицы может не показать фактический путь:
$ ip rule show
$ ip route show table all
Сетевые пространства имён и VRF также могут иметь отдельное состояние. Выполняйте проверку в том же контексте, что и затронутый процесс.
Почему одного ip route show может быть недостаточно для объяснения пути приложения?
Запрос фактического маршрута
Попросите ядро оценить назначение и необязательный источник:
$ ip route get 203.0.113.10
$ ip route get 203.0.113.10 from 192.168.224.10
Результат прогнозирует локальный поиск в этот момент. Он не отправляет пробный пакет и не доказывает доступность соседа, последующего пути, межсетевого экрана или приложения.
Чего не делает ip route get?
Урок завершён
Вы завершили Таблица маршрутизации
Теперь вы можете читать записи маршрутизации Linux и запрашивать фактическое локальное решение.
Отличайте подключённые маршруты от маршрутов через шлюз.
Читайте поля префикса, интерфейса, протокола, источника и метрики.
Применяйте сопоставление по самому длинному префиксу до сравнения подходящих метрик.
Учитывайте таблицы политик, пространства имён и VRF.
Рассматривайте
ip route getкак поиск, а не проверку доступности.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт