Имеется локальная сеть офиса, подключённая к двум поставщикам услуг. Основную часть исходящего трафика следует отправлять через маршрутизатор 123.45.67.89, за исключением следующего правила: трафик от локального хоста 192.168.1.23 следует маршрутизировать через шлюз 98.76.54.29 другого поставщика.
Используется устройство NSG–1800. Маршрутизация на основе установленных правил (политик) реализована в Linux посредством множественных таблиц маршрутизации, поддерживаемых в ядре. Помимо основных таблиц, существующих всегда по умолчанию, в данном примере создаётся дополнительная таблица номер 2. Для её настройки используется механизм dynamic-routing, включающий в себя, в частности, псевдо-протокол static для настройки сложных случаев статической маршрутизации, каковой и имеет место в данном примере. Поскольку требуется только одна дополнительная таблица, то в этом качестве можно использовать основную (master) таблицу "динамической" маршрутизации. Эта таблица формируется средствами узла dynamic-routing и связывается с таблицей номер 2 ядра, которая фактически и осуществляет маршрутизацию. Далее, создаётся правило отбора пакетов, подлежащих маршрутизации по этой таблице.
Курсивом выделены существенные элементы конфигурации, установленные по умолчанию.
ip : route : : 1 : : : network = "0.0.0.0/0" : : : gateway = "123.45.67.89" : dynamic-routing : : enable = true : : kernel : : : 1 : : : : export = "all" : : : : import = "none" : : : : kernel-table = 2 : : : : table = "master" : : static : : : 1 : : : : route : : : : : 0.0.0.0/0 : : : : : : action = "via-gateway" : : : : : : gateway = "98.76.54.29" : : : : table = "master" : nat : : POSTROUTING : : : 1 : : : : out-interface = "eth2" : : : : target = "SNAT" : : : : source-ip = "123.45.67.90" : : : 2 : : : : out-interface = "eth0" : : : : target = "SNAT" : : : : source-ip = "98.76.54.30" : rule : : 10 : : : from = "192.168.1.23/32" : : : table = 2 port : eth0 : : ifAddress : : : prefix = "98.76.54.30/30" : eth1 : : ifAddress : : : prefix = "192.168.1.1/24" : eth2 : : ifAddress : : : prefix = "123.45.67.90/30"
Дополнительные замечания:
Таблица master в данном примере используется для простоты, поскольку альтернативная таблица маршрутизации требуется только одна. В противном случае потребовалось бы создать в узле dynamic-routing ещё одну или несколько таблиц и связать каждую из них со своей таблицей ядра Linux.
Правило маршрутизации в данном случае — работает по критерию IP-адреса источника. При необходимости критериями могут быть любые поля и флаги 3 (IP) и 4 (TCP/UDP/etc.) уровней, их сочетания, а также другие критерии, доступные в механизме фильтрации пакетов.
Обязательно задание пароля для доступа к устройству.
В целях безопасности настоятельно рекомендуется также: