diff --git a/docs/network.md b/docs/network.md index 39f24c1e..1e40c4b2 100644 --- a/docs/network.md +++ b/docs/network.md @@ -112,14 +112,19 @@ schemes pick their own. ## Resolver behaviour -dnsmasq is **authoritative** for the hive's own zones — answers -``, `forge.`, `matrix.` and — -on the host running it — the swarm's `auth.` -queries with the bridge IP (where nginx is reachable). Everything -else is forwarded to the host's own resolvers: dnsmasq runs on the host -and reads the host's `/etc/resolv.conf` directly. Containers don't need -to know the upstream — they query the bridge IP and dnsmasq does the -right thing per-name. +dnsmasq is **authoritative** for the hive's own zone (``) +plus whatever swarm-service names this host contributes via +`gateway.localNames` — `forge.` and `chat.` +(matrix) when this host runs those services, and `auth.` +when it runs authelia — answering each with the bridge IP (where nginx +is reachable). Note forge and matrix are swarm-domain names, not +sub-domains of ``: a swarm runs one forge and one +homeserver, so their names belong to the swarm rather than to whichever +hive happens to host them. Everything else is forwarded to the host's +own resolvers: dnsmasq runs on the host and reads the host's +`/etc/resolv.conf` directly. Containers don't need to know the +upstream — they query the bridge IP and dnsmasq does the right thing +per-name. There is deliberately no fallback `server=`: dnsmasq queries all known upstreams in parallel, so a hardcoded public resolver would take a share