From 9bb3f1ca2a7672fe2ad9747f9da5d73706305402 Mon Sep 17 00:00:00 2001
From: George <zhoreeq@users.noreply.github.com>
Date: Mon, 3 Feb 2020 14:32:44 -0500
Subject: [PATCH] Change domain to .meshname

---
 README.md             | 16 ++++++++--------
 cmd/meshname/main.go  |  2 +-
 cmd/meshnamed/main.go |  2 +-
 protocol.md           | 35 ++++++++++++++---------------------
 4 files changed, 24 insertions(+), 31 deletions(-)

diff --git a/README.md b/README.md
index 4d62109..43791ca 100644
--- a/README.md
+++ b/README.md
@@ -35,28 +35,28 @@ In this example, meshnamed is configured as authoritative for two domain zones:
     {
             "Domain":"aiag7sesed2aaxgcgbnevruwpy",
             "Records": [
-                    "aiag7sesed2aaxgcgbnevruwpy.mesh.arpa. AAAA 200:6fc8:9220:f400:5cc2:305a:4ac6:967e",
-                    "_xmpp-client._tcp.aiag7sesed2aaxgcgbnevruwpy.mesh.arpa. SRV 5 0 5222 xmpp.aiag7sesed2aaxgcgbnevruwpy.mesh.arpa",
-                    "_xmpp-server._tcp.aiag7sesed2aaxgcgbnevruwpy.mesh.arpa. SRV 5 0 5269 xmpp.aiag7sesed2aaxgcgbnevruwpy.mesh.arpa",
-                    "xmpp.aiag7sesed2aaxgcgbnevruwpy.mesh.arpa. AAAA 300:6fc8:9220:f400::1",
-                    "forum.aiag7sesed2aaxgcgbnevruwpy.mesh.arpa. CNAME amag7sesed2aaaaaaaaaaaaaau.mesh.arpa."
+                    "aiag7sesed2aaxgcgbnevruwpy.meshname. AAAA 200:6fc8:9220:f400:5cc2:305a:4ac6:967e",
+                    "_xmpp-client._tcp.aiag7sesed2aaxgcgbnevruwpy.meshname. SRV 5 0 5222 xmpp.aiag7sesed2aaxgcgbnevruwpy.meshname",
+                    "_xmpp-server._tcp.aiag7sesed2aaxgcgbnevruwpy.meshname. SRV 5 0 5269 xmpp.aiag7sesed2aaxgcgbnevruwpy.meshname",
+                    "xmpp.aiag7sesed2aaxgcgbnevruwpy.meshname. AAAA 300:6fc8:9220:f400::1",
+                    "forum.aiag7sesed2aaxgcgbnevruwpy.meshname. CNAME amag7sesed2aaaaaaaaaaaaaau.meshname."
             ]
     }
     {
             "Domain":"amag7sesed2aaaaaaaaaaaaaau",
             "Records":[
-                    "amag7sesed2aaaaaaaaaaaaaau.mesh.arpa. AAAA 300:6fc8:9220:f400::5"
+                    "amag7sesed2aaaaaaaaaaaaaau.meshname. AAAA 300:6fc8:9220:f400::5"
             ]
     }
 
-## Configure dnsmasq as a primary DNS resolver with "mesh.arpa." support
+## Configure dnsmasq as a primary DNS resolver with "meshname." support
 
 `/etc/dnsmasq.conf`
 
     port=53
     domain-needed
     bogus-priv
-    server=/mesh.arpa/::1#53535
+    server=/meshname/::1#53535
     server=8.8.8.8
 
 ## Using meshnamed as a standalone DNS server
diff --git a/cmd/meshname/main.go b/cmd/meshname/main.go
index 7d313f7..7f71636 100644
--- a/cmd/meshname/main.go
+++ b/cmd/meshname/main.go
@@ -9,7 +9,7 @@ import (
 	"errors"
 )
 
-var domainZone = ".mesh.arpa"
+var domainZone = ".meshname"
 
 func reverse_lookup(target string) (string, error) {
 	ip := net.ParseIP(target)
diff --git a/cmd/meshnamed/main.go b/cmd/meshnamed/main.go
index 3dfc89c..97710b8 100644
--- a/cmd/meshnamed/main.go
+++ b/cmd/meshnamed/main.go
@@ -13,7 +13,7 @@ import (
 	"github.com/miekg/dns"
 )
 
-const domainZone = "mesh.arpa."
+const domainZone = "meshname."
 
 var _, validSubnet, _ = net.ParseCIDR("::/0")
 var zoneConfigPath = ""
diff --git a/protocol.md b/protocol.md
index 9175317..a644567 100644
--- a/protocol.md
+++ b/protocol.md
@@ -16,12 +16,12 @@ base32 notation for deriving a globally unique name space managed by that node.
 Since there is no need for a global authority or consensus, such a naming system 
 will reliably work in any network split scenarios.
 
-".mesh.arpa" is meant to be used by machines, not by humans. A human-readable 
+".meshname" is meant to be used by machines, not by humans. A human-readable 
 naming system would require a lot more engineering effort. 
 
-## How .mesh.arpa domains work
+## How .meshname domains work
 
-Each mesh node can manage its own unique name space in "mesh.arpa." zone. 
+Each mesh node can manage its own unique name space in "meshname." zone. 
 The name space is derived from its IPv6 address as follows:
 
 1) IPv6 address is converted to its binary form of 16 bytes:
@@ -37,29 +37,29 @@ The name space is derived from its IPv6 address as follows:
 3) Padding symbols "======" are removed from the end of the string.
 
 The resulting name space managed by '200:6fc8:9220:f400:5cc2:305a:4ac6:967e'
-is "aiag7sesed2aaxgcgbnevruwpy.mesh.arpa."
+is "aiag7sesed2aaxgcgbnevruwpy.meshname."
 
-In order to resolve a domain in "xxx.mesh.arpa." space, the client derives IPv6 
-address from the third level domain "xxx" and use it as authoritative DNS server
+In order to resolve a domain in "xxx.meshname." space, the client derives IPv6 
+address from the second level domain "xxx" and use it as authoritative DNS server
 for that zone.
 
-"xxx.mesh.arpa" name is itself managed by the DNS server derived from "xxx" and 
+"xxx.meshname" name is itself managed by the DNS server derived from "xxx" and 
 can point to any other IPv6 address.
 
 ## Resolving process explained
 
 1) A client application makes a request to a resolver.
-I.e. request AAAA record for "test.aiag7sesed2aaxgcgbnevruwpy.mesh.arpa.".
+I.e. request AAAA record for "test.aiag7sesed2aaxgcgbnevruwpy.meshname.".
 
-2) When a resolver detects "mesh.arpa." domain, it extracts a third level 
-domain from it. In this example, "aiag7sesed2aaxgcgbnevruwpy.mesh.arpa.".
+2) When a resolver detects "meshname." domain, it extracts the second level 
+domain from it. In this example, "aiag7sesed2aaxgcgbnevruwpy.meshname.".
 
 3) If the resolver is configured as an authoritative server for that 
 domain, it sends back a response as a regular DNS server would do.
 
 4) If it's not, the resolver derives IPv6 address of the corresponding 
-authoritative DNS server from the third level domain.
-For "aiag7sesed2aaxgcgbnevruwpy.mesh.arpa." the authoritative server is 
+authoritative DNS server from the second level domain.
+For "aiag7sesed2aaxgcgbnevruwpy.meshname." the authoritative server is 
 "200:6fc8:9220:f400:5cc2:305a:4ac6:967e".
 The resolver then relays clients request to a derived server address and 
 relays a response back to the client.
@@ -67,17 +67,10 @@ relays a response back to the client.
 ## Why not .ip6.arpa
 
 There is a special domain for reverse DNS lookups, but it takes 72 characters to
-store a single value. The same value in .mesh.arpa takes 36 characters.
+store a single value. The same value in .meshname takes 35 characters.
 
 "e.7.6.9.6.c.a.4.a.5.0.3.2.c.c.5.0.0.4.f.0.2.2.9.8.c.f.6.0.0.2.0.ip6.arpa" 
-versus "aiag7sesed2aaxgcgbnevruwpy.mesh.arpa."
+versus "aiag7sesed2aaxgcgbnevruwpy.meshname"
 
 This saves twice amount of bandwidth and storage space. It is also arguably more 
 aesthetically appealing, even though that's not a goal.
-
-## Why .arpa
-
-".arpa" is a special domain reserved for Internet infrastructure. There is a 
-similar special-use domain for home networks ".home.arpa" specified in RFC 8375. 
-If ".mesh.arpa" will become widely used it could also be standardized, otherwise 
-it won't break much.