Используя Windows 2008 R2 DNS:
У нас есть зона прямого просмотра:
somerealdomain.com
us-wil | A | 10.10.0.1
us-chi | A | 10.10.0.2
us-day | A | 10.10.0.3
us-sea | A | 10.10.0.4
us-sf | A | 10.10.0.5
us-ny | A | 10.10.0.6
give | A | 10.10.0.7
me | A | 10.10.0.8
test | A | 10.10.0.9
Если я сделаю NSLookup
для любого из них они, очевидно, правильно указывают на внутренний IP-адрес.
Теперь, если я хочу, чтобы какой-либо несуществующий поддомен разрешался с использованием внешнего DNS, как это предусмотрено нашими пересылками 8.8.8.8, 8.8.4.4 и т. Д., Как я могу это сделать? Скажем, я хочу разрешить get.somerealdomain.com, который не включен в зону прямого просмотра, но разрешается на общедоступных DNS-серверах?
Мне это нужно, поэтому, если кто-то ищет поддомен, который мы не включили в нашу зону прямого просмотра, он выйдет на общедоступный DNS-сервер и разрешится. Я предполагал, что это произойдет по умолчанию, как и с любым другим доменом, для которого мы не записали записи, но поскольку у нас есть somrealdomain.com в качестве зоны прямого просмотра, любой поддомен, для которого нет записанной записи, просто умирает вместо запроса внешнего DNS. Зачем? Как я могу это решить?
DNS требует наличия только одного экземпляра данной зоны (зона может обслуживаться несколькими уполномоченными серверами, но разрешен только один экземпляр зоны). Вы просто не можете заставить DNS-сервер сначала запросить локальную прямую зону (т.е. определенную локально, будь то главная или подчиненная зона), а затем запросить другой DNS-сервер, если он не найдет подходящей записи. Вы фактически переопределяете само определение somerealdomain.com на вашем локальном сервере (насколько это возможно, общедоступная версия этой зоны не существует).
Есть несколько обходных путей. Если у вас есть доступ к файлу общедоступной зоны (напрямую или путем передачи зоны), то подходящий сценарий может заполнить вашу локальную зону общедоступными записями, которые не замещаются локально. Это нетривиально и требует глубоких знаний.
Альтернативой может быть установка фильтрующего DNS-прокси перед вашим DNS-сервером - типа DNS-прокси, используемого для тестирования на проникновение, который можно настроить для пересылки запросов на разные DNS-серверы на основе содержимого запроса (или напрямую поддельных ответов, что является эффективно то, что вы делаете).
Наконец, вы можете использовать кеш DNS, такой как dnsmasq (тот же принцип, что и DNS-прокси с фильтрацией) - см. Это ответ для подробностей.
Обычно субдомены указываются из более высокого домена. Ваш DNS-сервер считает, что он является органом власти для somerealdomain.com. Когда получен запрос на subdomain.somerealdomain.com, он проверяет свои собственные записи и говорит: «Этого не существует. Я должен знать, что я отец».
Вам нужна запись, указывающая на DNS-сервер вашего поддомена. Обычно это включает делегирование поддомена (или подзоны) другому DNS-серверу. Я считаю, что вы щелкните правой кнопкой мыши домен в консоли DNS и выберите «New Delegation». Это также можно сделать с помощью команды dnscmd.