DNS

Служба доменных имен (DNS, domain name system) — это стандартный протокол, который позволяет пользователям получать доступ к веб-сайтам, используя удобочитаемые адреса. Как телефонная книга позволяет найти имя контакта и узнать его телефонный номер, так и DNS позволяет ввести адрес веб-сайта и автоматически определить его IP-адрес, то есть уникальный идентификатор конкретного устройства (сервера) в компьютерной сети.

DNS обладает следующими характеристиками:

  • Распределённость администрирования. Ответственность за разные части иерархической структуры несут разные люди или организации.
  • Распределённость хранения информации. Каждый узел сети в обязательном порядке должен хранить только те данные, которые входят в его зону ответственности, и (возможно) адреса корневых DNS-серверов.
  • Кэширование информации. Узел может хранить некоторое количество данных не из своей зоны ответственности для уменьшения нагрузки на сеть.
  • Иерархическая структура, в которой все узлы объединены в дерево, и каждый узел может или самостоятельно определять работу нижестоящих узлов, или делегировать (передавать) их другим узлам.
  • Резервирование. За хранение и обслуживание своих узлов (зон) отвечают (обычно) несколько серверов, разделённые как физически, так и логически, что обеспечивает сохранность данных и продолжение работы даже в случае сбоя одного из узлов.

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

DNS была разработана Полом Мокапетрисом в 1983 году; оригинальное описание механизмов работы содержится в RFC 882 и RFC 883


Протокол DNS позволяет нескольким доменным именам соответствовать одному IP-адресу — это можно использовать для виртуального хостинга, когда несколько сайтов обслуживаются с одного хоста. Также одному доменному имени может соответствовать множество IP-адресов, чтобы распределить нагрузку на несколько серверов.

Каждый раз когда вы подключаетесь к локальной сети, интернет-провайдеру или Wi-Fi, модем или роутер шлет конфигурацию сети на ваше устройство, включая адреса одного или нескольких DNS-серверов.

Что такое DNS-серверы

Это серверы, которые хранят информацию о том, какому IP-адресу какое доменное имя соответствует — что-то вроде физической телефонной книги, только вместо имени и номера телефона там записаны доменные имена и IP-адреса. В интернете таких серверов много.

Предположим, что вы или кто-то другой захотели разместить свой сайт в интернете. Сначала надо придумать и зарегистрировать доменное имя (коротко — домен). Но для работы сайта этого недостаточно: регистратору также нужно доменное имя DNS-сервера, на котором будет храниться информация о вашем домене и его IP-адресе. Этот DNS-сервер станет полномочным сервером имен для вашего сайта и первичным источником данных о его адресе для DNS-системы, где «записывается» путь к нему.

Часто регистраторы доменных имен и интернет-провайдеры предлагают использовать свои DNS-серверы за определенную плату (услуга DNS-хостинга). Также эту услугу можно получить в облаке, если разместить там свой сайт, приложение или другой сервис.

Из чего состоит служба DNS и какова роль DNS-серверов

Назначение DNS-серверов не только в хранении информации о соответствии IP-адресов и доменных имен. Они также могут кэшировать (то есть сохранять) IP-адреса, запрошенные пользователем ранее.

Например: сайт, который вы посещаете, географически расположен далеко от вас. И где-то есть такой же удаленный от вас DNS-сервер, на котором хранится информация о доменном имени и IP-адресе этого сайта, его полномочный сервер имен. Если все время обращаться за этим IP-адресом к удаленному DNS-серверу, загрузка сайта будет занимать много времени. Чтобы решить такую проблему, информацию о часто посещаемых сайтах сохраняет ближайший к вашему компьютеру DNS-сервер, как правило, он находится у вашего интернет-провайдера. В результате другие пользователи, которые обращаются к этому же адресу через этот же DNS-сервер, будут получать IP-адрес уже из его кэша, это гораздо быстрее.

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

Возврат IP-адреса хоста в ответ на запрос доменного имени называют преобразованием его доменного имени в IP-адрес. Когда все работает хорошо, этот процесс происходит менее чем за секунду.

Информация об IP-адресах тех сайтов, куда вы заходили, может храниться не только на ближайшем DNS-сервере, но и в кэше вашего браузера или операционной системы. Это позволяет быстрее получать ответ на запрос.

По мере роста интернета первоначальный стандарт IP-адресов — протокол IPv4, который допускает только до 4,3 миллиарда IP-адресов, заменяется на протокол IPv6, который поддерживает до 3.4×1038 IP-адресов. DNS-серверы все чаще возвращают IP-адреса в формате IPv6.

Как работает DNS: посмотрим, что происходит с вашим запросом

Дальше мы немного углубимся в детали. Давайте представим, что вы ввели в браузер запрос mcs.mail.ru/cloud-servers. Этот адрес состоит из нескольких частей, с каждой из которых происходит отдельная история:

  • .edu — имя домена верхнего уровня для образовательных учреждений;
  • istu.edu — доменное имя;
  • el.istu.edu — поддомен;
  • /course — страница на поддомене.

Посмотрим, какой путь этот запрос может пройти.

  1. Сначала браузер смотрит, нет ли нужного соответствия в его кэше. Если нет — смотрится кэш операционной системы. Если нет и там — придется обращаться к DNS-серверу.
  2. Сначала запрос попадает на ближайший DNS-сервер. Если в его кэше также нет нужной информации, этот DNS-сервер последовательно обращается к вышестоящим DNS-серверам.
  3. Первым ближайший DNS-сервер обращается на корневой сервер DNS — это сервер, который знает, где хранятся данные для имен доменов верхнего уровня: ru, edu, com и других. У него он узнает адрес сервера имен домена верхнего уровня, на котором хранятся данные о .edu.
  4. Теперь наш ближайший DNS-сервер запрашивает у сервера имен домена верхнего уровня .edu информацию о том, где искать данные о доменном имени сайта — в нашем случае istu.edu то есть получает адрес его полномочного сервера имен.
  5. Наконец, наш ближайший DNS-сервер узнает у первичного сервера адрес домена и поддомена сайта, в нашем случае el.istu.edu. Этот первичный DNS-сервер знает нужный IP-адрес и отдает его.
  6. Наконец, страницу на поддомене (в нашем случае …/course) можно найти уже на самом сервере, который нашелся по IP-адресу, соответствующему доменному имени.

В итоге браузер получил ответ, пользователь видит веб-страницу. Теперь основная задача DNS-сервера выполнена.

Авторитативный DNS-сервис. Авторитативный DNS-сервис предоставляет механизм обновления, используемый разработчиками для управления публичными именами DNS. Он отвечает на запросы к DNS, преобразуя доменные имена в IP-адреса, чтобы обеспечить взаимодействие компьютеров между собой. Авторитативный DNS-сервис полностью отвечает за домен и предоставляет информацию об IP-адресах в ответ на запросы рекурсивных DNS-серверовAmazon Route 53 является авторитативным DNS-сервисом.

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

how-route-53-routes-traffic


  1. Пользователь открывает веб-браузер, вводит имя www.example.com и нажимает клавишу ввода.
  2. Запрос сайта www.example.com передается в преобразователь имен DNS, который, как правило, управляется интернет-провайдером, таким как кабельный оператор, оператор широкополосного DSL-доступа или корпоративная сеть.
  3. Преобразователь имен DNS интернет-провайдера перенаправляет запрос сайта www.example.com корневому DNS-серверу.
  4. Преобразователь имен DNS интернет-провайдера повторно перенаправляет запрос сайта www.example.com одному из серверов имен домена верхнего уровня .com. Сервер имен для домена .com в ответ на запрос возвращает имена четырех серверов имен Amazon Route 53, связанных с доменом example.com.
  5. Преобразователь имен DNS Интернет-провайдера выбирает один из серверов Amazon Route 53 и перенаправляет ему запрос сайта www.example.com.
  6. Сервер имен Amazon Route 53 ищет в зоне хостинга example.com запись www.example.com, получает связанное с ней значение, например IP-адрес веб-сервера 192.0.2.44, и возвращает этот адрес преобразователю имен DNS.
  7. Теперь преобразователь имен DNS интернет-провайдера знает, какой IP-адрес требуется пользователю. Он возвращает это значение веб-браузеру. Кроме того, преобразователь имен DNS на указанное время кэширует (сохраняет) IP-адрес для имени example.com, чтобы в следующий раз быстрее ответить на такой запрос. См. информацию о времени жизни (TTL).
  8. Веб-браузер отправляет запрос сайта www.example.com по IP-адресу, полученному от преобразователя имен DNS. Здесь находится контент, например веб-сервер, запущенный на инстансе Amazon EC2, или корзина Amazon S3, настроенная в качестве конечной точки сайта.
  9. Веб-сервер или другие ресурсы по адресу 192.0.2.44 возвращают страницу www.example.com веб-браузеру, и веб-браузер отображает эту страницу.


На следующей диаграмме показано, как рекурсивный и авторитативный DNS-сервисы взаимодействуют друг с другом и как они направляют запросы конечного пользователя к веб-сайту или приложению.


Что происходит, когда IP-адрес меняется

Иногда IP-адрес, соответствующий доменному имени, меняется. Например, при смене хостинга. В отличие от бумажной телефонной книги, DNS-записи могут обновляться и изменяться. Поэтому при смене IP-адреса пользователи продолжают видеть серверы и сайты на них. Пользователи пользуются тем же самым, привычным им доменным именем, но попадают на новый IP-адрес сервера.

После того как вы зарегистрируете новое доменное имя, информация об этом обновляется, что занимает около 12-36 часов. Этот период называют распространением DNS.

Где находятся главные DNS-серверы?

DNS-серверы верхнего уровня, которые содержат информацию о корневой DNS-зоне, называются корневыми. Этими серверами управляют разные операторы. Изначально корневые серверы находились в Северной Америке, но затем они появились и в других странах. Основных серверов — 13. Но, чтобы повысить устойчивость интернета в случае сбоев, были созданы запасные копии, реплики корневых серверов. Так, количество корневых серверов увеличилось с 13 до 123.

В Северной Америке находятся 40 серверов (32,5%), в Европе – 35 (28,5%), еще 6 серверов располагаются в Южной Америке (4,9%) и 3 – в Африке (2,4%). Если взглянуть на карту, то DNS-серверы расположены согласно интенсивности использования интернет-инфраструктуры. Есть сервера в Австралии, Китае, Бразилии, ОАЭ и других странах, включая Исландию.

В России тоже есть несколько реплик корневых серверов DNS, среди которых:

  • F.root (Москва);
  • I.root (Санкт-Петербург);
  • J.root (Москва, Санкт-Петербург);
  • K.root (Москва, Санкт-Петербург, Новосибирск);
  • L.root (Москва, Ростов-на-Дону, Екатеринбург).

Что такое DNS-зоны?

C определенным доменным именем может быть связано несколько ресурсов — сайт и почтовый сервер. У этих ресурсов вполне могут быть разные IP-адреса, что дает возможность повысить надежность и эффективность работы сайта или почтовой системы. Есть у сайтов и поддомены, IP-адреса которых тоже могут быть разными.

Записи DNS, или ресурсные записи (англ. resource recordsRR), — единицы хранения и передачи информации в DNS. Каждая ресурсная запись состоит из следующих полей[3]:

  • имя (NAME) — доменное имя, к которому привязана или которому «принадлежит» данная ресурсная запись,
  • тип (TYPE) ресурсной записи — определяет формат и назначение данной ресурсной записи,
  • класс (CLASS) ресурсной записи; теоретически считается, что DNS может использоваться не только с TCP/IP, но и с другими типами сетей, код в поле класс определяет тип сети[3],
  • TTL (Time To Live) — допустимое время хранения данной ресурсной записи в кэше неответственного DNS-сервера,
  • длина поля данных (RDLEN),
  • поле данных (RDATA), формат и содержание которого зависит от типа записи.

Наиболее важные типы DNS-записей:

  • Запись A (address record) или запись адреса связывает имя хоста с адресом протокола IPv4. Например, запрос A-записи на имя referrals.icann.org вернёт его IPv4-адрес — 192.0.34.164.
  • Запись AAAA (IPv6 address record) связывает имя хоста с адресом протокола IPv6. Например, запрос AAAA-записи на имя K.ROOT-SERVERS.NET вернёт его IPv6-адрес — 2001:7fd::1.
  • Запись CNAME (canonical name record) или каноническая запись имени (псевдоним) используется для перенаправления на другое имя.
  • Запись MX (mail exchange) или почтовый обменник указывает сервер(ы) обмена почтой для данного домена.
  • Запись NS (name server) указывает на DNS-сервер для данного домена.
  • Запись PTR (pointer[4][5]) обратная DNS-запись или запись указателя связывает IP-адрес хоста с его каноническим именем. Запрос в домене in-addr.arpa на IP-адрес хоста в reverse-форме вернёт имя (FQDN) данного хоста (см. Обратный DNS-запрос). Например (на момент написания), для IP-адреса 192.0.34.164 запрос записи PTR 164.34.0.192.in-addr.arpa вернёт его каноническое имя referrals.icann.org. В целях уменьшения объёма нежелательной корреспонденции (спама) многие серверы-получатели электронной почты могут проверять наличие PTR-записи для хоста, с которого происходит отправка. В этом случае PTR-запись для IP-адреса должна соответствовать имени отправляющего почтового сервера, которым он представляется в процессе SMTP-сессии.
  • Запись SOA (Start of Authority) или начальная запись зоны указывает, на каком сервере хранится эталонная информация о данном домене, содержит контактную информацию лица, ответственного за данную зону, тайминги (параметры времени) кеширования зонной информации и взаимодействия DNS-серверов.
  • SRV-запись (server selection) указывает на серверы для сервисов, используется, в частности, для Jabber и Active Directory.

Варианты использования DNS

Классическое использование DNS — преобразование доменного имени в URL-адресе в соответствующий IP-адрес. Без DNS невозможна работа сайтов, приложений, мессенджеров, электронной почты, виртуальных частных сетей (VPN), компьютерных игр, интернета вещей и других сервисов.

Если вы используете какую-либо из вышеперечисленных служб, вы будете использовать DNS для связи с ней — потребуется настроить DNS, чтобы предоставить пользователям доступ к вашим услугам.

Есть и другие возможности использования DNS:

  1. Глобальная балансировка нагрузки на серверы (GSLB) — быстрая маршрутизация (перераспределение) соединений между распределенными центрами обработки данных и повышение надежности доступа к домену. Надежность достигается за счет того, что обращение к одному доменному имени переадресовывается на разные IP-адреса, в зависимости от нагрузки на них.
  2. Multi CDN — маршрутизация пользователей на CDN (сетях доставки контента), которая обеспечит им наилучший доступ к контенту.
  3. Географическая маршрутизация — определение физического местоположения каждого пользователя и направление его к ближайшему возможному серверу или дата-центру.
  4. Миграция центров обработки данных — контролируемое перемещение трафика из локальных дата-центров в облака, которые уже сейчас используют 9 из 10 компаний.
  5. Управление интернет-трафиком — снижение загруженности сети и обеспечение оптимального потока трафика на интернет-ресурс.

Этот тест был открыт Вторник, 8 Апрель 2025, 08:54

Тестирование будет окончено в Пятница, 8 Апрель 2039, 08:54

Метод оценивания: Высшая оценка