Internal DNS
Services can be addressed on the internal WireGuard network by service name, service ID, or a machine-scoped service name:
Service name
$ nslookup nats.internal
Server: 127.0.0.11
Address: 127.0.0.11#53
Name: nats.internal
Address: 10.210.0.2
Name: nats.internal
Address: 10.210.1.2
$ nslookup worker.internal
Server: 127.0.0.11
Address: 127.0.0.11#53
Name: worker.internal
Address: 10.210.0.3
Name: worker.internal
Address: 10.210.0.4
Name: worker.internal
Address: 10.210.1.3
Name: worker.internal
Address: 10.210.1.4
Service ID
$ nslookup 3ecb3a8bbec5fd3f46efb056a934714a.internal
Server: 127.0.0.11
Address: 127.0.0.11#53
Name: 3ecb3a8bbec5fd3f46efb056a934714a.internal
Address: 10.210.0.4
Machine ID scoped service name
$ nslookup 0903f0ee483aa97d559eeeaac5e22283.m.nats.internal
Server: 127.0.0.11
Address: 127.0.0.11#53
Name: nats.internal
Address: 10.210.1.2
$ nslookup 0903f0ee483aa97d559eeeaac5e22283.m.worker.internal
Server: 127.0.0.11
Address: 127.0.0.11#53
Name: worker.internal
Address: 10.210.1.3
Name: worker.internal
Address: 10.210.1.4
IP Ordering Mode
Additionally, the IP ordering preference can be specified with a rr (round-robin) or nearest subdomain prefix.
rr (round-robin) current default
Randomly shuffled order on each lookup.
$ nslookup rr.worker.internal
Server: 127.0.0.11
Address: 127.0.0.11#53
Name: rr.worker.internal
Address: 10.210.0.3
Name: rr.worker.internal
Address: 10.210.0.4
Name: rr.worker.internal
Address: 10.210.1.3
Name: rr.worker.internal
Address: 10.210.1.4
$ nslookup rr.worker.internal
Server: 127.0.0.11
Address: 127.0.0.11#53
Name: rr.worker.internal
Address: 10.210.0.4
Name: rr.worker.internal
Address: 10.210.1.3
Name: rr.worker.internal
Address: 10.210.1.4
Name: rr.worker.internal
Address: 10.210.0.3
Nearest scope
Returns machine-local instances first.
machine-a:
$ nslookup nearest.worker.internal
Server: 127.0.0.11
Address: 127.0.0.11#53
Name: nearest.worker.internal
Address: 10.210.0.3
Name: nearest.worker.internal
Address: 10.210.0.4
Name: nearest.worker.internal
Address: 10.210.1.3
Name: nearest.worker.internal
Address: 10.210.1.4
machine-b:
$ nslookup nearest.worker.internal
Server: 127.0.0.11
Address: 127.0.0.11#53
Name: nearest.worker.internal
Address: 10.210.1.3
Name: nearest.worker.internal
Address: 10.210.1.4
Name: nearest.worker.internal
Address: 10.210.0.3
Name: nearest.worker.internal
Address: 10.210.0.4
The prefixes can be used with service ID and machine-scoped service names, as well (e.g. nearest.3ecb3a8bbec5fd3f46efb056a934714a.internal or rr.0903f0ee483aa97d559eeeaac5e22283.m.worker.internal).