Павел Иевлев

Текст

Что такое DNS, DNS-сервер и DNS-протокол. Зачем они нужны, как работают и какие функции выполняют

DNS расшифровывается как система доменных имен (Domain Name System). По сути, это телефонная книга Интернета, переводящая удобные для человека доменные имена (например, www.example.com) в IP-адреса, которые компьютеры используют для идентификации друг друга в сети. Своего рода переводчик «с человеческого на машинный».

Система доменных имен была изобретена в начале 1980-х годов. Необходимость в ней возникла, когда Интернет начал расти, выходя за рамки нескольких узлов, что сделало нецелесообразным ведение единого файла (HOSTS.TXT), сопоставляющего имена узлов с IP-адресами. Полю Мокапетрису приписывают изобретение DNS в 1983 году, и в том же году он написал первую реализацию. Джон Постел, который сыграл важную роль в развитии и управлении ранним Интернетом, сыграл значительную роль в создании DNS, написав RFC (Request for Comments), в которых описывалась структура и работа DNS.

Внедрение DNS стало поворотным моментом в истории Интернета, позволившим ему расшириться до глобальной сети, которой он является сегодня, благодаря упрощению процесса адресации и доступа к миллионам взаимосвязанных компьютеров и сервисов.

Что такое DNS

DNS

DNS — это система адресации, основная цель которой — облегчить работу в Интернете, позволяя пользователям вводить запоминающиеся доменные имена вместо цифровых IP-адресов. Например, гораздо проще запомнить www.google.com, чем его IP-адрес (например, 192.168.1.1).

Когда вы вводите URL-адрес в веб-браузер, ваш компьютер использует DNS для получения соответствующего IP-адреса этого сайта. Сначала компьютер запрашивает DNS-резольвер (обычно управляемый вашим интернет-провайдером), который затем выполняет ряд шагов по всему интернету, чтобы найти IP-адрес конкретного сервера. Этот процесс включает в себя обращение к различным DNS-серверам, начиная с корневых DNS-серверов, затем к серверам доменов верхнего уровня (TLD) (например, для .com или .net) и, наконец, к авторитетным DNS-серверам домена, которые хранят записи IP-адресов.

Как работает система DNS – шаг за шагом

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

1. Запрос пользователя

Когда вы вводите в браузер веб-адрес (например, www.example.com), ваш компьютер должен узнать IP-адрес, связанный с этим доменным именем.

2. Рекурсивный резольвер

Сначала ваш компьютер отправляет запрос на DNS-резольвер, также известный как «рекурсивный резольвер». Обычно его предоставляет ваш поставщик услуг Интернета (ISP). Задача резольвера — найти IP-адрес, связанный с доменным именем, и вернуть его вашему компьютеру. Если преобразователь недавно искал запрашиваемый домен, он может иметь кэш ответа и вернуть IP-адрес немедленно, пропустив следующие шаги.

3. Корневой сервер имен

Если преобразователь не имеет кэшированной информации, он запрашивает один из корневых серверов имен. В Интернете есть 13 корневых серверов имен, обозначенных буквами от A до M, которые стратегически распределены по всему миру. Корневой сервер не знает IP-адрес домена, но может направить преобразователь к серверам имен TLD (Top-Level Domain) для следующей части домена, например .com, .net или .org.

4. Серверы имен TLD

Затем преобразователь запрашивает серверы имен TLD (top level domain server) (для .com, .net, .org и т. д.) для домена. У этих серверов также не будет IP-адреса, но они могут направить распознаватель к авторитетным серверам имен домена, которые располагают конкретной информацией.

5. Авторитетные серверы имен

Далее преобразователь обращается к авторитетным серверам имен домена, которые отвечают за знание всей информации о домене, включая IP-адрес (запись A для IPv4, запись AAAA для IPv6). Если домен имеет поддомены (например, blog.example.com), это может потребовать дополнительного шага запроса к другому набору авторитетных серверов.

6. Ответ клиенту

После того как преобразователь получает IP-адрес от авторитетных серверов имен, он кэширует эту информацию на заранее определенное время (определяемое TTL, или Time to Live, связанным с записью DNS). Такое кэширование позволяет снизить нагрузку на серверы DNS и ускорить последующие запросы к тому же домену. Затем преобразователь отправляет IP-адрес обратно на ваш компьютер.

7. Установление соединения

Наконец, получив IP-адрес, ваш компьютер может установить прямое соединение с сервером, на котором расположен веб-сайт, используя протокол HTTP или HTTPS, и содержимое сайта загружается в ваш браузер.

Типы поиска DNS

DNS

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

Прямой DNS-поиск

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

Обратный DNS-запрос

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

Рекурсивный поиск

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

Итеративный поиск

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

Типы записей DNS

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

1. А (адресная) запись: самый основной тип DNS-записей, он сопоставляет доменное имя с IPv4-адресом (например, 192.0.2.1).

2. AAA (Quad-A) Record: аналогична записи A, но сопоставляет доменное имя с адресом IPv6 (например, 2001:0db8:85a3:0000:0000:8a2e:0370:7334).

3. CNAME (Canonical Name) Record: позволяет сопоставить один домен с другим доменным именем («каноническим» доменом). Используется для сопоставления доменных имен, когда несколько доменных имен разрешаются в один и тот же IP-адрес.

4. MX (Mail Exchange) Record: указывает почтовые серверы, отвечающие за получение электронной почты от имени домена, и их приоритет по отношению друг к другу.

5. NS (Name Server) Record: указывает, какие DNS-серверы являются авторитетными для домена и отвечают за DNS-зону домена.

6. PTR (Pointer) Record: используется для обратного поиска DNS, сопоставляя IP-адрес с доменным именем. Это противоположность записям A или AAAA.

7. SOA (Start of Authority) Record: содержит административную информацию о домене, такую как основной сервер имен, адрес электронной почты администратора домена, серийный номер домена и таймеры, связанные с обновлением зоны.

8. TXT (текстовая) запись: позволяет администраторам вставлять произвольный текст в запись DNS. Это могут быть такие данные, как записи SPF (Sender Policy Framework), которые помогают предотвратить подделку электронной почты, или коды проверки владения доменом для таких служб, как Google Webmaster Tools.

9. SRV (Service) Record: указывает информацию о доступных службах в домене, включая имя хоста и номер порта для серверов, предоставляющих определенные службы (например, SIP, IMAP или XMPP).

10. Запись CAA (Certificate Authority Authorization) Record: определяет, каким центрам сертификации (ЦС) разрешено выдавать сертификаты для домена. Это функция безопасности для предотвращения несанкционированного выпуска сертификатов.

Безопасность системы DNS

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

DNSSEC (Расширения безопасности DNS)

DNSSEC добавляет уровень безопасности к процессу поиска DNS, позволяя проверять подлинность ответов DNS. Он использует цифровые подписи и криптографию с открытым ключом, чтобы убедиться, что полученные данные DNS не были подделаны и получены из легитимного источника. Это помогает защититься от таких атак, как отравление DNS-кэша и атаки «человек посередине».

DNS over TLS (DoT)

DNS over TLS шифрует DNS-запросы и ответы между клиентом и DNS-резольвером с помощью протокола Transport Layer Security (TLS). Это предотвращает подслушивание и фальсификацию данных DNS в пути, защищая конфиденциальность пользователей и повышая безопасность.

DNS over HTTPS (DoH)

Подобно DoT, DNS over HTTPS шифрует DNS-запросы и ответы, но использует протокол HTTPS, позволяя DNS-трафику смешиваться с обычным HTTPS-трафиком. Таким образом, злоумышленникам сложнее перехватывать или манипулировать DNS-запросами, что повышает уровень конфиденциальности и безопасности.

Минимизация имен DNS-запросов

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

Ограничение скорости

Реализация ограничения скорости на DNS-серверах может помочь смягчить последствия распределенных атак типа «отказ в обслуживании» (DDoS). Ограничивая количество запросов, обрабатываемых сервером от одного источника за определенный промежуток времени, поставщики DNS могут предотвратить перегрузку своей инфраструктуры вредоносным трафиком.

DNS Firewall

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

Блокировка реестра

Для владельцев доменов блокировка реестра обеспечивает дополнительный уровень безопасности, требуя ручной проверки (часто через прямой контакт) перед внесением изменений в настройки DNS домена. Это помогает предотвратить несанкционированную передачу домена или изменение записей DNS.

Записи авторизации центра сертификации (CAA)

Записи CAA позволяют владельцам доменов указать, каким центрам сертификации (CA) разрешено выдавать сертификаты для их доменов. Это помогает предотвратить несанкционированный выпуск сертификатов SSL/TLS, снижая риск атак типа «человек посередине».

DNS и «автономный интернет»

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

Домены верхнего уровня с кодом страны (ccTLD) играют ключевую роль в создании автономных региональных секторов в Интернете. Каждый ccTLD (например, .us для США, .uk для Великобритании, .jp для Японии) управляется реестром в соответствующей стране или регионе, что позволяет этой организации регулировать регистрацию доменных имен и политику в соответствии с местными законами и правилами. Такая модель местного управления позволяет регионам создавать интернет-пространство, соответствующее их культурным, языковым и правовым нормам. Организации и региональные власти могут контролировать записи и конфигурации DNS для своих доменов, что позволяет им управлять своим сектором Интернета независимо, оставаясь частью глобальной инфраструктуры DNS. Автономные региональные сектора могут внедрять фильтрацию или модификации DNS для соответствия местным законам, нормам или требованиям властей.

В России это регулируется Приказом Роскомнадзора от 31 июля 2019 г. № 229 «Об утверждении Положения о национальной системе доменных имен (НСДИ)».

НСДИ — это система из региональных DNS-серверов, и если корневые зоны DNS, находящиеся за пределами России, будут отключены, серверы НСДИ должны обеспечить функционирование глобальной Сети. Система полноценно заработала в 2021 году. В августе 2022 года количество уникальных пользователей Национальной системы доменных имен достигло 1 млн в сутки и продолжает расти.

Использованные источники: