Настройка правил SNAT для опроса контроллеров
Описание схемы
Есть ПК, с которого ведется опрос и управление контроллерами, которые в свою очередь подключены к двум роутерам iRZ. Роутеры объединены в одну локальную сеть.
Такая схема нужна для резервирования каналов связи, и должна обеспечить отказоустойчивость при потере того или иного канала.
Задача:
Иметь возможность опрашивать оба контроллера через любой из роутеров.
Решение:
Для работы такой схемы пропишите правила проброса портов до каждого из контроллеров и правило SNAT на каждом роутере.
Роутеры на базе irzOS позволяют выполнять настройки как с помощью Web-интерфейса, так и с помощью CLI.
Настройка проброса портов (DNAT) в Web-интерфейсе irzOS
Предположим, что каждый из контроллеров отвечает на запросы, пришедшие на порт TCP 80. В таком случае для iRZ 1 настройте проброс портов.
-
Перейдите в раздел /firewall → nat, нажмите кнопку Add, во всплывающей панели в выпадающем списке Chain выберите Prerouting и нажмите ОК.
-
В открывшейся форме настройте проброс для первого контроллера в соответствии с примером ниже. После настройки нажмите Apply.
Поле |
Значение |
Chain |
Цепочка Iptables, в которой происходит обработка пакета. Для проброса портов (DNAT) это prerouting |
Source |
Интерфейс или зона для обрабатываемых пакетов. Здесь это zone-wan (пакеты, приходящие со стороны провайдера связи) |
Destination Address |
Здесь – внешний порт РОУТЕРА, который будет отвечать на запросы к контроллеру, для примера это 8080 (записывается как :8080) |
Protocol |
Транспортный протокол (TCP или UDP), на котором работает контроллер |
Action |
Действие, выполняемое над пакетом. Здесь – dnat (проброс порта) |
NAT Address |
Конечный адрес и порт, на который осуществляется проброс |
Для второго контроллера проброс на iRZ 1 настраивается аналогично, с указанием другого внешнего порта роутера (8081) и другого конечного адреса устройства (192.168.1.202). Порт устройства остается тот же, т.к. устройство отвечает именно на нем.
Проброс портов на роутере iRZ 2 настраивается аналогично iRZ 1.
Настройка SNAT на роутерах irzOS
-
Перейдите в раздел /firewall → nat, нажмите кнопку Add, в всплывающей панели в выпадающем списке Chain выберите postrouting и нажмите ОК.
-
Для роутера iRZ 1 заполните форму аналогично примеру:
Расшифровка полей формы Поле
Значение
Chain
Цепочка Iptables, в которой происходит обработка пакета. Для SNAT это postrouting
Destination
Интерфейс или зона для обрабатываемых пакетов. Здесь это bridge0 (сетевой мост по умолчанию, обслуживающий локальную сеть), необходимо указать тот мост (bridge), к которому подключен контроллер
Protocol
По умолчанию all
Action
Действие, выполняемое над пакетом. Здесь – snat (подмена адреса источника)
NAT Address
Адрес, используемый в качестве источника, здесь это 192.168.1.1
Настройка iRZ 2 производится аналогично iRZ 1, с одним отличием – в качестве NAT Address используется 192.168.1.2:
-
Нажмите Apply.
-
Завершите настройку командой /system → config → commit, записывающей настройки в память роутера.
Как это работает
У контроллеров №1 и №2 существуют собственные маршруты по умолчанию.
Для контроллера №1 (192.168.1.201) – роутер iRZ 1 (192.168.1.1).
Для контроллера №2 (192.168.1.202) – роутер iRZ 2 (192.168.1.2).
Если нет правила SNAT, после прихода пакета на проброшенный порт роутера iRZ 1 для контроллера 192.168.1.202 – ответ уйдет к роутеру iRZ 2, и ПК, с которого ведется опрос, не получит связи с контроллером.
При настроенных правилах SNAT в приходящем пакете адрес источника будет подменен на локальный адрес самого роутера, а так как локальный адрес находится в одной сети с контроллером, то отвечать контроллер будет не по маршруту по умолчанию, а по известному локальному адресу.
То есть пакет от контроллера вернется на роутер, где произошла SNAT подмена, будет произведена обратная подмена, и пакет отправится к изначальному отправителю – связь будет работать.
Настройка в режиме 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, записывающей настройки в память роутера.