Согласитесь, что нечасто сталкиваемся с термином Hairpin NAT MikroTik. Когда просишь коллегу объяснить смысл, а он в ответ предлагает погуглить. Но ситуация интересная: быстро найти хорошее объяснение данной модели непросто. Предлагаю разбираться вместе для чего придуман этот набор букв.

NAT

Обычное преобразование сетевых адресов всем известно, так? Если вдруг кто то забыл, напоминаю:

Для того, чтобы каждый компьютер мог обмениваться с другими устройствами в сети Интернет ему нужен “белый” IP адрес, коих всего в мире насчитывается 2^32=4294967296, но если исключить зарезервированные сети, то и того меньше. Так для выхода в сеть Интернет обычно провайдеры предоставляют ограниченное количество IPv4 адресов, то был разработан механизм подмены NAT внутренних IP адресов из сетей: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/24 на внешний IP адрес.

Но что, если мы хотим получить доступ к внутреннему ресурсу с использованием общедоступного IP? Может ли NAT помочь нам сделать это? Короткий ответ – ДА! Для этого есть несколько названий, но общими являются NAT Reflection, NAT Loopback, NAT Hairpinning или NAT-on-a-Stick. Как видно, разные поставщики называют эту технику разными именами, но концепция одна и та жетакая же.

Коллеги попросили настроить возможность обращения из локальной сети ко внутреннему корпоративному серверу по внешнему dns-имени. Настроил перенаправление портов на маршрутизаторе Mikrotik, который переводит каждый запрос с внешнего IP-адреса 12.12.12.12 порт 56789 на локальный IP-адрес и тот же порт.

Поскольку у меня задано DNS-имя (application.company.com) для внешнего IP-адреса WAN (12.12.12.12), я бы хотел, чтобы это правило также работало из внутренней сети:

172.16.222.11 -> 12.12.12.12:56789 -> 172.16.222.2:56789

Hairpin NAT Mikrotik

Настройка правил на маршрутизаторе для Hairpin NAT Mikrotik

Решение задачи состоит в том, чтобы переписать переадресацию порта на правило, чтобы не использовать in-interface=ether1-gateway, а dst-address-type=local:

/ip firewall nat
add chain=dstnat dst-address-type=local protocol=tcp dst-port=56789 \
  action=dst-nat to-address=172.16.222.2 to-port=56789

Затем добавим правило Hairpin NAT Mikrotik:

/ip firewall nat
add chain=srcnat src-address=172.16.222.0/24 \
dst-address=172.16.222.2 protocol=tcp dst-port=56789 \
out-interface=bridge-local action=masquerade

Задача выполнена, несогласных жду в комментариях.

Читать далее

Hairpin NAT Mikrotik — доступ ко внутреннему ресурсу по внешнему IP
Метки:
Adblock detector