Update docs

This commit is contained in:
George 2020-01-27 07:14:08 -05:00
parent 86bf7ed837
commit 2907164cc1
4 changed files with 87 additions and 21 deletions

View File

@ -46,6 +46,24 @@ for that zone.
"xxx.mesh.arpa" 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.".
2) When a resolver detects "mesh.arpa." domain, it extracts a third level
domain from it. In this example, "aiag7sesed2aaxgcgbnevruwpy.mesh.arpa.".
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
"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.
## Why not .ip6.arpa
There is a special domain for reverse DNS lookups, but it takes 72 characters to

69
USAGE.md Normal file
View File

@ -0,0 +1,69 @@
# meshnamed manual
Minimum go version 1.12 is required.
1) Get the source code and compile
git clone https://github.com/zhoreeq/meshname.git
cd meshname
make
2) Generate the default config for your host
./meshnamed genconf 200:6fc8:9220:f400:5cc2:305a:4ac6:967e | tee /tmp/meshnamed.conf
3) Optionally, set the configuration with environment variables
export LISTEN_ADDR=[::1]:53535
export MESH_SUBNET=200::/7
4) Run the daemon
./meshnamed daemon /tmp/meshnamed.conf
Add new DNS records to configuration file and restart the daemon to apply settings.
A record can be of any valid string form parsed by [miekg/dns](https://godoc.org/github.com/miekg/dns#NewRR).
## systemd unit
Look for `meshnamed.service` in the source directory for a systemd unit file.
## Example configuration file
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."
]
}
{
"Domain":"amag7sesed2aaaaaaaaaaaaaau",
"Records":[
"amag7sesed2aaaaaaaaaaaaaau.mesh.arpa. AAAA 300:6fc8:9220:f400::5"
]
}
## Configure dnsmasq as a primary DNS resolver with "mesh.arpa." support
`/etc/dnsmasq.conf`
port=53
domain-needed
bogus-priv
server=/mesh.arpa/::1#53535
server=8.8.8.8
## Using meshnamed as a standalone DNS server
Set environment varialbe to listen on all interfaces and a standard DNS server port
export LISTEN_ADDR=[::]:53
Allow incoming connections to port 53/UDP in firewall settings.

View File

@ -1,5 +0,0 @@
port=53
domain-needed
bogus-priv
server=/mesh.arpa/::1#53535
server=8.8.8.8

View File

@ -1,16 +0,0 @@
{
"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."
]
}
{
"Domain":"amag7sesed2aaaaaaaaaaaaaau",
"Records":[
"amag7sesed2aaaaaaaaaaaaaau.mesh.arpa. AAAA 300:6fc8:9220:f400::5"
]
}