DNS çözümleyicisi nedir, hangisini kullanıyorsunuz?
Bir DNS çözümleyicisi, cihazınızın bir isim için IP adresine ihtiyaç duyduğunda önce sorduğu hizmettir, ve tek bir sorgu genellikle üç farklı rolden geçer: kendi makinenizdeki bir stub çözümleyici, gerçek aramayı yapan bir özyinelemeli çözümleyici, ve gerçek yanıtı tutan yetkili sunucular. Çoğu insan yalnızca ilkini hiç yapılandırır ve diğer ikisini asla doğrudan görmez.
Cihazınız bir isim aradığında ne olur?
İşletim sisteminiz interneti bir isim için kendisi taramaz. İsteği, hiç ad sunucusu olmayan, stub çözümleyici adı verilen küçük bir yazılım parçasına devreder. RFC 8499 bunu "tüm çözümlemeyi kendisi gerçekleştiremeyen" bir çözümleyici olarak tanımlar ve gerçek işi yapması için bir özyinelemeli çözümleyiciye bağımlıdır. Stub çözümleyicinin işi, sorgunuzu ağ ayarlarınızda yapılandırılmış olan sunucuya göndermek ve yanıtı, veya yakın zamandaki bir yanıtın önbelleğe alınmış bir kopyasını, geri vermektir.
Stub çözümleyici, özyinelemeli çözümleyici, yetkili sunucu: fark nedir?
Her aramada üç rol ortaya çıkar, ve aynı fiziksel sunucu bunlardan birden fazlasını oynayabilir:
- Stub çözümleyici. Cihazınızda çalışır, sorguları iletir, küçük bir önbellek tutar, ve tek başına bir ismi çözemez.
- Özyinelemeli çözümleyici. RFC 8499’a göre, "özyineleme modunda çalışan bir çözümleyici", yani kaç sunucu gerekirse gereksin bir yanıtın peşinden gitme işinin tamamını yapar, sonra sonucu önbelleğe alıp geri döndürür. Bu, İSS’nizin veya genel bir DNS hizmetinin doldurduğu roldür.
- Yetkili sunucu. RFC 8499, bunu "bir DNS bölgesinin içeriğini yerel bilgiden bilen ve bu yüzden başka sunuculara sormaya gerek kalmadan o bölge hakkındaki sorguları yanıtlayabilen" bir sunucu olarak tanımlar. Bu, alan adının kendi DNS sağlayıcısının çalıştırdığı sunucudur, ve yanıtı, başka kimsenin kopyalamadığı yanıttır.
Tam bir yanıt yerine bir yönlendirmeyle yanıt veren bir sunucu yinelemeli davranıyordur; nihai bir yanıta veya kesin bir hataya ulaşana kadar çalışmaya devam eden bir sunucu ise özyinelemeli davranıyordur, ki "özyinelemeli çözümleyici" adının anlamı da budur.
Bir aramanın izlediği yol: kök, TLD ve yetkili sunucu adımları
Hiçbir yerde hiçbir şeyin önbelleğe alınmadığı soğuk bir arama, sabit bir hiyerarşiyi izler. Özyinelemeli çözümleyici, IANA’nın a.root-servers.net’ten m.root-servers.net’e kadar listelediği on üç adlandırılmış kök sunucu kimliğinden birinde başlar ve ondan example.com’u sorar. Kök sunucu yanıtı bilmez; .com üst düzey alan adından sorumlu sunuculara bir yönlendirme döndürür. Çözümleyici onlardan birine sorar ve ikinci bir yönlendirme alır, bu sefer example.com’un kendisinin yetkili ad sunucularına, alan adının sahibinin yapılandırdığı sunuculara. Yalnızca bu son sunucu, başka bir yere işaret etmek yerine gerçek bir yanıt verir. Özyinelemeli çözümleyici bunu önbelleğe alır ve stub çözümleyicinize geri verir, o da tarayıcınıza verir.
Yol üzerindeki bir önbellek yanıta zaten sahip olduğunda ilk adımdan sonraki her atlama atlanır, bu yüzden gündelik aramaların büyük çoğunluğu bir kök sunucuya hiç dokunmaz.
İSS çözümleyicisi ile genel çözümleyici: gerçekte ne değişir?
Cihazınızın varsayılan olarak kullandığı çözümleyici genellikle DHCP’den gelir, yönlendiriciniz veya İSS’niz tarafından verilir, ve neredeyse her zaman sizin adınıza tam aramalar yapan özyinelemeli bir çözümleyicidir. Sorgularınıza ne yaptığı, önbelleğinin ne kadar büyük olduğu, ve kaç konumdan çalıştığı, onu işleten kişi tarafından belirlenir ve sizin tarafınızdan görülemez.
Genel çözümleyiciler, cihazınızı bunun yerine yönlendirebileceğiniz bir alternatif olarak vardır: Google Public DNS 8.8.8.8’de, Cloudflare 1.1.1.1’de, ve Quad9 9.9.9.9’da çalışır. Her biri neyi günlüklediği ve ne kadar süre tuttuğu konusunda kendi politikasını yayınlar, her biri kendi anycast ağını çalıştırır, böylece aynı adres size en yakın konumdan yanıt verir, ve Quad9 ayrıca çözümleyici düzeyinde varsayılan olarak bilinen kötü amaçlı alan adlarını engeller, ki bir İSS çözümleyicisi tipik olarak bunu yapmaz. Bunların hiçbiri DNS’in kendisinin ne yapabileceğini değiştirmez: bir çözümleyici yalnızca bir aramanın nasıl yürütüldüğüne karar verir, bir alan adının kayıtlarının ne söylediğine değil.
Makineniz şu anda hangi çözümleyiciyi kullanıyor?
Gerçekte kullandığınız çözümleyici bir tahmin değil bir ayardır, ve her işletim sisteminin onu gösteren bir komutu vardır:
- Windows:
ipconfig /all, sorgulandıkları sırayla, her ağ adaptörü altında "DNS Servers"ı listeler. - macOS:
scutil --dns, her ağ hizmeti için geçerli olan ad sunucuları dahil, geçerli DNS yapılandırmasını bildirir. - systemd-resolved kullanan Linux:
resolvectl status, kendi kılavuzuna göre, "şu anda geçerli olan küresel ve bağlantı başına DNS ayarlarını" gösterir, yani hem yedek çözümleyiciyi hem de Wi-Fi veya bir VPN gibi belirli bir bağlantının onun yerine ne koyduğunu.
Bir VPN, bir kurumsal ağ, veya bir tarayıcının kendi güvenli DNS ayarı, işletim sistemi komutunun bildirdiğini değiştirmeden farklı bir çözümleyicinin yerine geçebilir, bu yüzden komutun yanıtı beklediğinizle eşleşmiyorsa, bakılacak ilk yer burasıdır.
Hangi çözümleyicinin bir sorguyu yanıtladığı, yalnızca onu alma hızını değil gördüğünüz sonucu da değiştirebilir: eski bir önbelleği, bölgesel bir kesintisi, veya kendi filtreleme politikası olan bir çözümleyici, yetkili sunucuların doğrudan söyleyeceğinden farklı bir şeyi geri verebilir. Karşılaştırmak için DNS sorgu aracıyla bir arama çalıştırın, veya çözümleyici farklı değil de yavaş yanıt veriyorsa, yavaş bir DNS sorgusu nasıl düzeltilir sayfası ölçmeyi ve değiştirmeyi ele alır. Hiç yanıt vermiyorsa, DNS server not responding sayfasıyla başlayın. Bunun altındaki önbellekleme davranışı için bir DNS önbelleğinin ne olduğuna bakın. HostTracker, 2004’ten beri web sitelerini izliyor, şimdi 158 şehirdeki 300’den fazla kontrol noktasından 500.000’den fazla siteyi izliyor, ve belirli bir IP adresi bekleyen bir kontrol farklı bir adres gördüğü anda e-posta, SMS, sesli arama, Slack, Telegram ve daha fazlasıyla uyarabilir.
Sık sorulan sorular
Yönlendiricim bir DNS çözümleyicisi mi?
Genellikle yalnızca sınırlı bir anlamda. Birçok ev yönlendiricisi küçük bir DNS yönlendiricisi çalıştırır: minik bir önbellekten yanıt verir, ama henüz önbelleğe alınmamış herhangi bir şey için sorguyu kendisi tam özyineleme yapmak yerine doğrudan İSS’nin çözümleyicisine iletir. RFC 2308, bu rolü bir yönlendirici (forwarder) olarak, "yetkili ad sunucusu zincirini doğrudan kullanmak yerine sorguları çözmek için kullanılan bir ad sunucusu" olarak tanımlar.
Genel bir çözümleyici kullanmak taramamı hızlandırır mı?
Bazen evet, bazen hayır. Sıcak bir önbelleği olan, size yakın bir çözümleyici, onu kimin işlettiğinden bağımsız olarak tek haneli milisaniyelerde yanıt verir. Asıl değişkenler, çözümleyicinin en yakın konumunun size ne kadar yakın olduğu ve önbelleğinin ne kadar sıcak olduğudur, marka adı değil.
Özyineleme ile yönlendirme arasındaki fark nedir?
Özyineleme yapan bir çözümleyici, kökü, TLD’yi ve yetkili sunucuları tek seferde bir atlama olacak şekilde kendisi sorgular ve nihai sonucu önbelleğe alır. Bunun yerine yönlendiren bir çözümleyici ise sorunun tamamını başka bir çözümleyiciye gönderir ve tam bir yanıt bekler, işi ve ne aradığınızın görünürlüğünü, akış yukarıdaki çözümleyicinin zaten önbelleğe aldığı her ne ise onunla takas ederek.
13 kök sunucunun tamamı 13 makinede mi çalışır?
Hayır. On üç adlandırılmış kök sunucu kimliği vardır, ama her biri dünya çapında birçok fiziksel makineden sunulur, bu yüzden bir sorgu her seferinde bir okyanusu geçmek yerine yakındaki bir kopyaya yönlendirilir.
Aynı ağdaki iki cihaz farklı çözümleyiciler kullanabilir mi?
Evet. Yönlendirici DHCP üzerinden bir varsayılan verir, ama herhangi bir cihaz bunu kendi ağ ayarlarında geçersiz kılabilir, ve bir VPN veya tarayıcının güvenli DNS ayarı bunun üzerine tekrar geçersiz kılabilir. Yukarıdaki komutlar her zaman o belirli cihazın o anda ne kullandığını gösterir, ağın ne amaçladığını değil.