DNS forwarder (DNS yönlendirici), istemciden aldığı sorguyu çözümlemesi için başka bir DNS sunucusuna iletir. Recursive resolver (özyinelemeli DNS çözümleyicisi), istemci adına tam DNS yanıtını bulmayı üstlenir; bunu DNS hiyerarşisini kendisi izleyerek veya sorguyu başka bir DNS sunucusuna ileterek yapabilir.

Bir recursive resolver, forwarding denilen sorgu iletme yöntemini de kullanabilir. Asıl ayrım, önbellekte yanıt bulunmadığında sorguyu yapılandırılmış üst DNS sunucusuna iletmek ile DNS hiyerarşisindeki yönlendirmeleri doğrudan izlemek arasındadır. Bu iki yöntem aynı yazılımda, sorgulanan alan adına göre birlikte kullanılabilir.

DNS Forwarder ve Recursive Resolver Sorguyu Nasıl İşler?

İstemci açısından her iki bileşen de benzer görünebilir: cihaz bir alan adı için sorgu gönderir ve DNS yanıtı alır. Mimari fark, yerel önbellekte geçerli bir yanıt bulunmadığında ve dış DNS kaynaklarına başvurulması gerektiğinde belirginleşir.

DNS Forwarder Sorguyu Üst DNS Sunucusuna İletir

DNS forwarder, istemciden aldığı sorguyu önce kendi önbelleğinde veya kullanabildiği yerel verilerde arayabilir. Geçerli bir yanıt bulursa dışarıya yeni sorgu göndermeden istemciye yanıt verebilir.

Yanıt önbellekte yoksa DNS forwarder sorguyu önceden yapılandırılmış bir üst DNS sunucusuna gönderir. Üst DNS sunucusundan dönen yanıtı alır, gerektiğinde önbelleğine kaydeder ve istemciye aktarır.

Bu rolde DNS forwarder genellikle kök sunucular, üst düzey alan adı sunucuları ve alan adının yetkili DNS sunucuları arasındaki çözümleme zincirini kendisi yürütmez. Yeni sorguların sonucunu üst DNS sunucusundan alır; bu sunucu yanıtı kendi önbelleğinden verebilir, sorguyu kendisi çözebilir veya başka bir üst DNS sunucusuna iletebilir.

Forwarding, bir ağ paketini değişiklik yapmadan başka bir adrese geçirmekten ibaret değildir. DNS forwarder sorguyu kabul eder, kendi önbellek ve politika kurallarını uygulayabilir ve üst DNS sunucusuna ayrı bir DNS sorgusu gönderir.

Recursive Resolver Yetkili DNS Yanıtına Nasıl Ulaşır?

Recursive resolver istemci adına tam DNS yanıtını bulur; çözümleme tamamlanamazsa hata durumunu bildirir. Forwarding kullanmıyorsa ve önbelleğinde kullanılabilir bir sonuç yoksa DNS hiyerarşisindeki ilgili sunuculara başvurur.

Recursive resolver gerektiğinde kök sunuculardan başlayabilir, üst düzey alan adı sunucularının yönlendirmelerini izleyebilir ve son olarak sorgulanan alan adı için yetkili DNS sunucusuna ulaşabilir. Ancak önbelleğinde geçerli yönlendirmeler veya kayıtlar varsa zincirin tamamını her seferinde yeniden izlemesi gerekmez.

Recursive resolver, DNS hiyerarşisini kendisi izlerken dış DNS sunucularına iterative (yinelemeli) sorgular gönderir. Buradaki recursive terimi, hizmetin istemci adına tam sonucu bulduğunu anlatır. Kök, üst düzey alan adı ve diğer yetkili DNS sunucuları, sorguya göre sorumlu oldukları kaydı veya bir sonraki sunucuya yönlendirmeyi verir; çözümleme zincirini recursive resolver izler.

İstemciye ara yönlendirmelerin tamamı verilmez. Recursive resolver sonuçta istenen DNS kaydını, alan adının ya da istenen kayıt türünün bulunmadığını belirten olumsuz yanıtı veya çözümlemenin tamamlanamadığını gösteren hata durumunu döndürür.

Önbellek İki Rolde Nasıl Kullanılır?

Önbellek, DNS forwarder ile recursive resolver arasındaki ayırıcı özellik değildir. Her iki bileşen de daha önce alınmış yanıtları önbellekte saklayabilir ve sonraki istemcilere yeniden sunabilir. TTL değeri, bir kaydın normalde kaç saniye saklanabileceğini belirtir; yazılım kaydı daha erken de kaldırabilir.

DNS Forwarder ile Önbellek Kullanımı

Bir DNS forwarder, üst DNS sunucusundan aldığı yanıtı yerel önbelleğine kaydedebilir. Aynı sorgu geçerlilik süresi dolmadan tekrar gelirse üst DNS sunucusuna yeniden başvurmadan yanıt verebilir.

Bu davranış, üst DNS sunucusuna gönderilen sorgu sayısını ve tekrar sorgularındaki gecikmeyi azaltabilir. Ancak önbellekte bulunmayan yeni bir alan adı sorulduğunda DNS forwarder yine yapılandırılmış üst DNS sunucusuna başvurur.

Recursive Resolver ile Önbellek Kullanımı

Recursive resolver, çözümleme sırasında edindiği nihai kayıtların yanında yönlendirme için kullandığı DNS bilgilerini de önbelleğinde tutabilir. Böylece sonraki sorgularda her zaman kök sunucudan başlaması gerekmez.

Örneğin recursive resolver, ilgili üst düzey alan adı veya yetkili DNS sunucusu için geçerli yönlendirme ve adres bilgilerini önbelleğinde tutuyorsa çözümlemeye zincirin daha ileri bir noktasından devam edebilir. Süre dolduktan sonra bu bilgiye yeniden ihtiyaç duyulursa recursive resolver güncel bir yanıt arar.

Çok sayıda istemcinin kullandığı ortak önbellek, recursive resolver sunucularındaki tekrar sorgularını azaltır. Bazı recursive resolver hizmetleri yetkili DNS sunucusuna ulaşılamadığında süresi dolmuş veriyi sınırlı bir süre daha sunabilir. Önbelleğin varlığı kayıtların süresiz kullanılacağı anlamına gelmez.

Olumsuz DNS Yanıtları da Önbelleğe Alınabilir

DNS önbelleği yalnız bulunan kayıtları saklamaz. Alan adının bulunmadığını belirten NXDOMAIN yanıtı ile alan adı var olduğu halde istenen kayıt türünün bulunmadığını gösteren NODATA yanıtı, yetkili yanıttaki SOA kaydına göre belirlenen süre boyunca saklanabilir. Bu süre, SOA kaydının TTL değeri ile MINIMUM alanındaki değerin küçük olanından alınır; DNS yazılımı daha düşük bir üst sınır da uygulayabilir.

Olumsuz önbellekleme, var olmayan bir ad için aynı sorgunun sürekli olarak yetkili DNS sunucularına gönderilmesini önler. Böylece hem recursive resolver hizmetinin hem de yetkili DNS sunucularının gereksiz sorgu yükü azalır.

Recursive resolver olumsuz sonucu DNS hiyerarşisinden elde ederek önbelleğe alabilir. DNS forwarder ise üst DNS sunucusundan aldığı aynı sonucu kendi önbelleğinde saklayabilir. Önbelleğin bulunması, yazılımın DNS hiyerarşisini kendisinin izlediğini göstermez.

Olumsuz yanıtın önbellekte kalması, sonradan eklenen bir DNS kaydının bazı istemcilerde hemen görünmemesine neden olabilir. Olumsuz yanıtın önbellek süresi dolduğunda recursive resolver yeni sorgu göndererek güncel durumu öğrenebilir.

Forwarder ve Recursive Resolver Farklı Kesintilerden Etkilenir

Yalnız iletme yapacak şekilde yapılandırılmış DNS forwarder, önbelleğinde bulamadığı sorguları tamamlamak için üst DNS sunucusuna ulaşmalıdır. Üst DNS sunucusuna erişilemiyorsa forwarder bazı geçerli önbellek kayıtlarını sunabilir, ancak yeni sorguları tamamlayamayabilir.

Birden fazla üst DNS sunucusu tanımladıysanız yazılım başka bir sunucuyu deneyebilir. Bazı yazılımlar, yapılandırma izin veriyorsa üst sunucudan yanıt alamayınca DNS hiyerarşisini kendileri izlemeyi de deneyebilir. Yalnız iletmeye izin verilen yapılandırmada bu geçiş yapılmaz; davranış yazılım ve ayarlara bağlıdır.

DNS hiyerarşisini doğrudan izleyen recursive resolver tek bir zorunlu üst DNS sunucusuna bağlı değildir. Buna karşılık kök sunuculara, üst düzey alan adı sunucularına veya yetkili DNS sunucularına ulaşamaması, ağ bağlantısındaki bir sorun ya da kendi çözümleme işlevindeki hata belirli sorguların başarısız olmasına yol açabilir.

Bu yüzden iki model farklı kesintilerden etkilenir. Çok sayıda yerel forwarder aynı merkezi recursive resolver hizmetine bağlıysa merkezdeki bir kesinti çok sayıda istemciyi etkileyebilir. Bağımsız recursive resolver hizmetinde ise sorun yerel hizmetten, dış DNS erişiminden veya belirli bir alan adının yetkili DNS sunucularından kaynaklanabilir.

DNS Politikasını ve Hizmeti Kim Yönetir?

DNS forwarder kullanmak, DNS çözümleme sorumluluğunu bir DNS sağlayıcısına veya merkezi DNS ekibine bırakmak anlamına gelebilir. Üst DNS sunucusunun önbellek davranışı, hata yanıtları ve uyguladığı DNS politikaları yerel istemcilerin aldığı sonucu etkileyebilir.

Yerel DNS forwarder da kendi önbelleğini veya politikasını uygulayabilir. Bu nedenle istemci ile yetkili DNS sunucusu arasında birden fazla DNS bileşeni varsa sorgu ve yanıt bu bileşenlerin tamamından geçebilir.

DNS hiyerarşisini doğrudan izleyen recursive resolver işleten kurum, çözümleme süreci, yerel önbellek ve recursive resolver politikası üzerinde daha doğrudan denetime sahip olur. Buna karşılık yazılımın çalıştırılması, güncellenmesi, dış DNS erişimi ve hizmet sürekliliği de aynı kurumun sorumluluğunda kalır.

Forwarder veya recursive resolver etiketi tek başına bir güvenlik özelliği değildir. DNSSEC doğrulamasını, sorgulara uygulanan erişim kurallarını ve kayıtların nasıl yönetildiğini ayrıca kontrol edin.

Her iki rol de yetkili DNS sunucusundan farklıdır. Bir bileşenin alan adı kayıtlarını önbelleğinde tutması veya istemcilere yanıt vermesi, o alan adı için yetkili DNS verisini yayımladığı anlamına gelmez.

DNS Forwarder ile Recursive Resolver Aynı Sistemde Çalışabilir

DNS forwarder ve recursive resolver rollerinin iki ayrı sunucuda çalışması gerekmez. Tek bir DNS yazılımı, belirli sorguları üst DNS sunucusuna iletirken diğer sorgular için çözümleme zincirini kendisi yürütebilir.

Örneğin bir kurum, kendi iç alan adlarına ilişkin sorguları belirli bir kurumsal DNS sunucusuna iletirken genel internet alan adlarını yerel recursive resolver hizmetiyle çözebilir. Başka bir yapılandırmada ise genel sorgular merkezi bir DNS sunucusuna iletilirken belirli alan adları için hiyerarşi doğrudan izlenebilir. Farklı alan adı gruplarını farklı üst DNS sunucularına göndermek de mümkündür; bu son örnekte iki grup için de forwarding kullanılır.

Bu nedenle yalnızca ürün adına veya yönetim panelindeki genel tanıma bakmayın. Rolü belirlemek için önbellekte yanıt yokken yazılımın o sorguyu nasıl işlediğini inceleyin.

Birden fazla forwarder art arda da kullanılabilir. İlk DNS forwarder sorguyu başka bir DNS forwarder hizmetine, o bileşen de recursive resolver hizmetine gönderebilir. Böyle bir yapıda her bileşenin hata yanıtı, önbelleği ve politikası sonuca yansıyabilir.

Forwarder ve Recursive Resolver Nerelerde Kullanılır?

Hangi rolün uygun olduğu ağın büyüklüğüne, merkezi yönetim ihtiyacına ve çözümlemeyi hangi tarafın üstleneceğine bağlıdır. Tek bir mimari her ortamda daha iyi değildir.

Ev ve Küçük Ofis Ağları

Ev modemleri ve ağ yönlendiricileri çoğu durumda cihazlardan gelen DNS sorgularını kabul ederek internet servis sağlayıcısının DNS sunucusuna veya kullanıcının seçtiği başka bir DNS sunucusuna iletir. Modem veya ağ yönlendiricisi yerel önbellek kullanabilse de bu durum DNS hiyerarşisini doğrudan izlediğini kanıtlamaz.

Bu yapıda bilgisayarlar, telefonlar ve diğer istemciler yalnız modem veya yönlendiricinin DNS adresini görebilir. Asıl recursive çözümleme modemden sonraki recursive resolver hizmetinde gerçekleşebilir.

Kurumsal Ağlar

Bir kurum şube ağlarında forwarder, merkezde ise recursive resolver çalıştırabilir. Şubelerdeki sorgular merkezi recursive resolver hizmetine aktarıldığında ortak önbellek ve DNS politikası tek noktada uygulanabilir.

Bu yaklaşım şube sistemlerinin dış DNS hiyerarşisine ayrı ayrı erişme ihtiyacını azaltır. Buna karşılık merkezi recursive resolver hizmetinin erişilebilirliği kritik hale gelir; bağlantı veya merkez hizmetindeki bir sorun, önbellekte bulunmayan sorguları birden fazla şubede etkileyebilir.

İnternet Servis Sağlayıcıları

İnternet servis sağlayıcısının müşterilere sunduğu recursive resolver hizmetleri DNS çözümlemesi yapabilir ve çok sayıda kullanıcıdan gelen sorgular için ortak önbellek kullanabilir. Müşterinin modemindeki DNS bileşeni ise bu merkezi recursive resolver hizmetlerine sorgu ileten bir forwarder olarak çalışabilir.

Bu yapıda müşterinin modemindeki DNS bileşeni sorguyu ilk karşılar; çözümleme zincirini internet servis sağlayıcısının DNS altyapısı yürütür. Gerçek davranış internet servis sağlayıcısının ve kullanılan cihazın yapılandırmasına bağlıdır.

DNS Forwarder ve Recursive Resolver Karşılaştırması

Aşağıdaki tablo, iki rolün temel özelliklerini yan yana gösterir. Karma yapılandırmalarda tek bir sistem iki sütundaki davranışlardan bazılarını birlikte gösterebilir.

ÖzellikDNS ForwarderDNS Hiyerarşisini Doğrudan İzleyen Recursive Resolver
Temel görevSorguyu seçilmiş üst DNS sunucusuna iletmekİstemci adına tam DNS sonucunu elde etmek
Önbellekte yanıt bulunmadığındaYapılandırılmış üst DNS sunucusuna sorgu gönderirGerekli DNS yönlendirmelerini kendisi izler
Yetkili DNS sunucularıyla iletişimSorguyu üst sunucuya iletirken doğrudan iletişim kurması gerekmezÇözümleme sırasında yetkili DNS sunucularına başvurabilir
Önbellek kullanımıÜst DNS sunucusundan aldığı sonuçları saklayabilirÇözümleme sırasında edindiği kayıtları ve yönlendirmeleri saklayabilir
Olumsuz önbellekÜst DNS sunucusundan aldığı olumsuz yanıtları saklayabilirYetkili DNS sunucusundan aldığı olumsuz yanıtları saklayabilir
Temel bağımlılıkYapılandırılmış üst DNS sunucusuDNS hiyerarşisine erişim ve çözümleme hizmetinin çalışması
Politika yönetimiYerel politikaların yanı sıra üst DNS sunucusunun politikalarından da etkilenebilirRecursive resolver'ı yöneten ekip politikayı doğrudan belirleyebilir
Yetkili DNS sunucusu rolüSorgu iletmesi, sistemi yetkili DNS sunucusu yapmazRecursive çözümleme yapması, sistemi yetkili DNS sunucusu yapmaz

DNS Proxy Terimi Ürünün Nasıl Çalıştığını Tek Başına Açıklamaz

DNS proxy ifadesi, ürünler arasında aynı teknik davranışı belirtmeyebilir. Bazı ürünler yalnız sorguları üst DNS sunucusuna ileten bileşene DNS proxy derken bazıları önbellek, filtreleme, yerel yanıt veya farklı DNS işleme katmanları arasında aracılık yapan daha geniş bir işlevi bu adla sunabilir.

Bir üründe DNS proxy ifadesini görürseniz gerçek sorgu akışına bakın. Önbellekte yanıt yokken sorgu yapılandırılmış bir üst DNS sunucusuna gidiyorsa bileşen forwarder gibi çalışır. DNS hiyerarşisindeki yönlendirmeleri izleyip tam yanıtı kendisi buluyorsa recursive resolver görevini üstlenir.

DNS forwarder, belirli hizmetlere erişim için DNS yanıtlarını değiştiren Smart DNS ile aynı kavram değildir. Tarayıcıyı başka bir URL adresine göndermek veya konuma göre DNS yanıtı seçen GeoDNS kullanmak da burada karşılaştırılan sorgu iletme ve çözümleme işlemlerinden farklıdır.

Yalnız yanıt hızına veya yerel sunucunun yanıt vermesine bakmak çalışma biçimini ayırmaya yetmez. DNS yazılımının yapılandırmasını ve ağdaki sorguların hangi sunuculara gittiğini birlikte kontrol edin; aynı yazılım farklı alan adları için farklı yöntemler kullanabilir.