Windows dns root hints

Понятие DNS рекурсии

Посетителей: 22540 | Просмотров: 29259 (сегодня 2) Шрифт:

Основная концепция преобразования DNS названий достаточно проста. Каждому веб сайту присваивается уникальный IP адрес. Для доступа к веб сайту клиенту необходимо знать этот IP адрес сайта. Конечно, пользователь обычно не вводит IP адрес в своем браузере Web browser, а вместо этого вводит название домена сайта (domain name). Для доступа к запрашиваемому веб сайту браузер (Web browser) должен уметь преобразовывать название домена сайта (domain name) в соответствующий ему IP адрес. В этом месте в игру вступает DNS. На клиентском компьютере настроен адрес предпочтительного сервера DNS (preferred DNS server). Запрашиваемый URL передается на сервер DNS, а сервер DNS возвращает IP адрес для запрашиваемого веб сайта. После этого клиент может обратиться к запрашиваемому сайту.

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

Предпочтительный метод преобразования имени в адрес называется рекурсией (recursion). Если говорить в общем, то рекурсия это процесс, при котором сам сервер DNS отправляет запросы на другие сервера DNS, для того чтобы затем по обратной цепочке передать ответ клиенту, который совершил запрос. В общем, DNS сервер становится DNS клиентом. Некоторые администраторы предпочитают отключить рекурсию в целях увеличения производительности. Если рекурсия отключена, то сервер DNS использует процесс, называемый итерация (iteration), для обработки запроса.

Root Hints

Если сервер DNS не знает адрес запрашиваемого сайта, то он передает запрос другому серверу DNS. Для этого сервер DNS server должен знать IP адрес другого сервера DNS, которому он может передать запрос. Это задача корневых подсказок (root hints). Корневые подсказки предоставляют список IP адресов DNS серверов, которые находятся на корневом уровне (root level) иерархии DNS.

Хорошая новость заключается в том, что корневые подсказки (root hints) заранее настроены на DNS серверах, работающих под управлением операционной системы Windows Server 2003. Корневые подсказки (root hints) хранятся в файл под названием CACHE.DNS, который находится в папке \Windows\System32\Dns. Если вы хотите узнать, как выглядят корневые подсказки, то вы можете открыть этот файл в блокноте (Notepad). Как вы можете увидеть на рисунке A, файл с корневыми подсказками представляет собой ничто иное, чем обыкновенный текстовый файл, в котором попарно расположены DNS сервера и их IP адреса.

Рисунок A : Корневые подсказки соответствуют DNS серверам корневого уровня и их IP адресам

Теперь давайте поговорим о том, что такое корневые подсказки, что они делают, а также рассмотрим процесс рекурсии (recursion process) в действии. Диаграмма, изображенная на рисунке B иллюстрирует пример, о котором я хочу вам рассказать.

Рисунок B : Так работает DNS рекурсия (recursion)

Процесс начинается с того, что пользователь вводит URL в своем браузере (Web browser). В нашем примере давайте предположим, что пользователь ввел в качестве URL следующий адрес www.contoso.com. После этого запрос на преобразование названия домена Contoso.com в IP адрес передается на предпочтительный сервер DNS (preferred DNS server), который задан на рабочей станции. Очень часто в КЭШе предпочтительного сервера DNS (preferred DNS server) уже содержится запрашиваемая запись, но в этом примере давайте предположим, что на нашем предпочтительно сервере DNS нет информации относительно сайта CONTOSO.COM.

Читайте также:  Migrate windows server to vmware

Если предположить также, что включена DNS рекурсия, то сервер DNS server начинает работать в роли DNS клиента и отправляет серию итерационных запросов на другие сервера DNS. Я объясню разницу между итеративным (iterative) и рекурсивным (recursive) запросом позднее, а сейчас просто представьте, что в целом процесс считается рекурсивным потому, что клиент отправляет лишь один запрос на предпочтительный сервер DNS (preferred DNS server).

В любом случае, предпочтительный сервер DNS на рабочей станции не знает IP адреса веб сайта www.contoso.com, и не знает IP адрес сервера DNS, которые отвечает за домен Contoso.com (а поэтому знает IP адрес сайта www.contoso.com). Все что знает DNS сервер, лишь IP адрес DNS сервера корневого уровня (благодаря файлу с корневыми подсказками). Поэтому предпочтительный сервер DNS (preferred DNS server) передает запрос корневому серверу DNS (root DNS server).

Корневой сервер DNS (root DNS server) также не знает IP адрес веб сервера www.contoso.com. Он лишь знает IP адрес сервера DNS server, который отвечает за домен .COM domain. Корневой сервер root DNS server передает IP адрес сервера DNS, который отвечает за домен .COM domain предпочтительному серверу DNS. Предпочтительный сервер DNS после этого передает клиентский запрос на сервер DNS домена .COM. Сервер DNS домена .COM не знает IP адрес сайта www.contoso.com, но он знает IP адрес сервера DNS, который отвечает за домен Contoso.com. Сервер домена .com возвращает IP адрес сервера DNS, который отвечает за домен Contoso.com предпочтительному серверу DNS. Предпочтительный сервер DNS клиента, затем посылает запрос DNS серверу домена Contoso.com, который в свою очередь возвращает IP адрес запрашиваемого веб сайта. Этот адрес затем передается клиенту, который его запросил.

В этом примере необходимо обратить внимание на две вещи. Во-первых, как я уже объяснял ранее, клиент совершает лишь один запрос DNS. Он абсолютно ничего не знает об итеративных запросах сервер DNS. Во-вторых, сервер DNS, который отвечает за домен CONTOSO.COM вовсе не обязательно принадлежит Contoso. Обычно, этот сервер DNS принадлежит компании, занимающейся веб хостингом (Web hosting company) и отвечает за все сайты, принадлежащие этой компании. Именно поэтому предпочтительный сервер DNS (preferred DNS server) не может пропустить один шаг и сразу передать клиенту адрес DNS сервера, который отвечает за домен, по крайней мере не в нашем случае.

Если сервер DNS не поддерживает рекурсивные очереди (recursive queries), то клиент по умолчанию будет выполнять итеративные запросы (iterative queries).

Если вы заинтересованы в достижении лучшей производительности, то должны разрешить вашему серверу DNS отправлять рекурсивные запросы. Причина для этого заключается в том, что если клиенты вынуждены совершать итеративные запросы, то они могут потенциально отправлять три или четыре запроса на сервер DNS в рамках каждого запроса на преобразование имени в IP адрес. Сервер DNS должен обработать все эти запросы рекурсивные или итеративные, но если используется рекурсия (recursion), то большинство запросов на преобразование имен обрабатывается вашим сервером DNS и происходят вдали от вашей сети. В результате этого снижается трафик и улучшается производительность.

Читайте также:  Блокировка windows неверный пароль

Заключение

В этой статье я рассказал о том, как работает рекурсивная очередь DNS (recursive DNS query). Большинство серверов DNS поддерживают, как рекурсивные (recursive), так и итеративные запросы от клиентов. Если вы настроите ваш сервер DNS на поддержку рекурсивных очередей (recursive queries), то в общем сможете добиться лучшей производительности, т.к. благодаря этому можно добиться снижению количества запросов, которые должен совершить сетевой клиент.

Understanding DNS Forwarders and Root Hints in Windows DNS Server

You may have built DNS server to resolve names in your internal network, but you will still need to resolve external names. If you install DNS server role on Windows Server, it will perform query forwarding by default and therefore you can have external name resolution. This forwarding can be to a specific DNS server that you configured as the Forwarder, or by default it will go to the Root Hints. If you’re looking for Understanding DNS Forwarders and Root Hints in Windows DNS Server, continue reading through because in this article we’re going to breakdown the details for you.

Understanding DNS Forwarders and Root Hints in Windows DNS Server

When we talk about DNS Forwarders and Root Hints, that means we’re talking about query forwarding. A forwarding only occurs in case where the DNS server cannot resolve a query by using its own data and local cache. Usually this happens when a query comes in for an external name that is outside the configured zones in a DNS server. Knowing how DNS name resolution works is the key of understanding DNS Forwarders and Root Hints in Windows DNS Server. The following flowchart depicts the sequence for DNS name resolution:

On the above flowchart, you can see where DNS Forwarders and Root Hints takes part in a name resolution. DNS Forwarders itself is a list of DNS servers that can be used as a helper to resolve a query. DNS Forwarders can be another server in the local network or external network. The only thing to consider is the reachability between the servers.

Meanwhile, Root Hints is a list of authoritative name servers for the root DNS names in the internet. On the above flowchart, you can see Root Hints is the last resort for name resolution. DNS Server will contact Root Hints only when it no Forwarders available or when Forwarders cannot resolve the query. This makes the process of name resolution using Root Hints to be longer. It is due to the fact that using Root Hints must wait for the result from other process. Not to mention the delay and latency in the connectivity, as Root Hints is globally utilized by pretty much every DNS server on the internet.

From end-user perspective, forwarding to DNS Forwarders and forwarding to Root Hints are resulting in the same result. However, as you can see above that DNS Forwarders and Root Hints works a bit differently in handling query. DNS Forwarder handles incoming query in recursive manner. This means when the Forwarder receives a forwarded query, it will perform lookup on behalf of the first DNS server. Meanwhile, Root Hints always works in iterative manner. This means Root Hints will only give reference to an authoritative server for a name and let the first DNS server query the reference server directly. Both method works in a loop until answer to a query can be decided found/not found.

Читайте также:  Wireless lan broadcom wireless lan driver windows 10

Working with DNS Forwarders and Root Hints in Windows DNS Server

Usually it is the administrator who specify Forwarders in the DNS server configuration. To configure DNS Forwarders in Windows DNS Server, you can go to the DNS server properties in Forwarders tab.

On the other hand, usually Root Hints already preconfigured and is a standard for every DNS server. To see list of the Root Hints, you can go to the same server properties in the Root Hints tab.

Dealing with DNS Forwarders and Root Hints are something that you can’t avoid as a system administrator. Therefore, understanding DNS Forwarders and Root Hints in Windows DNS Server is essential.

Updating Windows DNS Server root hints

Somehow I came upon the root hints of my Windows DNS Server today and had a thought to update it. Never done that before so why not give it a shot?

You can find the root hints by right clicking on the server and going to the ‘Root Hints’ tab.

Or you could click the server name in DNS Manager and select ‘Root Hints’ in the right pane. Either ways you get to the screen above. From here you can add/ remove/ edit root server names and IP addresses. If you want to update this list you can do so by each entry, or click the ‘Copy from Server’ button to update the list with a new bunch of entries. Note that ‘Copy from Server’ does not over-write the list, so you are better off removing all the entries first and then doing ‘Copy from Server’.

The ‘Copy from Server’ option had me stumped though. You can find the root hints on the IANA website – there’s an FTP link to the file containing root hints, as well as an HTTP link (http://www.internic.net/domain/named.root). I thought simply entering this in the ‘Copy from Server’ window should suffice but it doesn’t. Notice the OK button is grayed out.

The window says it wants a server name or IP address so I removed everything above except the server name and then clicked OK. That looked like it was doing something but then failed with a message that it couldn’t get the root hints. The message said the specified DNS server could not be contacted so that gave me the idea it was looking for a DNS server which had the root hints.

So I tried inputting the name of one of my DNS servers. This DNS server knows of the root servers because it has them already. (You can verify that a server knows of the root hints via nslookup as below).

Оцените статью