В этой статье я приведу пример настройки Hairpin NAT на RouterOS (Mikrotik).
Бываю случаи когда в локальной сети находится например сервер или видеорегистратор, порты к которому проброшены в фаерволе, но подключиться можно только из других сетей, а из локальной сети получается только по локальному IP адресу, но не по внешнему, что на WAN интерфейсе маршрутизатора.
Допустим WAN IP адрес маршрутизатора — 1.1.1.1, LAN — 192.168.88.1, IP адрес сервера — 192.168.88.254.
Допустим есть стандартное NAT правило (оставим его):
ip firewall nat add action=masquerade chain=srcnat comment="defconf: masquerade" out-interface=ether1
Теперь настроим «Hairpin NAT» (пробросим порт 22 для SSH):
ip firewall nat add action=dst-nat chain=dstnat dst-address=1.1.1.1 dst-port=22 protocol=tcp to-addresses=192.168.88.254
ip firewall nat add action=masquerade chain=srcnat dst-address=192.168.88.254 dst-port=22 out-interface=bridge protocol=tcp src-address=192.168.88.0/24
Готово.
Смотрите также мою статью:
Проброс портов на маршрутизаторах Mikrotik
Настройка удаленного доступа в маршрутизаторах Mikrotik
Если у вас, к примеру, домашняя сеть и динамический внешний IP (подразумевается, что вы уже настроили сервис типа noip.com), то такое правило не сработает.
В этом случае я нашел решение проблемы (используя возможность прописывать доменные имена с динамическим резолвингом в адрес-листах, которая появилась в недавних прошивках).
1. Создаем адрес-лист, к примеру, hairpin с записью доменного имени вашего сервера:
/ip firewall address-list add address=your.server.name list=»hairpin»
2. Меняем первое правило из статьи с учетом вышеописанного:
/ip firewall nat add action=dst-nat chain=dstnat dst-address-list=»hairpin» dst-port=80 protocol=tcp to-addresses=192.168.0.10
Вот такое незамысловатое решение проблемы динамического внешнего ip.
Спасибо!
MikroTik Hairpin NAT, доступ с локальной сети по внешнему динамическому ip
Спасибо тебе огромное, все работает