Настройка правил SNAT для опроса контроллеров

#irzOS #роутеры #r0 #r2 #r10 #r50

Описание схемы

Есть ПК, с которого ведется опрос и управление контроллерами, которые в свою очередь подключены к двум роутерам iRZ. Роутеры объединены в одну локальную сеть.

Такая схема нужна для резервирования каналов связи, и должна обеспечить отказоустойчивость при потере того или иного канала.

Задача:

Иметь возможность опрашивать оба контроллера через любой из роутеров.

snat 1

Решение:

Для работы такой схемы пропишите правила проброса портов до каждого из контроллеров и правило SNAT на каждом роутере.

Роутеры на базе irzOS позволяют выполнять настройки как с помощью Web-интерфейса, так и с помощью CLI.

Настройка DNAT на роутерах irzOS

Предположим, что каждый из контроллеров отвечает на запросы, пришедшие на TCP порт 80. В таком случае для iRZ 1 настройте проброс портов.

  1. Перейдите в раздел /firewall → nat, нажмите кнопку Add.

  2. Во всплывающей панели в выпадающем списке Chain выберите prerouting и нажмите ОК.

    snat 2
  3. В открывшейся форме настройте проброс для первого контроллера в соответствии с примером ниже.

    snat 3
    Расшифровка полей формы

    Поле

    Описание

    Значение

    Chain

    Цепочка Iptables, в которой происходит обработка пакета

    prerouting

    Source

    Интерфейс или зона для обрабатываемых пакетов, приходящих со стороны провайдера связи

    zone-wan

    Destination Address

    Внешний порт роутера, который будет отвечать на запросы к контроллеру

    :8080

    Protocol

    Транспортный протокол (TCP или UDP), на котором работает контроллер

    tcp

    Action

    Действие, выполняемое над пакетом. Здесь – проброс порта

    dnat

    NAT Address

    Конечный IP-адрес и порт, на который осуществляется проброс

    192.168.1.201:80

  4. После настройки нажмите Apply.

  5. Для второго контроллера проброс на iRZ 1 настраивается аналогично, с указанием другого внешнего порта роутера (8081) и другого конечного адреса устройства (192.168.1.202). Порт устройства остается тот же, т.к. устройство отвечает именно на нем.

snat 4

Проброс портов на роутере iRZ 2 настраивается аналогично iRZ 1.

Настройка SNAT на роутерах irzOS

  1. Перейдите в раздел /firewall → nat, нажмите кнопку Add.

  2. В выпадающем списке Chain выберите postrouting и нажмите ОК.

  3. Для роутера iRZ 1 заполните форму аналогично примеру:

    snat 5
    Расшифровка полей формы

    Поле

    Описание

    Значение

    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.

    snat 6
  4. После настройки нажмите Apply.

  5. Завершите настройку командой /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-интерфейсе.