DNS propagation süreci görsel temsili

DNS Propagation Süresi ve Hızlandırma Yöntemleri

DNS kaydı değiştirdiğinizde değişiklik anında tüm dünyada geçerli olmaz. DNS propagation süreci başlar ve değişiklik kademeli olarak yayılır. Bu süre zarfında bazı kullanıcılar eski kaydı görür, bazıları yeni kaydı görür. Propagation süresi doğru yönetilmezse saatlerce kesinti yaşanabilir.

Propagation süresini etkileyen faktörler TTL değeri, ISP önbellek politikaları ve DNS sunucu yapılandırmasıdır. Bu faktörleri anlamak ve doğru yönetmek, DNS değişikliklerinin hızlı ve sorunsuz yayılmasını sağlar.

DNS Propagation Nedir?

DNS propagation, DNS kaydı değişikliğinin internet genelinde yayılma sürecidir. DNS sistemi dağıtık bir yapıdadır. Binlerce DNS sunucusu ve önbellek sistemi vardır. Bir kayıt değiştiğinde bu değişikliğin tüm sistemlere ulaşması zaman alır.

Örneğin A kaydınızı 192.0.2.1'den 198.51.100.5'e değiştirdiğinizde, bu değişiklik önce kendi DNS sunucunuzda gerçekleşir. Ardından ISP'lerin DNS çözümleyicileri, Google Public DNS, Cloudflare DNS gibi sistemler bu değişikliği kademeli olarak alır.

Her DNS sunucusu kayıtları belirli bir süre önbelleğinde tutar. Bu süre TTL (Time To Live) değeriyle belirlenir. TTL süresi dolmadan sunucu yeni kaydı sorgulamaz. Bu yüzden propagation süresi TTL değerine bağlıdır.

Propagation Ne Kadar Sürer?

Standart propagation süresi 24-48 saat olarak bilinir. Ancak gerçekte çoğu değişiklik 2-6 saat içinde tamamlanır. TTL değeri düşükse propagation daha hızlı olur. TTL yüksekse yavaş olur.

TTL 3600 saniye (1 saat) ise, DNS sunucuları en fazla 1 saat eski kaydı kullanır. 1 saat sonra yeni kaydı sorgular. TTL 86400 saniye (24 saat) ise, bazı sunucular 24 saat boyunca eski kaydı kullanmaya devam eder.

Ancak tüm DNS sunucuları TTL'ye tam olarak uymaz. Bazı ISP'ler kendi önbellek politikalarını uygular. TTL 300 saniye olsa bile bazı sistemler 1 saat önbellekte tutabilir. Bu yüzden propagation süresi tam olarak öngörülemez.

TTL Değeri ve Propagation İlişkisi

TTL, DNS kaydının önbellekte ne kadar süre saklanacağını belirler. Saniye cinsinden tanımlanır. Yaygın TTL değerleri:

300 saniye = 5 dakika
600 saniye = 10 dakika
1800 saniye = 30 dakika
3600 saniye = 1 saat
86400 saniye = 24 saat

Düşük TTL değeri propagation'ı hızlandırır ama DNS sorgu sayısını artırır. Yüksek TTL değeri propagation'ı yavaşlatır ama DNS sunucu yükünü azaltır. İdeal TTL değeri kullanım senaryosuna göre değişir.

Statik içerik için yüksek TTL (3600-86400) uygundur. IP adresi sık değişmiyorsa yüksek TTL performans avantajı sağlar. Dinamik içerik veya sık değişiklik yapılan kayıtlar için düşük TTL (300-600) tercih edilir.

Değişiklik Öncesi TTL Düşürme Stratejisi

DNS değişikliği planlanıyorsa TTL değeri önceden düşürülmelidir. Bu strateji propagation süresini minimize eder. İşlem şu şekilde yapılır:

1. Değişiklikten 24-48 saat önce TTL değerini 300 saniye (5 dakika) gibi düşük bir değere çekin.

2. Eski TTL süresinin dolmasını bekleyin. Örneğin eski TTL 86400 saniye (24 saat) ise, 24 saat bekleyin. Bu süre sonunda tüm önbellekler yeni TTL değerini alır.

3. DNS değişikliğini yapın. Artık TTL 300 saniye olduğu için değişiklik 5 dakikada yayılmaya başlar.

4. Değişiklik tamamlandıktan ve doğrulandıktan sonra TTL'yi tekrar yükseltin. 3600 veya daha yüksek bir değere çıkarın.

Bu strateji özellikle sunucu taşıma, IP değişikliği veya nameserver değişikliğinde kritiktir. TTL düşürülmeden yapılan değişiklikler saatlerce kesintiye yol açabilir.

Nameserver Değişikliği ve Propagation

Nameserver değişikliği özel bir durumdur. Nameserver kayıtları domain registrar'da tutulur ve kendi TTL değerleri vardır. Bu TTL genellikle 48 saat veya daha yüksektir.

Nameserver değişikliği yaptığınızda, registrar üst seviye domain otoritesine (TLD registry) bildirim gönderir. TLD registry bu değişikliği kök DNS sunucularına yayar. Bu süreç 24-48 saat sürebilir.

Nameserver propagation sırasında hem eski hem yeni nameserver'larda aynı DNS kayıtları bulunmalıdır. Aksi takdirde bazı kullanıcılar eski nameserver'dan, bazıları yeni nameserver'dan farklı kayıtlar alır ve tutarsızlık oluşur.

ISP Önbellek Davranışları

İnternet servis sağlayıcıları (ISP) kendi DNS çözümleyicilerini çalıştırır. Bu çözümleyiciler TTL değerini her zaman tam olarak uygulamaz. Bazı ISP'ler önbellek süresini uzatır, bazıları kısaltır.

Örneğin TTL 300 saniye olsa bile bazı ISP'ler 1 saat önbellekte tutabilir. Bu davranış ISP'nin politikasına bağlıdır ve kontrol edilemez. Bu yüzden propagation süresi tam olarak hesaplanamaz.

Büyük ISP'ler (Türk Telekom, Vodafone, Turkcell gibi) genellikle TTL'ye uyar. Küçük ISP'ler veya kurumsal ağlar daha agresif önbellekleme yapabilir. Bu durum özellikle kurumsal kullanıcılar için sorun yaratabilir.

Public DNS Servisleri ve Propagation

Google Public DNS (8.8.8.8), Cloudflare DNS (1.1.1.1), Quad9 (9.9.9.9) gibi public DNS servisleri TTL değerine sıkı uyar. Bu servisler propagation'ı hızlandırır.

Public DNS servisleri anycast yapısı kullanır. Aynı IP adresi dünyanın farklı noktalarında çalışır. Kullanıcı en yakın sunucuya yönlendirilir. Bu yapı hem hız hem güvenilirlik artırır.

DNS değişikliği sonrası public DNS servislerini kontrol etmek propagation durumunu gösterir. Google DNS'de değişiklik görünüyorsa büyük kısmı tamamlanmıştır. ISP DNS'lerinde görünmesi daha uzun sürebilir.

Propagation Kontrol Araçları

DNS propagation durumunu kontrol etmek için çeşitli online araçlar vardır. Bu araçlar dünyanın farklı noktalarından DNS sorgusu yapar ve sonuçları gösterir.

WhatsMyDNS.net en yaygın kullanılan araçtır. Domain adını ve kayıt türünü (A, CNAME, MX vb.) girin. Araç 20+ farklı lokasyondan sorgu yapar ve sonuçları listeler. Tüm lokasyonlarda aynı sonuç görünüyorsa propagation tamamlanmıştır.

DNSChecker.org benzer işlev sunar. Daha fazla lokasyon seçeneği vardır. Ayrıca geçmiş sorgu sonuçlarını gösterir. Propagation sürecini zaman içinde takip edebilirsiniz.

Komut satırından kontrol için dig veya nslookup kullanılabilir:

dig @8.8.8.8 example.com
dig @1.1.1.1 example.com
nslookup example.com 8.8.8.8

Bu komutlar belirli bir DNS sunucusundan sorgu yapar. Farklı DNS sunucularından sorgu yaparak propagation durumunu karşılaştırabilirsiniz.

Propagation Sırasında Kesinti Önleme

Propagation sırasında kesinti yaşanmaması için hem eski hem yeni sunucuda aynı içerik bulunmalıdır. IP değişikliği yapıyorsanız, yeni IP'deki sunucuda site hazır olmalıdır.

Örneğin A kaydını 192.0.2.1'den 198.51.100.5'e değiştiriyorsanız, 198.51.100.5 IP'sindeki sunucuda site çalışır durumda olmalıdır. Propagation sırasında bazı kullanıcılar eski IP'ye, bazıları yeni IP'ye yönlendirilir. Her iki sunucu da yanıt vermelidir.

E-posta servisi için MX kaydı değişikliğinde benzer strateji uygulanır. Yeni MX kaydındaki mail sunucusu hazır olmalıdır. Eski MX kaydı hemen silinmemelidir. Propagation tamamlanana kadar her iki mail sunucusu da çalışmalıdır.

Önbellek Temizleme (Flush)

Kullanıcılar kendi bilgisayarlarında DNS önbelleğini temizleyerek yeni kaydı hemen alabilir. İşletim sistemine göre komutlar:

// Windows
ipconfig /flushdns

// macOS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

// Linux
sudo systemd-resolve --flush-caches
sudo service nscd restart

Tarayıcılar da kendi DNS önbelleğini tutar. Tarayıcı önbelleğini temizlemek için:

// Chrome
chrome://net-internals/#dns

// Firefox
about:networking#dns

Bu sayfalarda "Clear host cache" veya "Clear DNS cache" butonuna tıklayın. Tarayıcı yeni DNS kaydını hemen sorgular.

DNSSEC ve Propagation

DNSSEC (DNS Security Extensions) aktifse propagation daha karmaşıktır. DNSSEC, DNS kayıtlarını dijital imza ile korur. Kayıt değiştiğinde imza da değişir.

DNSSEC kayıtları (RRSIG, DNSKEY, DS) kendi TTL değerlerine sahiptir. Bu TTL'ler genellikle daha yüksektir (24-48 saat). DNSSEC değişikliği normal DNS değişikliğinden daha uzun sürer.

DNSSEC aktifken DNS değişikliği yaparken dikkatli olunmalıdır. İmza geçersiz hale gelirse domain erişilemez olur. DNSSEC değişikliği için DNS sağlayıcısının dokümantasyonu takip edilmelidir.

Hızlandırma İçin En İyi Uygulamalar

Değişiklik öncesi TTL'yi düşürün. 24-48 saat önceden TTL'yi 300 saniyeye çekin. Eski TTL süresinin dolmasını bekleyin. Ardından değişikliği yapın.

Anycast DNS kullanın. Cloudflare, Route 53, NS1 gibi anycast destekli DNS servisleri propagation'ı hızlandırır. Anycast, değişikliğin daha hızlı yayılmasını sağlar.

Değişiklik sonrası public DNS servislerini kontrol edin. Google DNS ve Cloudflare DNS'de değişiklik görünüyorsa büyük kısmı tamamlanmıştır.

Kesinti önlemek için paralel çalıştırma yapın. Eski ve yeni sunucu aynı anda çalışsın. Propagation tamamlandıktan sonra eski sunucu kapatılabilir.

Değişiklik sonrası TTL'yi yükseltin. Propagation tamamlandıktan sonra TTL'yi 3600 veya daha yüksek bir değere çıkarın. Bu DNS sorgu sayısını azaltır ve performansı artırır.

Propagation kontrolü için WhatsMyDNS kullanılmalı, en az 10 farklı lokasyonda aynı sonuç görünmeli. Google DNS (8.8.8.8) ve Cloudflare DNS (1.1.1.1) değişikliği gösteriyorsa büyük kısmı tamamlanmış demektir. ISP DNS'leri daha yavaş güncellenir, 24 saat beklemek güvenlidir.

İlgili Yazılar