Как настроить проброс портов на роутерах iRZ серий R0, R2, R4 в случае нескольких провайдеров связи?
Как настроить Port Forwarding в случае нескольких ISP?
Если для работы роутера используются два способа связи от разных поставщиков, например сотовая сеть и проводной интернет или сотовая сеть и Wi-Fi, то для проброса порта будет недостаточно создать DNAT правило через интерфейс роутера.
По правилам маршрутизации ответный траффик от устройства за NAT будет отправляться через маршрут по умолчанию, и если первоначальный трафик пришел с интерфейса с большей метрикой это приведёт к недоступности сервиса.
Для организации доступности устройства за NAT входящий трафик будет маркироваться и на основании этой метки возвращаться назад отправителю.
Описание стенда:
• Основной проводной WAN интерфейс• Резервный сотовый интерфейс sim1
• Оба интерфейса имеют внешний статический IP адрес и доступны из сети интернет
• Сервер в локальной сети с адресом 192.168.1.100, слушающий 80 порт
• В интернет будет публиковаться порт 8000
Шаг 1
Создать в меню Port Forwarding DNAT правило.From: wan - зона, в которой находятся интерфейсы sim1 и wan
To: lan - зона с интерфейсом br-lan, бриджем в локальную сеть
Src Address: <пусто> - принимаем подключения с любого адреса
Dst Address: 192.168.1.100
Src Port: 8000
Dst Port: 80
Protocol: TCP - так как мы публикуем http сервис
Comment: <комментарий, который напомнит что за правило перед вами>
Шаг 2
Добавить два правила в секции User Firewall rules# Маркируем входящий трафик от интерфейса с большей метрикой (менее приоритетного) iptables -t mangle -A PREROUTING -i sim1 -p tcp -m tcp --dport 8000 -j CONNMARK --set-xmark 80 # Восстанавливаем метку на ответном трафике от сервера в локальной сети iptables -t mangle -A PREROUTING -i br-lan -j CONNMARK --restore-mark --mask 80
Шаг 3
Подключаемся через ssh или telnet к консоли роутера Ищем таблицу маршрутизации связанную с нашим backup интерфейсом sim1, в нашем случае это 103 pbr_sim1root@iRZ-Router:~# cat /etc/iproute2/rt_tablesС помощью редактора vi или uci-команд добавить в конфигурационный файл network секцию с правилом маршрутизации:
#
# reserved values
#
128 prelocal
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
101 pbr_wan
103 pbr_sim1
vi
config rule
option mark 80
option lookup 103
option priority 100
uci
uci add network ruleГде:
uci set network.@rule[-1].mark=80
uci set network.@rule[-1].lookup=103
uci set network.@rule[-1].priority=100
• mark - метка которой маркируется трафик
• lookup - номер таблицы по которой будет маршрутизироваться трафик
• priority - порядковый номер в списке правил (ip rule)
Текущую нумерацию правил можно посмотреть с помощью команды
ip ruleВажно, чтобы созданное выше правило имело значение priority меньше остальных.
Шаг 4
После добавления конфигурационного файла нужно перезапустить сеть/etc/init.d/network restart
Сервис поддержки клиентов работает на платформе UserEcho