DNS çözümleyici nedir?
DNS çözümleyici, istemci aygıtlardan DNS sorguları alan ve alan adlarının IP adreslerini bulmak için DNS hiyerarşisini izleyen sunucudur. Özyinelemeli çözümleyici olarak da adlandırılır; istemci ile kök, TLD ve yetkili ad sunucuları arasında aracı görevi görür.
DNS çözümleyiciler nasıl çalışır?
Bir istemci alan adı istediğinde çözümleyici önce önbelleğini denetler. Yanıt yoksa kök sunucudan TLD sunucusuna, oradan yetkili sunucuya ilerler ve sonucu TTL değerine göre önbelleğe alarak istemciye döndürür.
Çözüm süreci
Tarayıcıya example.com yazıldığında sorgu, önbellek ve DNS hiyerarşisi boyunca aşağıdaki adımlardan geçer.
1. Client → Resolver: "What's the IP for example.com?"
2. Resolver checks cache
→ Cache hit: Return cached result
→ Cache miss: Begin recursion
3. Resolver → Root Server: "Where's .com?"
Root → Resolver: "Ask these .com nameservers"
4. Resolver → .com TLD: "Where's example.com?"
.com → Resolver: "Ask these nameservers"
5. Resolver → Authoritative NS: "What's example.com's IP?"
Auth NS → Resolver: "203.0.113.50"
6. Resolver → Client: "203.0.113.50"
(Also caches result based on TTL)
Özyinelemeli ve yinelemeli sorgular
Özyinelemeli sorguda istemci nihai yanıtı çözümleyiciden ister ve tüm aramayı çözümleyici yapar. Yinelemeli sorguda çözümleyici her ad sunucusundan alabileceği yönlendirmeyi alarak sonraki sunucuya kendisi sorar.
Client: "Give me the final answer for example.com"
Resolver: "Here's the IP: 203.0.113.50"
(Resolver does all the work)
Resolver: "What's example.com?"
Root: "I don't know, ask .com servers"
Resolver: "What's example.com?"
.com: "I don't know, ask ns1.example.com"
Resolver: "What's example.com?"
ns1: "203.0.113.50"
Çözümleyici türleri
DNS çözümleyicileri sorguyu kendileri çözümleyen veya başka bir çözümleyiciye aktaran farklı rollere sahip olabilir.
Stub çözümleyici
İşletim sistemi ve uygulamalarda yerleşik olan stub çözümleyici, sorguları yapılandırılmış DNS sunucularına iletir; sınırlı mantığa sahiptir ve özyineleme yapmaz. Örnekleri işletim sistemi DNS istemcisi ve uygulama DNS kitaplıklarıdır.
Özyinelemeli çözümleyici
Tam özellikli çözümleyici önbelleğe alma, yönlendirmeleri izleme ve güvenlik doğrulamalarıyla eksiksiz DNS çözümlemesi yapar. ISP DNS hizmetleri, Google 8.8.8.8 ve Cloudflare 1.1.1.1 örnektir.
İletici çözümleyici
İletici çözümleyici özyinelemeyi kendisi yapmak yerine başka bir çözümleyiciye aktarır. Kurumsal ağlarda merkezi politika uygulaması ve dış sorguları azaltmak için kullanılır.
Client → Corporate Resolver (forwarding) → ISP Resolver (recursive) → Internet
Yaygın herkese açık çözümleyiciler
Aşağıdaki hizmetler farklı hız, gizlilik ve güvenlik özellikleri sunar.
| Sağlayıcı | IPv4 | IPv6 | Özellikler |
|---|---|---|---|
| Cloudflare | 1.1.1.1, 1.0.0.1 | 2606:4700:4700::1111 | Hızlı, gizlilik odaklı, günlük tutmaz |
| 8.8.8.8, 8.8.4.4 | 2001:4860:4860::8888 | Güvenilir, küresel anycast | |
| Quad9 | 9.9.9.9 | 2620:fe::fe | Güvenlik filtreleme, tehdit engelleme |
| OpenDNS | 208.67.222.222 | 2620:119:35::35 | İçerik filtreleme, kimlik avı koruması |
Çözümleyicinizi değiştirme
Windows, macOS veya Linux ağ ayarlarında güvenilir bir DNS adresi seçebilirsiniz. Değişiklikten sonra çözümlemeyi ve uygulama bağlantılarını test edin.
Control Panel → Network → Adapter Settings
→ Properties → IPv4 → Use these DNS servers:
Preferred: 1.1.1.1
Alternate: 8.8.8.8
System Preferences → Network → Advanced → DNS
→ Add: 1.1.1.1, 8.8.8.8
nameserver 1.1.1.1
nameserver 8.8.8.8
Çözümleyici özellikleri
Çözümleyiciler performansın yanı sıra gizlilik, bütünlük ve kötü amaçlı alan adı koruması sağlayabilir.
Önbelleğe alma
DNS yanıtları TTL boyunca önbellekte tutulur. Önbellek isabeti tekrarlanan sorguları hızlandırır ve yetkili sunuculara giden trafiği azaltır.
First query: example.com
→ Full recursion (50ms)
→ Cached for 300s (TTL)
Subsequent queries: example.com
→ Cache hit (1ms)
→ Served until TTL expires
Negatif önbelleğe alma
NXDOMAIN gibi olumsuz yanıtlar da SOA minimum TTL değerine göre önbelleğe alınır. Böylece var olmayan alan adları için tekrarlanan sorgular önlenir.
Query: nonexistent.example.com
Response: NXDOMAIN
Cached: Based on SOA minimum TTL
Sorgu en aza indirme
Modern çözümleyiciler, sorgularda gereksiz alt alan adı bilgisini açığa çıkarmamak için her DNS seviyesine yalnızca gerekli adı sorabilir. Bu davranış RFC 7816 ile tanımlanan QNAME minimization yaklaşımıdır.
Query to .com: "What's www.blog.example.com?"
→ Exposes full subdomain structure
Query to .com: "What's example.com?"
Query to example.com NS: "What's blog.example.com?"
Query to blog.example.com NS: "What's www.blog.example.com?"
→ Reveals only necessary information at each level
DNSSEC doğrulaması
DNSSEC destekleyen çözümleyiciler imzaları doğrular, geçerli yanıtta AD bayrağını döndürür ve imza geçersizse SERVFAIL yanıtı verebilir.
Query: example.com (DNSSEC-signed)
→ Resolver validates signatures
→ Returns AD (Authentic Data) flag if valid
→ Returns SERVFAIL if signatures invalid
Çözümleyici güvenlik özellikleri
Şifreli taşıma, kötü amaçlı alan adı filtreleme ve hız sınırlama, istemci sorgularının gizliliğini ve hizmet sürekliliğini artırır.
DNS over HTTPS (DoH) ile
DoH, DNS sorgularını HTTPS üzerinden şifreler. Bu, geleneksel UDP 53 trafiğine kıyasla ağdaki gözlemcilerin sorgu içeriğini görmesini zorlaştırır.
Traditional DNS:
Client → Resolver (UDP port 53, plaintext)
DNS over HTTPS:
Client → Resolver (TCP port 443, encrypted)
DNS over TLS (DoT) ile
DoT, DNS sorgularını TLS ile TCP 853 üzerinden şifreler. İnternet servis sağlayıcısının sorguları görmesini veya değiştirmesini azaltır.
Client → Resolver (TCP port 853, encrypted)
Kötü amaçlı yazılım ve kimlik avı filtreleme
Bazı çözümleyiciler kötü amaçlı yazılım veya kimlik avıyla ilişkilendirilen alan adlarını engeller. Quad9 ve aile filtreli Cloudflare (https://cloudflare-dns.com/dns-query) uçları buna örnektir.
Hız sınırlama
Kaynak IP belirli bir eşikten fazla sorgu gönderirse çözümleyici geçici olarak oranı sınırlayabilir veya kaynağı engelleyebilir; bu, DNS amplification kötüye kullanımını azaltır.
If source IP sends > threshold queries/second:
→ Temporarily rate limit or block
Mevcut çözümleyicinizi denetleme
İşletim sistemi ayarları, resolv.conf, dig çıktısı ve çevrim içi DNS denetim araçları kullanılan çözümleyiciyi gösterir.
ipconfig /all | findstr "DNS Servers"
cat /etc/resolv.conf
dig example.com
# Look at "SERVER:" in output
Çözümleyici performansı
Gecikme ve erişilebilirlik web deneyimini etkiler. Anycast, sorguyu istemciye yakın bir noktaya yönlendirerek küresel gecikmeyi azaltabilir.
Gecikme önemlidir
Çözümleyici yanıt süresi sayfa yüklenmesini etkiler. Yerel ISP, Cloudflare ve Google gibi hizmetleri farklı ağlardan ölçerek karşılaştırın.
| Çözümleyici | Ortalama gecikme | Etki |
|---|---|---|
| Yerel ISP | 10-30 ms | Hızlı, ancak değişken |
| Cloudflare | 10-20 ms | Tutarlı biçimde hızlı (anycast) |
| 20-40 ms | Güvenilir, küresel | |
| Yavaş çözümleyici | 100-200 ms | Sayfa yüklenmesinde belirgin gecikme |
Anycast yönlendirme
Büyük çözümleyiciler aynı anycast IP adresini birden çok konumdan duyurur. Sorgu en yakın veri merkezine yönlendirilerek düşük gecikmeli çözümleme sağlanır.
1.1.1.1 anycast IP
→ Routed to nearest Cloudflare datacenter
→ New York query → New York datacenter
→ London query → London datacenter
→ Result: Global low-latency resolution
Çözümleyici performansını ölçme
Namebench ile gerçek sorgu kalıplarını kullanarak otomatik karşılaştırma yapabilir veya dig komutuyla farklı çözümleyicileri manuel ölçebilirsiniz.
# Tests multiple resolvers with your actual query patterns
namebench
# Test Cloudflare
time dig @1.1.1.1 example.com
# Test Google
time dig @8.8.8.8 example.com
# Test ISP (current)
time dig example.com
Yaygın çözümleyici sorunları
Sorun giderirken belirtileri, kullanılan çözümleyiciyi ve TTL durumunu birlikte inceleyin.
DNS zehirlenmesi
Saldırganlar çözümleyici önbelleğine sahte kayıtlar enjekte etmeye çalışır. DNSSEC doğrulaması, kaynak portu rastgeleleştirme ve DoH/DoT bu riski azaltır.
Çözümleyici ele geçirme
Kötü amaçlı yazılım veya ağ sağlayıcısı DNS sorgularını başka yere yönlendirebilir. Genel bir çözümleyiciye geçin, DoH/DoT kullanın ve cihazı kötü amaçlı yazılıma karşı inceleyin.
Eski önbellek
DNS değişiklikleri görünmüyorsa TTL süresinin dolmasını bekleyin, geçici olarak farklı çözümleyici kullanın ve yerel önbelleği temizleyin.
Çözümleyicinin engellenmesi
Bazı ağlar 8.8.8.8 veya 1.1.1.1 gibi dış çözümleyicileri engeller. Bu durumda çözümleyicinin DoH uç noktasını veya kurumun izin verdiği DNS hizmetini kullanın.
Yerel çözümleyici yapılandırma
Yerel çözümleyici kurarken erişim arayüzlerini, özyinelemeyi, DNSSEC doğrulamasını ve günlük politikasını açıkça yapılandırın.
Unbound kullanımı
Unbound, Linux üzerinde yerel ve doğrulamalı DNS çözümleyicisi olarak çalıştırılabilir. Yapılandırmayı uygulamadan önce sözdizimini doğrulayın.
# Install Unbound (Linux)
sudo apt install unbound
# Basic config (/etc/unbound/unbound.conf)
server:
interface: 127.0.0.1
do-ip4: yes
do-udp: yes
do-tcp: yes
# Enable DNSSEC
auto-trust-anchor-file: "/var/lib/unbound/root.key"
# Privacy (query minimization)
qname-minimisation: yes
# Start service
sudo systemctl start unbound
sudo systemctl enable unbound
Pi-hole kullanımı
Pi-hole, ağ genelinde reklam ve izleme alan adlarını filtreleyen bir DNS çözümleyicisidir. DHCP ayarlarında istemcilere Pi-hole adresini dağıtın.
# Install Pi-hole
curl -sSL https://install.pi-hole.net | bash
# Configure devices to use Pi-hole as resolver
# Set router DHCP to provide Pi-hole IP as DNS
En iyi uygulamalar
1. Güvenilir herkese açık çözümleyici seçin.\n2. Gizlilik için DoH veya DoT etkinleştirin.\n3. Hız, gizlilik ve filtreleme politikasını ihtiyacınıza göre karşılaştırın.\n4. Gecikmeyi düzenli ölçün.\n5. Yedek çözümleyici yapılandırın.\n6. DNSSEC doğrulaması kullanın.\n7. Çözümleyicinin günlük ve filtreleme politikasını okuyun.\n8. Değişikliklerden sonra çözümlemeyi test edin.\n9. Seçiminizi ve gerekçesini belgeleyin.\n10. resolv.conf değişikliklerini dikkatle uygulayın.
Çözümleyici ve yetkili ad sunucusu karşılaştırması
Çözümleyici istemci sorgularını özyinelemeli olarak yanıtlar; yetkili ad sunucusu kendi bölgelerinin gerçek kayıtlarını tutar.
| Özellik | Çözümleyici | Yetkili NS |
|---|---|---|
| Rol | İstemci sorgularını yanıtlar | Gerçek DNS kayıtlarını tutar |
| Özyineleme | Evet, diğer sunucuları sorgular | Hayır, kendi bölgelerini yanıtlar |
| Önbelleğe alma | Evet, yanıtları önbellekler | Hayır (yetkili veri) |
| Kullanım | İstemciler, son kullanıcılar | Özyineleme sırasında çözümleyiciler |
| Örnekler | 8.8.8.8, 1.1.1.1 | ns1.example.com |