Теперь у нас из конфигурация работает правильно. Схема для понимания:
Работа схемы
Этап 1
Компьютер с адреса 192.168.0.5 пытается установить соединение с адресом 1.1.1.1 по 80 порту и отправляет пакет на маршрутизатор.
Этап 2
На маршрутизаторе срабатывает правило dst-nat, в результате чего адрес назначения пакета меняется на 192.168.0.10 и правило src-nat, где адрес источника пакета меняется на адрес интерфейса маршрутизатора (192.168.0.1). После чего пакет отправляется на www-сервер 192.168.0.10.
Этап 3
Узел 192.168.0.10 получив пакет с адресом источника 192.168.0.1 (адрес маршрутизатора), определяет, что они оба находятся в одной локальной сети и отвечает ему. В результате чего пакет попадает на маршрутизатор
Этап 4
Connection Tracker маршрутизатора получив такой пакет выполняет обратное преобразование адресов. Компьютер получает ожидаемый ответ с адреса 1.1.1.1
Вот такая схема трансляции адресов и является Hairpin NAT.
Нужно отметить что у схемы есть недостаток. Заключается он в том, что публикуемый сервер будет получать запросы от хостов локальной сети с адреса маршрутизатора. Что не всегда хорошо. Например, если Вы так опубликуете прозрачный proxy-сервер, вряд ли у вас получится собрать нормальную статистику.
Альтернативой такой схемы могут служить.
1. Вынос публикуемых, или вообще всех серверов в отдельную подсеть. 2. Использование так называемого split-dns. Когда компьютер находясь снаружи сети на запрос www.mydomain.com получит адрес 1.1.1.1, а находясь внутри сети на этот же запрос получит адрес 192.168.0.10.
На этом я заканчиваю цикл статей про NAT на MikroTik. Надеюсь, что сумел описать все основные моменты работы NAT на маршрутизаторах MikroTik. Буду рад комментариям!
Статья написана сертифицированным тренером MikroTik Князевым И.Н., технический директор.
Эти советы я взял отсюда https://qna.habr.com/q/271690
Подскажите пожалуйста что мне делать.
Респектос за комментарий! Помог разобраться.
ip firewall nat add action=dst-nat chain=dstnat dst-address=1.1.1.1 dst-port=80 protocol=tcp to-addresses=192.168.0.10
айпи адрес назначения поменяется.
поэтому в следующем правиле надо указывать в качестве dst-address айпи нашего сервера в локалке
add action=masquerade chain=srcnat dst-address=192.168.0.10 dst-port=80 protocol=tcp src-address=192.168.0.0/24
1. port 25 idiot na ip1
2. port 80/443 na ip 2
3. port xxx na ip 3
tut nikak s splitDNS ne vykrutishsia.
Hairpin NAT mozhno nastroit namnogo prosche, chem pokazana v etoj statje. eto vygliadit prosto tak:
/ip firewall nat
add action=masquerade chain=srcnat out-interface=wan
add action=masquerade chain=srcnat dst-address=192.168.10.0/24 out-interface=vlan0-bridge src-address=192.168.10.0/24
interface=wan smotri na naruzhu
interface=vlan0-bridge vnutrennij LAN
192.169.10.0/24 ip subnet na vlan0-bridge
vot i vsio. porty mozhno forwardit seichas takim sposobom:
add action=dst-nat chain=dstnat dst-address=!192.168.10.254 dst-address-type=local dst-port=80 protocol=tcp to-addresses=192.168.10.10 to-ports=80
add action=dst-nat chain=dstnat dst-address=!192.168.10.254 dst-address-type=local dst-port=443 protocol=tcp to-addresses=192.168.10.11 to-ports=443
192.168.10.254 v etom sluchaje default gateway, a .10 i .11 vnutrennije resursy