Что такое DNS и как это работает?
Определение DNS — Domain Name System
Система доменных имен (DNS) — это иерархическая и децентрализованная система именования в интернете. Она является ключевым элементом цифровой инфраструктуры и служит своего рода телефонным справочником для интернета. Подобно тому как справочник сопоставляет имена людей, которые легко запомнить, с телефонными номерами, которые используют машины для установления связи, DNS сопоставляет понятные человеку имена хостов с IP-адресами, понятными компьютерам.
Чтобы открыть сайт, мы обычно вводим привычные и простые для запоминания доменные имена — например, example.com. Однако для того чтобы компьютер отобразил страницу, он должен преобразовать это имя в труднозапоминаемый IP-адрес — например, 93.184.215.14 в системе IPv4. В новой системе IPv6, которая со временем должна заменить IPv4, адреса становятся еще сложнее — например, 2606:2800:21f:cb07:6820:80da:af6b:8b2c. Именно DNS — система доменных имен — выполняет это критически важное преобразование доменного имени в IP-адрес.
Как работает система доменных имен (DNS)
Интернет огромен, децентрализован и, что особенно важно, постоянно меняется. Поэтому система доменных имен должна быть гораздо сложнее, чем какой-нибудь городской телефонный справочник, копию которого раньше мог иметь любой горожанин. Было бы непрактично, если бы каждый компьютер в мире хранил миллиарды DNS-записей обо всех существующих сайтах — просто на случай, если пользователь вдруг захочет какой-нибудь из них посетить.
Кроме того, интернет непрерывно обновляется: каждую секунду появляются новые сайты, а старые исчезают. Чтобы поддерживать такой «телефонный справочник» в актуальном состоянии, компьютеру пришлось бы не только хранить сотни гигабайт DNS-данных, но и постоянно отслеживать все изменения в сети. Это было бы крайне неэффективно.
Система доменных имен предлагает гораздо более разумное решение: иерархическую систему DNS-серверов, которые хранят информацию о том, какие IP-адреса соответствуют определенным именам. Любой компьютер может обратиться к этой системе, чтобы преобразовать имя хоста в IP-адрес. С момента своего появления в 1985 году DNS непрерывно работает уже почти 40 лет, обеспечивая масштабируемое и надежное преобразование доменных имен.
Роли различных DNS-серверов
Процесс преобразования доменного имени в IP-адрес включает работу нескольких DNS-серверов, каждый из которых выполняет свою важную функцию. Прежде чем подробно рассматривать, как происходит данное преобразование, важно понимать роли различных серверов имен — это поможет лучше представить, как система DNS эффективно работает в масштабах всей глобальной сети.
- Рекурсивный резолвер (также называется DNS-рекурсором) — получает DNS-запрос от клиента, например, браузера пользователя, и либо отвечает на него с помощью кэшированных данных, либо перенаправляет запрос другим серверам для получения нужного IP-адреса. Резолвер играет ключевую роль, упрощая процесс поиска для конечного пользователя.
- Корневой DNS-сервер — отправная точка в процессе разрешения доменных имен в IP-адреса. Он направляет рекурсивный резолвер к соответствующему DNS-серверу домена верхнего уровня (TLD) в зависимости от зоны, к которой относится домен — например, .com, .net, .org и так далее.
- DNS-сервер домена верхнего уровня (TLD-сервер) — отвечает за хранение информации о доменных именах в рамках конкретной зоны верхнего уровня, например, .com, .net, .org и так далее. Он направляет рекурсивный резолвер к авторитетному серверу, обслуживающему запрашиваемый домен.
- Авторитетный DNS-сервер — содержит фактические DNS-записи домена, такие как A, MX или CNAME. Именно он дает окончательный ответ рекурсивному резолверу, предоставляя IP-адрес, соответствующий запрошенному доменному имени.
Следует отметить, что все серверы, участвующие в преобразовании доменных имен в IP-адреса, часто называются просто DNS-серверами или серверами имен (неймсерверами) — без указания их роли. Это может создавать путаницу, поэтому в данном тексте мы будем использовать полные названия серверов, согласно выполняемым ими функциям.
Пример обработки DNS-запроса
Теперь, когда мы разобрали все ключевые понятия, давайте пошагово рассмотрим, как происходит преобразование доменного имени в IP-адрес, используя в качестве примера curator.pro.
- Запрос пользователя. Когда вы вводите curator.pro в адресной строке браузера и нажимаете Enter, ваш компьютер отправляет запрос рекурсивному резолверу, чтобы получить IP-адрес, соответствующий доменному имени.
- Рекурсивный резолвер. Сервер, которым обычно управляет ваш интернет-провайдер или публичный DNS-сервис, сначала проверяет свой кэш — возможно, адрес curator.pro уже был недавно запрошен, в этом случае можно сразу дать пользователю готовый ответ. Если нет, начинается последовательный (рекурсивный) опрос других DNS-серверов.
- Запрос к корневому DNS-серверу. Если в кэше нет готового ответа, рекурсивный резолвер сперва обращается к корневому DNS-серверу. Этот сервер не знает IP-адрес, но направляет резолвер к DNS-серверу домена верхнего уровня (TLD), обслуживающему зону .pro.
- Запрос к TLD-серверу. Резолвер направляет запрос к TLD-серверу, ответственному за домены в зоне .pro. Этот сервер также не знает точный IP-адрес curator.pro, но сообщает, какой авторитетный DNS-сервер содержит нужные записи.
- Запрос к авторитетному серверу. Резолвер отправляет запрос к авторитетному DNS-серверу домена curator.pro. Этот сервер хранит актуальные DNS-записи, включая A-запись, в которой указано соответствие доменного имени и IP-адреса. Сервер возвращает резолверу нужный IP-адрес, соответствующий домену curator.pro.
- Возврат IP-адреса клиенту. Рекурсивный резолвер передает IP-адрес вашему браузеру. Теперь браузер может установить соединение с веб-сервером, на котором размещен сайт curator.pro.
- Загрузка сайта. Получив IP-адрес, браузер направляет HTTP-запрос напрямую на веб-сервер. Сервер отправляет запрошенную веб-страницу, и сайт открывается в вашем браузере.
Если запрашивается адрес с поддоменом — например, docs.curator.pro, — в процессе преобразования имени в IP-адрес может участвовать дополнительный авторитетный DNS-сервер, содержащий записи, относящиеся к поддоменам curator.pro.
Как вы могли заметить, процесс DNS-разрешения чем-то напоминает работу бюрократической системы: нужно пройти через несколько инстанций, с постоянными хождениями туда-сюда. Однако в отличие от человеческой бюрократии, DNS работает эффективно — благодаря оперативной и (в основном) безошибочной работе компьютеров и сетей.
На практике весь процесс DNS-запроса обычно занимает лишь несколько миллисекунд, обеспечивая быструю и незаметную для пользователя работу интернета. А кэширование DNS-записей на разных уровнях — в браузере, в операционной системе, на стороне резолвера — дополнительно ускоряет повторные обращения к часто посещаемым сайтам.
Защита DNS-серверов от DDoS-атак и сбоев
При невозможности преобразовать доменные имена в IP-адреса запрашиваемые пользователями ресурсы становятся фактически недоступны — даже если сами серверы продолжают исправно работать.
Из-за своей ключевой роли DNS-серверы часто становятся целью распределенных атак отказа в обслуживании (DDoS), направленных на перегрузку серверов и нарушение работы цифровой инфраструктуры. Однако защите DNS-серверов часто не уделяют должного внимания, что делает их уязвимым звеном в системе кибербезопасности компании.
Для защиты DNS от атак и сбоев следует использовать специализированные решения, такие как сервис CURATOR.SECONDARYDNS. Это надежный авторитетный DNS-сервер, который обеспечивает минимальное время отклика и высокий уровень устойчивости даже к самым сложным и масштабным DDoS-атакам. Он входит в линейку облачных решений CURATOR, предназначенных для обеспечения непрерывной доступности онлайн-ресурсов бизнеса.
Будьте в курсе наших новостей и продуктов!
Подпишитесь на ежемесячный обзор самых популярных идей Интернета от CURATOR!
Отправляя свой адрес электронной почты, вы соглашаетесь с политикой конфиденциальности