У меня есть домен (скажем, example.com) и статический IP (скажем, 192.168.1.200) от моего интернет-провайдера. Запись домена указывает на этот статический IP-адрес. Я использовал переадресацию портов в маршрутизаторе для маршрутизации всех запросов на сервер в моей локальной сети (10.0.0.10). Теперь, когда я открываю свой домен, контент обслуживается с сервера в моей локальной сети. На данный момент все работает идеально.
Теперь я пытаюсь настроить внутренний DNS для своей среды разработки (скажем, dev.example.com). Когда я получаю доступ к нему в своей локальной сети, трафик должен обслуживаться из моей локальной сети. Это сэкономит мне время и трафик.
При этом он должен быть доступен и из внешней сети.
Я мог бы добиться этого, добавив записи в файл хоста, когда я нахожусь в своей локальной сети, но это плохая идея, так как будет задействовано много пользователей.
Как я могу этого добиться?
TL; DR: не используйте DNS для обхода маршрутизации. Пусть роутер разводит, так экономичнее.
Пожалуйста, пересмотрите свою архитектуру. В только то, что вы пытаетесь сохранить, - это один переход к маршрутизатору *. Это микросекунды. Вы пытаетесь пожертвовать удобством использования и предсказуемостью DNS, чтобы сэкономить микросекунды.
Единственный случай вашего умственного замешательства «Я думал, что это доменное имя разрешено там, но я забыл, что оно разрешено здесь, да!» вероятно, будет стоить вам во много раз больше, чем все эти накопленные микросекунды. И это воля случится в будущем.
DNS с разделенным представлением является обузой. Каждый случай, который я видел, всегда сопряжен с риском ошибок и всегда добавляет один шаг по устранению неполадок. К сожалению, практически невозможно искоренить его после внедрения (это основная причина, по которой он так широко распространен в крупных организациях; это и старый добрый карго-культ).
Допустим, вы устраняете проблему с подключением. С чистым унитарным DNS вы спрашиваете: «Какой URL вы использовали?». При использовании DNS с разделенным представлением вам нужно спросить: «Какой URL-адрес вы использовали? И, кстати, каков был IP-адрес фактического компьютера, который разрешил имя для этого URL-адреса?» На этот вопрос ответить гораздо сложнее (в будущем будьте готовы к тому, что прокси и цепочки прокси начнут расти). Это не имеет значения что только несколько имен фактически разрешаются на разные IP-адреса, потому что вам нужно изучить конфигурацию разделенного представления для каждый такой случай, что касается даже зоны split-view DNS. Таким образом, вы либо проклинаете свой DNS в таких случаях, либо позволяете маршрутизатору выполнять свою работу. Это аппаратное обеспечение, поэтому оно вряд ли вас проклянет.
[* Да, вы можете быть обеспокоены также про пропускную способность. Я думаю, это не настоящая проблема: вы, вероятно, не насыщаете интерфейс маршрутизатора в среде разработки. Если вы насыщаете его в среде разработки (скажем, это 100 Мбит / с), тогда нет никакого смысла рассматривать тот же маршрутизатор для производственных пользователей - вам крайне необходимо обновить маршрутизатор.]
Я бы установил внутренний DNS-сервер, который будет авторитетным для чего-то вроде example.dev (вместо использования поддомена dev.example.com).
Используйте внутренний DNS в качестве преобразователя для внутренних пользователей.
Пока внутренний DNS является подходящим преобразователем для всего домена, о котором он не знает (например, example.com), все будет работать нормально.