Bei mir hat das alles mal mit einem bind9 als "Hidden Primary" für meine Domains angefangen. Ich verwalte die Zonen meiner Domains auf diesem, von außen angesprochen werden kann dieser aber nicht. Änderungen werden auf die Nameserver meines Domain Providers veröffentlicht, und nur diese stehen via NS record auch in den Zonen drin. Heißt ich hab den Luxus echter nsupdate Requests aber muss mich nicht mit DoS und ähnlichem rumärgern.
Vor einiger Zeit ist dann noch eine Interne Instanz dazu gekommen. Diese ist einerseits in meinem OPNSense Router für DHCP DynDNS (A & PTR Records) eingetragen, andereseits gibts ne echte Domain für meine Homelab Dienste, sodass ich auch via DNS Challenge Lets Encrypt Zertifikate holen kann.
Auf dem ns2 nutze ich dafür bind views, die es erlauben unterschiedliche Zonen je nach Quell IP des Anfragenden bereit zu stellen. Heißt, kommt ein DNS Query von 192.168.0.0/16 ist dig brickburg.de A etwas anderes, als wenn das gleiche query von 8.8.8.8 kommen würde.
ns1 bei mir im Homelab ist dabei der Primary für alles, und ns2 der Secondary. Ich kann also meinen Proxmox warten ODER das Internet kann aufallen, meine internen DNS Zonen sind verfügbar. Fällt beides aus, ists natürlich wieder kaputt.
Sehr angenehm, wenn gerade Updates laufen und die VMs nacheinander rebooten. Man merkt nichts mehr davon.
Zusätzlich gibts noch auf beiden Systemen einen pihole, der im Client VLAN als ns1 und ns2 im DHCP eingetragen ist und die Queries an die jeweiligen Nameserver forwarded, sofern es kein Junk Query ist.
Beide Nameserver haben mindestens 2 interne IPs, sodass bind und pihole jeweils auf Port 53 mit eigener IP laufen können. ns2 bekommt diese IPs durch ein via OpenVPN geroutetes /27 Netz.
Managed wird das alles via Ansible, ich hab ~250 Zeilen langes Konfigurationsobjekt, wo Zonen, HMAC Keys und Zugriffsregeln definiert sind und das Playbook erzeugt daraus die bind9 config files. Und macht anschließend Logik Checks wie "DNSSEC ist aktiv, gibts auch Keys?" oder "stimmen die NS Records in den Zones?" oder "Sind die SOA Records korrekt?".
pasted-from-clipboard.png