59 lines
1.4 KiB
Markdown
59 lines
1.4 KiB
Markdown
# How to install and use
|
|
|
|
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) Run the daemon
|
|
```
|
|
./meshnamed
|
|
```
|
|
3) Optionally, set configuration flags
|
|
```
|
|
./meshnamed -listenaddr [::1]:53535 -debug
|
|
```
|
|
4) See the list of all available flags
|
|
```
|
|
./meshnamed -help
|
|
```
|
|
|
|
## Get meshname subdomain from an IPv6 address
|
|
|
|
```
|
|
./meshnamed -getname 200:f8b1:f974:967f:dd32:145d:1cc0:3679
|
|
aiaprmpzoslh7xjscrorzqbwpe
|
|
```
|
|
|
|
Use this subdomain with a .meshname TLD to configure DNS records
|
|
on your authoritative server, (i.e. dnsmasq, bind or PopuraDNS).
|
|
|
|
## systemd unit
|
|
|
|
Look for `meshnamed.service` in the source directory for a systemd unit file.
|
|
|
|
## Configure dnsmasq as a primary DNS resolver with "meshname." support
|
|
|
|
`/etc/dnsmasq.conf`
|
|
|
|
port=53
|
|
domain-needed
|
|
bogus-priv
|
|
server=/meshname/::1#53535
|
|
server=8.8.8.8
|
|
|
|
## Custom top level domains (TLD) and subnet filtering
|
|
|
|
meshnamed can be configured to resolve custom TLDs.
|
|
To run meshnamed for TLD `.newmesh` with addresses in `fd00::/8`
|
|
set a flag `-networks newmesh=fd00::/8`.
|
|
|
|
By default, in addition to `.meshname` it also resolves `.ygg` for IPv6 addresses in
|
|
`200::/7` subnet and `.cjd` for `fc00::/8`.
|
|
|
|
Requests are filtered by subnet validation. Request is ignored if a decoded
|
|
IPv6 address doesn't match the specified subnet for a TLD.
|