# önder online
Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri Yapay zekâ ve otomasyonun güvenliğe etkileri Microsoft 365 ve Active Directory güvenlik rehberleri Yazılım geliştirmede güvenlik odaklı yaklaşımlar Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri

Menu

DNS Önbellek Davranışlarının Anatomisi: Get-DnsServerCache ile Derin Analiz

DNS Önbellek Davranışlarının Anatomisi: Get-DnsServerCache ile Derin Analiz

DNS'in Yaşam Damarı ve Önbellek Mekanizması DNS önbelleği, ağınızın görünmez hızlandırıcısıdır. Tekrarlanan sorguları kısa süreli bellekte tutarak gecikmeyi azaltır, trafiği ...

DNS'in Yaşam Damarı ve Önbellek Mekanizması

DNS önbelleği, ağınızın görünmez hızlandırıcısıdır. Tekrarlanan sorguları kısa süreli bellekte tutarak gecikmeyi azaltır, trafiği hafifletir ve güvenlikte doğal bir tampon oluşturur. Windows DNS tarafında bu nabzı ölçmenin en pratik yolu: Get-DnsServerCache. Aşağıda, önbelleğin nasıl çalıştığını, hangi katmanlardan oluştuğunu, ölçümleri nasıl yorumlayacağınızı ve performans ile güvenliği birlikte optimize etmenin yol haritasını bulacaksınız.

# Temel önbellek istatistiklerini görüntüleme
Get-DnsServerCache -ComputerName DNSServer01 | Format-List *

DNS önbelleği, modern ağ iletişiminin sessiz kahramanıdır. Tıpkı insan beyninin sık kullanılan bilgileri kısa süreli hafızada tutması gibi, DNS sunucuları da tekrarlanan sorgular için geçici depolama alanı oluşturur. Bu mekanizma:

- Sorgu çözümleme süresini [RTT x N] formülünden [RTT + Cache] formülüne indirger
- Ağ trafiğini %40-70 oranında azaltır
- DDoS saldırılarına karşı doğal bir tampon görevi görür

Get-DnsServerCache: Windows DNS'in Stetoskobu

Düşük TTL’li kayıtlar:

Get-DnsServerCache | Where-Object {$.TimeToLive -lt 3600} | Sort-Object TimeToLive | Format-Table HostName, @{Label="TTL(Min)";Expression={$.TimeToLive/60}}, RecordType

Bu PowerShell cmdlet'i ile önbelleğin nabzını tutabiliriz:

# TTL süresi 1 saatten az olan kayıtları filtreleme
Get-DnsServerCache | Where-Object {$_.TimeToLive -lt 3600} | 
Sort-Object -Property TimeToLive | 
Format-Table HostName, @{Label="TTL(Min)";Expression={$_.TimeToLive/60}}, RecordType

 

Önbellek Katmanları ve Yaşam Döngüsü

Önce resmin tamamını netleştirelim: DNS önbellek, farklı katmanların TTL (Time To Live) değerleri ve yenilenme mekanizmalarıyla bir ekosistem gibi çalışır.

Katmanlar ve Yaşam Döngüsü

  • Root Hint
    • TTL: 7–14 gün
    • Yenilenme: Registry tabanlı kayıtlar
  • TLD (Top-Level Domain)
    • TTL: 48–72 saat
    • Yenilenme: Zone transfer süreçleri
  • Authoritative (Yetkili sunucu)
    • TTL: 1–24 saat
    • Yenilenme: SOA kayıtları üzerinden
  • Domain (Uygulama/servis sorguları)
    • TTL: 5–300 saniye
    • Yenilenme: Recursive query
  • Negatif Önbellek (NXDOMAIN/NODATA)
    • “Bulunamadı” yanıtlarının belli bir süre saklanması

Bu katmanlı yapı, sorgu maliyetini “RTT x N” düzeyinden “RTT + Cache” düzeyine indirerek ciddi verim kazandırır ve trafiği %40–70 azaltabilir.
DNS önbelleği katmanlı bir mimariyle çalışır:

 

Her katmanın TTL değerleri:

Katman TTL Aralığı Yenilenme Mekanizması
Root Hint 7-14 gün Registry kayıtları
TLD 48-72 saat Zone transfer
Authoritative 1-24 saat SOA kayıtları
Domain 5-300 sn Recursive query

 

Negatif Önbellekleme: Bilinmeyenin Anatomisi


Negatif önbellek, "bulunamayan" cevapların depolanmasıdır. Kritik parametreler:

NegativeCacheTime**: Varsayılan 300 sn (RFC 2308)
SecureResponseExpiration**: 15 dakika
MaxNegativeCacheTtl**: 86400 sn (24 saat)

 

# Negatif önbellek optimizasyonu
Set-DnsServerNegativeAnswerCache -Enable $true -MaximumCacheTtl 7200

Performans Analizi: Önbellek Matematiği


Önbellek performansını etkileyen faktörler:

# Canlı önbellek izleme
while($true) {
  $cache = Get-DnsServerCache -ComputerName DNSServer01
  $hitRate = ($cache.HitCount / ($cache.HitCount + $cache.MissCount)).ToString("P")
  Write-Host "$(Get-Date -Format 'HH:mm:ss') - Hit Rate: $hitRate"
  Start-Sleep -Seconds 5
}

 

Güvenlik Senaryoları: Önbellek Zehirlenmesine Karşı


Savunma mekanizmaları:

1. **Randomize Source Port**: 1024-65535 arası rastgele port
2. **DNSSEC Validation**: RSA-2048 imza doğrulama
3. **Cache Locking**: %75 TTL kilitleme
4. **Response Rate Limiting**: 5 sorgu/saniye

 

# Güvenlik optimizasyon komutları
Set-DnsServerCache -LockingPercent 75 -MaxKBSize 1024
Set-DnsServerResponseRateLimiting -Enable $true -ErrorsPerSecond 5

İleri Seviye Analiz Teknikleri


Wireshark ile önbellek davranışı inceleme:

tcpdump
dns.flags.resp 0 && dns.qry.type == 1  # IPv4 sorguları
dns.flags.rcode == 0                          # Başarılı yanıtlar
dns.time >= 0.5                               Yavaş sorgular



Bulut Entegrasyonu: Azure DNS Özel Davranışlar


Bulut ortamında dikkat edilmesi gerekenler:

- TTL override özelliği (min 1 sn)
- Global anycast önbellek
- Otomatik cache flushing mekanizması

Öneriler 

Aşağıdaki maddeler, sahada hızlı etki yaratan uygulamalı adımları özetler.

  • Envanter ve sınıflandırma
    • Servisleri “statik”, “yarı dinamik”, “dinamik” olarak ayırın; TTL stratejisini buna göre belirleyin.
  • Hit/Miss tabanlı tuning
    • Haftalık ortalamalarla % hedefleri koyun; kritik servislerde cache hit’in düşük olduğu saat aralıklarını yakalayın.
  • Güvenlik katmanları birlikte
    • Cache locking + RRL + DNSSEC bir arada kullanıldığında zehirleme ve fırtına trafiği baskılanır.
  • Negatif cache bilinçli yönetim
    • Geliştirme/CI/CD yoğun ortamlarda negatif TTL’i kısaltın; prod’da aşırı kısaltmayın.
  • Gözlem döngüsü kurun
    • PowerShell izleme betiği + paket analizi + event log korelasyonu ile haftalık rapor üretin.

Aşağıdaki tablo, karar verirken özet bakış sağlar.

  • Genel durum: Get-DnsServerCache -ComputerName DNSServer01 | Format-List *
  • Düşük TTL analizi: Where-Object {$_.TimeToLive -lt 3600}
  • Güvenlik: Set-DnsServerCache -LockingPercent 75 -MaxKBSize 1024
  • RRL: Set-DnsServerResponseRateLimiting -Enable $true -ErrorsPerSecond 5
  • Negatif cache: Set-DnsServerNegativeAnswerCache -Enable $true -MaximumCacheTtl 7200


Etkili DNS önbellek yönetimi, performans ile veri tazeliği arasındaki ince dengeyi kurma sanatıdır. Get-DnsServerCache, bu dengeyi ölçmek ve yönlendirmek için güçlü bir stetoskop görevi görür. Katmanları ve TTL’leri bilinçli tasarladığınızda, hit oranı yükselir, ağ trafiği hafifler ve güvenlik duruşu güçlenir. Bu çerçeveyi bir izleme döngüsüyle destekleyerek, ağ iletişiminizin ritmini düzenli ve öngörülebilir biçimde korursunuz.

Ref.: https://medium.com/@tugrulkilic/dns-cache-davran%C4%B1%C5%9Flar%C4%B1n%C4%B1n-anatomisi-get-dnsservercache-derinlemesine-analiz-446519247288