DNS Yayılımı Nedir ve Neden Domainler Yayılmada Zaman Alır?
DNS Yayılımı Nedir? Domain Değişiklikleriniz Neden Zaman Alır?
Yeni domain'inizi başka bir hosting sağlayıcısına yönlendirdiniz. Registrar'da nameserver'ları güncellediniz, kaydettiniz ve tarayıcıyı yenilediniz. Hala eski site görünüyor. 10 dakika sonra tekrar kontrol ettiniz. Yine aynı. İkinci saatin sonunda, acaba kalıcı olarak bir şey mi kırdığınızı düşünmeye başlıyorsunuz.
DNS yayılımına hoş geldiniz—internetin tutarlılığını koruma yöntemi, ama impatient geliştiricileri biraz çıldırtan bir sistem.
DNS: İnternet'in Dağıtık Rehberi
Temelden başlayalım. DNS (Domain Name System) şu temel görevi yapıyor: tarayıcıya yazdığımız insan dostu domain isimleri (örneğin myawesomesite.com) bilgisayarların anladığı sayısal IP adreslerine (örneğin 203.0.113.45) dönüştürüyor.
DNS olmasaydı, telefon numaralarını ezberlediğimiz gibi IP adreslerini de ezberlememiz gerekirdi. Netflix'in 198.45.48.92'de, GitHub'ın 140.82.113.3'te olduğunu hatırlamaya çalışın. DNS sayesinde internet kullanılabilir hale geliyor.
Ama işin püf noktası şu: DNS tamamen dağıtık bir sistem. Tek bir "DNS sunucusu" yok. Bunun yerine, hiyerarşik bir sunucu yapısı var ve bu dağıtık yapı yayılımın zaman almasının temel sebebi.
DNS Sorgulamasında Dört Başrolü
Birisi bir domain'i ziyaret ettiğinde, dört farklı sunucu türü devreye giriyor:
Recursive Resolver ağır işleri yapan kişi—genellikle ISP'niz, Cloudflare veya Google tarafından yönetiliyor. Tarayıcınız myawesomesite.com'un hangi IP'ye işaret ettiğini öğrenmek istediğinde, bu resolver'a soruyor ve o da diğer sunucuları sorgulayarak yanıtı buluyor. Sonra bulduğu bilgiyi önbelleğe alıyor, böylece hemen sonra tekrar sormak zorunda kalmıyor.
Root Name Servers DNS hiyerarşisinin başlangıç noktası. Dünya çapında 13 sunucu kümesi var ve bunlar dev bir şirketteki zemin kattaki danışma görevlisine benziyor. Domain'in nereye işaret ettiğini bilmiyorlar, ama domain uzantısına bakıp sizi doğru TLD sunucusuna yönlendirebiliyorlar.
TLD Name Servers belirli üst düzey domain'lerin tüm domainlerini yönetiyor. .com TLD sunucusu milyonlarca .com domain'i biliyor, ama gerçek IP adreslerini depolamıyor. Bunun yerine hangi nameserver'ın her domain'den sorumlu olduğunu biliyor. Registrar'daki değişiklikleriniz buraya yansıyor.
Authoritative Name Servers kesin doğru bilginin kaynağı. Domain'iniz bir sağlayıcıda barındırıldığında, o sağlayıcının nameserver'ları authoritative'dir. Burada A record'lar (IPv4 adresleri), AAAA record'lar (IPv6), MX record'lar (email için), TXT record'lar (doğrulama için) ve domain'inize gereken her şey yer alıyor.
Tek Bir DNS Sorgulamasının Yolculuğu
Birisi domain'inizi ilk ziyaret ettiğinde DNS önbellekleri boş olursa, şu adımlar yaşanır:
Tarayıcı → Resolver: Tarayıcınız recursive resolver'a soruyor: "myawesomesite.com'un IP'si nedir?"
Resolver → Root: Resolver root sunucusuna soruyor: "myawesomesite.com'u bulmam lazım."
Root Yön Gösteriyor: Root sunucusu cevap veriyor: "Bilmiyorum ama
.comTLD sunucusuna sor."Resolver → TLD: Resolver TLD sunucusuna soruyor.
TLD Devreyi Teslim Ediyor: TLD sunucusu dönüyor: "IP'yi bilmiyorum, ama
ns1.hostingprovider.como domain'den sorumlu."Resolver → Authoritative: Resolver authoritative nameserver'a soruyor.
Authoritative Cevap Veriyor: Sunucu gerçek IP adresini döndürüyor.
Resolver Önbelleğe Alıyor: Resolver sonucu önbelleğe alıyor ve tarayıcıya IP'yi veriyor.
Tarayıcı Bağlanıyor: Tarayıcı artık web sunucusuna bağlanabiliyor.
Tüm işlem normalde milisaniye cinsinden tamamlanır. Ama bu ancak her şey güncel olduğunda geçerli.
Yayılım Gecikmelerinin Nedeni
İşte burası ilginç (ve sıkıcı) kısım. DNS record'ları TTL (Time To Live) değeri içeriyor—essas olarak bir son kullanma tarihi. Nameserver'larınızı veya DNS record'larınızı değiştirdiğinizde, eski önbelleğe alınmış veriler TTL'si bitene kadar dünya çapında var olmaya devam ediyor.
Dün nameserver'larınızı değiştirdiğinizi ama TTL'yi 86.400 saniyeye (24 saat) ayarladığınızı düşünün. Şu anda dünyadaki binlerce recursive resolver'da hala eski nameserver bilginiz önbelleğe alınmış durumda. Kullanıcılar bu resolver'lara sorduğunda eski cevabı alıyorlar. İnatçı değiller, sadece sizin TTL'yle belirlediğiniz kuralları takip ediyorlar.
Farklı ISP'ler ve DNS sağlayıcıları farklı şekilde önbellek yapıyor. Yerel ISP resolver'ınız dakikalar içinde güncellenmesine karşın, dünyanın başka tarafındaki bir resolver günler sonra kontrol etmeyi tercih edebiliyor. Cloudflare gibi bazı public DNS servisleri TTL'ye katı uyuyor, ama bazıları daha uzun süre önbellek tutuyor.
Ayrıca "bütün dünyanın DNS'ini güncelle" diye bastığınız tek bir düğme yok. Değişiklikler yavaşça, resolver'dan resolver'a yayılıyor—bir gölete atılan taşın oluşturduğu dalgalar gibi.
DNS Değişiklikleri İçin Akıllı Stratejiler
Büyük Değişikliklere Hazır Olarak TTL'yi Düşürün: Hosting taşımasını planlıyorsanız, değişiklikteki günleri biraz öncesinden DNS record TTL'lerini 300 saniyeye (5 dakika) düşürün. Böylece gerçek değişikliği yaptığınızda resolver'lar saatler boyunca eski veri tutmak yerine hızlı kontrol ediyor.
Global DNS Yayılımını Kontrol Edin: Sadece yerel test sonuçlarına güvenmeyin. Dünyanın farklı yerlerindeki resolver'ları sorgulayan araçlar kullanın—Asya, Avrupa, Kuzey Amerika'dan veri merkezi sunucuları. Bu size değişikliklerin ne kadar yaygın yayıldığı hakkında gerçekçi fikir verir.
TTL Stratejinizi Anlayın: Sık değişmeyen domain'ler için yüksek TTL (3600+ saniye) iyidir ve DNS sunucularının üzerine yük koyar. Aktif geliştirme veya göç dönemlerinde düşük TTL size daha fazla kontrol verir.
Büyük Değişiklikleri Yoğun Olmayan Saatlerde Yapın: Mümkünse DNS değişikliklerini site ziyaretçilerinin az olduğu saatlerde yapın. Bu olası geçici tutarsızlıkların etkisini azaltır.
Geri Alma Planınız Olsun: Yeni sağlayıcıya geçtikten sonra eski hosting sağlayıcısını 48 saat çalışır durumda tutun. DNS yayılımında sorun yaşarsanız, en azından sorun çözerken trafik eski altyapıda karşılanabilir.
Dağıtık Sistemlerin Güzel Karmaşıklığı
DNS yayılım gecikmesi var çünkü DNS temelde dağıtık ve merkezsiz bir sistem. Tek kontrol noktası yok, bu da internetin tek arıza noktası yok demek. Root sunucularından biri kapanırsa diğerleri çalışmaya devam ediyor. ISP'nizin resolver'ı başarısız olursa, diğerleri işe yaramaya devam ediyor.
Bu güvenilirliğin karşılığı olarak değişikliklerin kademeli yayılması gerekiyor. Tam aynı tradeoff'u dağıtık veritabanlarında, içerik dağıtım ağlarında, hatta blockchain sistemlerinde de görüyorsunuz.
Bunu anlamak daha iyi bir yönetici ve geliştirici yapıyor sizi. DNS yayılımına karşı çıkmak yerine, ona hazırlık yapıyorsunuz. Değişiklikler hemen görünmediğinde panik yapmak yerine, her katmanda neler oluyor biliyor ve akıllıca çözüm arıyorsunuz.
Bir sonraki sefer DNS yayılımını beklerken, dünya çapında bir yerde bir resolver'ın tam şu anda yeni IP adresinizi öğrendiğini bilin. İnternet'in tamamı yakalanana kadar sadece zaman meselesi—ve TTL değerleri.