Re: [DNSOP] back to: Some distinctions and a request

Robert Edmonds <edmonds@mycre.ws> Thu, 02 July 2015 23:04 UTC

Return-Path: <edmonds@mycre.ws>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 371381A89A2 for <dnsop@ietfa.amsl.com>; Thu, 2 Jul 2015 16:04:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ib-eIMW49ycr for <dnsop@ietfa.amsl.com>; Thu, 2 Jul 2015 16:04:35 -0700 (PDT)
Received: from chase.mycre.ws (chase.mycre.ws [70.89.251.89]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D8D051A891F for <dnsop@ietf.org>; Thu, 2 Jul 2015 16:04:34 -0700 (PDT)
Received: by chase.mycre.ws (Postfix, from userid 1000) id 295AB1C44966; Thu, 2 Jul 2015 19:04:34 -0400 (EDT)
Date: Thu, 02 Jul 2015 19:04:34 -0400
From: Robert Edmonds <edmonds@mycre.ws>
To: Edward Lewis <edward.lewis@icann.org>
Message-ID: <20150702230434.GA23022@mycre.ws>
References: <6CB05D82CE245B4083BBF3B97E2ED470C27498@ait-pex01mbx01.win.dtu.dk> <D1BAA21E.CA2E%edward.lewis@icann.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <D1BAA21E.CA2E%edward.lewis@icann.org>
Archived-At: <http://mailarchive.ietf.org/arch/msg/dnsop/Ghmkb3ktirky-DYXA5Pfca3whFY>
Cc: "dnsop@ietf.org" <dnsop@ietf.org>
Subject: Re: [DNSOP] back to: Some distinctions and a request
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.15
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: Thu, 02 Jul 2015 23:04:40 -0000

Edward Lewis wrote:
> To me a domain name is: a sequence of bits that, when rendered in hex
> notation, can look like this:
> 
> 0x03 0x61 0x62 0x63 0x07 0x65 0x78 0x61 0x6d 0x70 0x6c 0x65 0x00
> 
> That is what is sent over the wire, through ports and is deposited in
> memory of name servers.  Note the lack of dots.  And this is why I can't
> see a difference between domain names and DNS names.  To me, they are one
> in the same.
> 
> This dates back to a discussion had while the labs I was in was developing
> DNSSEC code.  Our boss (Russ Mundy) made the statement that there are two
> versions of a domain name, on-the-wire and in-the-file and it was the
> on-the-wire format that mattered.  Later in my career I worked with a firm
> that developed it's own DNS code based on some legacy stuff from it's
> start-up days.  The start-up operated on the in-the-file format,
> converting to and from on-the-wire format constantly.  This was not a good
> approach.
> 
> So when I hear "domain name" I think of the format that includes an octet
> with flags and a number and then that number of octets of data,
> terminating with a null octet.  What is seen in files is just a
> transliteration of that, "abc.example." is just a conventional way to
> represent the domain name above.

Hi, Ed:

I have a somewhat different understanding.  I read in 1034 §3.1 that:

    The domain name space is a tree structure.  Each node and leaf on
    the tree corresponds to a resource set (which may be empty). [...]
    The domain name of a node is the list of the labels on the path from
    the node to the root of the tree. [...]

These definitions use abstract data types like trees and lists.  (They
shouldn't be confused with concrete data structure implementations of
those types.)

The same section then defines two concrete representations of domain
names:

    [DNS wire format names.] Internally, programs that manipulate
    domain names should represent them as sequences of labels, where
    each label is a length octet followed by an octet string. [...]

    [DNS "presentation format" names.] When a user needs to type a
    domain name, the length of each label is omitted and the labels are
    separated by dots (".").  Since a complete domain name ends with the
    root label, this leads to a printed form which ends in a dot. [...]

So, I take the octet sequence \# 13 03616263076578616D706C6500 and the
character string "abc.example." to be two different representations of
the domain name whose list of labels is "abc", "example", and "".  But I
don't see how one of the concrete forms is a transliteration of the
other.

-- 
Robert Edmonds