Anycast DNS Nedir? Hız ve Dayanıklılık Açısından Ne Sağlar?
Bir DNS sorgusunu çözümleyen sunucu, her zaman aynı fiziksel makine değildir. Anycast, aynı IP adresini birden fazla coğrafi konumdaki sunucuya atayarak sorguyu en yakın düğüme yönlendiren bir ağ tekniğidir. Sonuç olarak kullanıcı hangi sunucuyla konuştuğunu bilmez, ama en yakın noktadan yanıt alır — ve bu fark, özellikle küresel ölçekte DNS altyapısı kuran sağlayıcılar için milisaniyelik gecikme avantajına dönüşür.
Anycast yalnızca DNS'e özgü değildir; CDN altyapılarında, DDoS koruma servislerinde ve kök nameserver'larda da yaygın biçimde kullanılır. Ancak DNS bağlamında anycast özellikle kritiktir, çünkü her web isteğinin önünde bir DNS çözümlemesi bulunur ve bu gecikme birikimli bir etki yaratır. Dünya genelinde dağıtılmış kullanıcı tabanı olan bir servis için anycast DNS, latency optimizasyonunun en temel katmanlarından birini oluşturur.
Anycast'in nasıl çalıştığını anlamak için önce unicast ile farkını netleştirmek gerekir; çünkü ikisi arasındaki ayrım hem teknik hem de operasyonel sonuçlar açısından belirleyicidir.
Unicast'ten anycast'e: IP yönlendirme mekanizması
Geleneksel unicast modelinde her IP adresi dünyada tek bir cihaza aittir. Bir DNS sorgusunu 203.0.113.1 adresine gönderdiğinizde, bu paket her zaman aynı fiziksel sunucuya ulaşır. İstanbul'dan gönderilen sorgu ile São Paulo'dan gönderilen sorgu aynı sunucuya gider; aralarındaki mesafe farkı doğrudan latency farkına yansır.
Anycast'te ise aynı IP adresi — örneğin 203.0.113.1 — Frankfurt, Singapur, Chicago ve São Paulo'daki dört farklı sunucuya atanır. İnternet yönlendirme altyapısı olan BGP (Border Gateway Protocol), bir paketin bu adresi için hangi yolu seçeceğini belirler. BGP, paketi her zaman en kısa AS (autonomous system) yoluyla en yakın düğüme yönlendirir. İstanbul'dan gelen sorgu Frankfurt'a giderken, São Paulo'dan gelen sorgu yerel sunucuya gider.
# İstanbul'dan anycast DNS sorgusuna traceroute:
$ traceroute 1.1.1.1
1 192.168.1.1 1 ms
2 isp-gateway 8 ms
3 fra-ix-peer 22 ms ← Frankfurt PoP
4 1.1.1.1 24 ms ← Cloudflare Frankfurt düğümü
# São Paulo'dan aynı IP'ye traceroute:
$ traceroute 1.1.1.1
1 192.168.1.1 1 ms
2 isp-gateway 6 ms
3 gru-ix-peer 14 ms ← São Paulo PoP
4 1.1.1.1 16 ms ← Cloudflare São Paulo düğümü
Bu örnekte aynı IP adresi (1.1.1.1) iki farklı coğrafi noktada yanıt verir. BGP yönlendirmesi, hangi düğümün yanıt vereceğini otomatik olarak belirler. Kullanıcının bunu yapılandırması gerekmez; paket yolculuğu ağ altyapısı tarafından şeffaf biçimde yönetilir.
BGP ve anycast ilişkisi: yönlendirmeyi kim yönetir
Anycast'in çalışması BGP'ye doğrudan bağımlıdır. Her anycast düğümü, taşıdığı IP önekini BGP aracılığıyla komşu ağlara (AS'lere) duyurur. Bu duyuru, "bu IP adresi benden erişilebilir" mesajıdır. İnternet'teki yönlendiriciler bu duyuruları biriktirir ve bir paket için en kısa yolu hesaplar.
Frankfurt'taki anycast düğümü Avrupa AS'lerine duyuru yaparken, Singapur'daki düğüm Asya-Pasifik ağlarına duyuru yapar. Türkiye'den bir ISP, Frankfurt'a ulaşmak için daha az BGP hop sayısına sahip olduğundan trafiği oraya yönlendirir. Bu mekanizma dinamik olduğu için bir düğüm devre dışı kaldığında BGP duyurusu da durur ve trafik otomatik olarak bir sonraki en yakın düğüme kayar.
BGP path seçiminin yalnızca coğrafi mesafeye göre çalışmadığını belirtmek gerekir. AS yolu uzunluğu, yerel tercih değerleri ve ağ politikaları da devreye girer. Sonuç olarak "en yakın" düğüm her zaman fiziksel olarak en yakın olan değildir; BGP'nin belirlediği en verimli yol üzerindeki düğümdür. Çoğunlukla bu ikisi örtüşür, ama kenar vakalarda farklılaşabilir.
DNS çözümlemesinde anycast'in rolü: hangi sunucu yanıtlıyor
Anycast en yaygın biçimde iki DNS katmanında kullanılır: yetkili (authoritative) nameserver'lar ve özyinelemeli (recursive) çözümleyiciler.
Yetkili nameserver anycast'i, nameserver değişikliği yaptığınızda atadığınız ns1.provider.com gibi adreslerde gizlidir. Büyük DNS sağlayıcıları bu adresleri anycast üzerinden sunduğunda, dünyanın herhangi bir yerinden gelen zone sorgusu en yakın PoP (point of presence) noktasından yanıtlanır. Bu, özellikle yüksek TTL değerleri nedeniyle önbellekte kalmayan kayıtlar için sorgu süresini doğrudan etkiler.
Özyinelemeli çözümleyicilerde anycast daha görünür biçimde kullanılır. Cloudflare'in 1.1.1.1'i, Google'ın 8.8.8.8'i ve Quad9'un 9.9.9.9'u küresel anycast adreslerdir. Bu adreslere yönlendirilen bir DNS sorgusu, kullanıcının ISP'sine en yakın PoP noktasından yanıtlanır.
# dig ile anycast DNS yanıt süresi:
$ dig @1.1.1.1 domainvedns.com A +stats | grep "Query time"
;; Query time: 8 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
# Aynı sorgu unicast bir sunucuya (örn. uzak bir bölge):
$ dig @203.0.113.50 domainvedns.com A +stats | grep "Query time"
;; Query time: 187 msec
;; SERVER: 203.0.113.50#53(203.0.113.50)
Bu fark yalnızca DNS için değil, kullanıcı deneyimi için de önemlidir. Bir web sayfası yüklenirken DNS çözümlemesi kritik yoldadır (critical path); önbellekte bulunmayan her domain için ayrı bir çözümleme gerekir. Birden fazla üçüncü taraf kaynağı (analitik, font, CDN) barındıran sayfalarda bu çözümlemeler birikir. TTL değerleri ile DNS önbellekleme stratejisi ne kadar iyi yönetilirse yönetilsin, önbelleksiz sorgular için anycast latency doğrudan belirleyici olur.
Ağ kesintisi ve failover: anycast'in dayanıklılık boyutu
Anycast'in hız avantajının yanı sıra getirdiği dayanıklılık, çoğu zaman daha değerlidir. Unicast modelinde bir DNS sunucusu devre dışı kalırsa, o sunucuya bağımlı tüm sorgular yanıtsız kalır. Anycast modelinde ise düğüm BGP duyurusunu durduğunda trafik otomatik olarak bir sonraki en yakın düğüme yönlenir; bu geçiş BGP konverjans süresi kadar kısa sürer.
BGP konverjansı genellikle birkaç saniye ile birkaç dakika arasında tamamlanır. Bu süre ağ büyüklüğüne ve konfigürasyona göre değişir. Büyük DNS sağlayıcıları bu geçişi hızlandırmak için özel BGP tuning parametreleri kullanır. Kullanıcı açısından bakıldığında, kısa bir timeout yaşanabilir ama sistem kendiliğinden toparlar; müdahale gerektirmez.
Anycast failover, DNS sorgularını korur ama veri tutarlılığını garanti etmez. Anycast düğümleri arasındaki zone verisi senkronizasyonu ayrı bir altyapı gerektirir. Bir düğüm güncel olmayan zone verisi sunuyorsa, o düğüme yönlendirilen sorgular eski kayıtları döndürebilir. Bu nedenle anycast DNS sağlayıcıları, arka planda zone transfer veya push mekanizmaları kullanarak düğümler arası tutarlılığı sağlar. Sağlayıcı seçerken bu senkronizasyon gecikmesini sorgulamak yerinde olur.
DDoS saldırıları söz konusu olduğunda anycast başka bir avantaj sunar. Belirli bir IP adresini hedef alan bir saldırı, trafik anycast üzerinden dağıtıldığı için otomatik olarak tüm düğümlere dağılır. Hiçbir tek düğüm saldırının tüm yükünü taşımaz. Bu dağıtım, volumetrik saldırılara karşı doğal bir yük dengeleme etkisi yaratır ve saldırının yoğunlaşmasını engeller.
DNS sağlayıcılarında anycast uygulaması: ne zaman anlamlıdır
Anycast, her DNS yapılandırması için eşit ölçüde anlamlı değildir. Kullanım senaryosu ve hedef kitle bu tekniğin değerini doğrudan belirler.
Tek bir coğrafi bölgede hizmet veren, kullanıcı tabanı yerel olan bir web sitesi için anycast'in latency avantajı sınırlıdır. Yerel ISP'ler zaten yakın DNS sunucularına erişebilir ve fark ihmal edilebilir düzeyde kalır. Öte yandan küresel kullanıcı tabanı olan bir SaaS ürünü, e-ticaret platformu ya da API servisi için anycast, ölçülebilir iyileştirmeler sağlar.
Büyük DNS sağlayıcılarının çoğu — Cloudflare DNS, AWS Route 53, NS1, Google Cloud DNS — anycast altyapısı üzerinde çalışır. Bu sağlayıcılardan birini kullandığınızda anycast'ten otomatik olarak yararlanırsınız; ayrı bir yapılandırma gerekmez. Cloudflare DNS kurulumunda domain'i ekledikten sonra tüm sorgular Cloudflare'in anycast ağı üzerinden yanıtlanmaya başlar.
Kendi yetkili nameserver'ınızı işletiyorsanız anycast'i kendiniz uygulamak önemli bir altyapı yatırımı gerektirir: birden fazla veri merkezinde sunucu, her birinde BGP bağlantısı ve AS numarası, IP bloğu sahipliği ve sürekli izleme. Bu nedenle anycast genellikle DNS sağlayıcısı seçimiyle birlikte gelir; kendi altyapınızda uygulamak yalnızca büyük ölçekli operasyonlar için ekonomik anlam taşır.
Anycast'in sağladığı avantajları değerlendirmek için DNS sorgu sürelerini düzenli olarak ölçmek gerekir. dig komutunun +stats parametresi sorgu süresini milisaniye cinsinden gösterir; farklı coğrafi konumlardan yapılan ölçümler, mevcut DNS altyapınızın hangi bölgelerde yavaş kaldığını ortaya çıkarır. Bu veriler, anycast destekli bir sağlayıcıya geçiş kararını somut bir zemine oturtmanızı sağlar.