← На главную

DMARC-тег np ломается на DNSSEC из-за Cloudflare и AWS

05.07.2026 15:00 · hackernews

В мае 2026 года IETF опубликовала обновлённую спецификацию DMARC — RFC 9989. Она вводит новый тег np, который задаёт политику для несуществующих поддоменов. В DMARC-записи это выглядит так: v=DMARC1; p=none; sp=quarantine; np=reject. Проблема в том, что RFC 9989 определяет «несуществующий домен» через ответ DNS с кодом NXDOMAIN — по RFC 8020. Но это определение конфликтует с другим свежим стандартом, RFC 9824 — «Compact Denial of Existence in DNSSEC».

RFC 9824 описывает метод, который Cloudflare придумал ещё в 2016 году и назвал «black lies». Вместо NXDOMAIN для несуществующего домена сервер возвращает NOERROR и один NSEC-запись, «лжёт», что домен существует, но нет записей запрошенного типа. Это сильно уменьшает размер ответа. Чтобы при этом можно было отличить несуществующий домен от существующего, в NSEC-запись добавляется специальный бит NXNAME. Метод теперь используют крупные DNS-провайдеры: Cloudflare, NS1, AWS Route 53, Azure DNS, Oracle Cloud DNS, Bunny DNS.

Проблема для np-тега очевидна: DMARC-клиент, проверяя, существует ли поддомен, ждёт NXDOMAIN. А получает NOERROR с компактным denial of existence. RFC 9824 предусматривает опциональные механизмы восстановления NXDOMAIN — через специальный EDNS-флаг CO (Compact Answers OK). Но, как выяснили авторы статьи (июнь 2026), ни один из популярных резолверов (8.8.8.8, 1.1.1.1, BIND9, Unbound, PowerDNS, Knot Resolver) не восстанавливает NXDOMAIN. Cloudflare, NS1, AWS Route 53, Azure и Oracle не поддерживают CO-флаг на стороне авторитетных серверов. Только Bunny DNS поддерживает и NXNAME, и CO.

Из открытых DMARC-реализаций тег np полноценно поддерживает пока только Mail::DMARC, но он строго проверяет NXDOMAIN и не знает про NXNAME. OpenDMARC, Stalwart, Rspamd и другие либо не реализовали np, либо не используют DNSSEC. Ситуацию усложняет то, что около 44% доменов, использующих DNSSEC (а это примерно 8–10% всех доменов), обслуживаются через compact denial.

Авторы подняли вопрос в рабочей группе IETF по DMARC. Ошибкой (erratum) это не признали, дискуссии зашли в тупик. Решений два: либо DMARC-реализации учатся читать NXNAME-бит, либо DNS-экосистема начинает повсеместно поддерживать восстановление NXDOMAIN. Пока ни того, ни другого не происходит. Владельцам доменов стоит исходить из того, что np-тег на DNSSEC-доменах у крупных провайдеров гарантированно не сработает.

Читать оригинал →