DNS bölge dosyalarının neden NS kayıtları gerektirdiğine ilişkin açıklama


18

Bu soru ilk başta burada sorulmuştur: DNS bölge dosyaları neden NS kayıtları gerektirir?

Özetlemek gerekirse: "Kayıt şirketime gittiğimde ve example.com'u satın aldığımda kayıt şirketime isim sunucularımın ns1.example.org ve ns2.example.org olduğunu söyleyeceğim".

Ama lütfen birisi aşağıdakileri açıklığa kavuşturabilir:

Kayıttan sonra .com kayıt defterinde, example.com'un IP adresini bulmak için bir çözümleyiciye ns1.example.org veya ns2.example.org adresini ziyaret etmesi gerektiğini bildiren bir kayıt olacaktır. IP adresi ns1.example.org üzerindeki bir bölge dosyasındaki A kaydında bulunur ve ns2.example.org üzerinde aynı kopyası vardır.

Ancak, bu dosyanın içinde, ad sunucuları olarak ns1.example.org ve ns2.example.org'u listeleyen 2 NS kaydı da olmalıdır. Ancak zaten bu sunuculardan birinde olduğumuz için, bu çoğaltılmış bilgi gibi görünüyor.

Aslen soruya verilen cevap, bölge dosyasında listelenen ad sunucularının "yetkili" olduğunu söyledi. Ad sunucuları eşleşmezse, yetkili ad sunucuları öncelik kazanacaktır. Hepsi çok iyi ve iyi, ancak çözümleyici , .com kayıt defterinde listelenen ad sunucularını kullanarak ad sunucusuna ulaştı ve ad sunucusu eşleşmezse, çözümleyici yanlış ad sunucusundaki bölge dosyasını arar ve onu bulamıyorum.

Veya .com kayıt defterinin bölge dosyası ns kaydından ad sunucusu bilgilerini ayıklar mı? (Ama ns bölge dosyasını kaydetmek değiştirirseniz o zaman herhalde olmadan kayıt söylüyorum, o zaman bakmak nereye bilmenin bir yolu olurdu.)

Teşekkürler

Yanıtlar:


23

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.. comSunucular 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 digve +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.combaşlangıç sorgusu a.root-servers.net:

$ dig unix.stackexchange.com. A @a.root-servers.net. +norec

flagsBölüm başına sayıların yanı sıra yakından bakın. qrSorgu Yanıtıdır ve aaYetkili Yanıttır. Yalnızca comsunuculara 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.comve 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ü aabayrak 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.


Bu ayrıntılı cevap için çok teşekkür ederim. Delegasyon kaydının çözümleyiciyi ns4.serverfault.com'a gönderdiğini düşünün. Bu, bölge dosyasının NS kayıtlarında listelenmez. Çözümleyici uyumsuzluğu ve geri izi fark ediyor mu? (topal bir heyet)? Sanırım bu soruya yalvarır, neden ns4.serverfault.com olur. bölge dosyasında listelenmiyorsa yetki kaydı olarak listelenir mi?
Lars

@Lars Hayır, ns4.serverfault.com yine de yetkili olacaktır; otoriterlik (bir kelime bile mi?) söz konusu sunucunun NS kayıtlarında adlandırılıp adlandırılmamasından bağımsız olarak bölgenin kendisinde veya yetki alanında bağımsızdır. Temsilci atanmış bir sunucu yetkili olmayan bir şekilde yanıt verirse (yani, aayanıtta bayrak ayarlanmamışsa) yalnızca topal bir temsildir .
CVn

1

.Com kayıt defteri bir IP adresi olarak ad sunucularınızın bulunduğu "tutkal kaydı" dır. Çözümleyici, DNS sunucunuzun "kimliğini" bilmenin bir yolu yoktur, bu nedenle sayıların eşleştiğinden emin olmak için NS kaydını kullanır.

DNS İsteği -> .com kayıt defteri (ip xxxx) -> DNS (NS xxxx) eşleşir, çözümlenir.

Eşleşmez veya mevcut değilse, alan için yetkili olmayan bir yanıttır.


Teşekkürler ama hala biraz kafam karıştı. Çözümleyici, bu IP adresinde depolanan bölge dosyasına gitmek için .com kayıt defterindeki tutkal kaydındaki IP adresini kullanır. Artık A kaydını alabilir. Neden bu ad sunucusu IP'sinin bölge dosyasındaki NS kaydıyla eşleşip eşleşmediğini denetlemesi gerekiyor?
Lars

Böylece doğru yere baktığını bilir. Örneğin, A kayıtları farklı bir sunucuda bulunan bir alt alan adınız varsa , NS kayıtları çözümleyiciye nereye bakması gerektiğini söyler. Ekmek kırıntıları gibi.
Nathan C
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.