Задать вопрос
@Let4ik_Russia

Как организовать доступ к web по доменному имени внутри лвс по внутреннему ip, а из интернета по внешнему?

В организации имеется роутер keenetic, порты проброшены до сервера, доменное имя резолвится, все отлично. Но доступ по доменному имени идет через внешку, даже из той же сети. Когда интернет недоступен, доступа к сервису нет ни у кого.
Хотелось бы настроить, чтобы внутри сети доменное имя ссылалось на внутренний адрес сервиса, а извне на внешний.
Помню, делал подобное силами dns сервера, но память подводит.
  • Вопрос задан
  • 3691 просмотр
Подписаться 3 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 8
martin74ua
@martin74ua
Linux administrator
bind view
из клиентской сети днс резолвит в один адрес, из мира - в другой
Ответ написан
Комментировать
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Простите, можете уточнить причем тут "память подводит"?
Я возможно не прав - но или есть понимание того, как работает DNS и тогда можно оценить в поддерживаемой или любой инфраструктуре - как обеспечить внутри резольвинг DNS имен определенной зоны на внутренние адреса, или понимания нет.
А вообще есть 3 обычных подхода - обычный дубликат зоны внутри с нужными изменениями, редактирование hosts на конечных машинах или split dns\split-brain dns.
Ответ написан
@Dupych
Все верно.
DNS сервере или роутере.
Запись А www.cheburashka.ru 192.168.1.5
и
Запись А cheburashka.ru 192.168.1.5
Ответ написан
Комментировать
@DAlgahro
Не все днс запросы можно заворачивать если просто его пописать.
Перехват пакетов роутером и редирект куда надо, профит) работает снаружи, работает внутри. Чуть чуть магии на роутере.
Ответ написан
Комментировать
forajump
@forajump
Бессистемный дезинтегратор
Вангую, речь идет о доменном имени 3 уровня, предоставленном производителем маршрутизатора, в домене 2 уровня keenetic.link, keenetic.pro или keenetic.name. Суть этой услуги — динамический DNS, она и предназначена только для доступа из интернета, вне зависимости от наличия публичного адреса IP. К примеру, предоставленное мне доменное имя в домене keenetic.pro разрешается следующим образом (имя заменено):
$ host myname.keenetic.pro
myname.keenetic.pro has address 185.162.93.96
myname.keenetic.pro has address 95.213.212.50
myname.keenetic.pro has IPv6 address 2a03:21c0:0:227::96
myname.keenetic.pro has IPv6 address 2a00:ab00:1103:20::50

Эти адреса IP находятся территориально в Санкт-Петербурге, я — нет. И просто так заменить доменное имя myname.keenetic.pro на один из этих адресов IP для доступа к моему маршрутизатору (и сети за ним) не получится. Потому что это не доменное имя, присвоенное моему маршрутизатору, а доменное имя, назначенное моей учетной записи на сервере KeenDNS, обновляющем ее при изменении публичного адреса IP, с которого мой маршрутизатор выходит в глобальную сеть, и сохраняет порт (PAT), чтобы пройти NAT оператора (при необходимости, если моему маршрутизатору не присвоен публичный адрес IP). При доступе по этому доменному имени сервер KeenDNS позволяет все это связать воедино, и предоставить удобный доступ из интернета к маршрутизатору Keenetic, на котором запущена соответствующая служба. Фактически это облачная услуга. Из локальной сети за маршрутизатором это все работать не будет.
67bd6dd122381350967715.png
67bd6fb609ea4545426134.png
Да и в принципе с точки зрения организации и безопасности корпоративной сети правильнее даже для одного и того же веб-сайта иметь отдельные внешний и внутренний (интранет) доменные имена, например: srv.example.com и srv.corp.example.com. При этом, внешняя доменная запись сопоставляется с публичным адресом IP маршрутизатора (в случае операторского NAT — с публичным адресом IP операторского NAT через службу динамического DNS), а внутренняя — с локальным адресом IP маршрутизатора (например, 192.168.1.1), если уж так угодно (для чего на маршрутизаторе будут свои правила маппинга/проброса портов). Правда в таком случае правильнее сопоставлять доменное имя с адресом IP самого веб-сервера в корпоративной ЛВС.
Ответ написан
Комментировать
@multisu
Это можно, но, сейчас множество клиентов и приложений используют свой doh и свой кеш, и обходят то, что резолвит локальный dns.
У себя в сети локально это наблюдаю, стационарные клиенты при настроенном cname, обращаются через локальный ip. А Android через ip который вернул 8.8.8.8, несмотря на нахождение в домашней сети.
С учётом этого, проще использовать 2 домена, lan и внешний.
Ответ написан
Комментировать
@sten65
cname если есть свой локальный dns server, если нет то host файл - но удручает хождение по хостам...
Ответ написан
@Archie_Bald0102
Распространенная ситуация. Задача решается применением технологии Split DNS, конкретно - использованием view statement В named.conf будет две секции: view "internal" и view "external". Если запрос идет от клиента во внутренней сети, ему выдается IP-адрес внутренней сети, если запрос от клиента внешнего - внешний адрес.
Более подробно - поиск google "Настройка Split DNS", материалов по теме - много.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы