Практикум по разрешению имён

DNS без магии: от запроса до проверенной службы

Курс проводит один запрос от приложения и локального DNS-клиента через кэш, делегирование и авторитетную зону к нужной службе. Отдельно разбираются DNSSEC, DoT/DoH, раздельные представления DNS, поиск служб и проверка подлинности по TLS.

База → эксплуатация52 минут4 модуля5 вопросов
После курса

Что вы сможете сделать

  1. Проследить DNS-запрос от приложения до авторитетного ответа и кэша.
  2. Различать имя, зону, делегирование, тип записи, обычный TTL и отрицательное кэширование.
  3. Не путать проверку DNSSEC с шифрованием транспорта через DoT или DoH.
  4. После поиска службы отдельно проверять её доступность, подлинность по TLS и права доступа.
Модуль 1 из 4

Слой 1. Имя, зона и источник ответа

До обращения к сети определите итоговое имя, нужный тип записи и зону, которая вправе отвечать за эту часть пространства имён.

  • DNS — распределённая иерархия типизированных записей. Доменное имя указывает узел, а полное доменное имя FQDN не зависит от локальной точки отсчёта и поискового суффикса.

  • Зона — административная единица DNS. Родительская зона делегирует дочернюю с помощью набора записей NS и направляет запрос к её серверам, а не отвечает за её содержимое.

  • Авторитетный сервер отвечает по данным своей зоны. Записи NS называют такие серверы, а SOA хранит сведения о вершине зоны, её серийный номер и параметры передачи.

  • Тип записи задаёт её смысл: A/AAAA возвращают IP-адреса, CNAME — псевдоним, MX — почтовый сервер. Ни одна такая запись сама по себе не доказывает, что служба доступна и подлинна.

Модуль 2 из 4

Слой 2. Кто разрешает имя и почему старый ответ ещё действует

Приложение редко обходит иерархию DNS само: локальный DNS-клиент выбирает рекурсивный резолвер, а тот использует кэш, пересылку запросов и последовательные переходы по делегированию.

  • Локальный DNS-клиент формирует итоговый QNAME и передаёт работу рекурсивному резолверу. Поэтому при диагностике нужно учитывать файл hosts, поисковый суффикс и выбранный резолвер.

  • При итеративном разрешении резолвер следует указаниям к более точному источнику ответа. Заполненный кэш позволяет начать ниже корневой зоны или сразу вернуть набор записей.

  • TTL ограничивает срок повторного использования обычного набора записей. Если большое значение уже попало в кэш, его нельзя мгновенно сократить, уменьшив TTL в авторитетной зоне только в момент изменения.

  • Ответы NXDOMAIN и NODATA кэшируются отдельно и на свой срок. Тайм-аут или ошибка проверки не доказывают, что имени не существует.

  • Раздельный DNS выбирает представление зоны по сети и контексту резолвера. Поэтому публичный DoH во время работы через VPN может получить другой корректный ответ, чем корпоративный резолвер.

Модуль 3 из 4

Слой 3. Подпись данных и защита транспорта — разные задачи

DNSSEC подтверждает происхождение набора записей по цепочке доверия. DoT и DoH защищают отдельный участок пути до резолвера. Один механизм не заменяет другой.

  • DNSSEC подписывает наборы записей и доказательства отсутствия имени. Записи DNSKEY, DS, RRSIG и NSEC выполняют разные роли и только вместе образуют проверяемую цепочку.

  • Цепочка начинается с якоря доверия: проверенный DS родительской зоны сопоставляют с DNSKEY дочерней и этим ключом проверяют RRSIG набора DNSKEY; только затем ключи проверяют остальные подписи зоны.

  • Проверяющий резолвер различает четыре состояния: защищённое, неподписанное, ошибочное и неопределённое. Биту AD можно доверять только при защищённом соединении с доверенным резолвером.

  • DoT шифрует DNS-сообщения, но проверяет сервер резолвера только в строгом профиле; оппортунистический профиль этого не требует. DNSSEC проверяется отдельно.

  • DoH передаёт DNS-сообщения через HTTPS и проверяет сервер DoH. При этом выбранный резолвер получает доверие к запросам, правила их обработки и видимость запрашиваемых имён.

Модуль 4 из 4

Слой 4. Найти службу — ещё не значит проверить её

DNS может вернуть адрес, порт, экземпляр и возможности службы. Приложение должно правильно истолковать эти данные, а после подключения — проверить удалённую сторону и допустимость действия.

  • Запись SRV задаёт целевой узел, порт, приоритет и вес; профиль протокола определяет имя запроса и порядок выбора. DNS-SD добавляет перечисление через PTR и дополнительные сведения в TXT.

  • SVCB публикует альтернативную конечную точку и расширяемые параметры. Запись HTTPS применяет эту модель к исходным адресам HTTP, в том числе передаёт ALPN и подсказки адресов.

  • Альтернативная цель не получает доверие автоматически: записи SVCB и HTTPS не отменяют проверку подлинности исходной службы по правилам PKIX.

  • Найденный адрес становится проверенной конечной точкой только после реального подключения и сопоставления имени в сертификате. Права приложения проверяются отдельным слоем.

Финишная прямая

Проверьте инженерное мышление

Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.

01Сервер родительской зоны вернул записи NS дочерней зоны. Что это доказывает?
02Запись создали минуту назад, но один резолвер всё ещё отвечает NXDOMAIN. Какой первый вывод корректен?
03Клиент использует защищённое и проверенное соединение DoT с резолвером. Что ещё не доказано?
04Две записи SRV имеют разный приоритет. Когда применяется вес?
05Проверенная по DNSSEC запись HTTPS указала альтернативную цель. Что завершает решение о безопасном подключении?
Проверяемая база

Источники курса

Ссылки приведены один раз для всего курса, чтобы не мешать чтению каждого тезиса.

  • Первичная спецификация

    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.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие