SOA: het identiteitsbewijs van de DNS-zone
Het SOA-record (Start of Authority) is het eerste en belangrijkste record van elke DNS-zone. Het bevat de fundamentele metadata die de werking van de zone bepalen: wie de primaire nameserver is, wie de beheerder is, het serienummer dat wijzigingen bijhoudt, en de parameters die de synchronisatie tussen primaire en secundaire nameservers regelen. Elke DNS-zone moet precies één SOA-record hebben — het is verplicht volgens de RFC-specificaties.
Hoewel het vaak over het hoofd wordt gezien door beheerders die zich richten op A-, MX- en CNAME-records, heeft het SOA-record een directe impact op de snelheid waarmee DNS-wijzigingen worden gepropageerd en op de veerkracht van het systeem. Verkeerd geconfigureerde SOA-parameters kunnen vertragingen in de propagatie veroorzaken, verouderde DNS-zones op secundaire nameservers, en in extreme gevallen het verlies van autoriteit door secundaire nameservers.
Anatomie van het SOA-record
Het serienummer is een teller die bij elke wijziging aan de zone wordt verhoogd. Secundaire nameservers vergelijken het serienummer van de primaire met dat van henzelf: als dat van de primaire hoger is, downloaden ze de nieuwe versie van de zone (zonetransfer). De meest gebruikte conventie is het formaat JJJJMMDDNN (datum + volgnummer), maar elk oplopend geheel getal werkt. Als je vergeet het serienummer na een wijziging te verhogen, worden de secundaire servers niet bijgewerkt.
Refresh geeft aan hoe vaak (in seconden) de secundaire nameserver controleert of het serienummer van de primaire is gewijzigd. Retry is het interval tussen pogingen als de refresh mislukt. Expire is de maximale tijd waarna, als de primaire onbereikbaar is, de secundaire stopt met antwoorden voor de zone (deze wordt als verouderd beschouwd). Het veld Minimum TTL (of Negative Cache TTL) geeft aan hoe lang resolvers negatieve antwoorden (NXDOMAIN — niet-bestaand domein) in de cache bewaren.
Aanbevolen SOA-waarden
De optimale waarden hangen af van de context. Voor zones met frequente wijzigingen: Refresh 300-900s, Retry 60-300s. Voor stabiele zones: Refresh 3600-7200s, Retry 900s. Expire moet altijd veel hoger zijn dan Refresh (7-14 dagen) om te garanderen dat secundaire servers de zone blijven aanbieden tijdens langdurige uitval van de primaire. Een Negative Cache TTL van 3600s is een goede standaardwaarde — te hoog en verwijderde subdomeinen blijven te lang als "spookdomein" bestaan.
Gebruik SOA Lookup om de parameters van je zone te controleren en te vergelijken met best practices. Combineer de controle met NS Lookup om te verifiëren dat de nameservers vermeld in het SOA overeenkomen met de daadwerkelijk gedelegeerde, en met DNS Health Check voor een volledige consistentiecontrole van de zone. Het SOA is zelden de directe oorzaak van voor gebruikers zichtbare problemen, maar verkeerde parameters kunnen de impact van andere problemen versterken.
Een detail dat vaak verwarring veroorzaakt is het e-mailformaat van de beheerder in het SOA: admin.voorbeeld.nl is geen URL maar een e-mailadres waarbij de eerste punt de @ vervangt. Dus admin.voorbeeld.nl komt overeen met admin@voorbeeld.nl. Als het adres een punt vóór de @ bevat, wordt deze ge-escaped met een backslash: jan\.jansen.voorbeeld.nl komt overeen met jan.jansen@voorbeeld.nl. Dit legacy-formaat is een van de eigenaardigheden van DNS die uit de jaren 80 stammen.