DNS Nasıl Çalışır?
Alan Adı Sistemi (DNS), www.example.com gibi bir adı, bilgisayarların bağlanmak için kullandığı bir IP adresine çevirir. Özyinelemeli çözümleyici (recursive resolver) bu işi sizin yerinize yapar: önce kök sunuculara, sonra üst düzey alan adı (TLD) sunucularına, ardından alan adının yetkili sunucularına sorar ve yanıtı daha sonra kullanmak üzere saklar. Bu işlem genellikle birkaç milisaniye sürer.
Çözümleme yolu
www.example.com adresini açtığınızda, hiçbir şey önbellekte yoksa şu adımlar gerçekleşir:
- Stub resolver. İşletim sisteminizde küçük bir yerleşik istemci bulunur. Kendi önbelleğine ve hosts dosyasına bakar, ardından soruyu yapılandırılmış özyinelemeli çözümleyiciye gönderir (genellikle yönlendiricinizden veya sağlayıcınızdan gelir ya da herkese açık bir çözümleyicidir).
- Özyinelemeli çözümleyici. Önbelleğine bakar. Yanıtı yoksa en üstten başlar ve nihai yanıtı bulana kadar sorular sorar.
- Kök sunucular. Çözümleyici bir kök sunucuya
www.example.comadresini sorar. Kök sunucu adresi bilmez, ancak.com'dan sorumlu sunucuları bildirir. - TLD sunucuları.
.comsunucuları da adresi bilmez, ancakexample.comalan adının ad sunucularını (NS kayıtları) bildirir. - Yetkili sunucular. Alan adının ad sunucusu gerçek kayıtları tutar ve
www.example.comiçin A veya AAAA kaydını döndürür. - Çözümleyici yanıtı stub resolver'a iletir, önbelleğine kaydeder ve tarayıcı bağlanır.
Herhangi bir alan adı için bu zinciri DNS kontrol aracımızla izleyebilirsiniz.
Önbellekleme ve TTL
Her DNS kaydının bir TTL (time to live, yaşam süresi) değeri vardır; çözümleyicilere yanıtı kaç saniye saklayabileceklerini söyleyen bir sayıdır. 3600 TTL bir saat demektir. Önbellekleme DNS'i hızlı kılar ve yetkili sunucuların yükünü azaltır, ancak bir değişikliğin her yerde aynı anda görünmemesi anlamına da gelir. Önbellekler birkaç yerde bulunur: tarayıcıda, işletim sisteminde, yönlendiricide ve özyinelemeli çözümleyicide.
Çözümleyiciler olumsuz yanıtları da önbelleğe alır, örneğin "bu ad mevcut değil" (NXDOMAIN); süre SOA kaydında belirtilir.
Yaygın kayıt türleri
| Tür | Amaç | Örnek değer |
|---|---|---|
| A | Bir adı IPv4 adresine eşler | 192.0.2.10 |
| AAAA | Bir adı IPv6 adresine eşler | 2001:db8::10 |
| CNAME | Bir addan başka bir ada takma ad. Bölgenin tepe noktasında (zone apex) diğer kayıtlarla birlikte bulunamaz. | www.example.com → example.com |
| MX | Alan adının posta sunucuları, bir öncelikle birlikte (düşük sayı önce denenir) | 10 mail.example.com |
| NS | Bölgenin yetkili ad sunucuları | ns1.example.com |
| TXT | Serbest metin; SPF, DKIM, DMARC ve alan adı doğrulaması için kullanılır | "v=spf1 mx -all" |
| SOA | Yetki başlangıcı: birincil sunucu, yönetici iletişimi, seri numarası ve zamanlayıcılar | ns1.example.com hostmaster.example.com 2026110401 ... |
| CAA | Alan adı için hangi sertifika otoritelerinin sertifika verebileceği | 0 issue "ca.example.net" |
| SRV | Belirli bir hizmetin hostu ve portu | 10 5 5060 sip.example.com |
| PTR | Ters sorgu: bir IP adresini tekrar bir ada eşler | 10.2.0.192.in-addr.arpa → host.example.com |
Doğru MX, SPF ve DKIM kayıtları e-posta tesliminde önemlidir. Bir posta sunucusunu kontrol etmek ve IP adresinin spam kara listelerinde olup olmadığını görmek için e-posta ve kara liste aracımızı kullanın.
DNS yayılımı (propagation) gerçekte nedir?
"DNS yayılımı", dünyadaki tüm önbelleklerin eski yanıtı bırakıp yenisini alana kadar geçen süre için kullanılan yaygın addır. İnternet üzerinde hiçbir şey itilmez. Yetkili sunucuda yeni veri hemen vardır; çözümleyiciler yalnızca TTL süresi dolana kadar eski veriyi tutar. Dolayısıyla değiştirilmiş bir kayıt için en uzun gecikme yeni TTL'in değil, eski TTL'in yaklaşık süresidir.
Alan adı kayıt kuruluşunda (registrar) ad sunucularını değiştirmek daha yavaştır, çünkü TLD bölgesindeki NS kayıtlarının TTL'i genellikle bir ila iki gündür. Bu sürede bazı kullanıcılar eski sunuculara, bazıları yeni sunuculara ulaşır. Bir alan adının yetkilendirmesini WHOIS sorgusuyla, kayıtların kendisini ise DNS kontrol aracıyla kontrol edebilirsiniz.
Bir değişiklik nasıl hızlı yayılır?
- Değişiklikten en az bir eski TTL süresi önce (TTL 86400 ise örneğin 24 saat), kaydın TTL değerini 300 saniye gibi küçük bir değere düşürün.
- Eski TTL süresi geçene kadar bekleyin; böylece tüm önbellekler kısa ömürlü sürümü tutar.
- Değişikliği yapın. Çözümleyiciler artık yaklaşık 5 dakika içinde yeniden sorar.
- Sonucu bir DNS kontrol aracıyla birkaç konumdan kontrol edin.
- Her şey çalışınca sorgu yükünü azaltmak için TTL'i tekrar yükseltin.
SOA seri numarası ve ikincil sunucular
Çoğu alan adı en az iki yetkili sunucu kullanır. Biri birincil, diğerleri ise bölgeyi bölge aktarımıyla (AXFR veya IXFR) ondan kopyalayan ikincil sunuculardır. Bunu SOA kaydı denetler:
- Serial (seri numarası): bir sürüm numarasıdır. Birincil sunucudaki seri kendisininkinden büyükse ikincil sunucu bölgeyi aktarır. Yaygın biçim tarih artı sayaçtır, örneğin
2026110401. Bir bölgeyi düzenleyip seri numarasını artırmayı unutursanız, ikincil sunucular eski veriyi sunmaya devam eder. - Refresh: ikincil sunucunun seriyi ne sıklıkla kontrol ettiği.
- Retry: başarısız bir kontrolden sonra ikincil sunucunun yeniden denemeden önce ne kadar beklediği.
- Expire: bu süre boyunca iletişim kurulamazsa ikincil sunucu yanıt vermeyi bırakır.
- Minimum (negatif TTL): çözümleyicilerin "mevcut değil" yanıtlarını ne kadar süre önbellekte tuttuğu.
Bir alan adı farklı ad sunucularından farklı yanıtlar döndürüyorsa, eski kalmış bir ikincil sunucu olası bir nedendir. Tüm NS sunucularının seri numaralarını karşılaştırın.
Anycast çözümleyiciler
Büyük sağlayıcıların işlettiği gibi herkese açık çözümleyiciler anycast kullanır: aynı IP adresi birçok veri merkezinden duyurulur ve ağ her sorguyu en yakın merkeze yönlendirir. Bu, düşük gecikme ve dayanıklılık sağlar. Her konumun kendi önbelleği vardır; bu yüzden aynı çözümleyici adresini kullanan iki kişi bir değişiklikten sonra kısa süre farklı yanıtlar görebilir. Aynı teknik kök sunucular ve birçok yetkili DNS hizmeti tarafından da kullanılır.
İlgili temeller için IP adresi nedir ve DNS'in uygulama katmanında yer aldığı OSI modeli yazılarını okuyun.