[DNSOP] Re: A question regarding DNSSEC validation

Shumon Huque <shuque@gmail.com> Mon, 20 April 2026 20:17 UTC

Return-Path: <shuque@gmail.com>
X-Original-To: dnsop@mail2.ietf.org
Delivered-To: dnsop@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id CDEB5DFBC7A1 for <dnsop@mail2.ietf.org>; Mon, 20 Apr 2026 13:17:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1776716260; bh=mrhtx6snvF3mdAS/JIvlBguh4Pv7zpkpt3d+D6P/xsg=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=CVlAIN/8GRQI6TyHF8pAJ8HUTtNgBsFXQUBGxABTBCnSKD3EAqGm2w/vzk+cieDTW Bu3kGUYbY0MF1RCgfEG3Irx77m0i2upgw79paN0qF9s++8zOnOvD3grbAmAr8G0hYr /C5UX7I6N0Plu0hmT8047wyIXmp1+uc8ZhNHYeMQ=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Hb1zSydQtTxx for <dnsop@mail2.ietf.org>; Mon, 20 Apr 2026 13:17:40 -0700 (PDT)
Received: from mail-ot1-x32b.google.com (mail-ot1-x32b.google.com [IPv6:2607:f8b0:4864:20::32b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 38673DFBC794 for <dnsop@ietf.org>; Mon, 20 Apr 2026 13:17:40 -0700 (PDT)
Received: by mail-ot1-x32b.google.com with SMTP id 46e09a7af769-7dbb89ab229so3383149a34.1 for <dnsop@ietf.org>; Mon, 20 Apr 2026 13:17:40 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1776716259; cv=none; d=google.com; s=arc-20240605; b=A+rGoJGdpTV3US5eVyix/Ds27EqamxhC7c2UCm+QbO1VH8adLQo4bKhkqgo+bpdv1O tDF0iFVq8yJeCDe6682Tv/4X5J+7OBNRFQ2p2LnKEyhHpRoH8PTELyskhSspLWxTi+pv mkqtaoDlFlVxBBnb6UBl8AwBGP050wZsCygFwmioR59khHkHf9BGdQn9R/dR8xTDaZPr k4HhnpSMarW+S/WhH8Hg2j0SMpv4nM+RgPZ4q7zhVfus8S2EztYEcEHZG1CxF/yqwywA vvC1xr5aAtTYZh7M3AkMNkyAuZgPXShxjKUCSZY+1IvmLM86oK6wPNlFyhqiyTVrb6WX sOWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=vLrlKC3SMdVMZas0Xm9ehZvRyrV5EfwLdWPj30CsAss=; fh=2mTFYRkZPoim5UyGBjpIGydJv13AFGX+JSxar0j54Ls=; b=NQnLL9g7ZMPnxv21u968l42pQk4ROz9VLDsumy+n6gNMjp2irggpbbq8E6TvLLvEYh nUKcyM/CpuKUmq7xL3BKuCIN6QXDmL3nR9a3FohtmmMy9YcFlJBqCHXXVbYCP4E4Oyzn 6isFgAERBFFjgCI1liPhK0JWhWT0tZsm8DXLlI7OvL+J9Xtv2UhItDHUY6cGkqc5u2Mk QramJaXYh+22cv32ppPNJh67twf6ZP0NDYW5um+qEa31agDifnrJaNs82u5vy8VIiquW SbjWeM3npnEy81akyBLEW79qUc5XIjjRcdKnISxbyv6yZsul3FbT/ozkNBXGguC/0NBD tNUw==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776716259; x=1777321059; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=vLrlKC3SMdVMZas0Xm9ehZvRyrV5EfwLdWPj30CsAss=; b=DtAy4BABMfTRdqiDaDDpVeC3axRRtV24phQjhQSCWQPdBeN2pabZ+Lpb5Ga+WN7VEb 1ie1VP3Np35h0hPnHYjcSHMXC7V33e7mGNZthuzXLeIXCkPWdnIz8OJSdH29F8Z/k2kg 7Mr1s4mG8sHbGIevIIOb22TXlUVxlM/BWNXJC8Xs2jltPzS87dXACIwHqLYIVVQwT9ti zAKK6a/F2ovXCbAMOwHZ6BfT6vF8ZDjo8Ix8jy9Gc09pL1e9yC7DZAQk2XkppooFw4JO 5l3d8Hife+IDPkjHMxc/qoZkpnXZgK9cNBndsVnm9TJrf4JU/GcocuCxMRc5RqXR9EkU uGCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776716259; x=1777321059; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=vLrlKC3SMdVMZas0Xm9ehZvRyrV5EfwLdWPj30CsAss=; b=DNkmVOt7NKG78dQs2hoxqlU1HpMWpUGTh5QwUAt79smKZZdkp/1HsJGqYCn+8zC8i4 iNIqMAWfDfWDIgXF2SrI/IinRIJgCSe07f0JgRVGdeenqWARpIjSuLaYVuAAttXs5bE+ u819fHY/HFDajbrtZd8ArG7AS/HUXevtHBAa9MMgPk7FUGGGYW6q9vAurrrv+EDtST2j ZX+YCJFqBS/ET9Wbd4iLXuOGQOALHufIVu8rmOujew2VgzT0Bvqk3Icrv1eo10SbmWzK Y7AgSSL+yDPrGTtbAYom6SqdtOZrLgTPuhyLeuXpXwjaqYYsn8LcnDZfhqfsWmc5laPe aTOQ==
X-Forwarded-Encrypted: i=1; AFNElJ9IVshFB09Nl9a0BzPgsZFYNfN3rp1UENKXgBBzz4awvyL2CyTnleeKy2kyTlDiNTSROdwr5A==@ietf.org
X-Gm-Message-State: AOJu0YytY/eb8fHLKScHbxSYhbmrXocAvNZDeofkxBEgs1orXycaEDtC u3CTP5bwEhKHRa5E8lrA8OoNiTbLlvTNH7/tNVU0qHMwJIpKmOPbcBBf4bD+zNSLPhl9wPlR7Bp xrg4YN9MdLaChAvc5eLasjT2nBILkgCI=
X-Gm-Gg: AeBDiesWCHEiXfeuv9gXpCsAFSemkjyy2WJsHmZYbcWoWQfRqCm/zfbHytt0LbmsdMc uPltT0AuKKG3CrjjwS3xL0YVNROE8OSMPUZ9UM+aGr9Tl/HZv0V0vNwUyzl0KPvs2Q8JmoyvmY+ bY66oFzDU9JXPvWvXazxaJsfVqzK80EMvMTVAfpiTAv0FKInp2ahMLiLkLlh+8w4FQ1J12PUhki zdlCaao98aAQJFAv6TbCFad/XGblet9qDDmy3V4nhXtrGimNKjVFdYCgr7OGjiuPN/EUNka4hHM PntgAI7DwngW83JyPw==
X-Received: by 2002:a05:6830:f95:b0:7d7:b683:c279 with SMTP id 46e09a7af769-7dc94f9a21dmr9396767a34.3.1776716259033; Mon, 20 Apr 2026 13:17:39 -0700 (PDT)
MIME-Version: 1.0
References: <749d198c.101a.19d93e2675d.Coremail.scooct@163.com> <CAOdQrVMv+PhzCc1_=uAqb=qWeF53um5VwnkhPFsSgK40XSt=yw@mail.gmail.com> <907eeced-4878-4d55-b3cb-48ecd6b9a780@nic.cz>
In-Reply-To: <907eeced-4878-4d55-b3cb-48ecd6b9a780@nic.cz>
From: Shumon Huque <shuque@gmail.com>
Date: Mon, 20 Apr 2026 16:17:27 -0400
X-Gm-Features: AQROBzBPbdxRgqyjDMgJyM8zvc5MjKBSk_SCa69CoTgWh5GG7rQHFgaOpii6tfM
Message-ID: <CAHPuVdWog2kHVG_zYDfo_JJjoHaMbyLjf0_j_6iEZ=d5UvReFg@mail.gmail.com>
To: Libor Peltan <libor.peltan=40nic.cz@dmarc.ietf.org>, dnsop@ietf.org
Content-Type: multipart/alternative; boundary="0000000000007c872c064fe9fd85"
Message-ID-Hash: TBH3WRC3MTY5MCUTASAEVTZDSFVJVPRI
X-Message-ID-Hash: TBH3WRC3MTY5MCUTASAEVTZDSFVJVPRI
X-MailFrom: shuque@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-dnsop.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Ben Schwartz <bemasc=40meta.com@dmarc.ietf.org>, Cathy Zhang <scooct@163.com>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [DNSOP] Re: A question regarding DNSSEC validation
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/xtY8iwqB8ee2oYcl2awpvI3PA3s>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Owner: <mailto:dnsop-owner@ietf.org>
List-Post: <mailto:dnsop@ietf.org>
List-Subscribe: <mailto:dnsop-join@ietf.org>
List-Unsubscribe: <mailto:dnsop-leave@ietf.org>

On Fri, Apr 17, 2026 at 1:16 PM Libor Peltan <libor.peltan=
40nic.cz@dmarc.ietf.org> wrote:

> First of all, I think this mailing-list is not an optimal channel to ask
> such quetsions.
>
I think this is a reasonable channel for this discussion.

The DNS protocol specs do not in my view adequately describe robust retry
and failover, and I think they should. From time to time I encounter
resolvers that do not do this properly and lead to availability issues,
such as failing immediately on an unvalidatable DNSSEC response from a
single nameserver for the zone and causing an outage for the application
involved. We often have to spend a bunch of time tracking down what is
broken in the customer's resolver infrastructure - sometimes it is the DNS
resolver implementation, and more infrequently it is some security
appliance in their local network that interfered with the DNS resolver's
ability to retry. If we can identify the resolver service or
implementation, we generally have success instructing the customer to stop
using it, but this again takes effort.

It would be nice if I could concretely point people to a specification
document that says how to do this correctly.

But I feel a need to slightly correct Ben: in most cases, if a resolver
> receives a DNSSEC response that fails to validate (so called BOGUS) for any
> reason (e.g. missing or invalid RRSIG), it tries to query another
> authoritative nameserver for that zone. Only after all are tried and all
> are BOGUS or unreachable (or erroneous in other ways), the resolver will
> conclude SERVFAIL to the client. Of course there are many exceptions when
> the described is not entirely true. But I guess no sane resolver would
> re-try querying the same authoritative nameserver after a while.
>

Yes, I agree. By and large, I think most of the open source resolvers
(Unbound, BIND, Knot) do this correctly.

I agree with Philip's later comments on the thread that "attacks" that
attempt to falsify responses appear to be relatively rare (though how can
we know for sure, because they are often very targeted). But attacks are
not the only reason resolvers need robust retry and failover behavior. DNS
server infrastructure deployed in the field very frequently has broken
servers or other components. I've lost track of how many times I've seen a
subset of name servers for a zone giving out some form of bad responses
(bad signatures, missing signatures, expired signatures, error response
codes, etc), and DNS resolvers should be able to deal with this reality.

In draft-zhang-dnsop-ns-selection (now expired) we attempted to address
this topic with the following text:

5.5  Proper Retry and Failover

   To avoid leading to another issue: lack of availability and
   robustness, we re-emphasize here the importance of appropriate
   retries and failovers. All DNS resolvers should automatically retry
   and failover to other nameservers for a DNS zone when they encounter
   a nameserver that is unresponsive or providing an erroneous response.
   Not only must resolvers have a robust retry and failover algorithm,
   but no middlebox or network appliance interposed in the local traffic
path
   of resolvers should interfere with their ability to perform retry and
   failover.  Experience has shown that there is a small percentage of
   deployed DNS resolvers in the field that do not robustly failover to
   alternate name servers leading to availability issues.  Importantly,
   the retry and failover mechanism needs to be balanced with the
   requirement to bound the resolver's work (R4).

   A proper retry and failover design also makes resolvers robust
   against attacks where an adversary is attempting interfere with DNS
   responses from authoritative servers in an attempt to cause an outage
   (e.g. by blocking responses), or in an attempt to redirect clients
   (e.g. by modifying responses that could be detected with DNSSEC
   validation).  As long as the attacker is not able inject these
   attacks along the traffic path to all or most of the authoritative
   servers for a zone, a resolver with robust retry and failover
   behavior should be able to successfully resolve names within that
   zone.

   Some of the specific conditions under which a DNS resolver should
   retry other nameservers for a zone include an unresponsive
   name server, a nameserver giving an erroneous response (any response
   code other than NOERROR or NXDOMAIN), a nameserver giving responses
   that cannot be authenticated, such as responses with missing DNSSEC
   signatures when they were expected to be signed, responses with bogus
   or expired signatures, etc.

I look forward to feedback on this text.

Shumon.