IT-канал, просто о сложном
https://interface31.ru
Купить рекламу:
https://telega.in/c/interface31
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
В современном мире мобильные пользователи давно стали нормой жизни. Сегодня в офисе, завтра на удаленке, послезавтра где-то «в полях». И все это время нужно иметь доступ к информационным ресурсам предприятия и желательно без лишних телодвижений.
Основная проблема, с которой сталкиваются пользователи, это изменение адресов ресурсов при переходе из внешней сети во внутреннюю. Если снаружи это некий публичный адрес, но внутри сети это будет какой-либо локальный ресурс, а может даже и несколько.
Организовать одновременный доступ к таким ресурсам можно несколькими способами. Но прежде несколько важных моментов. Сразу и навсегда забудьте про доступ через 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






