DNS Çözümleyici

Protokoller ve Standartlar
İstemcilerden DNS sorguları alan ve yetkili sunuculara sorgu göndererek yanıtları getiren sunucu.
← Sözlüğe Dön

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ıIPv4IPv6Özellikler
Cloudflare1.1.1.1, 1.0.0.12606:4700:4700::1111Hızlı, gizlilik odaklı, günlük tutmaz
Google8.8.8.8, 8.8.4.42001:4860:4860::8888Güvenilir, küresel anycast
Quad99.9.9.92620:fe::feGüvenlik filtreleme, tehdit engelleme
OpenDNS208.67.222.2222620: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ümleyiciOrtalama gecikmeEtki
Yerel ISP10-30 msHızlı, ancak değişken
Cloudflare10-20 msTutarlı biçimde hızlı (anycast)
Google20-40 msGüvenilir, küresel
Yavaş çözümleyici100-200 msSayfa 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ümleyiciYetkili NS
Rolİstemci sorgularını yanıtlarGerçek DNS kayıtlarını tutar
ÖzyinelemeEvet, diğer sunucuları sorgularHayır, kendi bölgelerini yanıtlar
Önbelleğe almaEvet, yanıtları önbelleklerHayır (yetkili veri)
Kullanımİstemciler, son kullanıcılarÖzyineleme sırasında çözümleyiciler
Örnekler8.8.8.8, 1.1.1.1ns1.example.com

Bu Bilgiyi Uygulamaya Koyun

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