Включили DNSSEC, но забыли DS-запись — цепочка доверия не замкнулась

|Автор: Редакция QUASA|5 мин чтения
Включили DNSSEC, но забыли DS-запись — цепочка доверия не замкнулась

Чтобы включить DNSSEC для домена, сначала включите подпись зоны у действующего авторитетного DNS-провайдера и получите параметры DS-записи. Затем передайте их регистратору: DS должна появиться в родительской зоне, через которую проверяющий DNS-резолвер устанавливает связь с ключом вашего домена. Пока DS отсутствует, зона может отвечать на запросы, но цепочка доверия до неё не продолжается.

Объяснение ICANN о DNSSEC выделяет передачу материала открытого ключа родительской зоне как отдельный шаг после подписи данных; обычно владелец домена делает это через регистратора. Поэтому сначала выясните, кто обслуживает авторитетные серверы имён, а кто управляет регистрацией домена: это могут быть разные компании.

Где находятся подпись, ключ и DS

Авторитетный DNS-провайдер публикует в зоне открытые ключи DNSKEY и подписи RRSIG к данным. DS-запись публикуется уровнем выше, в родительской зоне; она содержит отпечаток ключа подписанной дочерней зоны и сведения, необходимые для проверки соответствия. Резолвер использует эту связь, чтобы продолжить проверку от доверенной родительской зоны к ответу вашего домена.

Отсутствующая и устаревшая DS имеют разные последствия. Если DS нет, делегирование считается неподтверждённым DNSSEC, хотя обычное разрешение имени может продолжать работать. Если в родительской зоне осталась DS от другого ключа, проверяющий резолвер может отклонить ответы с ошибкой SERVFAIL. Перед настройкой поэтому посмотрите, опубликована ли для домена прежняя DS: добавление новой подписи само по себе её не удаляет.

Включите подпись у действующего DNS-провайдера

Подписанная DNS-зона содержит открытый ключ DNSKEY и подпись RRSIG, а DS для связи с ней публикуется отдельно.

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

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

  1. Включите DNSSEC для действующей зоны и дождитесь, пока провайдер покажет данные для передачи регистратору.
  2. Скопируйте идентификатор ключа, алгоритм, тип дайджеста и сам дайджест. Эти поля вместе описывают одну DS-запись; не подставляйте значения из прежней настройки.
  3. Проверьте, что провайдер отдаёт DNSKEY и подписанные ответы. Это подтверждает подпись зоны, но ещё не показывает, опубликована ли DS у родительской зоны.

Если DNS-провайдер и регистратор предлагают автоматическое обновление DS, уточните статус именно публичной записи после активации. Автоматическая отправка не означает, что родительская зона уже обновилась.

Передайте DS регистратору

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

Регистратор передаёт эти сведения реестру, после чего DS публикуется в родительской зоне. Обычная запись, созданная внутри зоны самого домена, не заменяет эту публикацию. Если панель не принимает указанный алгоритм либо в ней нет настройки DNSSEC, выясните у регистратора, поддерживает ли он передачу таких параметров; выбор похожего алгоритма не исправит несовпадение ключей.

После сохранения сравните запись в панели регистратора с исходными данными провайдера, особенно длинный дайджест. Затем переходите к проверке публичного DNS: отметка «сохранено» отражает действие в панели, а не состояние родительской зоны.

Проверьте цепочку через публичный DNS

Проверка состоит из двух частей: увидеть DS у родительской зоны и получить ответ, который проверяющий резолвер признал подлинным. Руководство Cloudflare по диагностике DNSSEC показывает запросы DS и DNSKEY, поиск подписи RRSIG, флаг ad и диагностику SERVFAIL. В командах ниже example.com — условный домен; замените его своим.

  1. Выполните dig DS example.com +trace. Проследите, что DS возвращается сервером родительской зоны, и сравните её поля с параметрами действующего провайдера. Обычный dig DS example.com полезен дополнительно, но ответ рекурсивного резолвера может оставаться в кеше.
  2. Запросите dig DNSKEY example.com, затем dig example.com A +dnssec. Первый запрос показывает открытые ключи зоны, второй позволяет увидеть подпись RRSIG у ответа. Одни лишь DNSKEY и RRSIG подтверждают наличие подписи, но не связь с родительской зоной.
  3. Запросите запись через резолвер, который проверяет DNSSEC, без сокращённого вывода. Флаг ad в заголовке ответа означает, что резолвер признал данные подлинными. При SERVFAIL повторите запрос с параметром +cd: если данные приходят только при отключённой проверке, сопоставьте опубликованную DS с текущими ключами и проверьте старую запись у регистратора.

Для окончательной оценки учитывайте кеш: после изменения DS разные резолверы некоторое время могут показывать разное состояние. Публичный ответ родительской зоны показывает опубликованные данные, а проверяющий резолвер — проходит ли с ними проверка подписи.

Перенесите зону без конфликта со старой DS

Старая DS-запись не соответствует ключу DNSKEY новой зоны после смены DNS-провайдера.

При смене DNS-провайдера новая зона обычно получает другие ключи. Если переключить серверы имён, пока родительская зона или кеш резолвера сохраняют DS от старой зоны, проверка подписи может завершиться SERVFAIL. Заранее подготовьте у нового провайдера нужные записи сайта и почты, чтобы после переключения они отвечали так же, как в прежней зоне.

  1. Удалите прежнюю DS через регистратора, оставив старую зону подписанной. Узнайте время жизни старой DS и дождитесь его полного истечения после удаления: исчезновение записи из панели ещё не очищает кеш резолверов.
  2. Проверьте, что прежняя DS больше не выдаётся родительской зоной. После ожидания смените у регистратора серверы имён на серверы нового провайдера.
  3. Дождитесь обновления делегирования и убедитесь, что новые авторитетные серверы отдают нужные записи. Затем включите подпись новой зоны, получите её параметры DS и передайте их регистратору.
  4. Повторите запрос DS к родительской зоне и проверку ответа через проверяющий резолвер. Сравнивайте опубликованную DS уже с ключом нового провайдера.

Такой перенос создаёт промежуток, когда делегирование не защищено непрерывной цепочкой DNSSEC. Сохранить цепочку на всём протяжении миграции можно при согласованной работе ключей старого и нового провайдеров, если оба поддерживают соответствующую процедуру. Для обычного переноса главное условие перед сменой серверов имён — удалить старую DS и дождаться окончания срока её кеширования.

Читайте также:

Поделиться:

Подпишитесь на рассылку

Получайте свежие новости Web3, AI и криптовалют прямо на вашу почту.

0