Добрый день. Есть роутер, локальная сеть - 192.168.1.0/24. Подключено два провайдера.
Через второго провайдера (2.2.2.2) настроен dst-nat на веб-сервер внутри сети (192.168.1.89):
add action=dst-nat chain=dstnat dst-address=2.2.2.2\
dst-port=80 protocol=tcp to-addresses=192.168.1.89
Для доступа к этому веб-серверу из локальной сети по внешнему адресу настраиваю hairpin nat:
add action=masquerade chain=srcnat comment=hairpin dst-address=192.168.1.89 \
dst-port=80 protocol=tcp src-address=192.168.1.0/24
В итоге - доступ снаружи есть, изнутри - нет.
Узлы сети распределяются по провайдерам посредством маркирования исходящего от узлов трафика.
В какую сторону копать?
Hairpin NAT с 2 провайдерами
-
- Модератор
- Сообщения: 3416
- Зарегистрирован: 01 окт 2012, 14:48
Скорее всего дело в исходящей маркировке. Добавьте в исключение адрес сервера. С точки зрения роутера:
пакет от локального компа летит в интернет и его надо пометить. А помеченный пакет нужно отправить на шлюз соответствующего провайдера.
Возможно добиться результата можно меняя порядок ваших правил, но проще не маркировать пакет к серверу.
Это первое, что приходит в голову.
Попробуйте вообще отключить всю маркировку, временно. Пусть все идет тупо через основной шлюз. .
пакет от локального компа летит в интернет и его надо пометить. А помеченный пакет нужно отправить на шлюз соответствующего провайдера.
Возможно добиться результата можно меняя порядок ваших правил, но проще не маркировать пакет к серверу.
Это первое, что приходит в голову.
Попробуйте вообще отключить всю маркировку, временно. Пусть все идет тупо через основной шлюз. .
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
/ip firewall mangle
add action=mark-packet chain=prerouting comment="NAT Loopback detect" \
connection-state=new dst-address="ВАШ ВНЕШНИЙ АДРЕС" in-interface-list=LAN \
new-packet-mark=nat-loopback passthrough=yes
# in-interface-list можно заменить на адрес или адреса
/ip firewall nat
add action=src-nat chain=srcnat comment=\
"2.1.1 - NAT Loopback replace address" log-prefix="NAT 2.1.1" \
packet-mark=nat-loopback to-addresses="ВНУТРЕНИЙ АДРЕС РОУТЕРА"
# дальше все порты просто пробрасываем наружу как обычно
add action=mark-packet chain=prerouting comment="NAT Loopback detect" \
connection-state=new dst-address="ВАШ ВНЕШНИЙ АДРЕС" in-interface-list=LAN \
new-packet-mark=nat-loopback passthrough=yes
# in-interface-list можно заменить на адрес или адреса
/ip firewall nat
add action=src-nat chain=srcnat comment=\
"2.1.1 - NAT Loopback replace address" log-prefix="NAT 2.1.1" \
packet-mark=nat-loopback to-addresses="ВНУТРЕНИЙ АДРЕС РОУТЕРА"
# дальше все порты просто пробрасываем наружу как обычно