Root hints dns что это
Система доменных имен (DNS) — это распределенная база данных, представляющая пространство имен. Пространство имен содержит все сведения, необходимые любому клиенту для поиска любого имени. Любой DNS-сервер может отвечать на запросы о любом имени в своем пространстве имен. DNS-сервер отвечает на запросы одним из следующих способов:
Важно понимать основные функции DNS, такие как делегирование, рекурсивное разрешение имен и зоны DNS, интегрированные с Active Directory, так как они непосредственно влияют на структуру логической структуры Active Directory.
Дополнительные сведения о DNS и доменные службы Active Directory (AD DS) см. в статьях DNS и AD DS.
Делегирование
Чтобы DNS-сервер отвечал на запросы о любом имени, он должен иметь прямой или косвенный путь к каждой зоне в пространстве имен. Эти пути создаются с помощью делегирования. Делегирование — это запись в родительской зоне, которая содержит список серверов имен, заслуживающих доверия для зоны на следующем уровне иерархии. Делегирование позволяет серверам в одной зоне ссылаться на клиенты на серверы в других зонах. На следующем рисунке показан один пример делегирования.
Делегирование использует два типа записей. Запись ресурса сервера имен (NS) предоставляет имя заслуживающего доверия сервера. Записи ресурсов узла (A) и узла (AAAA) предоставляют IP-адреса версии 4 (IPv4) и IP версии 6 (IPv6) доверенного сервера.
Эта система зон и делегирований создает иерархическое дерево, представляющее пространство имен DNS. Каждая зона представляет слой в иерархии, а каждое делегирование представляет ветвь дерева.
Используя иерархию зон и делегирований, корневой DNS-сервер может найти любое имя в пространстве имен DNS. Корневая зона включает делегирования, которые непосредственно или косвенно ведут ко всем остальным зонам в иерархии. Любой сервер, который может запрашивать корневой сервер DNS, может использовать сведения в делегированиях для поиска любого имени в пространстве имен.
Защита системных настроек сервера DNS для публикующего сервера
На этом этапе вы уже знаете, что при публикации DNS сервера, вы получаете публикующий сервер (DNS advertiser). Пользователи из Интернета, скорее всего, получат анонимный доступ к подобным серверам, поскольку аутентификация не предусмотрена в мерах безопасности для разрешения имен DNS. Поэтому ваши DNS сервера вполне могут быть атакованы анонимным Интернет-пользователем, и вследствие этого вам стоит предпринять некоторые действия для того, чтобы заблокировать системные настройки вашего DNS сервера. Стоит отметить, что атаки будут идти только с 53-их портов UDP и TCP, потому что ваше правило публикации DNS Server Publishing Rule не позволит никаких других подключений к DNS серверу.
На рисунке, приведенном ниже, показано диалоговое окно Properties одного из моих публикующих серверов. Советуют иметь по меньшей мере два авторитетных DNS сервера для двух разных подсетей для большей отказоустойчивости. Однако, при публикации DNS серверов это не имеет особого смысла, так как если ваше соединение с Интернетом оборвется, не будет иметь значения, есть ли где-то еще один DNS сервер, способный разрешать имена, поскольку даже если внешний пользователь сможет разрешить имя, он в любом случае не сможет получить доступа к ресурсам, ведь соединения с Интернетом нет.
Тем не менее, полезно иметь как минимум два DNS сервера на тот случай, если один из них выйдет из строя. Обычно я устанавливаю два выделенных сервера разрешения имен в зону DMZ с анонимным доступом. Это не единственный способ сделать это, как вы увидите позже, когда мы будем говорить о различных методах публикации DNS.
Находясь в диалоговом окне Properties для сервера DNS, на вкладке Interfaces, убедитесь, что вы отметили условие Only the following IP addresses и затем выберите определенный IP адрес, который DNS server будет прослушивать в поисках входящих запросов DNS. Это мелочь, но я обнаружил, что она может предотвратить некоторые потенциальные сложности в устранении неполадок в тех случаях, когда к DNS серверу прикреплено несколько IP адресов (как в случае, когда DNS сервер также поддерживает множество веб-страниц, прослушивающих разные IP адреса).
На вкладке Forwarders, вам нужно убрать галочку рядом с опцией Enable forwarders. Причиной для этого служит то, что мы не хотим сделать наши публикующие серверы серверами разрешения имен. Если позволить серверу стать сервером разрешения имен, он откроется для потенциальных атак, которые были бы невозможны, будь он только публикующим сервером. Таким образом, это предотвращает использование DNS сервера для разрешения имен – почему вы должны предоставлять эти сервисы каждому встречному и позволять ему использовать вашу сеть? Он вполне может воспользоваться собственными серверами или подобным сервером своего провайдера.
На закладке Advanced нам нужно отметить опции Disable recursion и Secure cache against pollution. Опция Disable recursion запрещает DNS серверу разрешать те имена, для которых он не является авторитетным. Иначе говоря, если сервер не может разрешить имя, используя записи ресурса (Resource Records), настроенные на сервере, то DNS запрос не будет выполнен. Опция Secure cache against pollution не позволяет атакующим засорить кэш DNS сервера, хоть это и так технически невозможно, когда рекурсия отключена. Однако я все равно использую эту опцию, с ней мне как-то спокойнее (теперь я заговорил как настоящий админ-железячник!)
На закладке Root Hints показан список корневых серверов DNS в Интернете. Они используются, когда DNS серверу нужно выполнить рекурсию. Раз уж мы не хотим, чтобы наши публикующие серверы выполняли рекурсию, почему бы нам не убрать все корневые серверы из списка, и тем самым не избавиться от искушения ее включить? Это неплохая идея, и все, что вам надо сделать, это всего лишь выделить все корневые серверы в списке и нажать кнопку Remove. Когда это будет сделано, ваша закладка Root Hints должна будет выглядеть как моя на рисунке, приведенном ниже.
На данном этапе наши системные настройки DNS сервера защищены так, как только мы можем это сделать. Заметьте, для этого примера я использовал серверWindows DNS, который работает превосходно и стабилен настолько, насколько это возможно (Он был запущен у меня около года и я перезагружал его лишь один раз, когда я устанавливал обновление, связанное со службами DNS). Однако вам необязательно использовать сервер Windows DNS. Любой сервер подходит, и если вы хотите сэкономить, вы легко можете использовать общедоступный DNS сервер. Просто убедитесь в том, что вы настроили его так, что он не будет выполнять рекурсии любого типа и будет отвечать на запросы лишь для тех доменов и ресурсов, для которых он является авторитетным.
Прежде чем закончить сегодняшнее обсуждение, я хочу осветить одну проблему, которая никогда передо мной не стояла, но, на мой взгляд, это то, о чем необходимо рассказать, чтобы никто не был в замешательстве. Это проблема с передачами зон. Я встречал нескольких людей, которые считали, что когда они опубликовали свой публикующий сервер, им нужно включить передачу зон с DNS сервера внутренней сети к публикующему серверу, который чаще всего расположен в зоне DMZ. Меня никогда не касалась эта проблема потому что, что записи на вашем внутреннем DNS сервере никогда не должны быть те же, что и на публикующем.
Если вы позволите передачу зон с внутреннего сервера на публикующий, вы передадите частные записи о вашей внутренней сети на открытый DNS сервер, а это как раз то, чего делать не стоит! В общем, вам не нужно включать передачу зон с внутреннего DNS сервера на публикующий сервер.
Domain Name System (DNS) is a distributed database that represents a namespace. The namespace contains all of the information needed for any client to look up any name. Any DNS server can answer queries about any name within its namespace. A DNS server answers queries in one of the following ways:
It is important to understand the core features of DNS, such as delegation, recursive name resolution, and Active Directory-integrated DNS zones, because they have a direct impact on your Active Directory logical structure design.
For more information about DNS and Active Directory Domain Services (AD DS), see DNS and AD DS.
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)
Если предположить также, что включена DNS рекурсия, то сервер DNS server начинает работать в роли DNS клиента и отправляет серию итерационных запросов на другие сервера DNS. Я объясню разницу между итеративным (iterative) и рекурсивным (recursive) запросом позднее, а сейчас просто представьте, что в целом процесс считается рекурсивным потому, что клиент отправляет лишь один запрос на предпочтительный сервер DNS (preferred DNS server).
Если сервер DNS не поддерживает рекурсивные очереди (recursive queries), то клиент по умолчанию будет выполнять итеративные запросы (iterative queries).
Если вы заинтересованы в достижении лучшей производительности, то должны разрешить вашему серверу DNS отправлять рекурсивные запросы. Причина для этого заключается в том, что если клиенты вынуждены совершать итеративные запросы, то они могут потенциально отправлять три или четыре запроса на сервер DNS в рамках каждого запроса на преобразование имени в IP адрес. Сервер DNS должен обработать все эти запросы рекурсивные или итеративные, но если используется рекурсия (recursion), то большинство запросов на преобразование имен обрабатывается вашим сервером DNS и происходят вдали от вашей сети. В результате этого снижается трафик и улучшается производительность.
Разрешение имен с помощью корневых подсказок
Корневые подсказки позволяют любому DNS-серверу находить корневые серверы DNS. После того как DNS-сервер находит корневой DNS-сервер, он может разрешить любой запрос для этого пространства имен. На следующем рисунке показано, как DNS разрешает имя с помощью корневых подсказок.
В этом примере происходят следующие события:
DNS Resolvers(Сервера разрешения имен)
Ключевой идеей для понимания здесь является то, что внутренние пользователи никогда не должны использовать публикующие сервера для разрешения имен, а внешние пользователи никогда не должны использовать ваши внутренние сервера разрешения имен (исключением будут клиенты VPN, в том случае, если вы хотите, чтобы они использовали ваши внутренние DNS сервера для разрешения имен хостов во внутренней сети).
Причина, почему мы ни в коем случае не хотим, чтобы внутренние пользователи использовали наши публикующие сервера для разрешения имен, в том, что они могут публиковать имена лишь ваших ресурсов, находящихся в открытом доступе. Они не могут разрешать имена любого другого домена. Так что, даже если вы хотели использовать публикующие сервера для разрешения лишь ваших открытых ресурсов, вам бы пришлось позволить внутренним клиентам наталкиваться на брандмауэр ISA Firewall при попытке достичь внутренних ресурсов или тех, что находятся в зоне DMZ. Решение этой проблемы в использовании разделенной инфраструктуры DNS с тем, чтобы внутренние клиенты не натыкались на внешний интерфейс ISA Firewall, пытаясь добраться до хоста, находящегося в том же или другом сегменте сети под защитой ISA Firewall.
Причина, по которой мы ни в коем случае не хотим, чтобы внешние пользователи имели доступ к нашим внутренним DNS серверам, в том, что внешние пользователи анонимны, и мы не имеем представления о том, каковы их цели. Злонамеренные пользователи могут добыть полезную информацию о нашей внутренней сети, если они смогут получить доступ к нашим внутренним DNS серверам, и по этой причине никогда нельзя предоставлять им доступ к ним (исключая клиентов VPN, о чем я уже упоминал ранее).
Мы поговорим подробней о серверах разрешения имен в следующей статье. Эта статья о публикующих серверах.
Resolving names by using root hints
Root hints enable any DNS server to locate the DNS root servers. After a DNS server locates the DNS root server, it can resolve any query for that namespace. The following illustration describes how DNS resolves a name by using root hints.
In this example, the following events occur:
Recursive name resolution
Recursive name resolution is the process by which a DNS server uses the hierarchy of zones and delegations to respond to queries for which it is not authoritative.
In some configurations, DNS servers include root hints (that is, a list of names and IP addresses) that enable them to query the DNS root servers. In other configurations, servers forward all queries that they cannot answer to another server. Forwarding and root hints are both methods that DNS servers can use to resolve queries for which they are not authoritative.
Заключение
В этой статье я рассказал о том, как работает рекурсивная очередь DNS (recursive DNS query). Большинство серверов DNS поддерживают, как рекурсивные (recursive), так и итеративные запросы от клиентов. Если вы настроите ваш сервер DNS на поддержку рекурсивных очередей (recursive queries), то в общем сможете добиться лучшей производительности, т.к. благодаря этому можно добиться снижению количества запросов, которые должен совершить сетевой клиент.
В этой статье говорится о публикации DNS. В следующих я переключусь на проблемы с исходящими запросами DNS. Это две совершенно разные темы, и поэтому подробное обсуждение разницы между входящими и исходящими DNS поможет объяснить некоторые сложности, прежде чем мы перейдем к методам публикации.
Разрешение имен с помощью переадресации
Переадресация позволяет маршрутизировать разрешение имен через определенные серверы вместо использования корневых указаний. На следующем рисунке показано, как DNS разрешает имя с помощью переадресации.
Основная концепция преобразования 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), для обработки запроса.
Рекурсивное разрешение имен
Рекурсивное разрешение имен — это процесс, с помощью которого DNS-сервер использует иерархию зон и делегирований для реагирования на запросы, для которых он не является заслуживающим доверия.
В некоторых конфигурациях DNS-серверы содержат корневые указания (т. е. список имен и IP-адресов), которые позволяют им запрашивать корневые серверы DNS. В других конфигурациях серверы перенаправляют все запросы, которые они не могут ответить на другой сервер. Перенаправление и корневые указания — это оба метода, которые DNS-серверы могут использовать для разрешения запросов, для которых они не являются заслуживающими доверия.
Resolving names by using forwarding
Forwarding enables you to route name resolution through specific servers instead of using root hints. The following illustration describes how DNS resolves a name by using forwarding.
DNS Advertisers(Публикующие сервера).
При публикации DNS сервера, он располагается в защищенной сети ISA Firewall. Цель публикации DNS сервера в том, чтобы позволить внешним пользователям получить доступ к серверу при использовании DNS протокола для разрешения имен серверов Интернет. (Я не говорю про те варианты, где ISA Firewall - это внутренний брандмауэр, используемый для защиты того сегмента сети, который содержит DNS сервера). Когда вы публикуете DNS сервер, вы предоставляете информацию, которую Интернет-клиенты могут использовать для того, чтобы разрешать имена ваших доменов.
Это лишь один пример, как вы можете использовать DNS для внешних пользователей. Еще один случай – если вы хотите использовать свой собственный DNS, но ваш Интернет и почтовые серверы расположены где-то на другом хосте. В таком случае, вы настраиваете свой опубликованный DNS сервер на возврат IP-адресов хостера ваших серверов. То, что у вас размещаются ваши собственные сервисы DNS, не означает, что вы должны быть хостом для всех своих сервисов. В некоторых случаях вы будете размещать у себя ваши собственные службы (такие как Exchange), но передадите хостинг веб-сайта третьему лицу. В таком случае, ваш DNS сервер будет возвращать IP-адреса вашего хостера веб-сайта и IP-адреса внешнего интерфейса ISA Firewall, используемого для E-mail публикации.
Опубликованные DNS сервера не должны содержать частную информацию. Когда вы публикуете DNS сервер, вы делаете это для предоставления публичного доступа к ресурсам, находящимся под вашим контролем. Цель не в том , чтобы предоставлять информацию о ваших личных ресурсах. Никогда не публикуйте DNS сервер, содержащий ваши личные сетевые записи. DNS сервера такого типа также называются публикующими (DNS Advertisers) , так как они предоставляют информацию о ваших ресурсах, находящихся в открытом доступе.
Delegation
For a DNS server to answer queries about any name, it must have a direct or indirect path to every zone in the namespace. These paths are created by means of delegation. A delegation is a record in a parent zone that lists a name server that is authoritative for the zone in the next level of the hierarchy. Delegations make it possible for servers in one zone to refer clients to servers in other zones. The following illustration shows one example of delegation.
A delegation uses two types of records. The name server (NS) resource record provides the name of an authoritative server. Host (A) and host (AAAA) resource records provide IP version 4 (IPv4) and IP version 6 (IPv6) addresses of an authoritative server.
This system of zones and delegations creates a hierarchical tree that represents the DNS namespace. Each zone represents a layer in the hierarchy, and each delegation represents a branch of the tree.
By using the hierarchy of zones and delegations, a DNS root server can find any name in the DNS namespace. The root zone includes delegations that lead directly or indirectly to all other zones in the hierarchy. Any server that can query the DNS root server can use the information in the delegations to find any name in the namespace.
Заключение
В этой статье я рассказал о том, как работает рекурсивная очередь DNS (recursive DNS query). Большинство серверов DNS поддерживают, как рекурсивные (recursive), так и итеративные запросы от клиентов. Если вы настроите ваш сервер DNS на поддержку рекурсивных очередей (recursive queries), то в общем сможете добиться лучшей производительности, т.к. благодаря этому можно добиться снижению количества запросов, которые должен совершить сетевой клиент.
Основная концепция преобразования 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)
Если предположить также, что включена DNS рекурсия, то сервер DNS server начинает работать в роли DNS клиента и отправляет серию итерационных запросов на другие сервера DNS. Я объясню разницу между итеративным (iterative) и рекурсивным (recursive) запросом позднее, а сейчас просто представьте, что в целом процесс считается рекурсивным потому, что клиент отправляет лишь один запрос на предпочтительный сервер DNS (preferred DNS server).
Если сервер DNS не поддерживает рекурсивные очереди (recursive queries), то клиент по умолчанию будет выполнять итеративные запросы (iterative queries).
Если вы заинтересованы в достижении лучшей производительности, то должны разрешить вашему серверу DNS отправлять рекурсивные запросы. Причина для этого заключается в том, что если клиенты вынуждены совершать итеративные запросы, то они могут потенциально отправлять три или четыре запроса на сервер DNS в рамках каждого запроса на преобразование имени в IP адрес. Сервер DNS должен обработать все эти запросы рекурсивные или итеративные, но если используется рекурсия (recursion), то большинство запросов на преобразование имен обрабатывается вашим сервером DNS и происходят вдали от вашей сети. В результате этого снижается трафик и улучшается производительность.
Читайте также: