Files
management/docs/adr/0017-split-dns-cfgmon-vier-zonen.md
Thore CimbalandClaude Opus 4.8 f433fc2b2a docs(adr): ADR-0017 — split-DNS as-built, each zone justified by measurement
Corrects only the split-DNS line of ADR-0004 (frozen once accepted, hence a
separate ADR). Rather than documenting 'four zones exist', it measures what each
one does: ~lab and ~axionlabs.de resolve names that exist only internally or
differently (git.lab, and ca.axionlabs.de as real split-horizon to the step-ca),
~axion1337.de carries the internal-only git.axion1337.de, and ~lab.de carries
nothing at all while routing a foreign public domain through the lab resolver —
so it goes.

This also answers the audit's rollback option: reverting to ~lab alone would have
broken internal CA and git resolution. The purpose was never written down, which
is why rolling back would have been blind.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-15 12:00:00 +00:00

4.9 KiB

type, id, status, date, supersedes, superseded_by, related
type id status date supersedes superseded_by related
adr 0017 accepted 2026-08-15 null null
docs/adr/0004-site-to-site-vpn-hetzner-lab.md
docs/issues/0027-audit-01-acht-widersprueche-aus-dem-labnet-02.md

0017 — Split-DNS auf CFGMON: vier Zonen statt einer, je Zone begründet

Status: akzeptiert · Datum: 2026-08-15 · Entscheider: sorb

Kontext

ADR-0004 beschreibt in der CFGMON-Zeile „Split-DNS nur ~lab10.58.73.1". Tatsächlich konfiguriert sind seit 2026-08-01 (auf sorbs Ansage, /etc/wireguard/lab.conf, festgehalten nur im CFGMON-AAR, Nachtrag 2) vier Zonen: ~lab, ~lab.de, ~axion1337.de, ~axionlabs.de. Aufgefallen im Selbst-Audit als W1 von #0027.

ADRs sind nach Annahme eingefroren; der As-built-Stand lässt sich nicht in ADR-0004 nachtragen. Diese ADR korrigiert ausschließlich diese eine Zeile — die VPN-Architektur aus ADR-0004 bleibt unberührt und gültig.

Befürchtet wurde: Löst der Lab-Resolver axion1337.de anders auf als die öffentliche Sicht, ändert sich unbemerkt der Pfad zum Gitea-Mirror (rohana.axion1337.de) — also zur Flux-Quelle.

Messung (2026-08-15, vom Lab-VLAN gegen 10.58.73.1, verglichen per DoH)

Die Befürchtung trifft nicht zu. Kein einziger Record weicht ab — geprüft wurden A, MX, TXT (SPF/DMARC), CNAME (DKIM), nur öffentlich existierende Subdomains sowie Records, die einen Tag zuvor angelegt (rohana MX 0 ., _dmarc.rohana, SPF -all) bzw. gelöscht wurden (www.rohana, ftp). Der Lab-Resolver hält für axion1337.de keine eigene Zone, sondern reicht live nach oben durch. Das von ihm gesetzte aa-Flag ist eine Eigenheit des UniFi-Resolvers und war der irreführende Teil, der den Verdacht überhaupt begründet hat.

Was die vier Zonen tatsächlich leisten:

Zone Nachweis Urteil
~lab git.lab10.58.73.17, wiki.lab10.58.73.17; öffentlich NXDOMAIN notwendig — ohne sie kein git.lab (266 Fundstellen in der Doku)
~axionlabs.de ca.axionlabs.de10.58.73.13 intern vs. 91.195.241.232 öffentlich notwendig — echtes Split-Horizon auf die interne step-ca
~axion1337.de git.axion1337.de10.58.73.13 intern, öffentlich NXDOMAIN; alle übrigen Namen identisch zur öffentlichen Sicht notwendig für den internen Namen; für den Rest wirkungslos, aber schadlos
~lab.de kein interner Name gefunden; lab.de löst identisch zur öffentlichen Sicht auf (52.59.124.117, fremde Domain); keine einzige Fundstelle im Repo ohne belegbaren Zweck

Entscheidung

  1. ~lab, ~axionlabs.de und ~axion1337.de bleiben und sind hiermit als As-built dokumentiert. Jede der drei löst mindestens einen Namen auf, den es öffentlich nicht oder anders gibt — sie sind kein Versehen.
  2. ~lab.de wird entfernt. Es leitet Anfragen für eine fremde öffentliche Domain über den Lab-Resolver, ohne dass ein interner Name darunter existiert oder das Repo sie irgendwo verwendet. Heute schadlos (der Resolver reicht durch), aber eine Umleitung ohne Zweck ist eine Angriffs- und Fehlerfläche, die niemand pflegt.
  3. Kein Rückbau auf ~lab allein. Das hätte ca.axionlabs.de und git.axion1337.de unauflösbar gemacht — der Rückbau wäre ins Blinde gegangen, weil der Zweck der Zonen nirgends festgehalten war. Genau das ist die Lücke, die diese ADR schließt.

Konsequenzen

  • Offene Handlung: ~lab.de aus /etc/wireguard/lab.conf auf CFGMON entfernen (Domains =-Zeile), Dienst neu laden, mit resolvectl domain gegenprüfen. Bis dahin bleibt der Ist-Zustand vierzonig.
  • Der Verdacht aus W1 ist ausgeräumt und belegt — künftige Sessions müssen ihn nicht erneut prüfen. Die Messung steht oben, nicht nur ihr Ergebnis.
  • aa-Flag ist hier kein Autoritätsbeweis. Wer künftig auf UniFi-Resolvern misst, darf daraus nicht auf eine lokale Zone schließen; nur der Datenvergleich gegen die öffentliche Sicht entscheidet.
  • Die ACME-Resolver-Festnagelung in Traefik (dnschallenge.resolvers=1.1.1.1:53,8.8.8.8:53, thread-net-git 8d089e2) bleibt sinnvoll (deterministisch, umgeht Negativ-Caching), ist aber kein Sicherheitsnetz gegen diese Zonen — eine gegenteilige Behauptung in #0027 wurde nach der Messung korrigiert.

Verworfene Alternativen

  • ADR-0004 nachbessern: nicht zulässig, ADRs sind nach Annahme eingefroren — deshalb diese eigene ADR statt einer stillen Korrektur.
  • Alle vier Zonen belassen und nur dokumentieren: hätte ~lab.de als „historisch gewachsen" zementiert, ohne dass irgendwer einen Zweck benennen kann. Eine Ausnahme, die niemand begründen kann, ist keine Ausnahme, sondern ein Rest.
  • Rückbau auf ~lab (die zweite Option aus W1): bricht die interne CA- und git-Auflösung, siehe Messung.