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-серверов не только в хранении информации о соответствии IP-адресов и доменных имен. Они также могут кэшировать (то есть сохранять) IP-адреса, запрошенные пользователем ранее.
Например: сайт, который вы посещаете, географически расположен далеко от вас. И где-то есть такой же удаленный от вас DNS-сервер, на котором хранится информация о доменном имени и IP-адресе этого сайта, его полномочный сервер имен. Если все время обращаться за этим IP-адресом к удаленному DNS-серверу, загрузка сайта будет занимать много времени. Чтобы решить такую проблему, информацию о часто посещаемых сайтах сохраняет ближайший к вашему компьютеру DNS-сервер, как правило, он находится у вашего интернет-провайдера. В результате другие пользователи, которые обращаются к этому же адресу через этот же DNS-сервер, будут получать IP-адрес уже из его кэша, это гораздо быстрее.
То есть запрос, который вы вводите в строку браузера, сначала отправляется на ближайший DNS-сервер. Если в кэше нужного IP-адреса нет, он перенаправляет запрос дальше — к вышестоящим DNS-серверам. Они передают запрос, пока он не попадет на первичный DNS-сервер сайта, где хранится нужный IP-адрес.
Возврат IP-адреса хоста в ответ на запрос доменного имени называют преобразованием его доменного имени в IP-адрес. Когда все работает хорошо, этот процесс происходит менее чем за секунду.
Информация об IP-адресах тех сайтов, куда вы заходили, может храниться не только на ближайшем DNS-сервере, но и в кэше вашего браузера или операционной системы. Это позволяет быстрее получать ответ на запрос.
Как работает DNS: посмотрим, что происходит с вашим запросом
Дальше мы немного углубимся в детали. Давайте представим, что вы ввели в браузер запрос mcs.mail.ru/cloud-servers. Этот адрес состоит из нескольких частей, с каждой из которых происходит отдельная история:
- .edu — имя домена верхнего уровня для образовательных учреждений;
- istu.edu — доменное имя;
- el.istu.edu — поддомен;
- /course — страница на поддомене.
Посмотрим, какой путь этот запрос может пройти.
- Сначала браузер смотрит, нет ли нужного соответствия в его кэше. Если нет — смотрится кэш операционной системы. Если нет и там — придется обращаться к DNS-серверу.
- Сначала запрос попадает на ближайший DNS-сервер. Если в его кэше также нет нужной информации, этот DNS-сервер последовательно обращается к вышестоящим DNS-серверам.
- Первым ближайший DNS-сервер обращается на корневой сервер DNS — это сервер, который знает, где хранятся данные для имен доменов верхнего уровня: ru, edu, com и других. У него он узнает адрес сервера имен домена верхнего уровня, на котором хранятся данные о .edu.
- Теперь наш ближайший DNS-сервер запрашивает у сервера имен домена верхнего уровня .edu информацию о том, где искать данные о доменном имени сайта — в нашем случае istu.edu то есть получает адрес его полномочного сервера имен.
- Наконец, наш ближайший DNS-сервер узнает у первичного сервера адрес домена и поддомена сайта, в нашем случае el.istu.edu. Этот первичный DNS-сервер знает нужный IP-адрес и отдает его.
- Наконец, страницу на поддомене (в нашем случае …/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-серверов.
- Пользователь открывает веб-браузер, вводит имя www.example.com и нажимает клавишу ввода.
- Запрос сайта www.example.com передается в преобразователь имен DNS, который, как правило, управляется интернет-провайдером, таким как кабельный оператор, оператор широкополосного DSL-доступа или корпоративная сеть.
- Преобразователь имен DNS интернет-провайдера перенаправляет запрос сайта www.example.com корневому DNS-серверу.
- Преобразователь имен DNS интернет-провайдера повторно перенаправляет запрос сайта www.example.com одному из серверов имен домена верхнего уровня .com. Сервер имен для домена .com в ответ на запрос возвращает имена четырех серверов имен Amazon Route 53, связанных с доменом example.com.
- Преобразователь имен DNS Интернет-провайдера выбирает один из серверов Amazon Route 53 и перенаправляет ему запрос сайта www.example.com.
- Сервер имен Amazon Route 53 ищет в зоне хостинга example.com запись www.example.com, получает связанное с ней значение, например IP-адрес веб-сервера 192.0.2.44, и возвращает этот адрес преобразователю имен DNS.
- Теперь преобразователь имен DNS интернет-провайдера знает, какой IP-адрес требуется пользователю. Он возвращает это значение веб-браузеру. Кроме того, преобразователь имен DNS на указанное время кэширует (сохраняет) IP-адрес для имени example.com, чтобы в следующий раз быстрее ответить на такой запрос. См. информацию о времени жизни (TTL).
- Веб-браузер отправляет запрос сайта www.example.com по IP-адресу, полученному от преобразователя имен DNS. Здесь находится контент, например веб-сервер, запущенный на инстансе Amazon EC2, или корзина Amazon S3, настроенная в качестве конечной точки сайта.
- Веб-сервер или другие ресурсы по адресу 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 records, RR), — единицы хранения и передачи информации в 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запрос записи PTR164.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:
- Глобальная балансировка нагрузки на серверы (GSLB) — быстрая маршрутизация (перераспределение) соединений между распределенными центрами обработки данных и повышение надежности доступа к домену. Надежность достигается за счет того, что обращение к одному доменному имени переадресовывается на разные IP-адреса, в зависимости от нагрузки на них.
- Multi CDN — маршрутизация пользователей на CDN (сетях доставки контента), которая обеспечит им наилучший доступ к контенту.
- Географическая маршрутизация — определение физического местоположения каждого пользователя и направление его к ближайшему возможному серверу или дата-центру.
- Миграция центров обработки данных — контролируемое перемещение трафика из локальных дата-центров в облака, которые уже сейчас используют 9 из 10 компаний.
- Управление интернет-трафиком — снижение загруженности сети и обеспечение оптимального потока трафика на интернет-ресурс.
Этот тест был открыт Вторник, 8 Апрель 2025, 08:54
Тестирование будет окончено в Пятница, 8 Апрель 2039, 08:54
Метод оценивания: Высшая оценка
