lsd0001

LSD0001: GNU Name System
Log | Files | Refs | README

commit 7e312d1ea676a0034a4ff2ae646dc074c35811da
parent 1cfb3c00b74062a05515b076b2043ff787b0f33a
Author: Schanzenbach, Martin <mschanzenbach@posteo.de>
Date:   Sun, 10 Nov 2019 12:22:53 +0100

add more descriptions to records

Diffstat:
Mdraft-schanzen-gns.html | 75+++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
Mdraft-schanzen-gns.txt | 122++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mdraft-schanzen-gns.xml | 53++++++++++++++++++++++++++++++++++++++++++++++-------
3 files changed, 162 insertions(+), 88 deletions(-)

diff --git a/draft-schanzen-gns.html b/draft-schanzen-gns.html @@ -1424,6 +1424,14 @@ async function addMetadata(){try{const e=document.styleSheets[0].cssRules;for(le </div> <figcaption><a href="#figure-4" class="selfRef">Figure 4</a></figcaption></figure> </div> +<p id="section-3.2-3"> + where:<a href="#section-3.2-3" class="pilcrow">¶</a></p> +<dl class="dlParallel" id="section-3.2-4"> + <dt id="section-3.2-4.1">PUBLIC KEY</dt> + <dd id="section-3.2-4.2"> + A 256-bit ECDSA zone key.<a href="#section-3.2-4.2" class="pilcrow">¶</a> +</dd> + </dl> </section> </div> <div id="gnsrecords_gns2dns"> @@ -1456,6 +1464,19 @@ async function addMetadata(){try{const e=document.styleSheets[0].cssRules;for(le </div> <figcaption><a href="#figure-5" class="selfRef">Figure 5</a></figcaption></figure> </div> +<p id="section-3.3-3"> + where:<a href="#section-3.3-3" class="pilcrow">¶</a></p> +<dl class="dlParallel" id="section-3.3-4"> + <dt id="section-3.3-4.1">DNS NAME</dt> + <dd id="section-3.3-4.2"> + The name to continue with in DNS.<a href="#section-3.3-4.2" class="pilcrow">¶</a> +</dd> + <dt id="section-3.3-4.3">DNS SERVER NAME</dt> + <dd id="section-3.3-4.4"> + The DNS server to use. Maybe an IPv4/IPv6 address or a DNS name. + It may also be a relative GNS name ending with a "+" top-level domain.<a href="#section-3.3-4.4" class="pilcrow">¶</a> +</dd> + </dl> </section> </div> <div id="gnsrecords_leho"> @@ -1468,9 +1489,7 @@ async function addMetadata(){try{const e=document.styleSheets[0].cssRules;for(le is HTTP virtual hosting, which as-is would not work with GNS names as those may not be globally unique. - A LEHO resource record contains an UTF-8 string (which is not 0-terminated) - representing the legacy hostname to use. - It is expected to be found together in a single + A LEHO resource record is expected to be found together in a single resource record with an IPv4 or IPv6 address. A LEHO DATA entry has the following format:<a href="#section-3.4-1" class="pilcrow">¶</a></p> <div id="figure_lehorecord"> @@ -1489,9 +1508,17 @@ async function addMetadata(){try{const e=document.styleSheets[0].cssRules;for(le <figcaption><a href="#figure-6" class="selfRef">Figure 6</a></figcaption></figure> </div> <p id="section-3.4-3"> + where:<a href="#section-3.4-3" class="pilcrow">¶</a></p> +<dl class="dlParallel" id="section-3.4-4"> + <dt id="section-3.4-4.1">LEGACY HOSTNAME</dt> + <dd id="section-3.4-4.2"> + A UTF-8 string (which is not 0-terminated) representing the legacy hostname.<a href="#section-3.4-4.2" class="pilcrow">¶</a> +</dd> + </dl> +<p id="section-3.4-5"> NOTE: If an application uses a LEHO value in an HTTP request header (e.g. "Host:" header) it must be converted to a punycode representation - <span>[<a href="#RFC5891" class="xref">RFC5891</a>]</span>.<a href="#section-3.4-3" class="pilcrow">¶</a></p> + <span>[<a href="#RFC5891" class="xref">RFC5891</a>]</span>.<a href="#section-3.4-5" class="pilcrow">¶</a></p> </section> </div> <div id="gnsrecords_nick"> @@ -1504,9 +1531,6 @@ async function addMetadata(){try{const e=document.styleSheets[0].cssRules;for(le This is a suggestion to other zones what label to use when creating a PKEY <a href="#gnsrecords_pkey" class="xref">Section 3.2</a> record containing this zone's public zone key. - A NICK resource record contains an UTF-8 string - (not 0-terminated) representing the preferred label. - This string may NOT inlcude a ".". This record SHOULD only be stored under the empty label "@". A NICK DATA entry has the following format:<a href="#section-3.5-1" class="pilcrow">¶</a></p> <div id="figure_nickrecord"> @@ -1524,6 +1548,15 @@ async function addMetadata(){try{const e=document.styleSheets[0].cssRules;for(le </div> <figcaption><a href="#figure-7" class="selfRef">Figure 7</a></figcaption></figure> </div> +<p id="section-3.5-3"> + where:<a href="#section-3.5-3" class="pilcrow">¶</a></p> +<dl class="dlParallel" id="section-3.5-4"> + <dt id="section-3.5-4.1">NICKNAME</dt> + <dd id="section-3.5-4.2"> + A UTF-8 string (which is not 0-terminated) representing the preferred + label of the zone. This string MUST NOT inlcude a "." character.<a href="#section-3.5-4.2" class="pilcrow">¶</a> +</dd> + </dl> </section> </div> <div id="gnsrecords_box"> @@ -1550,24 +1583,26 @@ async function addMetadata(){try{const e=document.styleSheets[0].cssRules;for(le </div> <figcaption><a href="#figure-8" class="selfRef">Figure 8</a></figcaption></figure> </div> -<dl class="dlParallel" id="section-3.6-3"> - <dt id="section-3.6-3.1">PROTO</dt> - <dd id="section-3.6-3.2"> - the 16-bit protocol number, e.g. 6 for tcp. In network byte order.<a href="#section-3.6-3.2" class="pilcrow">¶</a> +<p id="section-3.6-3"> + where:<a href="#section-3.6-3" class="pilcrow">¶</a></p> +<dl class="dlParallel" id="section-3.6-4"> + <dt id="section-3.6-4.1">PROTO</dt> + <dd id="section-3.6-4.2"> + the 16-bit protocol number, e.g. 6 for tcp. In network byte order.<a href="#section-3.6-4.2" class="pilcrow">¶</a> </dd> - <dt id="section-3.6-3.3">SVC</dt> - <dd id="section-3.6-3.4"> + <dt id="section-3.6-4.3">SVC</dt> + <dd id="section-3.6-4.4"> the 16-bit service value of the boxed record, i.e. the port number. - In network byte order.<a href="#section-3.6-3.4" class="pilcrow">¶</a> + In network byte order.<a href="#section-3.6-4.4" class="pilcrow">¶</a> </dd> - <dt id="section-3.6-3.5">TYPE</dt> - <dd id="section-3.6-3.6"> - is the 32-bit record type of the boxed record. In network byte order.<a href="#section-3.6-3.6" class="pilcrow">¶</a> + <dt id="section-3.6-4.5">TYPE</dt> + <dd id="section-3.6-4.6"> + is the 32-bit record type of the boxed record. In network byte order.<a href="#section-3.6-4.6" class="pilcrow">¶</a> </dd> - <dt id="section-3.6-3.7">RECORD DATA</dt> - <dd id="section-3.6-3.8"> + <dt id="section-3.6-4.7">RECORD DATA</dt> + <dd id="section-3.6-4.8"> is a variable length field containing the "DATA" format of TYPE as - defined for the respective TYPE in DNS.<a href="#section-3.6-3.8" class="pilcrow">¶</a> + defined for the respective TYPE in DNS.<a href="#section-3.6-4.8" class="pilcrow">¶</a> </dd> </dl> </section> diff --git a/draft-schanzen-gns.txt b/draft-schanzen-gns.txt @@ -67,9 +67,9 @@ Table of Contents 3.2. PKEY . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3. GNS2DNS . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.4. LEHO . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 3.5. NICK . . . . . . . . . . . . . . . . . . . . . . . . . . 7 + 3.5. NICK . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.6. BOX . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 3.7. VPN . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 + 3.7. VPN . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4. Publishing Records . . . . . . . . . . . . . . . . . . . . . 9 4.1. Key Derivations . . . . . . . . . . . . . . . . . . . . . 9 4.2. Resource Records Block . . . . . . . . . . . . . . . . . 10 @@ -313,6 +313,10 @@ Internet-Draft The GNU Name System July 2019 Figure 4 + where: + + PUBLIC KEY A 256-bit ECDSA zone key. + 3.3. GNS2DNS It is possible to delegate a label back into DNS through a GNS2DNS @@ -329,10 +333,6 @@ Internet-Draft The GNU Name System July 2019 - - - - Schanzenbach, et al. Expires 24 January 2020 [Page 6] Internet-Draft The GNU Name System July 2019 @@ -353,16 +353,22 @@ Internet-Draft The GNU Name System July 2019 Figure 5 + where: + + DNS NAME The name to continue with in DNS. + + DNS SERVER NAME The DNS server to use. Maybe an IPv4/IPv6 address + or a DNS name. It may also be a relative GNS name ending with a + "+" top-level domain. + 3.4. LEHO Legacy hostname records can be used by applications that are expected to supply a DNS name on the application layer. The most common use case is HTTP virtual hosting, which as-is would not work with GNS - names as those may not be globally unique. A LEHO resource record - contains an UTF-8 string (which is not 0-terminated) representing the - legacy hostname to use. It is expected to be found together in a - single resource record with an IPv4 or IPv6 address. A LEHO DATA - entry has the following format: + names as those may not be globally unique. A LEHO resource record is + expected to be found together in a single resource record with an + IPv4 or IPv6 address. A LEHO DATA entry has the following format: 0 8 16 24 32 40 48 56 +-----+-----+-----+-----+-----+-----+-----+-----+ @@ -374,18 +380,12 @@ Internet-Draft The GNU Name System July 2019 Figure 6 - NOTE: If an application uses a LEHO value in an HTTP request header - (e.g. "Host:" header) it must be converted to a punycode - representation [RFC5891]. + where: + + LEGACY HOSTNAME A UTF-8 string (which is not 0-terminated) + representing the legacy hostname. -3.5. NICK - Nickname records can be used by zone administrators to publish an - indication on what label this zone prefers to be referred to. This - is a suggestion to other zones what label to use when creating a PKEY - Section 3.2 record containing this zone's public zone key. A NICK - resource record contains an UTF-8 string (not 0-terminated) - representing the preferred label. This string may NOT inlcude a ".". @@ -394,8 +394,18 @@ Schanzenbach, et al. Expires 24 January 2020 [Page 7] Internet-Draft The GNU Name System July 2019 - This record SHOULD only be stored under the empty label "@". A NICK - DATA entry has the following format: + NOTE: If an application uses a LEHO value in an HTTP request header + (e.g. "Host:" header) it must be converted to a punycode + representation [RFC5891]. + +3.5. NICK + + Nickname records can be used by zone administrators to publish an + indication on what label this zone prefers to be referred to. This + is a suggestion to other zones what label to use when creating a PKEY + Section 3.2 record containing this zone's public zone key. This + record SHOULD only be stored under the empty label "@". A NICK DATA + entry has the following format: 0 8 16 24 32 40 48 56 +-----+-----+-----+-----+-----+-----+-----+-----+ @@ -407,6 +417,12 @@ Internet-Draft The GNU Name System July 2019 Figure 7 + where: + + NICKNAME A UTF-8 string (which is not 0-terminated) representing the + preferred label of the zone. This string MUST NOT inlcude a "." + character. + 3.6. BOX A BOX DATA entry has the following format: @@ -423,6 +439,17 @@ Internet-Draft The GNU Name System July 2019 Figure 8 + where: + + + + + +Schanzenbach, et al. Expires 24 January 2020 [Page 8] + +Internet-Draft The GNU Name System July 2019 + + PROTO the 16-bit protocol number, e.g. 6 for tcp. In network byte order. @@ -439,17 +466,6 @@ Internet-Draft The GNU Name System July 2019 A VPN DATA entry has the following format: - - - - - - -Schanzenbach, et al. Expires 24 January 2020 [Page 8] - -Internet-Draft The GNU Name System July 2019 - - 0 8 16 24 32 40 48 56 +-----+-----+-----+-----+-----+-----+-----+-----+ | TODO DNS NAME | @@ -479,6 +495,17 @@ Internet-Draft The GNU Name System July 2019 Given a label, the DHT key "q" is derived as follows: + + + + + + +Schanzenbach, et al. Expires 24 January 2020 [Page 9] + +Internet-Draft The GNU Name System July 2019 + + PRK_h := HKDF-Extract ("key-derivation", zk) h := HKDF-Expand (PRK_h, label | "gns", 512 / 8) d_h := h * d mod L @@ -498,14 +525,6 @@ Internet-Draft The GNU Name System July 2019 d is the 256-bit private zone key as defined in Section 2. - - - -Schanzenbach, et al. Expires 24 January 2020 [Page 9] - -Internet-Draft The GNU Name System July 2019 - - label is a UTF-8 string under which the resource records are published. @@ -538,25 +557,6 @@ Internet-Draft The GNU Name System July 2019 - - - - - - - - - - - - - - - - - - - Schanzenbach, et al. Expires 24 January 2020 [Page 10] Internet-Draft The GNU Name System July 2019 diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml @@ -296,6 +296,15 @@ ]]></artwork> <!-- <postamble>which is a very simple example.</postamble>--> </figure> + <t> + where: + </t> + <dl> + <dt>PUBLIC KEY</dt> + <dd> + A 256-bit ECDSA zone key. + </dd> + </dl> </section> <section anchor="gnsrecords_gns2dns" numbered="true" toc="default"> <name>GNS2DNS</name> @@ -321,6 +330,20 @@ ]]></artwork> <!-- <postamble>which is a very simple example.</postamble>--> </figure> + <t> + where: + </t> + <dl> + <dt>DNS NAME</dt> + <dd> + The name to continue with in DNS. + </dd> + <dt>DNS SERVER NAME</dt> + <dd> + The DNS server to use. Maybe an IPv4/IPv6 address or a DNS name. + It may also be a relative GNS name ending with a "+" top-level domain. + </dd> + </dl> </section> <section anchor="gnsrecords_leho" numbered="true" toc="default"> @@ -330,9 +353,7 @@ is HTTP virtual hosting, which as-is would not work with GNS names as those may not be globally unique. - A LEHO resource record contains an UTF-8 string (which is not 0-terminated) - representing the legacy hostname to use. - It is expected to be found together in a single + A LEHO resource record is expected to be found together in a single resource record with an IPv4 or IPv6 address. A LEHO DATA entry has the following format:</t> <figure anchor="figure_lehorecord"> @@ -348,6 +369,15 @@ <!-- <postamble>which is a very simple example.</postamble>--> </figure> <t> + where: + </t> + <dl> + <dt>LEGACY HOSTNAME</dt> + <dd> + A UTF-8 string (which is not 0-terminated) representing the legacy hostname. + </dd> + </dl> + <t> NOTE: If an application uses a LEHO value in an HTTP request header (e.g. "Host:" header) it must be converted to a punycode representation <xref target="RFC5891" />. @@ -360,9 +390,6 @@ This is a suggestion to other zones what label to use when creating a PKEY <xref target="gnsrecords_pkey" /> record containing this zone's public zone key. - A NICK resource record contains an UTF-8 string - (not 0-terminated) representing the preferred label. - This string may NOT inlcude a ".". This record SHOULD only be stored under the empty label "@". A NICK DATA entry has the following format: </t> @@ -378,8 +405,17 @@ ]]></artwork> <!-- <postamble>which is a very simple example.</postamble>--> </figure> + <t> + where: + </t> + <dl> + <dt>NICKNAME</dt> + <dd> + A UTF-8 string (which is not 0-terminated) representing the preferred + label of the zone. This string MUST NOT inlcude a "." character. + </dd> + </dl> </section> - <section anchor="gnsrecords_box" numbered="true" toc="default"> <name>BOX</name> <t> @@ -399,6 +435,9 @@ ]]></artwork> <!-- <postamble>which is a very simple example.</postamble>--> </figure> + <t> + where: + </t> <dl> <dt>PROTO</dt> <dd>