Wat is DNS Cache?
DNS caching is de tijdelijke opslag van DNS query resultaten door resolvers, besturingssystemen, browsers en toepassingen. Wanneer een DNS-zoekopdracht wordt uitgevoerd, wordt het resultaat gecached voor een periode die wordt gedefinieerd door de TTL (Time To Live), waardoor latere verzoeken voor hetzelfde domein direct kunnen worden beantwoord zonder op zoek te gaan naar gezaghebbende servers.
Waarom DNS Caching Matters
Zonder caching, elk web verzoek zou vereisen een volledige DNS lookup het toevoegen van latency en het genereren van enorme DNS verkeer. DNS-caching biedt:
- Faster Response Times: Cached antwoorden terug in microseconden vs milliseconden voor volledige opzoekingen
- Reduced Network Traffic: Minder vragen naar gezaghebbende servers
- Verbeterde veerkracht: Lokale cache biedt antwoorden, zelfs als DNS-servers tijdelijk onbereikbaar zijn
- Lower Server Load: Auteursservers behandelen minder vragen
Hoe DNS Caching werkt
De Caching Hiërarchie
DNS-caching gebeurt op meerdere niveaus:
Browser Cache (seconds to minutes)
↓
OS Cache (seconds to minutes)
↓
Local Resolver Cache (minutes to hours)
↓
ISP Resolver Cache (minutes to hours)
↓
Authoritative Name Server (source of truth)
Cache opzoeken proces
1. Gebruikersverzoeken example.com
2. Browser controleert zijn cache
3. Als miss, OS controleert zijn cache
4. Als het niet lukt, controleert resolver zijn cache
5. Indien ontbreken, recursieve query naar gezaghebbende servers
6. Result cached op elk niveau gebaseerd op TTL
7. **Respons gaf * terug aan gebruiker
Geldigheidsduur op basis van TTL
Elke DNS-record bevat een TTL-waarde:
example.com. 300 IN A 203.0.113.50
^^^
TTL in seconds (5 minutes)
Caches bewaren dit record voor 300 seconden en gooien het dan weg. De volgende zoekopdracht leidt tot een nieuwe opzoeking.
DNS-cache lagen
Browsercache
Moderne browsers cache DNS resultaten onafhankelijk:
Chrome: gebruikt zijn eigen DNS cache (chrome://net-internals/#dns) Firefox: Behoudt interne cache (over:networking#dns) Safari: gebruikt systeemregelaarTypische browser cache TTL: 60 seconden (ongeacht DNS TTL)
Operating System Cache
Windows: DNS Client service caches resultaten# View cache
ipconfig /displaydns
# Flush cache
ipconfig /flushdns
macOS: mDNSResponder behandelt caching
# Flush cache (macOS 10.15+)
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux: Varieert per systeem, vaak systeemopgelost
# Flush systemd-resolved cache
sudo systemd-resolve --flush-caches
# Check statistics
sudo systemd-resolve --statistics
Resolver Cache
Recursieve DNS resolvers (ISP DNS, 8.8.8.8, 1.1.1.1) onderhouden grote caches voor miljoenen gebruikers:
| Oplosser | Cache-strategie |
|---|---|
| Google (8.8.8.8) | Respecteert TTL, globale cache |
| Cloudflare (1.1.1.1) | Respecteert TTL, gedistribueerd |
| ISP-oplossers | Kan lage TTL's negeren |
Cache Gedrag Voorbeelden
Normale bewerking
Query 1: example.com
→ Full lookup: 50ms
→ Cached for 300s (TTL)
Query 2: example.com (1 minute later)
→ Cache hit: 1ms
Query 3: example.com (10 minutes later)
→ Cache expired, full lookup: 50ms
→ Re-cached for 300s
DNS Record Update
Original: example.com → 203.0.113.50 (TTL: 300s)
Time: 10:00 - DNS updated to 203.0.113.51
Client queries at 10:02
→ Still cached: 203.0.113.50 (expires 10:05)
Client queries at 10:06
→ Cache expired, new lookup: 203.0.113.51
→ Cached until 10:11
TTL Strategie en Caching
TTL-waarden kiezen
| Geval gebruiken | Aanbevolen TTL | Motivering |
|---|---|---|
| Statische infrastructuur | 3600-86400s (1-24 uur) | Zelden veranderingen, verminderen DNS-belasting |
| Productiewebsite | 300-1800s (5-30 minuten) | Balansprestaties en flexibiliteit |
| Actieve migratie | 60-300 (1-5 minuten) | Snellere voortplanting tijdens veranderingen |
| Laadbalancering | 60-120s | Snelle failover wanneer servers veranderen |
TTL-reductie vóór migratie
Beste praktijk bij het plannen van DNS veranderingen:
Day -7: example.com TTL 3600s (1 hour)
Day -2: Reduce to 300s (5 minutes)
Day 0: Make DNS change
→ Max 5 minute cache retention
Day +1: Restore TTL to 3600s
Cache Vergiftiging en Veiligheid
DNS Cache Vergiftiging Aanval
Aanvallers proberen valse DNS records in caches te injecteren:
1. Aanvaller overstroming oplosser met valse reacties
2. Als er één overeenkomt met een lopende zoekopdracht, is het gecached
3. Gebruikers ontvangen kwaadaardig IP voor legitieme domein
4. Vergiftigd gif geserveerd aan veel gebruikers
Beveiligingsminima
DNSSEC: Cryptografisch getekende dossiers voorkomen vergiftigingexample.com. IN A 203.0.113.50
IN RRSIG A 8 2 300 ...
Source Port Randomization: Maakt reacties moeilijker te smeden
0x20 Codering: Willekeurig geval in query's steunvalidatie
Resolver Security: Gebruik gerenommeerde resolvers (Cloudflare, Google, Quad9)
DNS-cache wordt gecontroleerd
Cache-inhoud weergeven
Windows:ipconfig /displaydns | more
macOS (beperkte informatie):
sudo killall -INFO mDNSResponder
# Check Console.app for logs
Linux (systemd-resolved):
sudo systemd-resolve --statistics
Test cachegedrag
# First query (cache miss)
time dig example.com
# Immediate repeat (cache hit)
time dig example.com
# Compare times
Cachegerelateerde kwesties
Stamcache na DNS-wijziging
Probleem: Bijgewerkte DNS-records die niet reflecteren voor gebruikers Oplossing:1. Wacht tot TTL verloopt
2. Verminder TTL vóór toekomstige veranderingen
3. Vraag gebruikers om lokale cache door te spoelen
Overmatige Agressieve Caching
Sommige ISP's negeren TTL en cache langer:
Probleem: Veranderingen duren uren/dagen om zich voort te planten Oplossing:- Gebruik lagere TTL's (ISP's respecteren meestal minimaal 300s)
- Overweeg anycast DNS voor kritieke diensten
- Document bekende problematische ISP's
Negatieve Caching
Foute opzoekingen (NXDOMAIN) worden ook gecached:
Query: newsubdomain.example.com
Response: NXDOMAIN (does not exist)
Cached: 3600s (SOA minimum TTL)
Result: New subdomain won't resolve for 1 hour
Oplossing: SOA minimum TTL verlagen voordat nieuwe records worden toegevoegd
Flushing DNS Cache
Wanneer moet ik doorspoelen?
- DNS-veranderingen onmiddellijk testen
- Problemen met het oplossen van oplossingen
- Na DNS provider migratie
- Verdachte cachevergiftiging
Hoe te spoelen
Windows:ipconfig /flushdns
macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux (systemd-resolved):
sudo systemd-resolve --flush-caches
Chrome:
Navigate to: chrome://net-internals/#dns
Click: "Clear host cache"
Firefox:
Toggle network.dnsCacheExpiration in about:config
Or restart browser
Beste praktijken
1. Set passende TTLs: Balansprestaties en veranderingssnelheid
2. Verminder TTL vóór veranderingen: Lagere TTL 24-48 uur voor DNS-updates
3. Monitor propagation: Gebruik hulpmiddelen om de globale DNS-resolutie te controleren
4. Document cache gedrag: Begrijp de cachinglagen van uw infrastructuur
5. Gebruik DNSSEC: Beschermen tegen cachevergiftiging
6. Test grondig: Controleren of DNS-wijzigingen werken zoals verwacht voordat succes wordt verklaard
7. Onderwijsgebruikers: Geef duidelijke instructies voor het spoelen van de cache indien nodig
Geavanceerde Caching Concepten
Voorafhalen
Browsers en resolvers kunnen DNS prefetch voor links op een pagina:
<!-- Hint to browser -->
<link rel="dns-prefetch" href="//cdn.example.com">
Cache Opwarming
Load balancers en CDNs kunnen pre-populate caches voor kritische records.
Anycast en Caching
Anycast DNS routes vragen naar de dichtstbijzijnde server, het creëren van geografisch gedistribueerde caches voor optimale prestaties.
DNS-caching is van fundamenteel belang voor internetprestaties en het begrijpen en correct configureren van TTL's zorgt ervoor dat uw DNS-wijzigingen zich efficiënt voortplanten terwijl u snelle resolutietijden behoudt.