Таблица маршрутизации в Linux

Статическая маршрутизация - это процесс, в котором администратор сети вручную настраивает сетевые интерфейсы, таким образом, чтобы пакеты пересылались из одной сети в другую.

Администратор создает так называемую таблицу маршрутизации, в ней описаны различные маршруты пакетов.

Любому из маршрутизаторов необходимо понимать на какой хост отправлять следующий пакет. Вот про это и будет идти речь в данной статье. Сегодня мы раскроем вопрос про маршрутизацию в Линукс, функциональность, настройку правил и правильное функционирование.

Когда хосту необходимо послать пакет другому хосту он просматривает таблицу маршрутизации. В данной таблице указаны IP-address конечного пункта назначения, метрика, название интерфейсов, адреса маршрутизаторов по которые могут отправить пакет конечному получателю.

В случае отсутствия маршрута для узла, применяется так называемый default шлюз, default маршрут. Подобное можно наблюдать на маршрутизаторе. Он сравнивает необходимый IP-address с таблицей маршрутизации, затем посылает дальше.

Ниже будем рассматривать проверку проходящих маршрутов в системе, процесс настройки новых.

Способы просмотра таблицы маршрутизации в Линукс

Для просмотра таблицы в ОС Линукс можно использовать команду:

$ netstat -r

netstat

Как видно из скриншота выше, команда показала всего две записи. В первой записи указан шлюз (gateway) 192.168.168.254, вторая запись говорит о наличии доступа в подсеть 192.168.168.0 на интерфейсе eth0.

Другой способ вывести информацию о статических маршрутов - использовать команду "route", однако, как правило утилита просит права супер пользователя, поэтому предварительно введем "su-".

$ su -

# route

route

Бывает, выводимых данных route и netstat недостаточно, так как в них выводится легкая информация, ее не хватает для понимания всей картины. Чтобы получить более подробную таблицу, можно воспользоваться утилитой "routel".

$ routel

routel

В этой информации содержится:

  • target (цель) - IP-адрес.
  •  gateway - адрес шлюза.
  • source - адрес отправителя.
  • dev - интерфейс.

Наиболее подходящий метод для просмотра таблицы маршрутизации в ОС Линукс – использовать утилиту "ip".

$ ip route
Подробней про "ip" можно посмотреть в другой статье: https://www.vseprolinux.ru/komanda-ip

ip route

Здесь:

  • default – IP-адрес по умолчанию.
  • via 192.168.168.254 - адрес шлюза, куда будут отправлять пакеты по умолчанию.
  • dev eth0 - интерфейс сети, за счёт него открывается доступ к шлюзу.
  • proto kernel - обозначает, что маршрут устанавливался ядром, если static, то установка выполняется администратором.

Настройка

Для настройки таблицы маршрутизации будем использовать команду ip route. Добавим временный статический маршрут 192.168.22.0/24 через шлюз 192.168.168.254.

ip route add 192.168.22.0/24 via 192.168.168.254

ВАЖНО! При выполнении такой команды добавиться временный статический маршрут, после перезагрузки системы он сотрется.

Для проверки необходимо проверить, проходит ли пакет из сети 192.168.22.0. Для этого будем использовать ip route get.
ip route get 192.168.22.30

Как говорилось выше, после перезагрузки Linux все эти добавленные адреса сотрутся. Для того, чтобы данные не стирались, необходимо записать их в файле.

Для Debian:

"/etc/network/interfaces"

Для Red Hat:

"/etc/sysconfig/network-scripts/route-ethX"

Пример:

post-up route add -net 192.168.22.0 netmask 255.255.255.0 gw 192.168.168.254
pre-down route del -net 192.168.22.0 netmask 255.255.255.0 gw 192.168.168.254

Здесь:

  1. post-up - запустить команду после включения интерфейса.
  2. pre-down - запустить команду перед отключением интерфейса.
  3. net - задает целевую сеть
  4. netmask - сетевая маска.
  5. gw - шлюз.

Не так сложно, как могло показаться. После всей выполненной работы присоединенные маршруты будут работать даже после перезагрузки операционной системы Линукс.

Рассмотрим еще несколько примеров.

Изменяем статический маршрут:

ip route change 192.168.22.0/24 via 192.168.168.254

Удаление маршрута:

ip route del 192.168.22.0/24

ЗАКЛЮЧЕНИЕ

Подобная работа написана для краткого рассмотрения функционирования маршрутизации в Линукс, как происходит настройка маршрутизации, а также для чего она необходима.