Настройка правил SNAT для опроса контроллеров
Описание схемы
Есть ПК, с которого ведется опрос и управление контроллерами, которые в свою очередь подключены к двум роутерам iRZ. Роутеры объединены в одну локальную сеть.
Такая схема нужна для резервирования каналов связи, и должна обеспечить отказоустойчивость при потере того или иного канала.
Задача
Иметь возможность опрашивать оба контроллера с ПК через любой из роутеров iRZ.
Решение
Для работы такой схемы необходимо на каждом роутере прописать правила 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 подмена, будет произведена обратная подмена, и пакет отправится к изначальному отправителю - связь будет работать.
Сервис поддержки клиентов работает на платформе UserEcho