Как посмотреть статические маршруты в Linux?

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

Ответ

Статические маршруты определяют, через какой сетевой интерфейс и шлюз должны отправляться пакеты для достижения определённых сетей или хостов. Для их просмотра в Linux используются следующие команды.

1. ip route (предпочтительный, современный инструмент из пакета iproute2):

ip route show

Или просто ip r.

Пример вывода:

default via 192.168.1.1 dev eth0 proto static
10.0.0.0/24 dev docker0 proto kernel scope link src 10.0.0.1
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
  • default via ... — маршрут по умолчанию (шлюз).
  • proto static — указывает, что маршрут добавлен статически (вручную или через сетевой менеджер).
  • proto kernel — маршрут, автоматически добавленный ядром для сети, связанной с интерфейсом.

2. route (устаревшая утилита из пакета net-tools):

route -n

Флаг -n отключает разрешение имён хостов (DNS lookup), что ускоряет вывод и полезно при проблемах с сетью.

DevOps-применение:

  • Диагностика сетевых проблем: Первое, что проверяю, если контейнер или сервер не может выйти в интернет или достичь другого сегмента сети — таблицу маршрутизации. Убеждаюсь, что есть корректный маршрут по умолчанию и маршруты до внутренних сетей (например, VPN).
  • Работа в облачных средах: В AWS/GCP/Azure часто приходится управлять маршрутами через таблицы маршрутизации (Route Tables) в VPC, но на самом инстансе их можно проверить именно через ip route. Например, маршруты для метаданных или других подсетей VPC.
  • Маршрутизация для контейнеров и overlay-сетей: Такие технологии, как Docker или Kubernetes (CNI), добавляют свои маршруты для overlay-сетей. Их видно в выводе ip route, что помогает при отладке сетевой связности между подами.