ИСПОЛЬЗОВАНИЕ ТРАДИЦИОННОЙ IP-МАРШРУТИЗАЦИИ В WINDOWS И LINUX

 

Любая сетевая ОС после установки уже имеет базовую таблицу маршрутизации, сформированную на основе введенных IP-параметров. Как правило, эту таблицу нужно лишь корректировать.

Чтобы просмотреть текущую таблицу маршрутизации практически везде используется команда route с аргументом print. Традиционная команда Linux: netstat –n (–nr).

Чтобы вводимые маршруты сохранялись после перезагрузки ОС, необходимо делать их постоянными (persistent).

В типовом случае, на примере взаимодействия двух максимально удаленных абонентов, на границе СПД применяется статическая маршрутизация. Механизм шлюзов по умолчанию позволяет «спустить» пакет ближе к базовой магистрали в зону динамической маршрутизации более высокоранговых подсетей. Чтобы обеспечить «подъем» пакетов к абоненту, а также подъем ответных пакетов в зоне статической маршрутизации необходимо прописывать маршруты к соответствующим подсетям. При необходимости, всегда существует возможность задать маршрут вручную.

Рисунок -- Типовая стратегия маршрутизации

Основной смысл разделения на подсети состоит в упрощении таблиц маршрутизации.

Чтобы добавить статический маршрут в таблицу маршрутизации ядра используется команда route с аргументом add.

Рисунок -- Пример добавления статического маршрута

Постоянство вводимого статического маршрута в Windows достигается за счет аргумента –p.

Поддержка динамической маршрутизации в Windows сильно ограничена (поддерживаются часть функционала RIP и часть функционала OSPF). Вне пределов организаций Windows-шлюзы практически не встречаются (хотя ради справедливости следует отметить, что и Linux там не доминирует).

Постоянство статических маршрутов в Linux обеспечивается несколькими способами с возможностью комбинирования этих способов (зависит от дистрибутива). Маршруты могут «привязываться» к конкретным сетевым интерфейсам (но необязательно использовать их).

Рисунок -- Пример постоянных маршрутов (ветвь Red Hat)

 

Рисунок -- Пример постоянных маршрутов (ветвь SuSE)

 

Рисунок -- Пример постоянных маршрутов (ветвь Debian)

При необходимости введения сравнительно большого количества статических маршрутов или при переходе к простейшей динамической маршрутизации (RIP) можно задействовать демон routed. При этом статические маршруты помещаются в стандартный конфигурационный файл /etc/gateways.

Рисунок -- Пример маршрута из конфигурационного файла /etc/gateways

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

Для обеспечения полноценной поддержки динамической маршрутизации в последнее время вместо традиционного демона gated обычно применяется пакет Quagga. Кроме «корневого» демона под названием zebra, Quagga включает набор демонов, каждый из которых соответствует определенному протоколу маршрутизации (ripd, ospfd, bgpd и др.) Quagga предоставляет интерфейс управления, подобный интерфейсу Cisco IOS.

Рисунок -- Пример конфигурационного файла /etc/quagga/ripd.conf

 

Рисунок -- Рисунок -- Пример конфигурационного файла /etc/quagga/bgpd.conf

IP Forwarding в Windows.

Рисунок -- Включение IP Forwarding в Windows

IP Forwarding в Linux.

Рисунок -- Включение IP Forwarding в Linux

Практически во всех реализациях заложены механизмы простейшей оптимизации (ICMP Redirects).

Рисунок -- Пример оптимизации маршрутов

Для того, чтобы проследить трассу к какой-либо станции в Windows используется команда tracert, в Linux – traceroute.