Сетевые технологии

Настройка сетевой маршрутизации Linux

Данная статья является продолжением статьи «Понятия маршрутизации«. Рекомендуется подробно изучить эту статью.
В этой статье мы подробно рассмотрим команду route для настройки маршрутизации в операционных системах семейства Linux.
Основное назначение команды route – добавление и удаление сетевых маршрутов для системного ядра, а также просмотр содержимого таблицы маршрутизации.
Эта команда, хотя и работает в разных UNIX-подобных системах одинаково, однако имеет резко отличающийся синтаксис в зависимости от используемой системы.

Просмотр таблицы маршрутизации

Чтобы посмотреть таблицу маршрутизации можно использовать команду route:
route
Более подробно можно посмотреть с помощью команды routel:
routel
С помощью данной команды можно видеть IP адрес цели (target), IP адрес шлюза (gateway), IP отправителя (source), протокол, и сетевой интерфейс.

Самый удобный способ посмотреть таблицу маршрутизации linux — это команда ip:
ip route
Вывод похож на результат предыдущей команды, но выглядит не совсем привычно, это потому, что вывод команды можно использовать в качестве аргумента для ip route add или ip route del.

Список опций команды route

  • del — Удаление маршрута;
  • gw — Шлюз, через который должны достигаться сеть или узел. Задаётся в виде имени узла или точечной записи адреса;
  • mss — Устанавливает значение MTU (максимальную величину пакета) в байтах;
  • window — Устанавливает размер TCP-окна для задаваемого шлюза в байтах. Обычно используется в сетях AX.25;
  • irtt — Устанавливает начальное время отклика для TCP-соединений по данному маршруту в миллисекундах;
  • reject — Задаёт блокирующий маршрут, который должен приводить к остановке процедуры поиска маршрутов. Полезно при скрытии сетей для использования в них шлюз по-умолчанию;
  • -F — Заставляет работать с таблицей маршрутизации ядра. Эта опция в большинстве систем используется по-умолчанию, поэтому часто опускается;
  • -C — Заставляет работать с кэшем маршрутизации ядра;
  • -v — Включает подробный режим работы команды route;
  • -n — Использование числового формата адресов вместо попыток определения символьных наименований узлов. Можно использовать в случае определения проблем с соединениями к DNS;
  • -e — Использовать формат вывода команды netstat для отображения содержимого таблицы маршрутов. Опция -ee сгенерирует самый подробный отчёт с полными наименованиями параметров таблицы маршрутов.

Настройка маршрутов

Можно настраивать таблицу маршрутизации с помощью команды ip. Например, чтобы изменить маршрут по умолчанию достаточно выполнить:
ip route add default via 192.168.1.1
Так можно добавить маршрут для любого IP адреса, например, для 243.143.5.25:
sudo ip route add 243.143.5.25 via 192.168.1.1
Здесь сначала указывается IP адрес цели, а затем шлюз в локальной сети, через который можно достичь этого адреса.

Но такие маршруты будут активны только до перезагрузки, после перезагрузки компьютера они будут автоматически удалены. Чтобы маршруты сохранились их нужно добавить в файл конфигурации.

В операционных системах семейства Red Hat используются конфигурационные файлы «/etc/sysconfig/network-scripts/route-ethX».

Каждый файл может описывать несколько маршрутов, например:
GATEWAY=10.10.0.1
NETMASK=255.0.0.0
IPADDR=10.10.0.22
Здесь gateway — шлюз по умолчанию для этого интерфейса, netmask — маска сети, а ipaddr — ip адрес интерфейса.

В Debian и основанных на нем дистрибутивах можно настроить маршруты в файле «/etc/network/interfaces». Здесь команда route добавляется в секцию iface. Например:
up route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.10.0.1
или
up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.10.0.1
С помощью опции -net указывается целевая сеть, netmask — это маска сети, а gw — шлюз.

Примеры использования команды route

Задание шлюза по-умолчанию:
route add default gw 192.168.1.1 eth0
Доступ в локальную сеть Ethernet через сетевой интерфейс eth0:
route add -net 192.168.10.0 netmask 255.255.255.0 eth0
Здесь 192.168.10.0 – сеть, к которой нужно установить доступ (маршрут).
Сетевые технологии