gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lsd0001] branch master updated: example flows


From: gnunet
Subject: [lsd0001] branch master updated: example flows
Date: Sat, 26 Mar 2022 13:06:03 +0100

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository lsd0001.

The following commit(s) were added to refs/heads/master by this push:
     new 3767ef4  example flows
3767ef4 is described below

commit 3767ef4116a2fc47aa64fd4da5ae159dea4be4b8
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Sat Mar 26 13:05:59 2022 +0100

    example flows
---
 draft-schanzen-gns.xml | 303 ++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 222 insertions(+), 81 deletions(-)

diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml
index a57ca8f..c4474e1 100644
--- a/draft-schanzen-gns.xml
+++ b/draft-schanzen-gns.xml
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='utf-8'?
+<?xml version='1.0' encoding='utf-8'?>
 <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent" [
 <!ENTITY RFC1034 PUBLIC '' 
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.1034.xml";>
 <!ENTITY RFC1035 PUBLIC '' 
"http://xml.resource.org/public/rfc/bibxml/reference.RFC.1035.xml";>
@@ -197,6 +197,12 @@
          the recursive name resolution logic defined in
          <xref target="resolution"/>.
        </dd>
+       <dt>Zone Master</dt>
+       <dd>
+         The zone master is the part of the GNS implementation which implements
+         local zone management and publication as defined in
+         <xref target="publish"/>.
+       </dd>
        <dt>Name</dt>
        <dd>
          A name in GNS is a domain name as defined in  <xref target="RFC8499"/>
@@ -220,8 +226,8 @@
          The apex label, label separator and the extension label have
          special purposes in the resolution protocol which are defined
          in the rest of the document.
-         Zone administrators <bcp14>MAY</bcp14> disallow certain labels that 
may be easily
-         confused with other labels through registration policies.
+         Zone administrators <bcp14>MAY</bcp14> disallow certain labels that
+         might be easily confused with other labels through registration 
policies.
        </dd>
        <dt>Apex Label</dt>
        <dd>
@@ -251,12 +257,12 @@
        <dt>Top-Level Domain</dt>
        <dd>
         The rightmost part of a GNS name is a GNS Top-Level Domain (TLD).
-         A GNS TLD may consist of one or more labels.
+         A GNS TLD can consist of one or more labels.
         Unlike DNS Top-Level Domains (defined in <xref target="RFC8499"/>),
         GNS does not expect all users to use the same global root zone. 
Instead,
          with the exception of Zone Top-Level Domains (see below),
          GNS TLDs are typically part of the configuration of the local resolver
-         (see <xref target="governance"/>), and may thus not be globally 
unique.
+         (see <xref target="governance"/>), and might thus not be globally 
unique.
        </dd>
        <dt>Zone</dt>
        <dd>
@@ -298,6 +304,14 @@
         A zTLD label sequence can only be distinguished from ordinary TLD 
label sequences
         by attempting to decode the labels into a zone type and zone key.
        </dd>
+       <dt>Start Zone</dt>
+       <dd>
+         In order to resolve any given GNS name an initial start zone must be
+         determined for this name.
+         The start zone may already be explicitly defined through a zTLD.
+         Otherwise, it is determined through a local suffix-to-zone mapping
+         (see <xref target="governance"/>).
+       </dd>
        <dt>Resource Record</dt>
        <dd>
          A GNS resource record is the information associated with a label in a
@@ -310,7 +324,7 @@
    <section anchor="overview" numbered="true" toc="default">
      <name>Overview</name>
      <t>
-       In GNS, any user may create and manage one or more cryptographically
+       In GNS, any user can create and manage one or more cryptographically
        secured zones (<xref target="zones"/>).
        Zones are uniquely identified by a zone key.
        Zone contents are signed using blinded private keys and
@@ -354,26 +368,26 @@
      </t>
      <figure anchor="figure_arch_publish" title="An example diagram of two 
hosts publishing GNS zones.">
        <artwork name="" type="" align="left" alt=""><![CDATA[
-        Local Host     |  Distributed   |    Remote Host
-                       |   Storage      |
-                       |                |
-                       |    +--------+  |
-                       |   /        /|  |
-  +---------+ Publish  |  +--------+ |  |  Publish +---------+
-  |         | Zones    |  |        | |  |  Zones   |         |
-  |   GNS   |----------|->| Public | |<-|----------|   GNS   |
-  |         |          |  | Zones  | |  |          |         |
-  +---------+          |  |        |/   |          +---------+
-       A               |  +--------+    |               A
-       |               |                |               |
-    +---------+        |                |           +---------+
-   /   |     /|        |                |          /    |    /|
-  +---------+ |        |                |         +---------+ |
-  |         | |        |                |         |         | |
-  |  Local  | |        |                |         |  Local  | |
-  |  Zones  | |        |                |         |  Zones  | |
-  |         |/         |                |         |         |/
-  +---------+          |                |         +---------+
+        Local Host     |   Remote        |    Remote Host
+                       |   Storage       |
+                       |                 |
+                       |    +---------+  |
+                       |   /         /|  |
+              Publish  |  +---------+ |  |  Publish
+  +---------+ Records  |  |         | |  |  Records +---------+
+  |  Zone   |----------|->| Record  | |<-|----------|  Zone   |
+  | Master  |          |  | Storage | |  |          | Master  |
+  +---------+          |  |         |/   |          +---------+
+       A               |  +---------+    |               A
+       |               |                 |               |
+    +---------+        |                 |           +---------+
+   /   |     /|        |                 |          /    |    /|
+  +---------+ |        |                 |         +---------+ |
+  |         | |        |                 |         |         | |
+  |  Local  | |        |                 |         |  Local  | |
+  |  Zones  | |        |                 |         |  Zones  | |
+  |         |/         |                 |         |         |/
+  +---------+          |                 |         +---------+
          ]]></artwork>
      </figure>
      <t>
@@ -396,27 +410,27 @@
      </t>
      <figure anchor="figure_arch_resolv" title="High-level view of the GNS 
resolution process.">
        <artwork name="" type="" align="left" alt=""><![CDATA[
-                           Local Host          |  Distributed
-                                               |   Storage
-                                               |
-                                               |    +--------+
-                                               |   /        /|
-                                               |  +--------+ |
-+-----------+ Name     +---------+ Recursive   |  |        | |
-|           | Lookup   |         | Resolution  |  | Public | |
-|Application|----------|   GNS   |-------------|->| Zones  | |
-|           |<---------|         |<------------|--|        |/
-+-----------+ Results  +---------+ Intermediate|  +--------+
-                          A        Results     |
-                          |                    |
-                       +---------+             |
-                      /   |     /|             |
-                     +---------+ |             |
-                     |         | |             |
-                     |  Start  | |             |
-                     |  Zones  | |             |
-                     |         |/              |
-                     +---------+               |
+                           Local Host           |   Remote
+                                                |   Storage
+                                                |
+                                                |    +---------+
+                                                |   /         /|
+                                                |  +---------+ |
++-----------+ Name     +----------+ Recursive   |  |         | |
+|           | Lookup   |          | Resolution  |  | Record  | |
+|Application|----------| Resolver |-------------|->| Storage | |
+|           |<---------|          |<------------|--|         |/
++-----------+ Results  +----------+ Intermediate|  +---------+
+                          A         Results     |
+                          |                     |
+                       +---------+              |
+                      /   |     /|              |
+                     +---------+ |              |
+                     |         | |              |
+                     |  Start  | |              |
+                     |  Zones  | |              |
+                     |         |/               |
+                     +---------+                |
          ]]></artwork>
      </figure>
 
@@ -1705,17 +1719,17 @@ GET(key) -> value
      </t>
      <figure anchor="figure_storage_publish" title="Management and publication 
of local zones in the distributed storage.">
        <artwork name="" type="" align="left" alt=""><![CDATA[
-                           Local Host          |  Distributed
+                           Local Host          |   Remote
                                                |   Storage
                                                |
-                                               |    +--------+
-                                               |   /        /|
-                                               |  +--------+ |
-+-----------+       +---------+                |  |        | |
-|           |       |         |PUT(q, RRBLOCK) |  | Public | |
-|    User   |       |   GNS   |----------------|->| Zones  | |
-|           |       |         |                |  |        |/
-+-----------+       +---------+                |  +--------+
+                                               |    +---------+
+                                               |   /         /|
+                                               |  +---------+ |
++-----------+                                  |  |         | |
+|           |       +---------+PUT(q, RRBLOCK) |  | Record  | |
+|    User   |       |  Zone   |----------------|->| Storage | |
+|           |       | Master  |                |  |         |/
++-----------+       +---------+                |  +---------+
      |                     A                   |
      |                     | Zone records      |
      |                     | grouped by label  |
@@ -1963,31 +1977,30 @@ q := SHA-512 (ZKDF(zk, label))
      </t>
      <figure anchor="figure_resolution" title="The recursive GNS resolution 
process.">
        <artwork name="" type="" align="left" alt=""><![CDATA[
-                           Local Host                |  Distributed
-                                                     |   Storage
-                                                     |
-                                                     |    +--------+
-                                                     |   /        /|
-                                                     |  +--------+ |
-+-----------+ (1) Name +---------+                   |  |        | |
-|           | Lookup   |         | (3a) GET(q)       |  | Public | |
-|Application|----------|   GNS   |-------------------|->| Zones  | |
-|           |<---------|         |<------------------|--|        |/
-+-----------+ (4)      +---------+ (3b) RRBLOCK      |  +--------+
-              Records     A                          |
-                          |                          |
-                          |                          |
-     (2) Determination of |                          |
-         Start Zone       |                          |
-                          |                          |
-                       +---------+                   |
-                      /   |     /|                   |
-                     +---------+ |                   |
-                     |         | |                   |
-                     |  Start  | |                   |
-                     |  Zones  | |                   |
-                     |         |/                    |
-                     +---------+                     |
+                           Local Host             |   Remote
+                                                  |   Storage
+                                                  |
+                                                  |    +---------+
+                                                  |   /         /|
+                                                  |  +---------+ |
++-----------+ (1) Name +----------+               |  |         | |
+|           | Lookup   |          | (3a) GET(q)   |  | Record  | |
+|Application|----------| Resolver |---------------|->| Storage | |
+|           |<---------|          |<--------------|--|         |/
++-----------+ (4)      +----------+ (3b) RRBLOCK  |  +---------+
+              Records     A                       |
+                          |                       |
+     (2) Determination of |                       |
+         Start Zone       |                       |
+                          |                       |
+                       +---------+                |
+                      /   |     /|                |
+                     +---------+ |                |
+                     |         | |                |
+                     |  Start  | |                |
+                     |  Zones  | |                |
+                     |         |/                 |
+                     +---------+                  |
          ]]></artwork>
      </figure>
      <section anchor="governance" numbered="true" toc="default">
@@ -3147,6 +3160,134 @@ Value       Symbol            Symbol
          ]]></artwork>
        </figure>
      </section>
+     <section>
+       <name>Example flows</name>
+       <section>
+         <name>AAAA Example Resolution</name>
+         <figure anchor="figure_resolution_ex_aaaa" title="Example resolution 
of an IPv6 address.">
+           <artwork name="" type="" align="left" alt=""><![CDATA[
+                           Local Host             |   Remote
+                                                  |   Storage
+                                                  |
+                                                  |    +---------+
+                                                  |   /         /|
+                                                  |  +---------+ |
++-----------+ (1)      +----------+               |  |         | |
+|           |          |          |      (4,6)    |  | Record  | |
+|Application|----------| Resolver |---------------|->| Storage | |
+|           |<---------|          |<--------------|--|         |/
++-----------+ (8)      +----------+      (5,7)    |  +---------+
+                          A                       |
+                          |                       |
+                    (2,3) |                       |
+                          |                       |
+                          |                       |
+                       +---------+                |
+                      /   v     /|                |
+                     +---------+ |                |
+                     |         | |                |
+                     |  Start  | |                |
+                     |  Zones  | |                |
+                     |         |/                 |
+                     +---------+                  |
+         ]]></artwork>
+         </figure>
+         <ol>
+           <li>Lookup AAAA record for name: www.example.gns.</li>
+           <li>Determine start zone for www.example.gns.</li>
+           <li>Start zone: zk0 - Remainder: www.example.</li>
+           <li>Calculate q0=SHA512(ZKDF(zk0, "example")) and initiate 
GET(q0).</li>
+           <li>Retrieve and decrypt RRBLOCK consisting of a single PKEY record 
containing zk1.</li>
+           <li>Calculate q1=SHA512(ZKDF(zk1, "www")) and initiate GET(q1).</li>
+           <li>Retrieve RRBLOCK consisting of a single AAAA record containing 
the IPv6 address 2001:db8::1.</li>
+           <li>Return record set to application</li>
+         </ol>
+       </section>
+       <section>
+         <name>REDIRECT Example Resolution</name>
+         <figure anchor="figure_resolution_ex_redir" title="Example resolution 
of an IPv6 address with redirect.">
+           <artwork name="" type="" align="left" alt=""><![CDATA[
+                           Local Host              |   Remote
+                                                   |   Storage
+                                                   |
+                                                   |    +---------+
+                                                   |   /         /|
+                                                   |  +---------+ |
++-----------+ (1)      +----------+                |  |         | |
+|           |          |          |      (4,6,8)   |  | Record  | |
+|Application|----------| Resolver |----------------|->| Storage | |
+|           |<---------|          |<---------------|--|         |/
++-----------+ (10)     +----------+      (5,7,9)   |  +---------+
+                          A                        |
+                          |                        |
+                    (2,3) |                        |
+                          |                        |
+                          |                        |
+                       +---------+                 |
+                      /   v     /|                 |
+                     +---------+ |                 |
+                     |         | |                 |
+                     |  Start  | |                 |
+                     |  Zones  | |                 |
+                     |         |/                  |
+                     +---------+                   |
+         ]]></artwork>
+         </figure>
+         <ol>
+           <li>Lookup AAAA record for name: www.example.tld.</li>
+           <li>Determine start zone for www.example.tld.</li>
+           <li>Start zone: zk0 - Remainder: www.example.</li>
+           <li>Calculate q0=SHA512(ZKDF(zk0, "example")) and initiate 
GET(q0).</li>
+           <li>Retrieve and decrypt RRBLOCK consisting of a single REDIRECT 
record containing zk1.</li>
+           <li>Calculate q1=SHA512(ZKDF(zk1, "www")) and initiate GET(q1).</li>
+           <li>Retrieve and decrypt RRBLOCK consisting of a single REDIRECT 
record containing www2.+.</li>
+           <li>Calculate q2=SHA512(ZKDF(zk1, "www2")) and initiate 
GET(q2).</li>
+           <li>Retrieve and decrypt RRBLOCK consisting of a single AAAA record 
containing the IPv6 address 2001:db8::1.</li>
+           <li>Return record set to application.</li>
+         </ol>
+       </section>
+       <section>
+         <name>GNS2DNS Example Resolution</name>
+         <figure anchor="figure_resolution_ex_gnsdns" title="Example 
resolution of an IPv6 address with DNS handover.">
+           <artwork name="" type="" align="left" alt=""><![CDATA[
+                           Local Host                |   Remote
+                                                     |   Storage
+                                                     |
+                                                     |    +---------+
+                                                     |   /         /|
+                                                     |  +---------+ |
++-----------+ (1)      +----------+                  |  |         | |
+|           |          |          |      (4)         |  | Record  | |
+|Application|----------| Resolver |------------------|->| Storage | |
+|           |<---------|          |<-----------------|--|         |/
++-----------+ (8)      +----------+      (5)         |  +---------+
+                          A    A                     |
+                          |    |    (6,7)            |
+                    (2,3) |    +----------+          |
+                          |               |          |
+                          |               v          |
+                       +---------+    +------------+ |
+                      /   v     /|    | System DNS | |
+                     +---------+ |    | resolver   | |
+                     |         | |    +------------+ |
+                     |  Start  | |                   |
+                     |  Zones  | |                   |
+                     |         |/                    |
+                     +---------+                     |
+         ]]></artwork>
+         </figure>
+         <ol>
+           <li>Lookup AAAA record for name: www.example.gnu</li>
+           <li>Determine start zone for www.example.gnu.</li>
+           <li>Start zone: zk0 - Remainder: www.example.</li>
+           <li>Calculate q0=SHA512(ZKDF(zk0, "example")) and initiate 
GET(q0).</li>
+           <li>Retrieve and decrypt RRBLOCK consisting of a single GNS2DNS 
record containing the name example.com and the DNS server IPv4 address 
192.0.2.1.</li>
+           <li>Use system resolver to lookup an AAAA record for the DNS name 
www.example.com.</li>
+           <li>Retrieve a DNS reply consisting of a single AAAA record 
containing the IPv6 address 2001:db8::1.</li>
+           <li>Return record set to application.</li>
+         </ol>
+       </section>
+     </section>
      <section>
        <name>Test Vectors</name>
        <t>

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]