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

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


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

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

Задача


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

Image 681

Решение


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

Чтобы добавить правило SNAT, в веб-интерфейсе роутера в разделе Services - Firewall - User Firewall Rules нужно добавить следующие строчки:

  • для роутера iRZ 1
iptables -t nat -A postrouting_rule -o br-lan -j SNAT --to 192.168.1.1
  • для роутера iRZ 2
iptables -t nat -A postrouting_rule -o br-lan -j SNAT --to 192.168.1.2

Как это работает


У контроллеров №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 подмена, будет произведена обратная подмена, и пакет отправится к изначальному отправителю - связь будет работать.

Эта статья была полезна для 2 людей. Эта статья помогла Вам?

Сервис поддержки клиентов работает на платформе UserEcho