DNS Catalog Zones: je slave configuratie vereenvoudigen

· 6 min

Als je meerdere DNS servers beheert, ken je het probleem: elke keer dat je een zone toevoegt aan je primary, moet je ook je secondaries bijwerken. Bij 10 zones is dat te doen. Bij 100+ wordt het een operationeel risico.

Catalog Zones lossen dit op. In plaats van elke zone apart te configureren op je slaves, onderhoud je één speciale zone (de catalog) en je secondaries pikken de rest automatisch op.

Hoe het werkt

Een Catalog Zone is een reguliere DNS zone die verwijzingen bevat naar andere zones. De secondary DNS server leest de catalog via een gewone zone transfer (AXFR/IXFR) en configureert automatisch alle zones die erin staan.

De structuur van een catalog zone ziet er zo uit:

; Catalog Zone voor secondary DNS
catalog.example.nl.  SOA   ns1.example.nl. admin.example.nl. (
                     2024123101 3600 900 604800 86400 )
catalog.example.nl.  NS    invalid.

; Versie van het catalog zone formaat
version.catalog.example.nl.  TXT  "2"

; Zones die de secondary moet serveren
example.nl.zones.catalog.example.nl.       PTR  example.nl.
klant-a.nl.zones.catalog.example.nl.       PTR  klant-a.nl.
klant-b.nl.zones.catalog.example.nl.       PTR  klant-b.nl.

Wanneer je een zone toevoegt aan de catalog, detecteert de secondary dit via de volgende zone transfer en begint automatisch die zone te serveren. Geen handmatige configuratie nodig.

PowerDNS als primary

In PowerDNS configureer je de catalog zone in pdns.conf:

catalog-zones=catalog.example.nl

Elke zone die je toevoegt aan PowerDNS kan dan automatisch in de catalog worden opgenomen. De secondary krijgt een notificatie via NOTIFY, doet een zone transfer, en is up-to-date.

Knot DNS als secondary

Knot heeft native support voor catalog zones als consumer. In knot.conf:

zone:
  - domain: catalog.example.nl
    master: 10.0.0.1
    catalog-role: interpret
    catalog-template: default-slave

Knot leest de catalog zone, en maakt automatisch slave zones aan voor elke entry.

Waarom dit nuttig is

  • Minder configuratie. Geen handmatig bijwerken van slave configs bij elke nieuwe zone.
  • Minder fouten. Zone vergeten toe te voegen op een secondary is verleden tijd.
  • Schaalbaarheid. Werkt even goed met 10 als met 1000 zones.
  • Standaard. Gedefinieerd in RFC 9432, ondersteund door PowerDNS, Knot en BIND 9.11+.

Productie-ervaring

Ik gebruik deze setup in mijn eigen DNS infrastructuur: PowerDNS als authoritative primary, Knot als secondary, met catalog zones voor automatische synchronisatie. Het elimineert een hele categorie van operationele fouten en maakt het toevoegen van nieuwe zones triviaal.

Het volledige artikel met meer configuratiedetails staat op mijn persoonlijke blog. Hulp nodig met je DNS architectuur? Ik help met PowerDNS, Knot, DNSSEC en complexe multi-server setups via Bouwhuis IT.

Lees het volledige artikel op mijn persoonlijke blog →

Hulp nodig met dit onderwerp?

Via Bouwhuis IT help ik bedrijven met precies dit soort vraagstukken.