Je DNS-wijziging is nog niet overal zichtbaar? Lees hoe TTL, resolver-caches en negatieve caching werken en hoe je met dig en nslookup controleert wat klopt.
Een wijziging in de DNS gaat niet ‘de wereld over’ zoals vaak wordt gezegd. Wat er echt gebeurt: jouw nieuwe record staat direct op de autoritatieve nameserver, de server die officieel de gegevens van je domein bijhoudt. Maar computers vragen die server niet elke keer zelf. Ze vragen het aan een resolver, de DNS-server van je provider, je router of een publieke dienst zoals 1.1.1.1 of 8.8.8.8. Die resolver bewaart elk antwoord een tijd in zijn cache. Hoe lang, staat in de TTL (time to live) van het record, in seconden.
Had je A-record een TTL van 86400 (een dag), dan kan een resolver die het oude adres net had opgehaald, dat nog tot een dag blijven geven. Pas daarna vraagt hij opnieuw en krijgt hij het nieuwe antwoord. Daarom ziet de ene bezoeker de nieuwe site al en de andere nog de oude. Een lagere TTL die je pas ná de wijziging instelt, helpt niet voor caches die het oude antwoord al hebben.
Twee situaties duren vaak langer. Bij negatieve caching onthoudt een resolver ook het antwoord ‘dit record bestaat niet’. Dat gebeurt als iemand een subdomein opvroeg vóórdat jij het aanmaakte; hoe lang dat blijft hangen, hangt af van het SOA-record van je zone (het laatste getal, de ‘minimum’-waarde, samen met de TTL van het SOA-record zelf). En bij een nameserverwissel moet ook het register van de extensie de nieuwe nameservers doorgeven, en die verwijzing heeft een eigen, vaak lange TTL. Als vuistregel: een recordwijziging is uiterlijk na de oude TTL overal door; bij nameserverwissels kan het soms 24 tot 48 uur duren.
nslookup tegen 1.1.1.1 geeft een ander antwoord dan tegen 8.8.8.8 of tegen je eigen provider.Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.
Vraag eerst op welke nameservers je domein gebruikt. Stel daarna je vraag rechtstreeks aan één van die servers, met @ ervoor. Dat antwoord komt niet uit een cache en laat zien wat er nu echt in je zone staat. Vervang in het voorbeeld ns1.voorbeeld-dns.nl door een nameserver uit het eerste antwoord. Klopt het antwoord hier niet, dan moet je de zone aanpassen; wachten helpt dan niet.
dig NS voorbeeld.nl +short
dig @ns1.voorbeeld-dns.nl voorbeeld.nl A
dig @ns1.voorbeeld-dns.nl www.voorbeeld.nl AVraag hetzelfde record op bij twee publieke resolvers. Komen die al met het nieuwe adres, dan is de wijziging voor het grootste deel van internet door. In de uitvoer van dig zie je in de tweede kolom de resterende TTL in seconden: zolang het oude antwoord in de cache staat, telt dat getal af tot nul, waarna het nieuwe antwoord komt. Op Windows gebruik je nslookup met de resolver als tweede argument.
dig @1.1.1.1 voorbeeld.nl A
dig @8.8.8.8 voorbeeld.nl A
# Windows
nslookup voorbeeld.nl 1.1.1.1
nslookup voorbeeld.nl 8.8.8.8Ook je computer en je browser onthouden antwoorden. Zie je zelf nog de oude site terwijl de publieke resolvers al het nieuwe adres geven, leeg dan de cache van je besturingssysteem. In Chrome ga je daarna naar chrome://net-internals/#dns en klik je op Clear host cache. Herstart eventueel ook je router, die vaak een eigen cache heeft.
Windows:
ipconfig /flushdns
Mac:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
Linux (systemd-resolved):
resolvectl flush-cachesEen oude regel in het hosts-bestand gaat vóór de DNS. Heb je ooit een nieuwe server getest door daar een IP-adres neer te zetten, dan blijft je computer dat adres gebruiken, wat de DNS ook zegt. Kijk in C:\Windows\System32\drivers\etc\hosts (Windows) of /etc/hosts (Mac en Linux) en verwijder regels met je domeinnaam.
Is de zone goed en geven sommige resolvers nog het oude antwoord, dan is het een kwestie van wachten tot de oude TTL is verstreken. Kijk in je DNS-beheer welke TTL het record vóór de wijziging had: dat is de maximale wachttijd voor een gewone recordwijziging. Ging het om een record dat eerst niet bestond, dan geldt de negatieve-cachetijd uit het SOA-record. Die zie je met de opdracht hieronder; het laatste getal is de minimum-waarde.
dig SOA voorbeeld.nl +shortNa het wijzigen van nameservers moet het register van de extensie (bij .nl bijvoorbeeld het register voor .nl-domeinen) naar de nieuwe servers verwijzen. Met dig +trace zie je stap voor stap welke nameservers het register teruggeeft en wat die antwoorden. Noemt het register nog de oude nameservers, dan is de wijziging bij je domeinbeheerder of registrar nog niet verwerkt. Meer hierover bij nameservers wijzigen.
dig +trace voorbeeld.nl A
whois voorbeeld.nlWeet je dat je een record gaat wijzigen, zet dan ruim van tevoren de TTL laag, bijvoorbeeld op 300 seconden, en wacht minstens de oude TTL af. Daarna gaat de echte wijziging snel door, en kun je ook snel terug als er iets misgaat. Een complete verhuisvolgorde staat bij website verhuizen naar een andere hosting.
Let op: Wijzig tijdens het wachten niet steeds opnieuw de records om ‘het te versnellen’. Elke wijziging maakt het beeld onduidelijker, en caches die al het nieuwe antwoord hadden, krijgen dan weer iets anders.
DNS werkt met trekken, niet met duwen: niemand stuurt jouw wijziging rond. Elke resolver haalt een antwoord op zodra iemand erom vraagt, en bewaart het tot de TTL op is. Daardoor is er geen vaste propagatietijd; het hangt af van wanneer welke resolver het laatst vroeg en welke TTL er toen gold.
Sommige providers bewaren antwoorden langer dan de TTL. Laat daarom de oude server niet meteen uitzetten.
Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.
Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.
Een gewone recordwijziging is uiterlijk na de oude TTL van dat record overal door. Bij een wissel van nameservers kan het soms 24 tot 48 uur duren.
Niet voor caches die het oude antwoord al hebben. Je kunt wel je eigen cache legen en bij een volgende wijziging vooraf de TTL verlagen.
Jullie gebruiken waarschijnlijk een andere resolver, of jouw computer heeft het oude antwoord nog in de cache of in het hosts-bestand. Leeg je cache en test met nslookup voorbeeld.nl 1.1.1.1.
Zo’n checker laat zien wat een aantal resolvers op dat moment in de cache heeft. Dat is nuttig als beeld, maar de autoritatieve nameserver vertelt je wat er echt in je zone staat.
Hulp nodig van een mens? Gratis Mail-DNS-check · Domeincheck · Hosting en onderhoud · Alle oplossingen