NXDOMAIN- en SERVFAIL-fouten oplossen

NXDOMAIN en SERVFAIL zijn de twee DNS-fouten die je het vaakst tegenkomt. In de browser lijken ze op elkaar — de site laadt gewoon niet — maar ze hebben verschillende oorzaken en oplossingen.

Wat de fouten werkelijk betekenen

NXDOMAIN — NXDOMAIN (Non-Existent Domain) is een autoritatief antwoord: de naamserver die verantwoordelijk is voor de zone meldt dat de naam niet bestaat. De lookup werkte — er is simpelweg geen zo'n record.

SERVFAIL — SERVFAIL is iets anders: de resolver kon de lookup helemaal niet afronden. Ergens tussen je resolver en de autoritatieve naamservers is iets kapot — onbereikbare servers, een lamme delegatie of een mislukte DNSSEC-validatie.

$ dig missing.example.com
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 21744

$ dig broken-dnssec.example.net
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 31921

Veelvoorkomende oorzaken van NXDOMAIN

  • een typefout in het domein of de hostnaam (www versus zonder www, ontbrekend subdomeinrecord)
  • het record is nooit aangemaakt — bijvoorbeeld een ontbrekende CNAME voor een subdomein
  • het domein is verlopen en uit de TLD-zone verwijderd
  • de wijziging is nog niet gepropageerd en er staat een oud negatief antwoord in de cache

Veelvoorkomende oorzaken van SERVFAIL

  • alle autoritatieve naamservers liggen eruit of zijn onbereikbaar
  • lamme delegatie — de NS-records wijzen naar servers die de zone niet hosten
  • mislukte DNSSEC-validatie — verlopen of niet-overeenkomende handtekeningen (heel gebruikelijk na een migratie)
  • de zone is naar een nieuwe provider verhuisd, maar bij de registrar staan nog de oude NS-records

Diagnose in drie stappen

1. Kijk wat de autoritatieve servers zeggen

Doe een lookup met de resolver op "Authoritative NS". Als het autoritatieve antwoord klopt maar publieke resolvers afwijken, gaat het om caching of propagatie, niet om een kapotte zone. → DNS Lookup

2. Vergelijk resolvers wereldwijd

Een propagatiecontrole over 18 resolvers laat meteen zien of het probleem wereldwijd is (zone kapot) of gedeeltelijk (caches die nog verlopen). → DNS Propagation

3. Controleer de delegatieketen en DNSSEC

DNS Trace loopt van de rootservers via het TLD naar je zone en laat zien waar de keten breekt. Is je domein ondertekend, dan vindt een DNSSEC-controle verlopen of ontbrekende handtekeningen — de klassieke stille oorzaak van SERVFAIL. → DNS Trace · → DNSSEC Check

Gebruikelijke oplossingen

  • Verlopen domein → verleng het bij de registrar; reken op 24-48 uur voordat de TLD-zone is bijgewerkt
  • Ontbrekend record → voeg het toe bij je DNS-provider en houd de TTL op 300-3600 s
  • Lamme delegatie → laat de NS-records bij de registrar overeenkomen met de servers die de zone daadwerkelijk hosten
  • DNSSEC-fout → onderteken de zone opnieuw of werk het DS-record bij de registrar bij; ben je van provider gewisseld, verwijder dan eerst de verouderde DS
  • Verouderde negatieve cache → wacht de minimale SOA-TTL af, of bevraag een andere resolver om te bevestigen dat de oplossing actief is
Probeer het op je domein

Zie de theorie in de praktijk — voer DNS-dokter uit voor je eigen domein.