Содержание:
- Что такое DNS и для чего нужна система доменных имен
- Как работает DNS
- Что такое DNS-сервер
- Какие бывают DNS-серверы
- Что такое DNS-зона и делегирование домена
- Основные типы DNS-записей
- Как DNS влияет на работу сайта и электронной почты
- Публичные DNS-серверы и зачем их менять
- Безопасность DNS
- Почему возникают ошибки DNS и как их устранить
- DNS в виртуальной инфраструктуре
- Главное по теме
DNS (Domain Name System, система доменных имен) связывает понятные человеку адреса сайтов с техническими данными: IP-адресами, почтовыми узлами, серверами имен и параметрами безопасности. DNS — это иерархическая распределенная база данных и сетевой протокол. Единой таблицы адресов и единого глобального сервера в этой системе нет.
Что такое DNS и для чего нужна система доменных имен
Компьютеры обмениваются данными по IP-адресам, но пользователю проще запомнить spacevm.ru, чем набор цифр IPv4 или длинную запись IPv6. DNS принимает запрос к доменному имени и возвращает ресурсную запись нужного типа. Это может быть адрес сайта, имя почтового сервера, псевдоним или подтверждение владения доменом.
Пространство DNS устроено как дерево. На вершине находится корень, ниже — домены верхнего уровня .ru, .com, .org, затем домены второго уровня и поддомены. В имени panel.spacevm.ru часть .ru относится к верхнему уровню, spacevm — ко второму, panel — к поддомену. Иерархию читают справа налево.
DNS решает несколько задач:
- заменяет сложные сетевые адреса запоминающимися именами;
- позволяет менять IP-адрес сервера без смены домена;
- направляет электронную почту на нужные узлы;
- распределяет управление между независимыми организациями.
Эти задачи система выполняет за счет двух механизмов:
- кэширует ответы и ускоряет повторные запросы;
- хранит данные для проверки подлинности и политик безопасности.
Как работает DNS
Когда пользователь вводит адрес сайта, браузер передает запрос stub-резолверу операционной системы — компоненту, который сам поиск не ведет. Stub-резолвер проверяет локальные данные и обращается к рекурсивному DNS-серверу, указанному в настройках устройства или маршрутизатора.
Рекурсивный резолвер должен вернуть готовый ответ либо ошибку. Если записи нет в кэше, он последовательно опрашивает серверы DNS. Между резолвером и иерархическими серверами обычно идут итеративные запросы: каждый узел возвращает известные данные или направление к следующему уровню.
Как доменное имя преобразуется в IP-адрес
Путь запроса записи A для www.example.com выглядит так:
- Устройство отправляет запрос рекурсивному серверу.
- Сервер проверяет кэш.
- При отсутствии данных обращается к корневому серверу.
- Корневой сервер направляет его к серверам зоны .com.
- Сервер домена верхнего уровня сообщает адреса авторитетных серверов example.com.
- Авторитетный сервер возвращает A-запись IPv4 или AAAA-запись IPv6.
- Резолвер сохраняет ответ и передает его устройству.
- Браузер соединяется с найденным веб-сервером.
Корневую зону обслуживают 13 логических имен серверов от a.root-servers.net до m.root-servers.net. За каждым стоит распределенная сеть множества физических узлов. Поэтому корневой сервер — не единственная машина и не хранилище адресов всех сайтов. Он отвечает именами серверов домена верхнего уровня и передает поиск на следующий уровень.
Обычный DNS использует порт 53. Небольшие сообщения чаще передаются по UDP, а TCP применяется для крупных ответов, передачи зон и повторного запроса после усечения.
Кэширование DNS-записей и параметр TTL
Кэширование уменьшает задержку и нагрузку на инфраструктуру. Ответ может сохраняться в браузере, операционной системе, маршрутизаторе и рекурсивном сервере.
TTL (Time to Live, время жизни) задается в секундах и ограничивает срок использования записи без повторного обращения к авторитетному источнику. Он не показывает время одновременного обновления DNS «во всем интернете». Старые значения исчезают из независимых кэшей по мере истечения TTL.
Перед переносом сайта TTL желательно уменьшить заранее. Если старая запись уже сохранена с высоким значением, последующее уменьшение не сократит срок ее хранения.
Кэшируются и отрицательные ответы. Код NXDOMAIN означает, что запрошенного имени нет. Срок хранения отрицательного ответа задает последнее поле записи SOA — minimum TTL. Поэтому после исправления записи ошибка может сохраняться еще несколько часов. Это отличается от ситуации, когда имя существует, но не имеет записи нужного типа. Отрицательное кэширование предотвращает повторение заведомо безрезультатных запросов.
Что такое DNS-сервер
DNS-сервер — программа, которая принимает запросы системы доменных имен и формирует ответы. Одна и та же машина может обслуживать несколько ролей одновременно. Его функции зависят от роли. Один сервер ищет данные для пользователей и кэширует их. Другой публикует официальные записи определенной зоны. Корневые серверы и серверы доменов верхнего уровня помогают пройти по иерархии.
Запрос содержит доменное имя и тип требуемой записи. Ответ включает найденные данные, направление к другому серверу или код ошибки. Распределение функций позволяет DNS масштабироваться и не зависеть от единой базы.
Какие бывают DNS-серверы
Для понимания системы важно различать серверы, которые ищут ответ, и серверы, которые хранят официальные данные зоны.
Рекурсивные и кэширующие DNS-серверы
Рекурсивный резолвер принимает запрос клиента и выполняет поиск. Он обращается к корневым, доменным и авторитетным серверам, после чего возвращает готовый результат. Такой узел может принадлежать поставщику доступа, организации или оператору публичной службы DNS.
Кэширующий сервер временно сохраняет ответы согласно TTL. На практике рекурсивная и кэширующая функции часто объединены. Если нужный домен недавно запрашивал другой пользователь, полная цепочка поиска не требуется.
Авторитетный сервер обычно не выполняет рекурсию для посторонних клиентов. Он отвечает за порученную ему зону. Открытая рекурсия опасна, поскольку ее могут использовать в атаках с усилением трафика.
Корневые, TLD- и авторитетные DNS-серверы
Корневые серверы обслуживают верхнюю точку пространства имен и направляют резолвер к нужному домену верхнего уровня.
TLD-серверы обслуживают Top-Level Domain — домены верхнего уровня. Они сообщают, какие серверы авторитетны для зарегистрированного домена второго уровня.
Авторитетный DNS-сервер хранит официальные записи зоны и возвращает окончательный ответ. Для устойчивости зону обслуживают несколько серверов. В традиционной схеме основной сервер содержит исходные данные, а вторичные получают полную копию AXFR или изменения IXFR. Серийный номер записи SOA показывает, появилась ли новая версия зоны.
Что такое DNS-зона и делегирование домена
Домен и DNS-зона — разные понятия. Домен обозначает ветвь пространства имен. Зона — административно управляемая часть этой ветви, записи которой обслуживают определенные авторитетные серверы. Зона может включать поддомены или передавать часть дерева отдельной дочерней зоне.
Делегирование передает полномочия от родительской зоны дочерней. Для этого родитель публикует записи NS с именами авторитетных серверов. Дочерняя зона содержит собственные NS и служебную запись SOA.
Если сервер имен находится внутри делегируемой зоны, возникает циклическая зависимость. Например, для поиска ns1.example.com уже нужен доступ к example.com. Ее устраняет связующая запись: родительская зона передает адрес A или AAAA сервера вместе с делегированием.
Основные типы DNS-записей
Ресурсная запись — единица данных DNS. Она содержит имя, тип, класс, TTL и значение. Поэтому DNS возвращает не только IP-адреса.
Записи A, AAAA и CNAME
A связывает доменное имя с адресом IPv4, AAAA — с IPv6. У имени может быть несколько адресов, однако это не гарантирует отказоустойчивость: обычный DNS не всегда проверяет доступность каждого узла.
CNAME создает псевдоним и указывает на другое доменное имя, а не на IP-адрес. Он не перенаправляет посетителя на другую веб-страницу: для этого нужен ответ веб-сервера.
CNAME нельзя размещать на одном имени вместе с A, MX, TXT и другими обычными данными. Поэтому стандартная запись CNAME не подходит для корня зоны, где уже находятся обязательные SOA и NS. Для корня провайдеры DNS предлагают нестандартные записи ALIAS или ANAME — они возвращают адрес целевого имени, сохраняя вид обычной A-записи.
Записи MX, TXT, NS, SOA и PTR
MX определяет почтовые серверы домена и их приоритет. Меньшее число означает более высокий приоритет. Значением MX должно быть доменное имя, для которого отдельно настроены A или AAAA. MX не должен указывать на имя с записью CNAME: такая конфигурация нарушает стандарт, и часть почтовых серверов отклонит доставку.
TXT хранит текстовые данные. Запись применяют для подтверждения владения доменом, SPF, DKIM и DMARC. Эти механизмы помогают почтовым системам проверять отправителей.
NS указывает авторитетные серверы и участвует в делегировании. SOA хранит имя основного сервера зоны, адрес администратора, серийный номер, интервалы refresh, retry и expire для вторичных серверов и minimum TTL для отрицательных ответов.
PTR связывает IP-адрес с доменным именем при обратном разрешении. Для IPv4 используются зоны in-addr.arpa, для IPv6 — ip6.arpa. Обратной зоной обычно управляет владелец адресного пространства или поставщик инфраструктуры.
Как DNS влияет на работу сайта и электронной почты
Неверная A или AAAA направляет посетителей на чужой либо недоступный сервер. Ошибки в NS нарушают делегирование всей зоны. Высокий TTL замедляет переход на новый адрес, а конфликт CNAME с другими записями приводит к непредсказуемым ответам.
Для почты критичны MX и адресные записи указанных в них серверов. Ошибки в SPF, DKIM и DMARC могут ухудшить репутацию домена и увеличить долю писем, попадающих в нежелательную почту.
Надежная схема включает несколько авторитетных серверов в независимых сетях, правильное делегирование и обоснованные значения TTL. Перед переносом сайта или почты новые узлы следует настроить и проверить до переключения записей.
Публичные DNS-серверы и зачем их менять
По умолчанию устройство использует DNS-сервер поставщика доступа. Его можно заменить публичным резолвером, в России доступен Яндекс DNS (77.88.8.8), из зарубежных известны Cloudflare (1.1.1.1), Google Public DNS (8.8.8.8) и Quad9 (9.9.9.9). Доступность зарубежных резолверов и шифрованных протоколов в российских сетях меняется, поэтому вариант стоит проверять на конкретном канале.
Смена резолвера имеет смысл, если время ответа на запрос превышает 50–70 мс, в логах видны SERVFAIL от текущего сервера или оператор не поддерживает DoH и DoT. Замерить задержку можно командой dig @1.1.1.1 example.com и сравнить с ответом резолвера провайдера. Некоторые службы проверяют DNSSEC или блокируют известные вредоносные домены. Скорость зависит от расстояния до узла, маршрута и состояния кэша.
При выборе важны политика хранения данных, фильтрация, поддержка DNSSEC, DNS over HTTPS и DNS over TLS. Шифрование защищает запрос только до выбранного резолвера, поэтому доверие к его оператору сохраняет значение.
Российские операторы связи и владельцы автономных систем подключаются к НСДИ (национальной системе доменных имен). Ее резолверы обслуживают запросы внутри страны и снижают зависимость инфраструктуры от зарубежных корневых узлов. Для корпоративной сети выбор резолвера — это не только вопрос скорости, но и вопрос соответствия требованиям регулятора.
Безопасность DNS
Классический DNS не предусматривает обязательного шифрования и проверки подлинности. Злоумышленник, способный вмешаться в обмен или отравить кэш, может вернуть ложный IP-адрес. Современные механизмы решают разные части этой проблемы.
DNSSEC, DNS over HTTPS и DNS over TLS
DNSSEC (расширения безопасности DNS) подтверждает происхождение и целостность данных. Владелец зоны подписывает наборы записей закрытым ключом, а резолвер проверяет их по цепочке доверия. Связь между родительской и дочерней зонами создает запись DS: родитель публикует отпечаток ключа дочерней зоны. Разрыв этой цепочки дает ошибку проверки даже при корректных записях. DNSSEC не шифрует запросы и не скрывает имя ресурса.
DNS over HTTPS, то есть DNS через защищенный HTTPS, шифрует канал между клиентом и рекурсивным резолвером. Обмен передается через HTTPS, обычно по порту 443.
DNS over TLS шифрует тот же участок, но использует отдельное защищенное соединение, обычно по порту 853.
DNS over QUIC (RFC 9250) решает ту же задачу поверх транспорта QUIC на порту 853. Он быстрее восстанавливает соединение при потере пакетов, поэтому подходит для мобильных и нестабильных сетей. Протокол поддерживают Windows 11, Android и часть DNS-серверов, например AdGuard Home.
DNSSEC проверяет данные, а DNS over HTTPS, DNS over TLS и DNS over QUIC защищают канал передачи. Эти технологии дополняют друг друга.
Подмена DNS и другие угрозы
Подмена ответа направляет пользователя на ложный адрес. Отравление кэша сохраняет поддельную запись на рекурсивном сервере до истечения TTL. Перехват незашифрованного запроса позволяет увидеть запрашиваемые имена.
При атаке с усилением трафика небольшие запросы с подмененным адресом источника вызывают крупные ответы на адрес жертвы. Для защиты применяют проверку DNSSEC, шифрованный транспорт, запрет открытой рекурсии, ограничение частоты ответов, обновление серверного программного обеспечения и многофакторную защиту учетной записи регистратора.
Почему возникают ошибки DNS и как их устранить
Причинами становятся неверные записи, ошибки делегирования, устаревший кэш, недоступность авторитетных серверов, сбой DNSSEC или сетевая фильтрация. NXDOMAIN означает отсутствие имени. SERVFAIL показывает, что резолвер не смог завершить обработку запроса.
Проверку проводят поэтапно:
- Убедиться, что соединение с интернетом работает.
- Проверить написание домена и наличие нужного типа записи.
- Очистить локальный кэш или дождаться истечения TTL.
- Сравнить ответы нескольких рекурсивных серверов.
- Проверить NS в родительской и дочерней зонах.
- Убедиться, что авторитетные серверы доступны и обслуживают зону.
- Проверить A, AAAA, CNAME, MX, SOA и связующие записи.
- При использовании DNSSEC проверить подписи и запись DS.
- Убедиться, что сеть не блокирует UDP и TCP на порту 53.
- После исправления учесть сохраненные значения в независимых кэшах.
Для диагностики используют nslookup, dig и аналогичные средства. Запрашивать нужно не только домен, но и конкретный тип записи. Сравнение ответа рекурсивного и авторитетного серверов помогает отделить ошибку зоны от устаревшего кэша или локальной сетевой проблемы.
DNS в виртуальной инфраструктуре SpaceVM
SpaceVM — платформа серверной виртуализации на гипервизоре KVM, разработка компании ДАКОМ М, реестр российского ПО №16085. DNS-серверы в SpaceVM задают на уровне сети: в Web-интерфейсе открывают раздел Сети, Сетевые настройки, выбирают нужную сеть, в блоке «Настройки серверов» переходят в «DNS настройки» и указывают IP-адрес DNS-сервера. Эту роль часто выполняет виртуальная машина внутри той же инфраструктуры.
Полное доменное имя нужно интерфейсу управления контроллером. После загрузки SSL-сертификата в параметре «Адрес интерфейса управления контроллера» указывают FQDN. Если оставить адрес без доменного имени, при подключении к виртуальным машинам по протоколам SPICE и VNC через Web-интерфейс могут возникать ошибки. Поэтому FQDN контроллера должен корректно разрешаться настроенным DNS-сервером.
Разрешение имен нужно и службам каталогов. SpaceVM подключается к LDAP и Active Directory, включая Multidirectory, по протоколу LDAPS. Когда адрес каталога задан именем, его разрешение опирается на DNS сети.
Общие правила действуют и для узлов кластера: несколько авторитетных серверов, обоснованные значения TTL и проверка записей до ввода узла в работу.
Главное по теме
DNS — иерархическая распределенная база данных, которая связывает доменные имена с ресурсными записями: адресами, почтовыми узлами, серверами имён и данными безопасности. Единого сервера с адресами всех сайтов в системе нет.
Запрос проходит по цепочке: stub-резолвер ОС, рекурсивный резолвер, корневой сервер, сервер домена верхнего уровня, авторитетный сервер. Резолвер ищет ответ, авторитетный сервер хранит официальные записи зоны — это разные роли.
TTL определяет, сколько ответ живет в кэше. Перед переносом сайта или почты TTL уменьшают заранее: если старое значение уже закэшировано, снизить его задним числом не получится.
DNSSEC подтверждает подлинность и целостность записей, но не шифрует запрос. Канал передачи защищают DNS over HTTPS, DNS over TLS и DNS over QUIC. Эти механизмы решают разные задачи и дополняют друг друга.
Ошибки DNS чаще всего вызывают неверные записи, ошибки делегирования, устаревший кэш или недоступность авторитетных серверов. NXDOMAIN означает отсутствие имени, SERVFAIL — что резолвер не смог завершить обработку.