<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Проблемы с конфигурацией NAT Hairpin]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Проблемы с конфигурацией NAT Hairpin форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Fri, 31 Jul 2026 01:54:21 -0400</pubDate>
		<item>
			<title>Проблемы с конфигурацией NAT Hairpin</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387563">Проблемы с конфигурацией NAT Hairpin</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			@jaclaz Спасибо, с форматированием всё получилось. Я сейчас изучаю эти две ссылки. Если я снова ничего не выложу, значит, я всё ещё не разобрался и буду ждать, пока другие ГУРУ посмотрят. <br />
			<i>02.05.2025 10:18:00, wbarnard81.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387563</link>
			<guid>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387563</guid>
			<pubDate>Fri, 02 May 2025 10:18:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с конфигурацией NAT Hairpin</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387562">Проблемы с конфигурацией NAT Hairpin</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			На будущее: иногда блок кода отображается некорректно, если он слишком «близко» к предыдущему. В таких случаях просто добавь один-два переноса строки после предыдущего блока кода. Чтобы сохранить всю информацию как можно более связной, ветка с очень полезными данными и пост от Sob, на который я изначально ссылался, всё ещё доступна через Wayback Machine: <noindex><a href="https://web.archive.org/web/20240105203616/https://forum.mikrotik.com/viewtopic.php?t=179343" target="_blank" rel="nofollow" >https://web.archive.org/web/20240105203616/https://forum.mikrotik.com/viewtopic.php?t=179343</a></noindex> <noindex><a href="https://web.archive.org/web/20240105203616/https://forum.mikrotik.com/viewtopic.php?t=179343#p892135" target="_blank" rel="nofollow" >https://web.archive.org/web/20240105203616/https://forum.mikrotik.com/viewtopic.php?t=179343#p892135</a></noindex> Пока, надеюсь, кто-то из экспертов по правилам hairpin скоро проверит твою конфигурацию, можешь сам с ней ознакомиться. <br />
			<i>02.05.2025 08:28:00, jaclaz.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387562</link>
			<guid>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387562</guid>
			<pubDate>Fri, 02 May 2025 08:28:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с конфигурацией NAT Hairpin</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387561">Проблемы с конфигурацией NAT Hairpin</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Всем доброе утро. Извиняюсь, что пишу в старой ветке, но именно тут мне лучше всего объяснили hairpin NAT, а всё равно у меня не получается это настроить. Я читал и другие темы, но всё равно не получается разобраться. Мой роутер настроен через Quick Set. Есть несколько статических DHCP-записей, но кроме этого и изменений в /ip firewall — всё должно быть стандартно.<br /><br />Все правила NAT: &nbsp;<br />/ip firewall nat &nbsp;<br />add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN &nbsp;<br />add action=dst-nat chain=dstnat comment="HTTP to NPM" dst-address=!192.168.1.1 dst-address-type=local dst-port=80 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.20 to-ports=80 &nbsp;<br />add action=dst-nat chain=dstnat comment="HTTPS to NPM" dst-address=!192.168.1.1 dst-address-type=local dst-port=443 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.20 to-ports=443 &nbsp;<br />add action=masquerade chain=srcnat dst-address=192.168.1.0/24 src-address=192.168.1.0/24<br /><br />Все правила фильтрации: &nbsp;<br />/ip firewall filter &nbsp;<br />add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked &nbsp;<br />add action=accept chain=forward comment="port forwarding" connection-nat-state=dstnat &nbsp;<br />add action=accept chain=forward in-interface=bridge out-interface=ether1 &nbsp;<br />add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid &nbsp;<br />add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp &nbsp;<br />add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1 &nbsp;<br />add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN &nbsp;<br />add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec &nbsp;<br />add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec &nbsp;<br />add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related hw-offload=yes &nbsp;<br />add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked &nbsp;<br />add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid &nbsp;<br />add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN<br /><br />Так как я уже перепробовал кучу вариантов, возможно, что-то здесь не так. Но, пожалуйста, подскажите, что я делаю не так.<br /><br />P.S. Извиняюсь, не понимаю, почему второй блок кода отображается некорректно. Для удобства я заменил его на цитату. <br />
			<i>02.05.2025 06:54:00, wbarnard81.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387561</link>
			<guid>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387561</guid>
			<pubDate>Fri, 02 May 2025 06:54:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с конфигурацией NAT Hairpin</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387560">Проблемы с конфигурацией NAT Hairpin</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Octarine, важно понимать ограничения вашего подхода. &nbsp;<br />/ip nat add chain=dstnat action=dst-nat to-addresses=&lt;192.168.88.XX - server-lanip&gt; protocol=tcp dst-address=!192.168.88.1 dst-address-type=local dst-port=80 &nbsp;<br />add chain=srcnat action=masquerade src-address=192.168.88.0/24 dst-address=192.168.88.0/24 &nbsp;<br /><br />По сути, вы говорите роутеру делать destination NAT на локальный интерфейс для локальных пользователей, но при этом запрещаете роутеру использовать интерфейс локальной подсети (192.168.88.1). Остаётся только один другой локальный интерфейс — WAN. &nbsp;<br /><br />ОГРАНИЧЕНИЕ Очевидное: роутер может видеть только локальный WAN-интерфейс, потому что вы запретили единственный интерфейс локальной подсети. Теперь это не сработает, если у вас две подсети или больше, потому что роутер тогда выберет другую подсеть. В этом случае придётся создавать dst-address-list для двух и более подсетей. &nbsp;<br />Возможно, можно составить список локальных шлюзов подсетей, чтобы обойти эту проблему… &nbsp;<br /><br />Скрытое ОГРАНИЧЕНИЕ: если у вас несколько WAN-интерфейсов, тогда неизвестно, как будут влиять другие правила — манглинг, специальные таблицы, аварийное переключение и прочее. <br />
			<i>20.10.2024 17:05:00, anav.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387560</link>
			<guid>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387560</guid>
			<pubDate>Sun, 20 Oct 2024 17:05:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с конфигурацией NAT Hairpin</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387559">Проблемы с конфигурацией NAT Hairpin</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Верно, hairpin NAT обычно применяется, когда пользователи находятся в той же подсети, что и сервер, но пытаются обратиться к серверу через DYNDNS-адрес роутера (то есть по WANIP роутера, так же, как это делают внешние пользователи), вместо того чтобы просто использовать LANIP сервера. В лучшем случае, если нельзя использовать LANIP, просто переведите пользователей или сервер в другую подсеть или VLAN — и hairpin NAT больше не понадобится. <br /><br />Другой вариант — использовать Wireguard VPN, тогда входящие пользователи смогут безопасно подключаться к LAN-серверу, и открывать порты не потребуется. Ещё один вариант — Zerotier. <br /><br />Если по какой-то причине это невозможно, убедитесь, что выполняется одно из следующих условий:<br /><br />A. Правила цепочки forward для перенаправления портов изменены с дефолтных:<br /><br />add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN<br /><br />TO<br /><br />add action=accept chain=forward comment="internet access" in-interface-list=LAN out-interface-list=WAN<br /><br />add action=accept chain=forward comment="port forwarding" connection-nat-state=dstnat<br /><br />add action=drop chain=forward comment="Drop all else"<br /><br />Мы включаем перенаправление портов с отдельным, чётко определённым правилом, которое позволяет трафик перенаправления портов и из LAN, и из WAN. Это заменяет подход «принимать всё, сбрасывать что-то» на более безопасный — разрешать интернет, порт-форвардинг, а всё остальное сбрасывать.<br /><br />B. Убедитесь, что у вас есть правило source NAT, которое гарантирует, что исходный запрос возвращается по тому же пути, по которому пришёл, а не напрямую с сервера пользователю:<br /><br />add action=masquerade chain=srcnat src-address=serverSubnet dst-address=serverSubnet<br /><br />Эти диаграммы отлично это иллюстрируют: <noindex><a href="https://gregsowell.com/?p=4242" target="_blank" rel="nofollow" >https://gregsowell.com/?p=4242</a></noindex><br /><br />++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<WBR/>&shy;++++++++++++++++++++++<br /><br />Другие сложности возникают, если WANIP — динамический публичный IP, а не статический, но это не тема данной ветки.<br /><br />++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<WBR/>&shy;++++++++++++++++++++++<br /><br />Ещё один вариант, как отметил Tangent: «Hairpinning — штука сложная. Лично я его избегаю. На одном из роутеров MT настраиваю локальный DNS-сервер для LAN и даю внутренним хостам внутренние имена». Это позволяет решить задачу для внутреннего трафика (и тогда правило hairpin NAT с srcnat не потребуется) с помощью DNS (благодаря rextended и Zerobyte).<br /><br />Порядок применения DNS в роутере таков, и мы используем это себе на пользу:<br /><br />a. сначала статические записи, &nbsp;<br />b. потом статические с использованием regexp, &nbsp;<br />c. потом остальные...<br /><br />/ip dns static add address=192.168.88.68 regexp="(^|www\.)myserver\.net$" ttl=5m<br /><br />Это правило говорит роутеру, что для любого DNS-запроса на домен <noindex><a href="http://www.myserver.net" target="_blank" rel="nofollow" >www.myserver.net</a></noindex> не нужно обращаться к динамическим, кэшированным или внешним DNS-серверам — запрос сразу направляется на LAN IP нашего сервера.<br /><br />(i) Убедитесь, что в /IP DNS включена опция «allow remote request», &nbsp;<br />(ii) Проверьте, чтобы не было других статических записей с более высоким приоритетом, &nbsp;<br />(iii) И подтвердите, что весь входящий трафик (или хотя бы из WAN) сбрасывается — DNS запросы с WAN никогда не должны быть разрешены. <br />
			<i>20.10.2024 16:40:00, anav.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387559</link>
			<guid>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387559</guid>
			<pubDate>Sun, 20 Oct 2024 16:40:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с конфигурацией NAT Hairpin</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387558">Проблемы с конфигурацией NAT Hairpin</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо за этот пост, я несколько часов боролся с этой проблемой hairpinning, и ничто не работало. Совет для тех, кто столкнется с этим позже: если вы изначально настроили проброс портов через QuickSet, то нужно ДОБАВИТЬ правило маскарадинга, которое видно выше, после правила маскарадинга defconf (оно обрабатывает возвращающиеся пакеты, а defconf — исходящие). Также нужно ИЗМЕНИТЬ правило dst-nat, созданное QuickSet, содержащее in-interface-list=WAN, на правило dst-nat, которое указано выше (это позволит форвардить порт не только с WAN, но и внутри LAN). <br />
			<i>20.10.2024 09:20:00, lmagyar.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387558</link>
			<guid>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387558</guid>
			<pubDate>Sun, 20 Oct 2024 09:20:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с конфигурацией NAT Hairpin</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387557">Проблемы с конфигурацией NAT Hairpin</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			На прошлой неделе я решил заняться хобби — настроить собственный сайт на selfhosted. Документация по настройке DNAT сработала идеально, и адрес сайта отлично разрешается вне моей локальной сети, но вот с пониманием hairpin NAT возникли сложности. В документации пример такой:<br /><br />/ip firewall nat add chain=dstnat action=dst-nat dst-address=172.16.16.1 dst-port=443 to-addresses=10.0.0.3 to-ports=443 protocol=tcp &nbsp;<br />/ip firewall nat add action=masquerade chain=srcnat dst-address=10.0.0.3 out-interface=LAN protocol=tcp src-address=10.0.0.0/24<br /><br />Здесь 10.0.0.3/24 — это сервер, а 172.16.16.1/24 — публичный IP роутера. Первая часть у меня уже работает, но что такое 10.0.0.0/24? Насколько я понимаю, суть hairpin в том, чтобы скрыть источник возвращающихся пакетов с сервера под тот же IP, с которого пришел исходный запрос. Однако я толком этого не понимаю. Когда я добавляю правило hairpin на роутере, что должно быть в src-address: 10.0.0.0, 192.168.88.0 или что-то другое? И почему именно так, если не сложно объяснить.<br /><br />Роутер — новый hAP ac3 с заводским RouterOS. Есть стандартное правило masquerade и проброшенный порт. <br />
			<i>17.01.2024 22:31:00, OctarineGlow.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387557</link>
			<guid>http://mikrotik.moscow/forum/forum57/84534-problemy-s-konfiguratsiey-nat-hairpin/message387557</guid>
			<pubDate>Wed, 17 Jan 2024 22:31:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
