95 lines
4.9 KiB
Markdown
95 lines
4.9 KiB
Markdown
---
|
|||
|
|
type: adr
|
||
|
|
id: "0017"
|
||
|
|
status: accepted
|
||
|
|
date: 2026-08-15
|
||
|
|
supersedes: null
|
||
|
|
superseded_by: null
|
||
|
|
related:
|
||
|
|
- "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](0004-site-to-site-vpn-hetzner-lab.md) beschreibt in der CFGMON-Zeile
|
||
|
|
*„Split-DNS nur `~lab` → `10.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](../issues/0027-audit-01-acht-widersprueche-aus-dem-labnet-02.md).
|
||
|
|
|
||
|
|
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.lab` → `10.58.73.17`, `wiki.lab` → `10.58.73.17`; öffentlich **NXDOMAIN** | **notwendig** — ohne sie kein git.lab (266 Fundstellen in der Doku) |
|
||
|
|
| `~axionlabs.de` | `ca.axionlabs.de` → **`10.58.73.13`** intern vs. `91.195.241.232` öffentlich | **notwendig** — echtes Split-Horizon auf die interne step-ca |
|
||
|
|
| `~axion1337.de` | `git.axion1337.de` → **`10.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.
|