Biraz parçalayalım.
TLD bölgesindeki (örneğin, example.com NS ...
içindeki com
) NS kayıtları temsilci kayıtlarıdır.
TLD bölgesindeki (örneğin, ns1.example.com A ...
içindeki com
) A ve AAAA kayıtları tutkal kayıtlarıdır.
Bölgedeki NS kayıtları (yani, example.com NS ...
içinde example.com
) otorite kayıtlarıdır.
Bölgedeki ( ns1.example.com A ...
in example.com
) A ve AAAA kayıtları düz ve basit adres kayıtlarıdır.
Bir (yinelemeli) çözümleyici sizin bölgenin verilerinin hiçbir önbellek ve (ad çözümleme işlemi bootstrap için kullanılır) sadece kök bölgesi önbelleği ile dışarı başladığında, ilk gidecek .
, sonra com.
. com
Sunucular bir yanıt vereceğini yetkilisi bölümü yanıtı temelde diyor "Bilmiyorum, ama biliyor mu birisi için buraya bak" için sunucularla aynı, .
yaklaşık do com
. Bu sorgu yanıtı yetkili değildir ve doldurulmuş bir yanıt bölümü içermez. Ayrıca , sözde ek olarakbelirli bir sunucunun bildiği herhangi bir ana bilgisayar adı için adres eşlemelerini veren bölüm (yapıştırıcı kayıtlarından veya özyinelemeli çözümleyiciler durumunda, önceden önbelleğe alınmış verilerden). Çözümleyici bu temsilci yanıtını alacak, gerekirse bir NS kaydının ana bilgisayar adını çözümleyecek ve yetkinin verildiği DNS sunucusunu sorgulamaya devam edecektir. Derin bir temsilci hiyerarşiniz varsa bu işlem birkaç kez tekrarlanabilir, ancak sonunda "yetkili yanıt" bayrağı ayarlanmış bir sorgu yanıtıyla sonuçlanır .
Çözümleyicinin (genellikle, umarım) çözülmekte olan ana bilgisayar adını parça parça sormaya çalışmayacağını, ancak tamamını bildiği "en iyi" sunucuya göndereceğini unutmamak önemlidir. Internet'teki ortalama yetkili ad sunucusu geçerli DNS adlarının büyük çoğunluğu için yetkili olmadığından, yanıt başka bir DNS sunucusuna işaret eden yetkili olmayan bir temsilci yanıtı olacaktır.
Artık bir sunucu, bir bölge için yetkili olmak üzere herhangi bir yere yetki veya yetki kayıtlarında adlandırılmak zorunda değildir. Örneğin, özel bir ana sunucu durumunu düşünün; bu durumda, yalnızca bölge için bağımlı DNS sunucularının yöneticilerinin farkında olduğu yetkili bir DNS sunucusu vardır. Bir DNS sunucusu, bir mekanizma aracılığıyla, söz konusu bölge hakkında tam ve doğru bilgiye sahipse, bir bölge için yetkilidir. Normalde yetkili bir DNS sunucusu, örneğin, yapılandırılmış ana sunucu (lar) a SOA kaydındaki son kullanma süresi olarak tanımlanan süre içinde erişilemezse yetkili olmayabilir.
Sadece yetkili cevaplar doğru sorgu yanıtları olarak düşünülmelidir; geri kalan her şey ya bir delegasyon ya da bir tür hatadır. Yetkili olmayan bir sunucuya delegasyona "topal" delegasyon adı verilir ve çözümleyicinin bir adımı geri izlemesi ve adlandırılmış başka bir DNS sunucusunu denemesi gerektiği anlamına gelir. Temsilcide yetkili bir erişilebilir ad sunucusu yoksa, ad çözümlemesi başarısız olur (aksi takdirde normalden daha yavaş olacaktır).
Tüm bunlar önemlidir, çünkü yetkili olmayan veriler önbelleğe alınmamalıdır . Yetkili olmayan sunucunun tam resmi olmadığından nasıl olabilir? Bu yüzden yetkili sunucu, kendi takdirine göre, "kimin yetkili olması gerektiği ve ne için?" Sorusuna cevap verebilmelidir. Bu, bölge içi NS kayıtları tarafından sağlanan bilgilerdir.
Bunun aslında ciddi bir fark yaratabileceği, öncelikle tek bir bölge içindeki (muhtemelen özellikle dinamik dinamik IP aralıkları için ters DNS bölgelerinde oldukça yaygın olan) veya ad sunucuları listesinin farklı olduğu durumlarda oldukça yaygın olan birkaç durum vardır. ana bölge ve söz konusu bölge (büyük olasılıkla bir hatadır, ancak bilerek de yapılabilir).
Biraz daha ayrıntılı olarak bu eserler kullanarak nasıl görebilirsiniz dig
ve +norec
(do not istek tekrarlama) ve @
sunucu belirteci özellikleri. Aşağıda gerçek bir çözümleyen DNS sunucusunun nasıl çalıştığı gösterilmektedir. A kaydı (lar) için unix.stackexchange.com
başlangıç sorgusu a.root-servers.net
:
$ dig unix.stackexchange.com. A @a.root-servers.net. +norec
flags
Bölüm başına sayıların yanı sıra yakından bakın. qr
Sorgu Yanıtıdır ve aa
Yetkili Yanıttır. Yalnızca com
sunuculara yetki verildiğine dikkat edin . Bu yetkilendirmeyi el ile izleyin (gerçek hayatta özyinelemeli bir çözümleyici, varsa ek bölümdeki IP adresini kullanır veya temsilci yanıtında IP sağlanmadıysa, adlandırılmış ad sunucularından birinin ayrı bir ad çözümlemesini başlatır, ancak bu bölümü atlayın ve işletim sisteminin normal örneğine kısaca bakın.):
$ dig unix.stackexchange.com. A @a.gtld-servers.net. +norec
Şimdi bunun stackexchange.com
(diğerleri arasında) yetkilendirildiğini görüyorsunuz ns1.serverfault.com
ve hala yetkili bir yanıt almıyorsunuz. Heyeti tekrar takip edin:
$ dig unix.stackexchange.com. A @ns1.serverfault.com. +norec
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35713
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
;; QUESTION SECTION:
;unix.stackexchange.com. IN A
;; ANSWER SECTION:
unix.stackexchange.com. 300 IN A 198.252.206.16
Bingo! Bir yanıt aldık, çünkü aa
bayrak ayarlandı ve tam olarak bulmayı umduğumuz gibi bir IP adresi içeriyor. Bir kenara, en azından bu yazıyı yazdığımda, delege edilen ve listelenen yetki ad sunucularının listelerinin farklı olduğunu ve ikisinin aynı olması gerekmediğini gösteren kayda değerdir. Yukarıda örneklediğim şey, herhangi bir çözümleyici tarafından yapılan çalışmadır, ancak herhangi bir pratik çözümleyici, yanıtları önbellekle önbelleğe alır, böylece her seferinde kök sunuculara çarpması gerekmez.
Yukarıdaki örnekten de görebileceğiniz gibi, delegasyon ve tutkal kayıtları bölgenin kendisindeki yetki ve adres kayıtlarından farklı bir amaca hizmet eder.
Önbelleğe alma ve çözümleme ad sunucusu, genellikle önbellek zehirlenmesine karşı korumak için döndürülen veriler üzerinde bazı sağlık kontrolleri de yapar. Örneğin , yetkili sunucuları adlandıran bir yanıtın com
, zaten bir üst bölge tarafından yetkilendirilmiş olarak adlandırılmış olandan başka bir kaynaktan önbelleğe alınmasını reddedebilir com
. Ayrıntılar sunucuya bağımlıdır, ancak amaç, Internet'teki herhangi bir rasgele ad sunucusunun "yetki alanı" altında resmen yetkilendirilmemiş herhangi bir şey için temsilci kayıtlarını geçersiz kılmasına izin veren ahır kapısını açarken mümkün olduğunca önbelleğe almaktır.