Настройка правил SNAT для опроса контроллеров
Описание схемы
Есть ПК, с которого ведется опрос и управление контроллерами, которые в свою очередь подключены к двум роутерам iRZ. Роутеры объединены в одну локальную сеть.
Такая схема нужна для резервирования каналов связи, и должна обеспечить отказоустойчивость при потере того или иного канала.
Задача:
Иметь возможность опрашивать оба контроллера через любой из роутеров.
Решение:
Для работы такой схемы пропишите правила проброса портов до каждого из контроллеров и правило SNAT на каждом роутере.
Роутеры на базе irzOS позволяют выполнять настройки как с помощью Web-интерфейса, так и с помощью CLI.
Настройка DNAT на роутерах irzOS
Предположим, что каждый из контроллеров отвечает на запросы, пришедшие на TCP порт 80. В таком случае для iRZ 1 настройте проброс портов.
-
Перейдите в раздел /firewall → nat, нажмите кнопку Add.
-
Во всплывающей панели в выпадающем списке Chain выберите prerouting и нажмите ОК.
-
В открывшейся форме настройте проброс для первого контроллера в соответствии с примером ниже.
Расшифровка полей формы Поле
Описание
Значение
Chain
Цепочка Iptables, в которой происходит обработка пакета
prerouting
Source
Интерфейс или зона для обрабатываемых пакетов, приходящих со стороны провайдера связи
zone-wan
Destination Address
Внешний порт роутера, который будет отвечать на запросы к контроллеру
:8080
Protocol
Транспортный протокол (TCP или UDP), на котором работает контроллер
tcp
Action
Действие, выполняемое над пакетом. Здесь – проброс порта
dnat
NAT Address
Конечный IP-адрес и порт, на который осуществляется проброс
192.168.1.201:80
-
После настройки нажмите Apply.
-
Для второго контроллера проброс на iRZ 1 настраивается аналогично, с указанием другого внешнего порта роутера (8081) и другого конечного адреса устройства (192.168.1.202). Порт устройства остается тот же, т.к. устройство отвечает именно на нем.
Проброс портов на роутере iRZ 2 настраивается аналогично iRZ 1.
Настройка SNAT на роутерах irzOS
-
Перейдите в раздел /firewall → nat, нажмите кнопку Add.
-
В выпадающем списке Chain выберите postrouting и нажмите ОК.
-
Для роутера iRZ 1 заполните форму аналогично примеру:
Расшифровка полей формы Поле
Описание
Значение
Chain
Цепочка Iptables, в которой происходит обработка пакета
postrouting
Destination
Интерфейс или зона для обрабатываемых пакетов. Здесь – сетевой мост по умолчанию, обслуживающий локальную сеть. Необходимо указать тот мост, к которому подключен контроллер
bridge0
Protocol
Транспортный протокол (TCP или UDP), на котором работает контроллер. Здесь – значение по умолчанию
all
Action
Действие, выполняемое над пакетом. Здесь – подмена адреса источника
snat
NAT Address
Адрес, используемый в качестве источника
192.168.1.1
Настройка iRZ 2 производится аналогично iRZ 1, с одним отличием – в качестве NAT Address используется 192.168.1.2.
-
После настройки нажмите Apply.
-
Завершите настройку командой /system → config → commit, записывающей настройки в память роутера.
| Все настройки навсегда сохраняются в память роутера только после выполнения команды /system → config → commit или нажатия кнопки commit в web-интерфейсе. |
Как это работает
У контроллеров №1 и №2 существуют собственные маршруты по умолчанию.
-
Для контроллера №1 (192.168.1.201) – роутер iRZ 1 (192.168.1.1).
-
Для контроллера №2 (192.168.1.202) – роутер iRZ 2 (192.168.1.2).
Если на роутере iRZ 1 не настроено правило SNAT для проброшенного порта контроллера №2 (IP 192.168.1.202), то контроллер отправит ответный пакет не обратно на iRZ 1, а по умолчанию на роутер iRZ 2. В результате ответ не вернётся на ПК, с которого ведется опрос, и связь с контроллером не установится.
При включенном SNAT роутер iRZ 1 подменяет исходный IP-адрес в приходящем пакете на свой собственный локальный адрес. Поскольку этот адрес находится в той же подсети, что и контроллер, контроллер отправляет ответ напрямую на iRZ 1, игнорируя маршрут по умолчанию (через iRZ 2). Получив ответ, iRZ 1 делает обратную подмену адреса и пересылает пакет на ПК. Связь работает корректно.
Настройка в режиме CLI
Для роутеров iRZ 1 и iRZ 2 выполните команды.
| Команды с прочерком вместо значения параметра, например, «disabled -» можно пропустить. |
Для проброса на контроллер №1
/firewall nat add chain=prerouting
action dnat
disabled -
dst -
dst-addr :8080
extra -
mark -
nat-addr 192.168.1.201:80
policy -
protocol tcp
src zone-wan
src-addr -
apply
/
Для проброса на контроллер №2
/firewall nat add chain=prerouting
action dnat
disabled -
dst -
dst-addr :8081
extra -
mark -
nat-addr 192.168.1.202:80
policy -
protocol tcp
src zone-wan
src-addr -
apply
/
Для организации SNAT на роутер iRZ 1
/firewall nat add chain=postrouting
action snat
disabled -
dst bridge0
dst-addr -
extra -
mark -
nat-addr 192.168.1.1
policy -
protocol all
src -
src-addr -
apply
/
Для организации SNAT на роутер iRZ 2:
/firewall nat add chain=postrouting
action snat
disabled -
dst bridge0
dst-addr -
extra -
mark -
nat-addr 192.168.1.2
policy -
protocol all
src -
src-addr -
apply
/
| Завершите настройку командой, записывающей настройки в память роутера. |
/system config commit
| Все настройки навсегда сохраняются в память роутера только после выполнения команды /system → config → commit или нажатия кнопки commit в web-интерфейсе. |