Слой 1. Имя, зона и источник ответа
До обращения к сети определите итоговое имя, нужный тип записи и зону, которая вправе отвечать за эту часть пространства имён.
DNS — распределённая иерархия типизированных записей. Доменное имя указывает узел, а полное доменное имя FQDN не зависит от локальной точки отсчёта и поискового суффикса.
Зона — административная единица DNS. Родительская зона делегирует дочернюю с помощью набора записей NS и направляет запрос к её серверам, а не отвечает за её содержимое.
Авторитетный сервер отвечает по данным своей зоны. Записи NS называют такие серверы, а SOA хранит сведения о вершине зоны, её серийный номер и параметры передачи.
Тип записи задаёт её смысл: A/AAAA возвращают IP-адреса, CNAME — псевдоним, MX — почтовый сервер. Ни одна такая запись сама по себе не доказывает, что служба доступна и подлинна.
Слой 2. Кто разрешает имя и почему старый ответ ещё действует
Приложение редко обходит иерархию DNS само: локальный DNS-клиент выбирает рекурсивный резолвер, а тот использует кэш, пересылку запросов и последовательные переходы по делегированию.
Локальный DNS-клиент формирует итоговый QNAME и передаёт работу рекурсивному резолверу. Поэтому при диагностике нужно учитывать файл hosts, поисковый суффикс и выбранный резолвер.
При итеративном разрешении резолвер следует указаниям к более точному источнику ответа. Заполненный кэш позволяет начать ниже корневой зоны или сразу вернуть набор записей.
TTL ограничивает срок повторного использования обычного набора записей. Если большое значение уже попало в кэш, его нельзя мгновенно сократить, уменьшив TTL в авторитетной зоне только в момент изменения.
Ответы NXDOMAIN и NODATA кэшируются отдельно и на свой срок. Тайм-аут или ошибка проверки не доказывают, что имени не существует.
Раздельный DNS выбирает представление зоны по сети и контексту резолвера. Поэтому публичный DoH во время работы через VPN может получить другой корректный ответ, чем корпоративный резолвер.
Слой 3. Подпись данных и защита транспорта — разные задачи
DNSSEC подтверждает происхождение набора записей по цепочке доверия. DoT и DoH защищают отдельный участок пути до резолвера. Один механизм не заменяет другой.
DNSSEC подписывает наборы записей и доказательства отсутствия имени. Записи DNSKEY, DS, RRSIG и NSEC выполняют разные роли и только вместе образуют проверяемую цепочку.
Цепочка начинается с якоря доверия: проверенный DS родительской зоны сопоставляют с DNSKEY дочерней и этим ключом проверяют RRSIG набора DNSKEY; только затем ключи проверяют остальные подписи зоны.
Проверяющий резолвер различает четыре состояния: защищённое, неподписанное, ошибочное и неопределённое. Биту AD можно доверять только при защищённом соединении с доверенным резолвером.
DoT шифрует DNS-сообщения, но проверяет сервер резолвера только в строгом профиле; оппортунистический профиль этого не требует. DNSSEC проверяется отдельно.
DoH передаёт DNS-сообщения через HTTPS и проверяет сервер DoH. При этом выбранный резолвер получает доверие к запросам, правила их обработки и видимость запрашиваемых имён.
Слой 4. Найти службу — ещё не значит проверить её
DNS может вернуть адрес, порт, экземпляр и возможности службы. Приложение должно правильно истолковать эти данные, а после подключения — проверить удалённую сторону и допустимость действия.
Запись SRV задаёт целевой узел, порт, приоритет и вес; профиль протокола определяет имя запроса и порядок выбора. DNS-SD добавляет перечисление через PTR и дополнительные сведения в TXT.
SVCB публикует альтернативную конечную точку и расширяемые параметры. Запись HTTPS применяет эту модель к исходным адресам HTTP, в том числе передаёт ALPN и подсказки адресов.
Альтернативная цель не получает доверие автоматически: записи SVCB и HTTPS не отменяют проверку подлинности исходной службы по правилам PKIX.
Найденный адрес становится проверенной конечной точкой только после реального подключения и сопоставления имени в сертификате. Права приложения проверяются отдельным слоем.
Проверьте инженерное мышление
Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.
Источники курса
Ссылки приведены один раз для всего курса, чтобы не мешать чтению каждого тезиса.
- Первичная спецификация
Domain Names — Concepts and Facilities
Internet Engineering Task Force · RFC 1034, November 1987
Определяет иерархию DNS, zones, authoritative data, referrals и resolver algorithm.
Открыть первоисточник - Первичная спецификация
DNS Terminology
Internet Engineering Task Force · RFC 9499 / BCP 219, March 2024
Актуализирует определения names, resolvers, authoritative servers, zones, delegation, split DNS и DNSSEC states.
Открыть первоисточник - Первичная спецификация
Domain Names — Implementation and Specification
Internet Engineering Task Force · RFC 1035, November 1987
Задаёт DNS wire format, master files и базовые resource records A, CNAME, MX, NS и SOA.
Открыть первоисточник - Первичная спецификация
DNS Extensions to Support IP Version 6
Internet Engineering Task Force · RFC 3596, October 2003
Определяет AAAA resource record и IPv6 reverse lookup domain.
Открыть первоисточник - Первичная спецификация
Clarifications to the DNS Specification
Internet Engineering Task Force · RFC 2181, July 1997
Уточняет RRset, TTL, authoritative ranking и canonical-name semantics.
Открыть первоисточник - Первичная спецификация
DNS Security Introduction and Requirements
Internet Engineering Task Force · RFC 4033, March 2005
Определяет DNSSEC goals, resolver security states, trust anchors и границы защиты.
Открыть первоисточник - Первичная спецификация
Negative Caching of DNS Queries
Internet Engineering Task Force · RFC 2308, March 1998
Определяет cacheable NXDOMAIN и NODATA responses и получение negative TTL из SOA.
Открыть первоисточник - Первичная спецификация
Negative Caching of DNS Resolution Failures
Internet Engineering Task Force · RFC 9520, December 2023
Ограничивает caching transient resolution failures и DNSSEC validation failures.
Открыть первоисточник - Официальная документация
Architectural Considerations on Application Features in the DNS
Internet Architecture Board · RFC 6950, October 2013
Разбирает application use DNS, private namespaces и split-horizon operational boundaries.
Открыть первоисточник - Первичная спецификация
DNS Queries over HTTPS
Internet Engineering Task Force · RFC 8484, October 2018
Определяет перенос DNS messages через authenticated HTTPS connection и media type application/dns-message.
Открыть первоисточник - Первичная спецификация
Protocol Modifications for the DNS Security Extensions
Internet Engineering Task Force · RFC 4035, March 2005
Определяет signing, authoritative serving и resolver validation behavior DNSSEC.
Открыть первоисточник - Первичная спецификация
Resource Records for the DNS Security Extensions
Internet Engineering Task Force · RFC 4034, March 2005
Определяет DNSKEY, RRSIG, NSEC и DS resource records и canonical form для signatures.
Открыть первоисточник - Первичная спецификация
Specification for DNS over Transport Layer Security
Internet Engineering Task Force · RFC 7858, May 2016
Определяет DNS over TLS transport, privacy profiles и server authentication requirements.
Открыть первоисточник - Первичная спецификация
Service Identity in TLS
Internet Engineering Task Force · RFC 9525, November 2023
Задаёт construction и verification reference identifiers для TLS services; server identity находится в subjectAltName, не в commonName.
Открыть первоисточник - Первичная спецификация
A DNS RR for Specifying the Location of Services
Internet Engineering Task Force · RFC 2782, February 2000
Определяет SRV target, port, priority и relative weight для service location.
Открыть первоисточник - Первичная спецификация
DNS-Based Service Discovery
Internet Engineering Task Force · RFC 6763, February 2013
Определяет discovery service instances через PTR, SRV и TXT records.
Открыть первоисточник - Первичная спецификация
Service Binding and Parameter Specification via the DNS
Internet Engineering Task Force · RFC 9460, November 2023
Определяет SVCB и HTTPS records, alternative endpoints и extensible service parameters.
Открыть первоисточник