diff options
author | Martin Schanzenbach <schanzen@gnunet.org> | 2022-02-19 23:35:58 +0100 |
---|---|---|
committer | Martin Schanzenbach <schanzen@gnunet.org> | 2022-02-19 23:35:58 +0100 |
commit | e6ac2a76e9377686995b6cb6c2c6211e96f6aab8 (patch) | |
tree | 33098cf0cfe04fdb292cbe294ad16a71f640b3e4 /draft-schanzen-gns.xml | |
parent | fd967d3b65d9761c237475ae534f0f6625d03707 (diff) | |
download | lsd0001-e6ac2a76e9377686995b6cb6c2c6211e96f6aab8.tar.gz lsd0001-e6ac2a76e9377686995b6cb6c2c6211e96f6aab8.zip |
update start zones
Diffstat (limited to 'draft-schanzen-gns.xml')
-rw-r--r-- | draft-schanzen-gns.xml | 64 |
1 files changed, 37 insertions, 27 deletions
diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml index 7f426ea..b8cab31 100644 --- a/draft-schanzen-gns.xml +++ b/draft-schanzen-gns.xml | |||
@@ -382,6 +382,11 @@ | |||
382 | If this functionality is not implemented, names can still be resolved | 382 | If this functionality is not implemented, names can still be resolved |
383 | if zone keys for the initial step in the name resolution are available | 383 | if zone keys for the initial step in the name resolution are available |
384 | (see <xref target="resolution"/>). | 384 | (see <xref target="resolution"/>). |
385 | As users can own and manage their own zones, each local zone SHOULD be | ||
386 | associated with a single GNS label, but users MAY choose to use longer | ||
387 | names consisting of multiple labels. | ||
388 | The associated labels or names are used in order to discover starting | ||
389 | zones in the resolution process (see <xref target="governance"/>). | ||
385 | </t> | 390 | </t> |
386 | <t> | 391 | <t> |
387 | Each zone type (ztype) is a unique 32-bit number. | 392 | Each zone type (ztype) is a unique 32-bit number. |
@@ -801,9 +806,10 @@ zTLD[126..129].zTLD[63..125].zTLD[0..62] | |||
801 | records. | 806 | records. |
802 | A new local zone is established by selecting a zone type and creating a | 807 | A new local zone is established by selecting a zone type and creating a |
803 | zone key pair. | 808 | zone key pair. |
804 | If this mechanism is not implemented, name resolution is | 809 | If this mechanism is not implemented, |
805 | limited to non-local start zones (<xref target="governance"/>) | 810 | and no zones can be published in the storage (<xref target="publish"/>) |
806 | and no zones can be published in the storage (<xref target="publish"/>). | 811 | and name resolution is limited to non-local start zones |
812 | (<xref target="governance"/>). | ||
807 | </t> | 813 | </t> |
808 | <t> | 814 | <t> |
809 | A GNS resource record holds the data of a specific record in a zone. | 815 | A GNS resource record holds the data of a specific record in a zone. |
@@ -1898,9 +1904,6 @@ q := SHA-512 (ZKDF-Public(zk, label)) | |||
1898 | <section anchor="governance" numbered="true" toc="default"> | 1904 | <section anchor="governance" numbered="true" toc="default"> |
1899 | <name>Start Zones</name> | 1905 | <name>Start Zones</name> |
1900 | <t> | 1906 | <t> |
1901 | <!-- FIXME: This is a mess. Does the resolver know the configuration | ||
1902 | or only the client? Because the resolver needs to know the zones for | ||
1903 | redirects, for example --> | ||
1904 | The resolution of a GNS name starts in an initial start zone. | 1907 | The resolution of a GNS name starts in an initial start zone. |
1905 | The resolver may have one or more local start zones configured | 1908 | The resolver may have one or more local start zones configured |
1906 | which point to local or remote zone keys. | 1909 | which point to local or remote zone keys. |
@@ -1911,23 +1914,29 @@ q := SHA-512 (ZKDF-Public(zk, label)) | |||
1911 | <t> | 1914 | <t> |
1912 | The governance model of any zone is at the sole discretion | 1915 | The governance model of any zone is at the sole discretion |
1913 | of the zone owner. | 1916 | of the zone owner. |
1914 | However, the choice of start zone(s) is at the sole | 1917 | However, the choice of available start zone(s) is at the sole |
1915 | discretion of the local system administrator or user. | 1918 | discretion of the local system administrator or user. |
1916 | This property addresses the issue of a single hierarchy with a | 1919 | This property addresses the issue of a single hierarchy with a |
1917 | centrally controlled root and the related issue of distribution and | 1920 | centrally controlled root and the related issue of distribution and |
1918 | management of root servers in DNS (see <xref target="RFC8324"/>, Section 3.10 and 3.12). | 1921 | management of root servers in DNS (see <xref target="RFC8324"/>, Section 3.10 and 3.12). |
1922 | The only exception to this rule are names ending with a zTLD. | ||
1923 | In this case the start zone is explicitly given in the rightmost | ||
1924 | label of the name to resolve. | ||
1925 | In order to ensure uniqueness of names with zTLDs any | ||
1926 | implementation MUST use the given zone as start zone. | ||
1919 | </t> | 1927 | </t> |
1920 | <t> | 1928 | <t> |
1921 | Below examples can be found how a resolver SHOULD | 1929 | A GNS resolver MUST follow the steps below in order to discover |
1922 | discover the start zone. The process given is not exhaustive and | 1930 | the start zone. |
1923 | resolvers MAY supplement it with other mechanisms or ignore it if the | 1931 | The process given is not exhaustive and resolvers MAY supplement it |
1924 | particular application requires a different process. | 1932 | with other mechanisms if the particular application |
1933 | requires a different process: | ||
1925 | </t> | 1934 | </t> |
1926 | <t> | 1935 | <t> |
1927 | GNS implementations MUST first try to interpret the top-level domain of | 1936 | First, any implementation MUST try to interpret the top-level domain of |
1928 | a GNS name as a zone key representation (i.e. a zTLD). | 1937 | the given name zTLD. |
1929 | If the top-level domain can be converted to a valid ztype and zone | 1938 | If the rightmost label can be converted to a valid ztype and zone |
1930 | key value, the resulting zone key is used as the start zone: | 1939 | key, it MUST be used as the start zone: |
1931 | </t> | 1940 | </t> |
1932 | <artwork name="" type="" align="left" alt=""><![CDATA[ | 1941 | <artwork name="" type="" align="left" alt=""><![CDATA[ |
1933 | Example name: www.example.<zTLD> | 1942 | Example name: www.example.<zTLD> |
@@ -1935,10 +1944,7 @@ Example name: www.example.<zTLD> | |||
1935 | => Name to resolve from start zone: www.example | 1944 | => Name to resolve from start zone: www.example |
1936 | ]]></artwork> | 1945 | ]]></artwork> |
1937 | <t> | 1946 | <t> |
1938 | In GNS, users MAY own and manage their own zones. | 1947 | An implementation MAY allow the user to manage local zones. |
1939 | Each local zone SHOULD be associated with a single GNS label, | ||
1940 | but users MAY choose to use longer names consisting of | ||
1941 | multiple labels. | ||
1942 | If the name of a locally managed zone matches the suffix | 1948 | If the name of a locally managed zone matches the suffix |
1943 | of the name to be resolved, resolution MUST start from the | 1949 | of the name to be resolved, resolution MUST start from the |
1944 | respective local zone with the longest matching suffix: | 1950 | respective local zone with the longest matching suffix: |
@@ -1954,10 +1960,11 @@ com = (d2,zk2) | |||
1954 | => Name to resolve from start zone: www.example | 1960 | => Name to resolve from start zone: www.example |
1955 | ]]></artwork> | 1961 | ]]></artwork> |
1956 | <t> | 1962 | <t> |
1957 | Finally, additional "suffix-to-zone" mappings MAY be configured. | 1963 | Finally, an implementation MAY support the configuration of additional |
1958 | Suffix to zone key mappings MUST be configurable through a local | 1964 | "suffix-to-zTLD" mappings. |
1965 | Suffix-to-zTLD mappings MUST be configurable through a local | ||
1959 | configuration file or database by the user or system administrator. | 1966 | configuration file or database by the user or system administrator. |
1960 | The suffix MAY consist of multiple GNS labels concatenated with a | 1967 | A suffix MAY consist of multiple GNS labels concatenated with a |
1961 | label separator. | 1968 | label separator. |
1962 | If multiple suffixes match the name to resolve, the longest | 1969 | If multiple suffixes match the name to resolve, the longest |
1963 | matching suffix MUST be used. The suffix length of two results | 1970 | matching suffix MUST be used. The suffix length of two results |
@@ -1969,15 +1976,18 @@ com = (d2,zk2) | |||
1969 | <artwork name="" type="" align="left" alt=""><![CDATA[ | 1976 | <artwork name="" type="" align="left" alt=""><![CDATA[ |
1970 | Example name: www.example.org | 1977 | Example name: www.example.org |
1971 | Local suffix mappings: | 1978 | Local suffix mappings: |
1972 | org = zk0 | 1979 | org = zTLD0 (ztype0||zk0) |
1973 | example.org = zk1 | 1980 | example.org = zTLD1 (ztype1||zk1) |
1974 | example.com = zk2 | 1981 | example.com = zTLD2 (ztype2||zk2) |
1975 | ... | 1982 | ... |
1976 | => Start zone: zk1 | 1983 | => Start zone: zk1 |
1977 | => Name to resolve from start zone: www | 1984 | => Name to resolve from start zone: www |
1978 | ]]></artwork> | 1985 | ]]></artwork> |
1986 | <t> | ||
1987 | If no start zone can be discovered, resolution MUST fail and an | ||
1988 | error MUST be returned to the application. | ||
1989 | </t> | ||
1979 | </section> | 1990 | </section> |
1980 | |||
1981 | <section anchor="recursion" numbered="true" toc="default"> | 1991 | <section anchor="recursion" numbered="true" toc="default"> |
1982 | <name>Recursion</name> | 1992 | <name>Recursion</name> |
1983 | <t> | 1993 | <t> |