[DNSOP] Re: Introducing Relative Label for DNS

Edward Lewis <eppdnsprotocols@gmail.com> Sun, 21 July 2024 22:54 UTC

Return-Path: <eppdnsprotocols@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 ACF24C14F685 for <dnsop@ietfa.amsl.com>; Sun, 21 Jul 2024 15:54:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.606
X-Spam-Level:
X-Spam-Status: No, score=-1.606 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, FROM_LOCAL_NOVOWEL=0.5, RCVD_IN_DNSWL_NONE=-0.0001, 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 RIHDg84PVKdo for <dnsop@ietfa.amsl.com>; Sun, 21 Jul 2024 15:53:58 -0700 (PDT)
Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) (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 8933AC14F60D for <dnsop@ietf.org>; Sun, 21 Jul 2024 15:53:58 -0700 (PDT)
Received: by mail-qk1-x742.google.com with SMTP id af79cd13be357-79efb4a46b6so216508485a.2 for <dnsop@ietf.org>; Sun, 21 Jul 2024 15:53:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721602437; x=1722207237; darn=ietf.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=wN7MIYcmv4RRCedYIjTLMLn96qDnhVJS1wHyGKnXGS0=; b=c2Ac4n6C7UIphXgPXuEVFXcQYmpPH5UC5eVwYg9v6ZKehmslXAMzwFMdl2fy6iE/Ds kM3cLhNeN3n6cmL9cOtKuU7YXlnwCfJJJIjauw/MSZZTxI+/cbQUgrGpZiGNsFDlbUGS BvCS3zv77CQkvBxiaeR8knIFEI0iOWM0FbK1MGH9+BJ/vl+g3KWwB17V4SkMnTuzrcIQ CZ1f7OHdmc1pTFuwuxEmOHUvKRUDz200USKsmZG0lzgLvtrfkv3lvFKelQwQ6BrqOil9 JiiifCOjdg+2gEEe2LBdi4Cc5V10SwQ6CPeuL3vh7LnoH3vPdk4eGqr5HMbhRbfvHiJb AVIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721602437; x=1722207237; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wN7MIYcmv4RRCedYIjTLMLn96qDnhVJS1wHyGKnXGS0=; b=Vgt39sHQthYV8pANe93Ige3vGZJYq00zmSekykAgWi779m/sIXSmbfWO19Viv3yKyx G80iDUC1+GAz6Ft3mVL30wgwKQjlrAt927dukG7d7aUlj1WAj/dkagttaNpDGvKHEJ1b K15nhj6tiMI/OEMm7EcLw2j6/d5g1Ae6rC+l6Egt6ctdYp1UEzJEU2iLSHeYG5ZIXxOi pKbSIM0d1xOaL+QAPZdZZiC5CDi7k9D6lex9khoioGOesZukR/DdjFmnPXIubISlTxx2 p5iuAU2zC586rtW+YfiGANWvzoR5pUAYuDXz9AbjWj4Ulj5GwKtWMMUqZl9c2BzWGGii j5Eg==
X-Forwarded-Encrypted: i=1; AJvYcCXmhGDA1B89NaQKEc4qwHTIdoZT8XgjoXswkGsDMgZpNXhxTrZG1FqxDW3CFpRQB05c8PzSxrgNnDojSdOBIQ==
X-Gm-Message-State: AOJu0YyC8FfqF1JNARWS78jDZS/eRNJi1c+UPoHVtcHjfwmRkDZOfqIl FpBklFxEOI6nNdmkbItrfser9tkFvGg6p0E4Yhqjo8KsCbD/vb6b
X-Google-Smtp-Source: AGHT+IEv5VwZPTEKtwb0lc6duDUvkOE5Bziql1OVs0WmHfcSnSWKIkb+cFv7aVSui+4ey+VAJs6K2g==
X-Received: by 2002:a05:620a:4541:b0:79f:8cb:1a63 with SMTP id af79cd13be357-7a1a132cb31mr915379085a.27.1721602437060; Sun, 21 Jul 2024 15:53:57 -0700 (PDT)
Received: from smtpclient.apple (pool-96-255-253-89.washdc.fios.verizon.net. [96.255.253.89]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7a19907b16bsm303359085a.123.2024.07.21.15.53.56 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Jul 2024 15:53:56 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\))
From: Edward Lewis <eppdnsprotocols@gmail.com>
In-Reply-To: <32cb827b0875605f8fbf47ccae1d4a9c@yocto.com>
Date: Sun, 21 Jul 2024 18:53:55 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <690B1EDE-7DCF-4E33-9688-97295F9D842D@gmail.com>
References: <32cb827b0875605f8fbf47ccae1d4a9c@yocto.com>
To: Ben van Hartingsveldt <ben.vanhartingsveldt=40yocto.com@dmarc.ietf.org>
X-Mailer: Apple Mail (2.3654.120.0.1.15)
Message-ID-Hash: UKIY4ZZU46HY47ZB4RBQWEWAXJ7UTHUP
X-Message-ID-Hash: UKIY4ZZU46HY47ZB4RBQWEWAXJ7UTHUP
X-MailFrom: eppdnsprotocols@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: Edward Lewis <eppdnsprotocols@gmail.com>, dnsop@ietf.org
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [DNSOP] Re: Introducing Relative Label for DNS
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/6jFrn0Gmk_SLdqgd6Ph_AnbjG1E>
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>

The draft reads very different than the email message.  The draft sticks to a protocol definition while the email describes a use case.  This difference is significant.

Reading the draft (no use case assumed), my first question is how “www.subpage” would be encoded (referring to section 4.1’s wire format).  Are both labels relative labels or just the final?  What if the encoding marks the first label (deepest) as relative and the next as “ordinary”?

In general, what suffix is affixed to a relative label?  In printed zone files, there is the $ORIGIN directive, and dynamic update specifies a zone, but those are part of use cases (and are not the same, not equivalent).  I say not equivalent as dynamic update needs to know what zone to edit, the value isn’t intended the same way $ORIGIN is - in a zone file $ORIGIN may be redefined as desired.

Where trouble will come is in handling unknown types, see "Handling of Unknown DNS Resource Record (RR) Types” (RFC 3597), specifically section 4 on Domain Name Compression.  Prior to that document, there was much confusion of where domain names can be compressed, it was clarified that only the original set of resource records were eligible for compression because those are the only resource records “every server has to know”.  (I.e., RFC 1034/1035 are the base, all others are optional add-ons.)

I don’t think there’s any good to come from shrinking an in-memory size of the zone this way.  Saving space, sure, but I don’t think the cost in code complexity will favorable.

I see this as a UI issue.  A (secure) dynamic update client can elect to append the zone name (from that section of the message) where there is no ending dot.  In a zone file, $ORIGIN can be used at will (but doing so for each name would be overkill).

Another concern as whether this would bleed into the search string issue - when and where search strings are applied.

I think it is best if the server internal representations remain fully qualified (even if not the same as the on-the-wire FQDN), as well as in zone files to avoid any ambiguity.  As part of that, I doubt there’s ever been a comprehensive definition of the grammar of zone files - particularly the directives.  ($TTL, $ORIGIN, $GENERATE, etc.) which be useful before judging the concept of relative labels.

In a binary zone file [which I have not played with], can’t compression of the initial types be done to save space - if needed?  Just a passing thought.

And - I understand the idea that remembering whether the label was entered “relative” is desirable, but we’ve always had a larger problem with comments.  Comments in an original zone file lost once the file is loaded as a zone and then written back to disk (or whatever).

Ed

> On Jul 21, 2024, at 14:50, Ben van Hartingsveldt <ben.vanhartingsveldt=40yocto.com@dmarc.ietf.org> wrote:
> 
> Dear all,
> 
> In the recent years I started working on my own coded DNS server, because I was done with the synchronization between BIND and DirectAdmin that broke all the time. It resulted in a Java server that is running on 4 IPs for some years now. Because of this, I had to read many RFCs to have it pass tests like Zonemaster, DNSViz, IntoDNS, etc. While reading and implementing things, I also came across some shortcomings of DNS. On advice of someone at SIDN, I will share my draft that I published today. It solves one of the shortcomings that DNS has in its core: relative domain names.
> 
> I'm talking about https://datatracker.ietf.org/doc/html/draft-yocto-dns-relative-label-00. This draft is meant to solve the problem that we cannot use relative domain names in the DNS system, specificly in DNS UPDATE and in binary zone files. This also means that this draft is not meant for use with the QUERY opcode (except for possibly AXFR and IXFR). Let me explain those two usecases.
> 
> 1) DNS UPDATE: In DNS UPDATE it is possible to update the zone using DNS itself. This can be used in routers when dynamic DNS is wanted, but also in other situations. Imagine wanting to add an MX record. Using a webinterface, you are likely able to chooses one of the following four options:
> - mail IN MX 10 mx
> - mail IN MX 10 mx.example.com.
> - mail.example.com. IN MX 10 mx
> - mail.example.com. IN MX 10 mx.example.com.
> However, using DNS UPDATE you are only able to add the record with fourth format; both record name and FQDN field have to be absolute. This means that when I return to the webinterface, I will likely see absolute domain names, even when I use relative domain names in my other records. My draft wants to give the client more control over when to use relative and when to use absolute domain names by adding a new label type.
> 
> 2) Binary Zone Files: Since BIND 9, it is possible to save zones in a binary format. This is possible to enable/disable using `masterfile-format`. It is possible to convert the textual format to binary and vice versa. However, when converting to binary, the zone file will loose the knowledge of knowing which domain names where absolute and which where relative. This means that converting the zone back from binary to text will likely give you a zone with only absolute domain names. As with DNS UPDATE, this is a shortcoming of the wire format used by DNS.
> 
> That is why I wrote this draft. Like BIND, my own DNS system also uses binary zone storage and in the future I'm planning to implement DNS UPDATE too. I also believe my draft is not yet perfect. I'm not a native English speaker and maybe just format to mention something important. That is why I want you to give your honest opinion on this topic. Do you agree with the problem? Does DNS need such label? Did I make a typo? Etc.
> 
> Please let me know.
> 
> Thanks in advance
> 
> Ben van Hartingsveldt
> 
> _______________________________________________
> DNSOP mailing list -- dnsop@ietf.org
> To unsubscribe send an email to dnsop-leave@ietf.org