From 944999d39623fbe93ffed132e7a581daaf4745ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20K=C3=BCthe?= Date: Wed, 1 Nov 2023 16:00:03 +0100 Subject: [PATCH] External plugins: Add meshname and meship (#293) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit see https://github.com/zhoreeq/meshname and https://github.com/zhoreeq/meshname/blob/master/protocol.md Signed-off-by: Marek Küthe --- content/explugins/meship.md | 37 +++++++++++++++++++++++++++++++++++ content/explugins/meshname.md | 36 ++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 content/explugins/meship.md create mode 100644 content/explugins/meshname.md diff --git a/content/explugins/meship.md b/content/explugins/meship.md new file mode 100644 index 0000000..0cfc217 --- /dev/null +++ b/content/explugins/meship.md @@ -0,0 +1,37 @@ ++++ +title = "meship" +description = "*meship* allows to resolve decentralized .meship domains" +weight = 10 +tags = [ "plugin" , "meshname" , "meship" ] +categories = [ "plugin", "external" ] +date = "2023-05-15T12:00:00+00:00" +repo = "https://github.com/zhoreeq/coredns-meship" +home = "https://github.com/zhoreeq/meshname" ++++ + +## Background + +Currently, a strict hierarchy is followed when resolving DNS names. It is centrally designed. To address the problem of centrality, there are several approaches. One of these approaches is Meshname. +With a meship domain, the address to which the domain is to be resolved is encoded in the domain name. Thus, when a meship domain is to be resolved, the domain name is decoded first and then returned as a AAAA record. +Meship domains meet the criteria of "Decentralized" and "Secure" but not of "Freely Selectable" of Zooko's triangle. +However, meship domains are not scalable because only one and the same IP address can be resolved at a time. Furthermore, subdomains are not possible. Furthermore, if the IP address is changed, the entire domain name must be changed. +A specification of the protocol can be found at https://github.com/zhoreeq/meshname/blob/master/protocol.md. + +## Description + +The *meship* plugin allows to resolve decentralized .meship domains. The AAAA record is already decoded in the domain name. This is then returned accordingly. + +## Syntax + +``` +meship +``` + +## Example + +``` +meship. { + meship +} +``` + diff --git a/content/explugins/meshname.md b/content/explugins/meshname.md new file mode 100644 index 0000000..512b567 --- /dev/null +++ b/content/explugins/meshname.md @@ -0,0 +1,36 @@ ++++ +title = "meshname" +description = "*meshname* allows to resolve decentralized .meshname domains" +weight = 10 +tags = [ "plugin" , "meshname" , "meship" ] +categories = [ "plugin", "external" ] +date = "2023-05-15T12:00:00+00:00" +repo = "https://github.com/zhoreeq/coredns-meshname" +home = "https://github.com/zhoreeq/meshname" ++++ + +## Background + +Currently, a strict hierarchy is followed when resolving DNS names. It is centrally designed. To address the problem of centrality, there are several approaches. One of these approaches is Meshname. With meshname, the IPv6 address of the authoritative name server responsible for the meshname domain is already encoded in the domain name. Thus, when a meshname domain is to be resolved, the first thing that is done is to decode the encoded authoritative DNS server from the domain. Then the DNS request is sent to this DNS server. Thus, the resolution happens without the typical querying of the hierarchy of DNS servers. Only a connection to the encoded DNS server must exist in order to resolve a meshname domain. +Meshname domains fulfill the criteria of "Decentralized" and "Secure" but not of "Freely Selectable" of Zooko's triangle. However, the "Secure" aspect requires that the connection to the DNS server can be made securely. +Changing the IP address of the authoritative DNS server requires changing the domain name. Furthermore, only one authoritative DNS server can be specified in a meshname domain. A meshname domain cannot be resolved if this server is offline. +A specification of the protocol can be found at [https://github.com/zhoreeq/meshname/blob/master/protocol.md](https://github.com/zhoreeq/meshname/blob/master/protocol.md). + +## Description + +The *meshname* plugin allows to resolve decentralized .meshname domains. These are domains in which the IPv6 of the authoritative server is decoded. The advantage is that no central instance is needed to resolve the authoritative server. The disadvantage is that the meshname names can look quite ugly. + +## Syntax + +``` +meshname +``` + +## Example + +``` +meshname. { + meshname +} +``` +