Re: [DNSOP] I-D Action: draft-ietf-dnsop-compact-denial-of-existence-03.txt

Shumon Huque <shuque@gmail.com> Sat, 16 March 2024 20:27 UTC

Return-Path: <shuque@gmail.com>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8D02BC14F5FF for <dnsop@ietfa.amsl.com>; Sat, 16 Mar 2024 13:27:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.105
X-Spam-Level:
X-Spam-Status: No, score=-7.105 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_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TKSH2IBhi94T for <dnsop@ietfa.amsl.com>; Sat, 16 Mar 2024 13:27:17 -0700 (PDT)
Received: from mail-il1-x135.google.com (mail-il1-x135.google.com [IPv6:2607:f8b0:4864:20::135]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9F726C14F5F9 for <dnsop@ietf.org>; Sat, 16 Mar 2024 13:27:12 -0700 (PDT)
Received: by mail-il1-x135.google.com with SMTP id e9e14a558f8ab-3667770b8e8so17141805ab.0 for <dnsop@ietf.org>; Sat, 16 Mar 2024 13:27:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710620831; x=1711225631; 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=fzyrNiSerVlz8zmUkFhaARwxlBWT9ELPzSdBkcnRAg4=; b=dMlIuezUAoNw6KOF/Uy6zqFw+lkdJzL0/mKUdpqaXQXKNHYrjxDPb8tVRqD4b/bPDM daLIfg1gWs3AIwyyJoxMgKVTjOUSiM9lqc9vtv4kxWkQo7SiEqx0UiCG8Pw9uhsHSGW3 Rh7ciG/FHasDE86gpRqOnPbBkR90NxF15iPP2rymCY1ao1CoMkxgJDs3pLxVgyDqWmst uZqZLuyDRZ8nocI9+bnl2ns6gmL84or6bI6G1B3oOI+wOWxkQ/Mu2Cg1cRbacEVcbf2d ++lYvumz/8xxGF56PyRHjyWZYE4RVdYvMIW8/xRtSQmVnFPWeh8wqj5oZmrJFvLNbNli n1sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710620831; x=1711225631; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fzyrNiSerVlz8zmUkFhaARwxlBWT9ELPzSdBkcnRAg4=; b=R+yyVLO6qwMWWVNP8QVBR6j2zSqqltoQtyuL9lKNLl9zHR3eiwHovcMAMHGqUjbgSr bcIYEQYJ42n/h3d9k9q+9DjbhvKSw5W8Od9cp9A5fa5NSEr14Y8UjQMEWoY2OSc/bLSr CabLOstwmQFvFufocB+VFrxoSJ9q1eExc036D7CKaP0dEdmvLT+ngFmDzaHwzjJCgwi6 rw7vXnov7cFTDGOoiu5BTxWMxm+89iSy0r/wFzT9mR0NdZaUTLQRDOX5BWtHVPrA7tnv /dWEheyHwWLLaxfSKfVQkGC6GgCWILc2CFXhQFFLkA171Ata1NDa6Zn1NV9al+xXBnNg s4ow==
X-Gm-Message-State: AOJu0Yx5EVnm46V1G7QYDM9tyml/CdsJ5e77Dz94uPgAtf0zeMA9/HPs 1uH7uucDGHVEMvL7zX6qy+INxt+JamSkbo1wN/MdDyLow/Hdvx1QIW609pJc46Z2T8nrTG2Mzl9 GZRZqVIDNBiVjhf28dpdiXHC3dVRpEWL58MfoTg==
X-Google-Smtp-Source: AGHT+IHSEKG+FNNbiENNf5BTf35bYQGWRxrtyqeqC/iEZv445hRKWRZJ6rnfS6K1KqSWhrovmrXGBW3cERn38pGBbdA=
X-Received: by 2002:a5e:da45:0:b0:7cb:f3da:70c1 with SMTP id o5-20020a5eda45000000b007cbf3da70c1mr6020628iop.14.1710620831493; Sat, 16 Mar 2024 13:27:11 -0700 (PDT)
MIME-Version: 1.0
References: <170959055561.39905.2007482768877029325@ietfa.amsl.com> <ZfVO6R2YAmbr88Jb@laperouse.bortzmeyer.org>
In-Reply-To: <ZfVO6R2YAmbr88Jb@laperouse.bortzmeyer.org>
From: Shumon Huque <shuque@gmail.com>
Date: Sat, 16 Mar 2024 13:27:00 -0700
Message-ID: <CAHPuVdUw6axvF4Gnm+Pcrf40Q1G6QE60DqXPkSpEbYYZ2bB7xw@mail.gmail.com>
To: Stephane Bortzmeyer <bortzmeyer@nic.fr>
Cc: dnsop@ietf.org
Content-Type: multipart/alternative; boundary="00000000000001b74a0613ccf374"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/sK_pUFbyQGPFLgq4yIVMDvbIkQU>
Subject: Re: [DNSOP] I-D Action: draft-ietf-dnsop-compact-denial-of-existence-03.txt
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Mar 2024 20:27:21 -0000

On Sat, Mar 16, 2024 at 1:10 AM Stephane Bortzmeyer <bortzmeyer@nic.fr>
wrote:

> On Mon, Mar 04, 2024 at 02:15:55PM -0800,
>  internet-drafts@ietf.org <internet-drafts@ietf.org> wrote
>  a message of 48 lines which said:
>
> > Internet-Draft draft-ietf-dnsop-compact-denial-of-existence-03.txt is now
> > available. It is a work item of the Domain Name System Operations
> (DNSOP) WG
> > of the IETF.
>
> I just implemented it at the IETF 119 hackathon in Brisbane
> (programming details at the end), on an authoritative-only server. I
> think I have done everything that's in the draft, including the EDNS
> signaling (new flag CO).
>
> This was quite simple and the draft is enough to guide the
> implementor. I find the draft clear and useful.
>

Thanks! Glad to hear that.

Among the questions raised:
>
> * is there an EDE which is recommended when replying to an
> explicit request for a meta-type (like QTYPE=NXNAME)? The draft says
> to set the rcode to FormErr but does not discuss EDE.
>

It doesn't, but could. I don't see an obviously applicable EDE code that
covers this (apart from the catch-all "Other Error"), so perhaps we could
define a new one, "Invalid Query Type"?


> * the draft does not discuss the consequences of compact denial for
> synthesis of negative answers by a resolver (RFC 8020 and 8198).
>

That's a good suggestion and it's worth saying something about this.
The negative answer synthesis capability for 8198 is already gone for
any minimally covering NSEC mechanism, so Compact Denial doesn't
make this any worse than White Lies or other similar methods.

RFC 8020 is affected differently though. Since the NSEC owner
matches a non-existent name, negative answer synthesis below
that name is possible only if a resolver recognizes NXNAME (which
is recommended but optional behavior currently).

* [this one is outside the scope of the draft] Is it
> reasonable/legitimate to reply NODATA for a non-existing name when
> the client did not set the DO flag, or even when it did not use EDNS?
>

We do have some text that discusses this, which I'll excerpt here:

   For non-existent names, implementations should try wherever possible,
   to preserve the response code value of 3 (NXDOMAIN).  This is
   generally possible for non-DNSSEC enabled queries, namely those which
   do not set the DNSSEC_OK EDNS flag (DO bit).  For such queries,
   authoritative servers implementing Compact Denial of Existence could
   return a normal NXDOMAIN response.  There may be limited benefit to
   doing this however, since most modern DNS resolvers are DNSSEC-aware,
   and by [RFC3225] Section 3, DNSSEC-aware recursive servers are
   required to set the DO bit on outbound queries, regardless of the
   status of the DO bit on incoming requests.

Basically, we're not trying to prescribe the behavior for DO=0 or non EDNS.
One current implementation does not differentiate DO=0 vs 1 and gives the
same NODATA answer for both cases.

Programming details: the change was made on the Drink authoritative
> dynamic server <https://framagit.org/bortzmeyer/drink/>. Since Drink
> only has dynamic signing, it implemented the white lies of RFC
> 4470. Adding compact denial was mostly removing code since, for the
> authoritative name server, compact denial is simpler than white
> lies. But it challenged some assumptions in the code (for instance
> that the rcode, once set, is not changed during processing of the
> request) and, in the case of Drink, required changes in several
> places. The code is in the branch compact-denial
> <
> https://framagit.org/bortzmeyer/drink/-/tree/compact-denial?ref_type=heads
> >.


Thanks! I've implemented it in my prototyping server too, and agree
it wasn't that hard. The bulk of the work was implementing online signing.
If you already have that, implementing the Compact DoE bits is fairly
simple.

( https://github.com/shuque/adns_server )

Shumon.