ztDNS is a dedicated DNS server for a ZeroTier virtual network.
ztDNS pulls device names from Zerotier and makes them available by name using either IPv4 assigned addresses or IPv6 assigned addresses.
If you prefer the traditional installation route:
First use go get
to install the latest version, or download a precompiled release from https://github.com/uxbh/ztdns/releases
go get -u github.com/uxbh/ztdns/
go build
If you are running on Linux, run sudo setcap cap_net_bind_service=+eip ./ztdns
to enable non-root users to bind privileged ports. On other operating systems, the program may need to be run as an administrator.
Add a new API access token to your user under the account tab at https://my.zerotier.com.
If you do not want to store your API access token in the configuration file you can also run the
server with the env
command: env 'ZTDNS_ZT.API=<<APIToken>>' ./ztdns server
Run ztdns mkconfig
to generate a sample configuration file.
Add your API access token, Network names and IDs, and interface name to the configuration.
Start the server using ztdns server
.
Add a DNS entry in your ZeroTier members pointing to the member running ztdns.
Once the server is up and running you will be able to resolve names based on the short name and suffix defined in the configuration file (zt by default) from ZeroTier.
dig @serveraddress member.domain.zt A
dig @serveraddress member.domain.zt AAAA
ping member.domain.zt
yay -S ztdns-git
If you prefer to run the server with Docker:
.ztdns.toml
file in the main directory by copying the .ztdns.toml.example
file.docker-compose.yml
file. You must be running Docker with root permissions in order to bind the privileged port properly.docker-compose up
to start the server.Once the server is up and running you will be able to resolve names based on the short name, domain and suffix defined in the configuration file (zt by default) from ZeroTier.
# remove -p 5356 if running on port 53
dig @127.0.0.1 -p 5356 member.domain.zt A
dig @127.0.0.1 -p 5356 member.domain.zt AAAA
ping member.domain.zt
Thanks for considering contributing to the project. We welcome contributions, issues or requests from anyone, and are grateful for any help. Problems or questions? Feel free to open an issue on GitHub.
Please make sure your contributions adhere to the following guidelines: