Настройка Hairpin NAT на RouterOS (Mikrotik)

В этой статье я приведу пример настройки 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

Вливайтесь в общение

2 комментария

Добавить комментарий

  1. Если у вас, к примеру, домашняя сеть и динамический внешний 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.