Служба доменных имен (DNS) | Microsoft Learn
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016
Система доменных имен (DNS) — это один из стандартных отраслевых протоколов, составляющих TCP/IP, и вместе DNS-клиент и DNS-сервер предоставляют службы разрешения имен имен компьютеров и пользователей.
Примечание
Помимо этого раздела, доступно следующее содержимое DNS.
- Новые возможности DNS-клиента
- Новые возможности DNS-сервера
- Руководство по сценарию политики DNS
В Windows Server 2016 DNS — это роль сервера, которую можно установить с помощью диспетчер сервера или команд Windows PowerShell. При установке нового леса и домена Active Directory DNS автоматически устанавливается с Active Directory в качестве сервера глобального каталога для леса и домена.
доменные службы Active Directory (AD DS) использует DNS в качестве механизма расположения контроллера домена. При выполнении любой из основных операций Active Directory, таких как проверка подлинности, обновление или поиск, компьютеры используют DNS для поиска контроллеров домена Active Directory. Кроме того, контроллеры домена используют DNS для поиска друг друга.
Служба DNS-клиента включена во все версии клиента и сервера операционной системы Windows и по умолчанию выполняется при установке операционной системы. При настройке сетевого подключения TCP/IP с IP-адресом DNS-сервера DNS-клиент запрашивает DNS-сервер для обнаружения контроллеров домена и разрешения имен компьютеров на IP-адреса. Например, когда сетевой пользователь с учетной записью пользователя Active Directory входит в домен Active Directory, служба DNS-клиента запрашивает DNS-сервер, чтобы найти контроллер домена для домена Active Directory. Когда DNS-сервер отвечает на запрос и предоставляет КЛИЕНТУ IP-адрес контроллера домена, клиент обращается к контроллеру домена и может начаться процесс проверки подлинности.
Службы DNS-сервера и DNS-клиента Windows Server 2016 используют протокол DNS, включенный в набор протоколов TCP/IP. DNS является частью прикладного уровня эталонной модели TCP/IP, как показано на следующем рисунке.
Что такое DNS протокол
СущностьDNS
DNS протокол (от английского словосочетания Domain Name System означает – система доменных имен) – это компьютерная четко распределенная система для получения информации о состоянии домена. Зачастую его используют для получения IP-адреса по имени определенного хоста (устройства или компьютера), получения необходимой информации о пройденном маршруте почты, которая обслуживается узлами для протоколов в домене.
Такая распределенная база данных системы доменных имен поддерживается благодаря иерархии DNS-серверов, которые взаимодействуют согласно определенному протоколу.
Основой для днс протокола служит представление об ее иерархической системе доменного адреса и зонах. Каждый отдельный сервер, которые в ответе за имя, может вполне делегировать свою ответственность на будущую часть домена другому серверу, что способствует возложению ответственности за популярность информации на серверы разнообразных предприятий, организация или людей, которые отвечают только за собственную часть доменного имени.
Три года тому назад в систему DNS протоколов начали внедрять средства проверки целостности данных, которые передаются, эти средства получили названием DNS Security Extensions (DNSSEC). Вся передаваемая информация не шифруется, но ее достоверность проходит проверку с помощью криптографических методов. Внедряемый стандарт DANE занимается передачей средствами DNS достоверными криптографическими данными, которые используются для того, чтобы установить безопасные и защищенные соединения прикладного и транспортного уровня.
Функции DNS
ДНС протокол можно охарактеризовать такими функциями:
Распределенность администрирования. Люди или разные организации несут ответственность за некоторые части иерархической структуры.
Распределенность сохраненной информации. Каждый отдельный сетевой узел обязательно должен сохранять не только те данные, которые находятся в его зоне ответственности, но и адреса корневых серверов.
Кэширование всей информации. Определенный узел способен сохранять некоторое количество данных из несобственной зоны ответственности для того, чтобы уменьшить сетевые нагрузки.
Иерархическая структура, которая объединяет все узлы в одно дерево, каждый узел может сам определить работу нижестоящих узлов, или просто передать их другим узлам.
Резервирование. За обслуживание и хранение собственных зон отвечают сразу несколько серверов, которые разделены на физические и логические, что в результате гарантирует сохранность данных и продолжение работы даже при сбое одного из узлов.
Система доменных имен очень важна в работе глобальной сети, поскольку для обычного соединения с узлом нужно вся информация о его личном адресе, а для людей легче запомнить адреса, написанные буквами, нежели цифрами. В отдельных ситуациях, это способствует применению виртуальных серверов, к примеру, НТТР — серверы, отличая их по имени запроса. Изначально преобразование между доменными и IP-адресами проводилось с применением определенного текстового файла, составляющего в централизованном и автоматическом режиме, рассылался на каждую машину в личной локальной сети. С развитием глобальной сети появилась необходимость в эффективном и автоматизированном механизме, которым и стала система доменных имен — DNS.
Предложить идею урока:
Протокол DNS
Если вы когда-нибудь задавались вопросом, откуда взялся DNS, это ваш шанс узнать! Краткий обзор истории DNS также поможет вам понять, почему DNS-серверы работают в основном в системах типа Linux и Unix. Затем мы увидим уровни модели OSI, на которых работает DNS, и ближе к концу страницы вы узнаете, как домены (и DNS-серверы) структурированы в Интернете для обеспечения бесперебойной работы и эффективности.
История
DNS зародилась в первые дни, когда Интернет был лишь небольшой сетью, созданной Министерством обороны для исследовательских целей. Имена хостов (простые имена компьютеров) компьютеров вводились вручную в файл (называемый HOSTS), который находился на центральном сервере. Каждый сайт/компьютер, которому нужно было разрешать имена хостов, должен был загрузить этот файл. Но по мере роста числа хостов рос и файл HOSTS (Linux, Unix, Windows и NetWare все еще используют такие файлы), пока он не стал слишком большим для загрузки компьютерами и генерировал огромное количество трафика! Вот они и подумали… К черту это.. найдем решение получше… и в 1984 была введена система доменных имен.
Протокол
Система доменных имен — это «иерархически распределенная база данных», что является причудливым способом сказать, что ее слои расположены в определенном порядке и что ее данные распределены по широкому кругу машин (точно так же, как корни дерева отходят от основного корня).
В настоящее время большинство компаний имеют собственный небольшой DNS-сервер, чтобы компьютеры могли без проблем находить друг друга. Если вы используете Windows 2000 и Active Directory, то наверняка используете DNS для разрешения имен ваших компьютеров. Microsoft создала собственную версию DNS-сервера, называемого WINS-сервером, что означает Windows Internet Name Service, но это старая технология, использующая протоколы, которые далеко не так эффективны, как DNS, поэтому для Microsoft было естественным отойди от WINS и в сторону DNS, ведь весь интернет работает на DNS 🙂
Протокол DNS работает, когда ваш компьютер отправляет DNS-запрос на сервер имен для разрешения домена. Например, вы вводите «www.firewall.cx» в своем веб-браузере, это запускает DNS-запрос, который ваш компьютер отправляет на DNS-сервер, чтобы получить IP-адрес веб-сайта! На последующих страницах есть подробный пример, поэтому я не буду вдаваться в подробности на данный момент.
Протокол DNS обычно использует протокол UDP в качестве транспортного средства из-за его небольших накладных расходов по сравнению с TCP; чем меньше накладных расходов у протокола, тем он быстрее!
В случае, когда возникают постоянные ошибки и компьютер, пытающийся запросить разрешение DNS, не может получить безошибочный ответ или вообще какой-либо ответ, он переключится на TCP, чтобы обеспечить безошибочное получение данных.
Однако этот процесс зависит от используемой операционной системы. Некоторые операционные системы могут не разрешать DNS использовать протокол TCP, тем самым ограничивая его только UDP. Редко когда вы получаете так много ошибок, что не можете преобразовать любое имя хоста или доменное имя в IP-адрес.
Протокол DNS использует для обслуживания порт 53. Это означает, что DNS-сервер прослушивает порт 53 и ожидает, что любой клиент, желающий использовать службу, будет использовать тот же порт. Однако бывают случаи, когда вам может понадобиться использовать другой порт, что возможно в зависимости от используемой операционной системы и DNS-сервера.
На следующих страницах мы рассмотрим фактический формат пакета DNS, где вы можете точно увидеть содержимое запроса DNS, поэтому мы не будем здесь анализировать структуру пакета.
Далее мы подробно рассмотрим, как устроены интернет-домены и DNS-серверы, чтобы убедиться, что модель работает безупречно и эффективно!
Иерархия серверов доменных имен в Интернете
Этот интересный раздел поможет вам понять, как структурированы доменные имена в Интернете и какое место в общей картине занимают DNS-серверы. Когда вы думаете о миллионах доменных имен, зарегистрированных сегодня, вы, вероятно, думаете, что нужно быть сверхчеловеком, чтобы управлять такой структурой DNS-серверов!
Это не тот случай. Структура DNS спроектирована таким образом, что DNS-серверу не нужно знать обо всех возможных доменах, а только о тех, которые находятся непосредственно над ним и под ним.
На рисунке ниже показана часть иерархической структуры DNS Интернета:
Поясним, как это работает:
Internic управляет «корневым» доменом, который включает в себя все домены верхнего уровня. Они отмечены зеленым овалом для ясности. В зеленом овале у вас есть корневые DNS-серверы, которые знают все об авторитетных DNS-серверах для доменов непосредственно под ними, например, firewall.cx, cisco.com, microsoft.com и т. д. Эти корневые DNS-серверы могут сообщить вам, какой DNS-сервер занимает забота о firewall.cx, cisco.com, microsoft.com и остальных.
Каждый домен, включая те, о которых мы говорим (cisco, firewall, microsoft), имеет то, что мы называем «первичным DNS» и «вторичным DNS». Первичный DNS — это тот, который содержит всю информацию о своем домене. Вторичный сервер выступает в качестве резервного на случай сбоя основного DNS. Процесс, в котором первичный DNS-сервер отправляет свою копию на вторичный DNS-сервер, называется Zone Transfer и рассматривается в разделе базы данных DNS.
Сегодня существуют сотни веб-сайтов, на которых вы можете зарегистрировать свой собственный домен, и как только вы это сделаете, вы сможете управлять им самостоятельно. В приведенном выше примере Cisco купила домен «Cisco.com», а затем создала записи ресурсов. Некоторые примеры записей ресурсов для домена Cisco в нашем примере: поддержка, www и маршрутизаторы. Они будут подробно проанализированы на следующих страницах.
Итак, вот вопрос на миллион долларов: Как вы создаете поддомены и www (известные как ресурсные записи)?
Ответ довольно прост:
Вы используете специальный интерфейс администрирования DNS (обычно веб-интерфейс, предоставляемый ребятами, у которых вы зарегистрировали свой домен), который позволяет вам создавать, изменять и удалять поддомены, www или любой другой ресурс. запись, которую вы можете придумать. Когда вы вносите изменения в настройки DNS своего домена, вы фактически изменяете содержимое определенных файлов, расположенных на этом сервере.
Затем эти изменения медленно распространяются на авторитетных DNS-серверов , которые отвечают за зону вашего домена, а затем весь Интернет будет связываться с этими DNS-серверами, когда им потребуется доступ к любой части вашего домена.
Например, если вам нужно разрешить ftp.firewall.cx, ваш компьютер обнаружит DNS-сервер, отвечающий за домены .CX, и свяжется с ним, что позволит вам узнать DNS-сервер, отвечающий за домен Firewall.cx. DNS-сервер Firewall.cx, в свою очередь, сообщит вашему компьютеру IP-адрес ftp.firewall.cx, поскольку он содержит всю информацию для домена firewall.cx.
Это завершает наш первый раздел DNS. Ведь это не так уж и сложно!
Далее — DNS-запросы и процесс разрешения
или
Назад к разделу сетевых протоколов
Как работает DNS?
В наших предыдущих статьях о DNS мы дали обзор процесса рекурсии, но прежде чем мы сможем продолжить изучение того, как DNS влияет на производительность, нам нужно понять, как работает протокол DNS.
В наборе протоколов TCP/IP DNS является протоколом прикладного уровня. Протокол DNS по умолчанию основан на протоколе пользовательских дейтаграмм (UDP), но также может работать по протоколу управления передачей (TCP) в качестве запасного варианта, когда брандмауэры блокируют UDP.
И UDP, и TCP являются протоколами транспортного уровня. UDP — это облегченный протокол, который не требует рукопожатия для установления соединения или подтверждения доставки, тем самым сокращая количество необходимых пакетов, затраченное время и круговые поездки. Самый большой недостаток UDP заключается в том, что нет никаких гарантий, что пакет был получен другой стороной, поэтому приложение должно обрабатывать случаи, когда ответ не получен.
С другой стороны, TCP требует установления соединения через трехэтапное рукопожатие и имеет проверку ошибок доставки, но требует большего количества циклов и, следовательно, большего времени.
Поскольку мы рассматриваем протоколы TCP/IP, в некоторых областях мы перейдем к битовому уровню. Но не пугайтесь — вам не нужно учиться обращаться с «битовыми флагами», чтобы понимать DNS. В Catchpoint мы используем — и настоятельно рекомендуем использовать — программу захвата пакетов, такую как Wireshark, чтобы сделать пакеты понятными для человека и упростить отладку.
Протокол DNS состоит из трех типов сообщений: запросы, ответы и обновления. Мы не будем освещать «обновления» в нашей серии, поскольку они не влияют на работу конечного пользователя. Сообщение DNS может состоять из пяти разделов: Заголовок DNS, Вопрос, Ресурсные записи ответа, Ресурсные записи авторитетных источников и Дополнительные ресурсные записи.
Заголовок Заголовок пакета содержит идентифицирующую информацию, а также подсказки (краткие сведения) о том, что содержит остальная часть сообщения. Заголовок состоит из шести полей по шестнадцать бит каждое, всего двенадцать байтов. Первые шестнадцать бит предназначены для идентификатора транзакции, используемого для сопоставления ответа на запрос, и создаются клиентом в сообщении запроса и возвращаются сервером в ответе.
Следующее поле для флагов. Это, вероятно, самая важная часть пакета DNS, поскольку эти флаги отличают ответ от запроса и итеративный запрос от рекурсивного. Они перечислены в порядке:
- Бит 1: QR, флаг запроса/ответа. Когда 0, сообщение является запросом. Когда 1, сообщение является ответом.
- Биты 2-5: Код операции, код операции. Сообщает принимающей машине цель сообщения. Обычно 0 означает обычный запрос, однако есть и другие допустимые параметры, такие как 1 для обратного запроса и 2 для состояния сервера.
- Бит 6: AA, авторитетный ответ. Устанавливайте только в том случае, если отвечающая машина является полномочным сервером имен запрашиваемого домена.
- Бит 7: TC, усеченный. Установите, если пакет больше максимального размера UDP, равного 512 байтам.
- Бит 8: RD, требуется рекурсия. Если 0, запрос является итеративным запросом. Если 1, запрос рекурсивный.
См. наш пост о рекурсии для получения дополнительной информации.
- Бит 9: RA, доступна рекурсия. Устанавливается в ответ, если сервер поддерживает рекурсию.
- Бит 10: Z. Зарезервирован для использования в будущем, должен быть установлен на 0 для всех запросов и ответов.
- Бит 11: AD, достоверные данные. Используется в DNSSEC. Считается частью Z в старых машинах.
- Бит 12: CD, проверка отключена. Используется в DNSSEC. Считается частью Z в старых машинах.
- Биты 13-16: Rcode, код возврата. Обычно это 0 при отсутствии ошибок или 3, если имя не существует.
Оставшиеся четыре поля заголовка — количество вопросов, записей ресурсов ответов, записей ресурсов полномочий и дополнительных записей ресурсов. Эти цифры различаются в зависимости от того, является ли это запросом или ответом, и каким типом ответа. В общем, однако, всегда будет по крайней мере один вопрос.
Вопрос присутствует как в запросе, так и в ответе, и должен быть идентичным. Некоторые инструменты, такие как Wireshark, называют это «запросом» (см. изображение выше).
Обычно в каждом пакете будет только один вопрос или запрос. Вопрос состоит из трех частей: имя запроса, которое может быть именем хоста, таким как www.google.com, тип вопроса и класс вопроса, который почти всегда равен 1 или IN для Интернета. Тип вопроса — это тип записи ресурса. Ниже перечислены несколько основных типов, а полный список можно найти здесь.
- A, IPv4-адрес: , которому соответствует доменное имя. Каждый домен веб-сайта должен иметь хотя бы одну запись A, иначе ваши конечные пользователи не смогут получить доступ к вашему веб-сайту.
- AAAA, Quad-A, запись адреса IPv6: Адрес IPv6 — это тип, которому соответствует доменное имя. Поскольку адреса IPv4 больше не доступны, существует большое движение в поддержку IPv6, однако пока не каждый интернет-провайдер и веб-сайт поддерживают его.
- MX, запись почтового обмена: Указывает, какой почтовый сервер принимает сообщения электронной почты от имени получателя домена.
- NS, Запись сервера имен: Сопоставляет домен с его авторитетным сервером имен. Каждый домен должен иметь более 1 записи NS.
Ответ состоит из записей ресурсов, которые отвечают на вопрос. Раздел «Ответ» присутствует в ответе рекурсивного распознавателя на компьютер конечного пользователя или в ответе полномочного сервера имен домена на рекурсивный распознаватель. Это зависит от типа вопроса, но для DNS-разрешения веб-доменов это будет A, AAAA или CNAME. CNAME расшифровывается как Canonical Name, это означает, что домен в запросе является псевдонимом для другого домена.
Первые три поля в записи ресурса идентичны формату вопроса и представляют собой имя RR, тип RR и класс RR. Однако записи RR содержат три дополнительных поля: двухбайтовое значение времени жизни, однобайтовое поле длины данных и поле данных. Содержимое поля данных зависит от типа записи, но вот основные из них:
- A: Одно поле данных, хранящее четырехбайтный IPv4-адрес
- AAAA: Одно поле данных, хранящее шестнадцатибайтный адрес IPv6-адрес
- MX: Два поля данных, одно для хранения значения приоритета, а другое для хранения IP-адреса
- NS: Одно поле данных для хранения доменного имени авторитетного сервера имен доменное имя, псевдонимом которого является вопросительный домен
Когда сервер имен, такой как TLD, не имеет ответа на запрос (поскольку не является авторитетным), он не будет отправлять записи ответов. Вместо этого он заполнит раздел полномочий всеми серверами имен, которые он знает как уполномоченные для домена или части дерева доменов (например, .com), если они у него есть. Эти записи NS отличаются от записей A, поскольку они содержат имя домена как в полях имени RR, так и в полях данных RR.