DNS (Domain Name System) çözümlemesi, modern bilgisayar ağlarının en kritik bileşenlerinden biridir. Her gün milyarlarca DNS sorgusu...
DNS (Domain Name System) çözümlemesi, modern bilgisayar ağlarının en kritik bileşenlerinden biridir. Her gün milyarlarca DNS sorgusu yapılırken, Windows istemcilerinin bu sorguları nasıl işlediği ve DNS sunucularını hangi sırayla kullandığı konusu hem sistem yöneticileri hem de ağ uzmanları için kritik öneme sahiptir. Bu yazıda, Windows DNS istemcisinin davranışını derinlemesine inceleyeceğiz.Windows DNS İstemci Davranışının Tarihsel Gelişimi
Windows XP - Windows 7 Dönemi: Basit Sıralı Yaklaşım
Windows'un önceki sürümlerinde DNS çözümleme oldukça basit bir mantığa sahipti. DNS İstemci Servisi (DNS Client Service), yapılandırılan DNS sunucularını belirli bir sırayla sorguluyordu. Temel Çalışma Prensibi:- İstemci, tercih edilen ağ adaptörünün DNS listesindeki ilk DNS sunucusuna sorgu gönderir
- 1 saniye içinde yanıt alamazsa, aynı adaptördeki ikinci DNS sunucusunu ve diğer aktif adaptörlerdeki ilk DNS sunucularını sorgular
- Bu süreç, yanıt alınana kadar artan zaman aralıklarıyla devam eder
Windows 10 ve Sonrası: Paralel DNS Sorguları
Windows 10 ile birlikte DNS çözümleme mekanizması köklü bir değişime uğradı. Microsoft, performansı artırmak için "Smart Multi-Homed Name Resolution" özelliğini tanıttı. Yeni Yaklaşım:- DNS sorguları paralel olarak gönderilir
- İlk yanıt veren sunucunun cevabı kabul edilir
- LLMNR (Link-Local Multicast Name Resolution) ve NetBIOS sorguları da paralel çalışır
DNS Sunucu Öncelik Belirleme Mekanizmaları
1. Interface Metric (Arayüz Metriği)
Windows 10 ve sonraki sürümlerde, DNS önceliği interface metric değeri ile belirlenir:- En düşük metric değeri = En yüksek öncelik
- Her ağ adaptörü için IPv4 ve IPv6 için ayrı metric değerleri bulunur
- DNS önceliği için bu iki değerden en düşük olanı dikkate alınır
Set-NetIPInterface -InterfaceAlias "Ethernet" -AddressFamily IPv4 -InterfaceMetric 10 Set-NetIPInterface -InterfaceAlias "Wi-Fi" -AddressFamily IPv4 -InterfaceMetric 20 2. DNS Sunucu Listesi İçindeki Sıralama
Aynı ağ adaptörü üzerinde birden fazla DNS sunucusu tanımlandığında: IPv6 Önceliği: Aynı adaptör içinde IPv6 DNS sunucuları IPv4'ten önce sorgulanır Sunucu Sıralaması: DNS sunucuları, TCP/IP özelliklerinde belirtilen sırayla sorgulanırTimeout ve Yedekleme Davranışı
Tek DNS Sunucusu Senaryosu
Yalnızca bir DNS sunucusu yapılandırıldığında:- İstemci aynı sunucuya 5 kez sorgu gönderir
- Her sorguda timeout süresi artar (1, 2, 4, 8, 16 saniye)
- NXDOMAIN yanıtı alırsa süreç durur
Birden Fazla DNS Sunucusu Senaryosu
Birden fazla DNS sunucusu yapılandırıldığında:- İlk 3 sunucu 1'er saniye aralıklarla sorgulanır
-
- ve sonraki sunucular en az 4 saniye gecikmeyle sorgulanır
- Önemli: NXDOMAIN yanıtı alındığında diğer sunucular denenmez
Multi-Homed Sistemlerde DNS Davranışı
Ağ Adaptörü Öncelikleri
Birden fazla aktif ağ adaptörü olan sistemlerde:- Interface Metric değeri en düşük olan adaptör önceliklidir
- Windows 10 öncesi sürümlerde NIC Binding Order belirleyiciydi
- VPN bağlantıları genellikle en düşük metric değerine sahiptir
Smart Name Resolution Problemi
Windows 10'daki akıllı isim çözümleme bazen beklenmedik sonuçlar doğurabilir: Sorunlar:- VPN DNS'i güvenilir şekilde kullanılmayabilir
- DNS sızıntıları (DNS leaks) oluşabilir
- Split-DNS yapılandırmaları düzgün çalışmayabilir
"DisableSmartNameResolution"=dword:00000001 "DisableParallelAandAAAA"=dword:00000001 Gerçek Hayat Senaryoları ve Sorun Giderme
Senaryo 1: Yavaş DNS Çözümleme
Problem: İnternet erişimi olan ikinci adaptörde DNS sorguları 10+ saniye sürüyor Çözüm:- Root hints'leri kaldırın (erişilemeyen kök sunucular için)
- Interface metric değerlerini optimize edin
- DNS forwarder'ları yapılandırın
Senaryo 2: VPN Split-DNS Sorunları
Problem: VPN bağlıyken iç domain sorguları başarısız oluyor Çözüm:- Smart Name Resolution'ı devre dışı bırakın
- VPN adaptörüne en düşük metric değerini verin
- Conditional forwarder'ları kullanın
Senaryo 3: Domain Controller DNS Yapılandırması
En İyi Pratikler:- DC'ler kendi IP adreslerini birinci DNS olarak kullanmalı
- İkinci DNS olarak başka bir DC'yi belirtmeli
- ISP DNS sunucularını asla kullanmamalı
İleri Seviye Optimizasyon Teknikleri
Registry Tabanlı Optimizasyonlar
DNS Timeout Değerlerini Özelleştirme: "DNSQueryTimeouts"=hex:01,00,00,00,02,00,00,00,04,00,00,00 Round Robin Devre Dışı Bırakma: "RoundRobin"=dword:00000000 Sunucu Öncelik Zaman Limiti: "ServerPriorityTimeLimit"=dword:00000000 PowerShell ile DNS Durumu İzleme
# DNS öncelik sırasını görüntüleme Get-DnsClientServerAddress | Sort-Object InterfaceIndex # DNS cache temizleme Clear-DnsClientCache # DNS performans testi Resolve-DnsName google.com -Server 8.8.8.8 -DnsOnly PowerShell ile DNS Cevap Süresi Testi
$dnsList = @("10.1.1.1", "10.1.2.1", "8.8.8.8", "1.1.1.1") $testDomain = "www.microsoft.com" foreach ($dns in $dnsList) { Write-Host "`nTesting DNS Server: $dns" $time = Measure-Command { try { Resolve-DnsName -Name $testDomain -Server $dns -ErrorAction Stop } catch { Write-Host "Failed to resolve using $dns" } } Write-Host "Time taken: $($time.TotalMilliseconds) ms" } Netsh ile Trafik İzleme
netsh trace start capture=yes scenario=netconnection tracefile=c:\temp\dns_trace.etl İlgili testleri yaptıktan sonra:
netsh trace stop Windows Sürümlerine Göre Farklılıklar
Windows Server Versions
- Server 2012 R2 ve öncesi: Geleneksel sıralı yaklaşım
- Server 2016+: Windows 10 benzeri paralel sorgu mekanizması
Client Versions
- Windows 7/8.1: NIC binding order tabanlı
- Windows 10/11: Interface metric tabanlı
- Windows 11: Ek güvenlik optimizasyonları
Güvenlik ve Performans Önerileri
Güvenlik Açısından
- DNS over HTTPS (DoH) kullanımını değerlendirin
- DNSSEC doğrulamasını etkinleştirin
- Güvenilmeyen ağlarda DNS sızıntılarına dikkat edin
Performans Açısından
- Yerel DNS cache boyutunu optimize edin
- Conditional forwarder'ları kullanın
- DNS sunucu yanıt sürelerini düzenli monitör edin
Sorun Giderme Araçları
Komut Satırı Araçları
# DNS konfigürasyonunu görüntüleme ipconfig /all # DNS cache'i temizleme ipconfig /flushdns # DNS kaydını yenileme ipconfig /registerdns # DNS sorgu testi nslookup google.com PowerShell Araçları
# Detaylı DNS sorgu Resolve-DnsName example.com -Type A -DnsOnly # DNS client ayarlarını görüntüleme Get-DnsClient # Interface metric'lerini listeleme Get-NetIPInterface | Select InterfaceAlias,InterfaceMetric,ConnectionState Windows DNS istemci davranışı, sistem versiyonuna bağlı olarak önemli farklılıklar göstermektedir. Windows 10 ve sonrasında getirilen paralel sorgu mekanizması performansı artırırken, bazı senaryolarda beklenmedik sonuçlar doğurabilir. Özellikle multi-homed sistemlerde ve VPN kullanımında bu davranışları anlamak kritiktir. Ana Çıkarımlar: - Modern Windows sürümlerinde DNS "gerçekten sıralı" çalışmaz
- Interface metric değeri en önemli öncelik faktörüdür
- Smart Name Resolution bazı durumlarda devre dışı bırakılmalıdır
- Doğru DNS yapılandırması ağ performansını önemli ölçüde etkiler