🔐
Домены

Как включить DNSSEC: запись DS, правильный порядок и ошибки

14.11.2026
← Все статьи

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

Как строится цепочка доверия

Суть DNSSEC — цепочка доверия. Корневая зона подтверждает ключ зоны верхнего уровня, например .uz, а та, в свою очередь, подтверждает ключ вашего домена. В зоне домена размещаются записи DNSKEY с открытыми ключами и подписи RRSIG для каждого набора записей. В родительской зоне находится запись DS — хеш вашего ключа, который говорит: «настоящий ключ этого домена — вот этот». DS передаётся в родительскую зону через регистратора, поэтому DNSSEC настраивается в двух местах: у DNS-хостинга и там, где зарегистрирован домен.

Обычно используются ключи двух типов. KSK (ключ подписи ключей) подписывает только набор DNSKEY, и именно его хеш передаётся в DS. ZSK подписывает остальные записи зоны и может меняться чаще. В современных конфигурациях широко используется и единый ключ CSK.

Что выяснить до начала

Во-первых, ваш DNS-сервис должен уметь подписывать зону. Во многих управляемых DNS это включается одной кнопкой, после чего сервис показывает данные для DS. На собственном сервере подпись выполняет BIND, Knot или PowerDNS. Во-вторых, доменная зона и регистратор должны принимать DS. Если домен зарегистрирован в sayt.uz, возможность добавить DS уточните в личном кабинете или через техподдержку. В-третьих, выберите алгоритм: сейчас чаще всего рекомендуют алгоритм 13, ECDSAP256SHA256, — у него короткие подписи и широкая поддержка.

Правильный порядок: сначала подпись, потом DS

Главное правило касается порядка. Сначала зона подписывается и публикуются записи DNSKEY. Затем нужно подождать как минимум TTL записи DNSKEY, чтобы резолверы увидели новые ключи. Только после этого DS добавляется в родительскую зону. Если порядок обратный и DS уже есть, а зона ещё не подписана, проверяющие резолверы сочтут ответ поддельным и вернут SERVFAIL.

В BIND 9.18 и новее подпись автоматизируется через политику. Такая настройка создаёт ключи, подписывает зону и обновляет подписи до истечения срока:

zone "example.uz" {
    type primary;
    file "/var/lib/bind/db.example.uz";
    dnssec-policy default;
    inline-signing yes;
};

После перезагрузки конфигурации проверьте статус и получите DS из файла KSK. Число в имени файла — тег ключа, у вас оно будет другим:

rndc reconfig
rndc dnssec -status example.uz
dig @127.0.0.1 example.uz DNSKEY +multi
dnssec-dsfromkey -2 /var/lib/bind/Kexample.uz.+013+12345.key

Результат выглядит так. Регистратору обычно передают четыре значения: тег ключа, алгоритм, тип хеша и сам хеш. Тип хеша 2 означает SHA-256.

example.uz. IN DS 12345 13 2 3F1A...C9D2

Когда DS появится в родительской зоне, сообщите об этом BIND, чтобы он корректно продолжал смену ключей: rndc dnssec -checkds published example.uz.

Как проверить, что всё работает

Отправьте запрос к открытому резолверу, который проверяет DNSSEC. Флаг ad в заголовке ответа означает, что подпись успешно проверена. Утилита delv пишет результат прямым текстом.

dig @8.8.8.8 example.uz A +dnssec
dig example.uz DS +short
delv @1.1.1.1 example.uz A

Если обычный запрос возвращает SERVFAIL, а с флагом +cd (проверка отключена) ответ приходит, проблема точно в DNSSEC: dig @8.8.8.8 example.uz A +cd. Для наглядного анализа цепочки удобны онлайн-инструменты вроде DNSViz — они показывают, какое звено разорвано.

Самые частые ошибки

Первая и самая опасная ошибка случается при смене DNS-хостинга. Например, сайт частной школы в Бухаре перенесли к новому провайдеру и сменили NS, но забыли удалить старую запись DS. Новый провайдер зону не подписывал или подписывал другим ключом, и родители, пользующиеся проверяющими резолверами, не могли открыть сайт, а остальные проблемы не замечали. Из-за этого ошибку долго не могли найти. Правильный порядок: сначала удалить DS, подождать TTL записи DS, затем сменить NS и заново включить DNSSEC на новом месте.

Вторая ошибка — просроченные подписи. RRSIG выдаются на ограниченный срок и должны постоянно обновляться. Если программа подписи остановилась или зону однажды подписали вручную и больше не обновляли, через несколько недель домен перестанет открываться. Третья ошибка — несоответствие DS и ключа: регистратору передали хеш ZSK, выбрали неверный номер алгоритма или при смене ключа не добавили новый DS. Четвёртая — неверное время на сервере: подписи проверяются по интервалу действия, и при сбитых часах новые подписи выглядят недействительными.

Как безопасно отключить DNSSEC

Отключение тоже зависит от порядка, только обратного. Сначала через регистратора удаляют DS. Затем ждут как минимум день-два, пока истечёт TTL записи DS в родительской зоне и очистятся кэши резолверов. Только после этого отключают подпись зоны. В этот промежуток подписанная зона не мешает, а наоборот, обеспечивает работу сайта для резолверов, у которых DS ещё в кэше.

Похожие статьи

🔑 Разработчик оформил домен на себя: как вернуть его компании 🏢 Регистрация домена .uz на юридическое лицо: данные и порядок 🌍 Может ли иностранец зарегистрировать домен .uz: требования и советы 🟠 Прокси Cloudflare (оранжевое облако): когда включать, а когда выключать
🌐 Язык
🇺🇿 O'zbek 🇺🇿 Ўзбек 🇷🇺 Русский ✓ 🇬🇧 English