TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 9.03K subscribers
Post #4462 3.32K
​​Hairpin NAT, обратный прокси и двойной горизонт DNS

В современном мире мобильные пользователи давно стали нормой жизни. Сегодня в офисе, завтра на удаленке, послезавтра где-то «в полях». И все это время нужно иметь доступ к информационным ресурсам предприятия и желательно без лишних телодвижений.

Основная проблема, с которой сталкиваются пользователи, это изменение адресов ресурсов при переходе из внешней сети во внутреннюю. Если снаружи это некий публичный адрес, но внутри сети это будет какой-либо локальный ресурс, а может даже и несколько.

Организовать одновременный доступ к таким ресурсам можно несколькими способами. Но прежде несколько важных моментов. Сразу и навсегда забудьте про доступ через IP и дело даже не в том, что IP может поменяться, таким образом вы просто сильно ограничите себя в доступных вариантах.

Второй момент: один сервис – один поддомен, даже если все они ведут на один и тот же внешний адрес. Почему? Да потому что в сети это могут быть различные хосты и тогда у вас возникнут проблемы.

Теперь рассмотрим способы доступа из внешней сети к ресурсам внутренней.

🔹 Самый простой – это проброс портов. Но его нужно сделать правильно, в терминах Mikrotik это называется Hairpin NAT, но данная проблема актуальна и для любых иных систем.

Обычно проброс портов осуществляется правилом с DNAT, которое заменяет адрес назначение и (при необходимости) порт пакета. При этом адрес источника никаких преобразований не испытывает.

Пока мы находимся снаружи – это не доставляет проблем, внешний адрес источника всегда будет возвращен обратно шлюзу.

А вот после того, как мы попали внутрь и получили внутренний адрес начинаются проблемы. Внутренний сервер видит, что адрес источника, хоть мы и обращались на внешний адрес роутера, принадлежит внутренней сети и отправляет ответ напрямую.

Но клиент не ждет ответа от локального сервера и поэтому такой пакет будет отброшен и ничего работать не будет. Чтобы избежать такой проблемы следует выполнить дополнительно действие SNAT и заменить адрес источника пакета на внутренний адрес роутера.

Подробнее можно прочитать в нашей статье: Проброс портов и Hairpin NAT в роутерах Mikrotik

🔹 Обратный прокси. Это альтернативный метод, при котором на внешнем интерфейсе мы поднимаем прокси-сервер, который принимает запросы из внешней сети и перенаправляет их к внутренним узлам.

В этом случае нам не нужны дополнительные телодвижения для внутренней сети, так как клиентом для внутренних узлов является именно прокси-сервер и отвечать они будут именно ему, независимо от того, где находится клиентское устройство, внутри или снаружи.

Популярным обратным прокси является веб-сервер NGINX и пример такого его использования можно найти в статье: Настраиваем NGINX как обратный прокси для веб-публикации 1С:Предприятие

🔹 И наконец двойной горизонт DNS, сам по себе он не решает проблемы с доступом внешних клиентов, для них вам все равно придется настраивать проброс или обратный прокси, но позволяет не гонять локальный трафик через роутер.

Оба предыдущих метода подразумевают, что при нахождении клиента в локальной сети его трафик все равно проходит через роутер, что создает дополнительную лишнюю нагрузку, от которой лучше избавиться.

Именно это и дает нам двойной горизонт DNS, смысл его заключается в том, что внутренний DNS-сервер отдает для доменных имен сервисов внутренние адреса и клиент будет взаимодействовать напрямую с локальным сервером.

Оказавшись за пределами сети он получит от публичных DNS внешний адрес и будет работать через проброс или обратный прокси.

При использовании проброса вместе с двойным горизонтом DNS следует избегать проброса на другой номер порта. В этом случае лучше поменять порт самого сервиса.

С примером настройки двойного горизонта DNS можно ознакомиться здесь: Настраиваем двойной горизонт DNS (Split DNS) на роутерах Mikrotik
  • 👍 23
  • ❤ 9
  • 🔥 4
More from @interface31
  1. Oct 16, 2026Авторское право – не пустой звук Сегодня с одним нашим коллегой и молодым автором произоше…
  2. Oct 16, 2026Post #6891
  3. Oct 16, 2026Selectel обновил пользовательское соглашение. А что там? Правильно: 6.4. Исполнитель не не…
  4. Oct 16, 2026Post #6889
  5. Oct 15, 2026И еще немного про алиасы в PowerShell PowerShell предлагает большой набор встроенных алиас…
  6. Oct 15, 2026Post #6883
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →