JIT
← Notebook
Field notes HomelabDNSSecurity

Fase 2: interne DNS en de kip-en-ei van de bootstrap

Een autoritatieve interne resolver as code neerzetten — split-horizon, versleutelde upstreams, en het moment waarop de nieuwe DNS-box zijn eigen installer niet kon resolven.

Niets resolvet zolang DNS niet draait, dus het is de eerste echte service in de herbouw. Ik gaf het een eigen VM en een zelfgehoste autoritatieve resolver, volledig geconfigureerd via zijn API vanuit een Ansible-rol.

Split-horizon, met opzet

Mijn publieke domein blijft waar het thuishoort — bij de registrar, voor de hele wereld. De resolver wordt enkel autoritatief voor een privé intern subdomein: hij beantwoordt homelab-hostnames vanuit zijn eigen zone en stuurt al de rest upstream door. Voor ik iets omzette, trok ik de publieke zone read-only op en keek ik na wat er publiek echt onder dat subdomein leefde: precies één record, dat ik bewust met rust liet. Split-horizon bijt je enkel wanneer je iets vergeet dat het nu overschaduwt.

De kip-en-ei

Ik had de nieuwe box ingesteld om zichzelf voor DNS te gebruiken. Correcte eindtoestand — nutteloos tijdens de installatie, want de resolver waar hij naar wijst, draait nog niet, dus hij kan zelfs zijn eigen pakketdownloads niet resolven. De fix is een wegwerp-upstream-resolver, enkel voor het installatievenster; daarna geeft de installer de resolutie door aan de lokale service en sluit de lus zich. Bootstrap-volgorde is een feature die je ontwerpt, geen ongeluk dat je ontdekt.

Versleutel de upstreams

De recursie gaat naar buiten over DNS-over-TLS naar twee onafhankelijke providers, niet als platte UDP naar één. Twee, zodat één hapering bij een provider de resolutie niet meesleept; versleuteld, zodat het pad tussen mij en hen geen open postkaart is.

Je resolver ziet elke site die je bezoekt. Geef dat niet in klare taal aan het netwerk, en vertrouw het niet toe aan één enkele upstream.

Eén eerlijke valkuil: mijn eigen werkstation resolvet nog altijd via de gateway, dus dat bleef “behulpzaam” antwoorden met een verouderde lease — de loopback-query van de box zelf was de enige betrouwbare getuige. De overschakeling zelf gebeurt bewust en gefaseerd, het netwerk met het laagste risico eerst. Volgende fase: identity en secrets.