DNS Önbelleği

Protokoller ve Standartlar
Tekrarlanan aramaları hızlandırmak için DNS çözümleyicileri veya istemcileri tarafından tutulan geçici sorgu sonucu depolaması.
← Sözlüğe Dön

DNS önbelleği nedir?

DNS önbelleğe alma, DNS sorgu sonuçlarının çözümleyiciler, işletim sistemleri, tarayıcılar ve uygulamalar tarafından geçici olarak saklanmasıdır. Bir DNS araması yapıldığında sonuç, kaydın TTL (Time To Live) değeriyle belirlenen süre boyunca önbelleğe alınır. Böylece aynı alan adı için sonraki istekler yetkili sunuculara yeniden sorulmadan anında yanıtlanabilir.

DNS önbelleğe alma neden önemlidir?

Önbelleğe alma olmasaydı her web isteği tam bir DNS araması gerektirir, bu da gecikme ve yüksek DNS trafiği oluştururdu. DNS önbelleği şunları sağlar:

DNS önbelleğe alma nasıl çalışır?

Önbellekleme hiyerarşisi

DNS önbelleğe alma birden çok düzeyde gerçekleşir:

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)

Önbellek arama süreci

1. Kullanıcı ister example.com

2. Tarayıcı kontrol eder kendi önbelleğini

3. Yoksa işletim sistemi kontrol eder kendi önbelleğini

4. Yoksa çözümleyici kontrol eder kendi önbelleğini

5. Yoksa özyinelemeli sorgu yapılır yetkili sunuculara

6. Sonuç önbelleğe alınır TTL'ye göre her düzeyde

7. Yanıt kullanıcıya döndürülür

TTL tabanlı süre dolumu

Her DNS kaydı bir TTL değeri içerir:

example.com.    300    IN    A    203.0.113.50

^^^

TTL in seconds (5 minutes)

Önbellek bu kaydı 300 saniye tutar ve ardından siler. Sonraki sorgu yeni bir arama başlatır.

DNS önbellek katmanları

Tarayıcı önbelleği

Modern tarayıcılar DNS sonuçlarını bağımsız olarak önbelleğe alır:

Chrome: Kendi DNS önbelleğini kullanır (chrome://net-internals/#dns) Firefox: Dahili önbellek tutar (about:networking#dns) Safari: Sistem çözümleyicisini kullanır

Tipik tarayıcı önbelleği TTL'si: DNS TTL'sinden bağımsız olarak 60 saniye.

İşletim sistemi önbelleği

Windows: DNS Client hizmeti sonuçları önbelleğe alır
# View cache

ipconfig /displaydns

# Flush cache

ipconfig /flushdns

macOS: Önbellekleme mDNSResponder tarafından yapılır
# Flush cache (macOS 10.15+)

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Linux: Sisteme göre değişir, çoğunlukla systemd-resolved kullanılır
# Flush systemd-resolved cache

sudo systemd-resolve --flush-caches

# Check statistics

sudo systemd-resolve --statistics

Çözümleyici önbelleği

Özyinelemeli DNS çözümleyicileri (ISP DNS'i, 8.8.8.8 ve 1.1.1.1 gibi) milyonlarca kullanıcıya hizmet veren büyük önbellekler tutar:

ÇözümleyiciÖnbellek stratejisi
Google (8.8.8.8)TTL'ye uyar, küresel önbellek
Cloudflare (1.1.1.1)TTL'ye uyar, dağıtık
ISP çözümleyicileriDüşük TTL'leri yok sayabilir

Önbellek davranışı örnekleri

Normal çalışma

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 kaydı güncellemesi

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 stratejisi ve önbellekleme

TTL değerlerini seçme

Kullanım alanıÖnerilen TTLGerekçe
Statik altyapı3600-86400s (1-24 saat)Nadiren değişir, DNS yükünü azaltır
Üretim web sitesi300-1800s (5-30 dakika)Performans ile esnekliği dengeler
Etkin geçiş60-300s (1-5 dakika)Değişiklikler sırasında daha hızlı güncelleme
Yük dengeleme60-120sSunucular değiştiğinde hızlı devreye alma

Geçiş öncesi TTL azaltma

DNS değişiklikleri planlanırken iyi uygulama:

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

Önbellek zehirleme ve güvenlik

DNS önbellek zehirleme saldırısı

Saldırganlar önbelleklere sahte DNS kayıtları enjekte etmeye çalışır:

1. Saldırgan çözümleyiciyi sahte yanıtlarla doldurur

2. Yanıtlardan biri bekleyen sorguyla eşleşirse önbelleğe alınır

3. Kullanıcılar meşru alan adı için kötü amaçlı IP alır

4. Zehirlenmiş önbellek birçok kullanıcıya sunulur

Güvenlik azaltımları

DNSSEC: Kriptografik olarak imzalanan kayıtlar zehirlemeyi önler
example.com.    IN    A      203.0.113.50

IN RRSIG A 8 2 300 ...

Kaynak portu rastgeleleştirme: Yanıtların sahteciliğini zorlaştırır 0x20 kodlaması: Sorgulardaki rastgele harf durumu doğrulamaya yardımcı olur Çözümleyici güvenliği: Güvenilir çözümleyiciler kullanın (Cloudflare, Google, Quad9)

DNS önbelleğini kontrol etme

Önbellek içeriğini görüntüleme

Windows:
ipconfig /displaydns | more
macOS (sınırlı bilgi):
sudo killall -INFO mDNSResponder

# Check Console.app for logs

Linux (systemd-resolved):
sudo systemd-resolve --statistics

Önbellek davranışını test etme

# First query (cache miss)

time dig example.com

# Immediate repeat (cache hit)

time dig example.com

# Compare times

Önbellekle ilgili sorunlar

DNS değişikliğinden sonra eski önbellek

Sorun: Güncellenen DNS kayıtları kullanıcılara yansımıyor Çözüm:

1. TTL'nin dolmasını bekleyin

2. Gelecekteki değişikliklerden önce TTL'yi azaltın

3. Kullanıcılardan yerel önbelleklerini temizlemelerini isteyin

Aşırı agresif önbellekleme

Bazı ISP'ler TTL'yi yok sayar ve daha uzun önbelleğe alır:

Sorun: Değişikliklerin yayılması saatler veya günler sürer Çözüm:

Negatif önbellekleme

Başarısız aramalar (NXDOMAIN) da önbelleğe alınır:

Query: newsubdomain.example.com

Response: NXDOMAIN (does not exist)

Cached: 3600s (SOA minimum TTL)

Result: New subdomain won't resolve for 1 hour

Çözüm: Yeni kayıt eklemeden önce SOA minimum TTL değerini düşürün

DNS önbelleğini temizleme

Ne zaman temizlenmeli?

Nasıl temizlenir?

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

En iyi uygulamalar

1. Uygun TTL'ler belirleyin: Performans ile değişiklik hızını dengeleyin

2. Değişikliklerden önce TTL'yi azaltın: DNS güncellemelerinden 24-48 saat önce düşürün

3. Yayılımı izleyin: Küresel DNS çözümlemesini kontrol eden araçlar kullanın

4. Önbellek davranışını belgeleyin: Altyapınızın önbellekleme katmanlarını anlayın

5. DNSSEC kullanın: Önbellek zehirlenmesine karşı korunun

6. Kapsamlı test yapın: Başarı ilan etmeden önce DNS değişikliklerinin beklenen şekilde çalıştığını doğrulayın

7. Kullanıcıları bilgilendirin: Gerektiğinde önbellek temizleme talimatlarını açıkça sağlayın

İleri önbellekleme kavramları

Önceden getirme

Tarayıcılar ve çözümleyiciler bir sayfadaki bağlantılar için DNS'i önceden sorgulayabilir:

<!-- Hint to browser -->

<link rel="dns-prefetch" href="//cdn.example.com">

Önbellek ısıtma

Yük dengeleyiciler ve CDN'ler kritik kayıtların önbelleklerini önceden doldurabilir.

Anycast ve önbellekleme

Anycast DNS, sorguları en yakın sunucuya yönlendirir ve en iyi performans için coğrafi olarak dağıtılmış önbellekler oluşturur.

DNS önbelleğe alma, internet performansının temelidir. TTL'leri doğru anlamak ve yapılandırmak, hızlı çözümleme sürelerini korurken DNS değişikliklerinin verimli biçimde yayılmasını sağlar.

Bu Bilgiyi Uygulamaya Koyun

Alan adı uygunluğunu, durumunu ve daha fazlasını kontrol etmek için DomScan API'sini kullanın.