DNS alan adının zirvesindeki NS kayıtlarının rolü nedir?


21
$ORIGIN example.com. ; not necessary, using this to self-document

$TTL 3600
@        IN     SOA   ns1.example.com. admin.example.com. (
                      1970010100 7200 1800 1209600 300)

@        IN     NS   ns1.example.com.
@        IN     NS   ns2.example.com.

@        IN     A    198.51.100.1
ns1      IN     A    198.51.100.2
ns2      IN     A    198.51.100.3

sub1     IN     NS   ns1.example.edu.

sub2     IN     NS   ns1.sub2
ns1.sub2 IN     A    203.0.113.1 ; inline glue record

Bir alan adının tepesinin altındaki NS kaydının rolü iyi anlaşılmıştır; bir alt alan adı yetkisini başka bir ad sunucusuna devretmek için vardır. Yukarıdaki bu örnekler için NS kayıtları içerecek sub1ve sub2. Bunlar, ad sunucusunun, etki alanı için kendisini yetkili saymadığı bölümlere yönlendirmeler yapmasına olanak tanır.

Bir alan adının tepesindeki NS kayıtlarının amacı ns1ve ns2bu durumda, internet tarafından genel olarak daha az anlaşılmış gibi görünmektedir. (Bütünsel olmayabilir) anlayışım şu şekildedir:

  1. Etki alanı için yetkili sunucuları belirlemek amacıyla DNS sunucularını önbelleğe alarak kullanılmazlar. Bu, kayıt şirketi düzeyinde tanımlanan ad sunucusu tutkalı tarafından ele alınır . Kayıt şirketi tutkal kayıtlarını oluşturmak için asla bu bilgileri kullanmaz.
  2. Onlar değil diğer ad sunucularını tüm alan adı için yetki kullanılır. ISC BIND gibi bir yazılımla bunu yapmaya çalışmak, ad sunucusu kendini bölge için yetkili saymaya devam edeceğinden, "beklenen" yönlendirme davranışı ile sonuçlanmaz.
  3. Ad sunucusu tarafından yetkili yanıtları ( AAbayrak kümesi) döndürüp döndürmeyeceğini belirlemek için kullanılmazlar ; bu davranış, yazılımın bölge için bir master veya slave olduğu söylenerek tanımlanır. Ad sunucusu yazılımlarının çoğu, yukarı akış tutkal kayıtlarının içerdiği bilgilere katılmayan apex NS kayıtlarına hizmet edecek ve bu da tanınmış DNS doğrulama web sitelerinin etki alanı için uyarılar üretmesine neden olacaktır.

Bu durumda ne kaldı? İnternetteki DNS sunucularını önbelleğe alarak tüketilmiyor gibi görünüyorsa neden bu bilgileri tanımlıyoruz?

Yanıtlar:


21

Alt kimlik

Apeks düzeyinde NS kayıtları, ana sunucu tarafından astlarını tanımlamak için kullanılır. Yetkili bir ad sunucusundaki veriler değiştiğinde, bunu DNS NOTIFYiletilerle ( RFC 1996 ) bu listedeki tüm akranlarına duyurur. Bu sunucular sırayla SOA(seri numarasını içeren) bir kayıt talebi ile geri arayacak ve o bölgenin daha yeni bir kopyasının kaldırılıp kaldırılmayacağına karar verecektir .

  • Bu iletileri NSbölümde listelenmeyen sunuculara göndermek mümkündür , ancak bu, sunucuya özgü yapılandırma yönergeleri gerektirir (ISC BIND also-notifyyönergesi gibi). Apex NS kayıtları, varsayılan bir yapılandırma altında bildirilecek temel sunucu listesini içerir.
  • İkincil sunucuların da bu NSkayıtlara dayanarak birbirlerine NOTIFY mesajları göndereceğini ve bu da genellikle kaydedilmiş reddedilmelere yol açacağını belirtmek gerekir . Bu, sunuculardan yalnızca ana oldukları oldukları bölgeler için bildirim göndermelerini (BIND:) bildirmeleri notify master;veya NSyapılandırmada açıkça tanımlanan bildirimler lehine temelli bildirimleri atlamaları talimatıyla devre dışı bırakılabilir . (Bağlanmaktadır: notify explicit;)

Yetkili tanım

Yukarıdaki soru bir yanılgı içeriyordu:

Etki alanı için yetkili sunucuları belirlemek amacıyla DNS sunucularını önbelleğe alarak kullanılmazlar. Bu, kayıt şirketi düzeyinde tanımlanan ad sunucusu tutkalı tarafından ele alınır. Kayıt şirketi tutkal kayıtlarını oluşturmak için asla bu bilgileri kullanmaz.

Bu, ulaşılması kolay bir sonuçtur, ancak doğru değildir. NSKayıtları ve uygulamalarda (örneğin kayıt kuruluşu hesabında tanımlanır olduğu gibi) tutkal kayıt verileri yetkili değildir. Yetkilinin devredildiği sunucularda bulunan verilerden "daha yetkili" olarak değerlendirilmemelerinin sebebi budur. Bu, yönlendirmelerin aa(Yetkili Cevap) bayrağının ayarlanmamış olmasıyla vurgulanmaktadır .

Örneklemek gerekirse:

$ dig @a.gtld-servers.net +norecurse +nocmd example.com. NS
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14021
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.                   IN      NS

;; AUTHORITY SECTION:
example.com.            172800  IN      NS      a.iana-servers.net.
example.com.            172800  IN      NS      b.iana-servers.net.

;; ADDITIONAL SECTION:
a.iana-servers.net.     172800  IN      A       199.43.135.53
a.iana-servers.net.     172800  IN      AAAA    2001:500:8f::53
b.iana-servers.net.     172800  IN      A       199.43.133.53
b.iana-servers.net.     172800  IN      AAAA    2001:500:8d::53

aaYukarıdaki cevap için bayrakların eksikliğine dikkat edin. Yönlendirmenin kendisi yetkili değildir. Öte yandan, sunucu varlığa ilişkin veriler atıfta olan yetkili.

$ dig @a.iana-servers.net +norecurse +nocmd example.com. NS
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2349
;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.                   IN      NS

;; ANSWER SECTION:
example.com.            86400   IN      NS      a.iana-servers.net.
example.com.            86400   IN      NS      b.iana-servers.net.

Bununla birlikte, bu ilişki, başvurunun üst tarafında tanımlanan NSyetkili olmayan kayıtlar olmadan bu kayıtların yetkili sürümleri hakkında bilgi edinmek mümkün olmadığından çok kafa karıştırıcı olabilir NS. Kabul etmezlerse ne olur?

  • Kısa cevap "tutarsız davranış" tır.
  • Uzun cevabı ad sunucularının başlangıçta saplama boş cache üzerinde yönlendirme (ve tutkal) kapalı her şeyi, ancak bu olacaktır NS, Ave AAAAbunlar yenilenir zaman kayıtlar sonunda değiştirilebilir. Yenilemeler, bu geçici kayıtlardaki TTL'lerin süresi dolduğunda veya birisi bu kayıtlar için açıkça yanıt istediğinde gerçekleşir.
    • Ave AAAAbölge dışı verilerin (yani bölge comdışındaki veriler için yapıştırıcıyı tanımlayan ad sunucuları comgibi example.net) kayıtlar kesinlikle yenilenecektir, çünkü bir ad sunucusunun bu tür bilgilerin yetkili bir kaynağı olarak görülmemesi gerektiği iyi anlaşılmış bir kavramdır. . (RFC 2181)
    • NSKayıtların değerleri, başvurunun üst ve alt tarafları arasında farklılık gösterdiğinde (kayıt şirketi kontrol paneline girilen ad NSsunucuları, aynı sunucularda yaşayan kayıtlardan farklı olarak ), yaşanan davranışlar, çocuğa kadar ve dahil olmak üzere tutarsız olacaktır. NSkayıtlar tamamen yok sayılıyor. Bunun nedeni, davranışın standartlar tarafından iyi tanımlanmamış olması ve uygulamanın farklı özyinelemeli sunucu uygulamaları arasında değişiklik göstermesidir. Başka bir deyişle, internet üzerindeki tutarlı davranış ancak bir alanın ad sunucusu tanımlarının bir başvurunun üst ve alt tarafları arasında tutarlı olması durumunda beklenebilir .

Uzun ve kısa, başvurunun üst tarafında tanımlanan kayıtlar bu kayıtların yetkili sürümleri ile uyuşmuyorsa, internet boyunca özyinelemeli DNS sunucularının hedefler arasında geri dönmesi olacaktır. Başlangıçta, referansta mevcut olan veriler tercih edilecektir, sadece yetkili tanımlarla değiştirilmelidir. Önbellekler sürekli olarak İnternet üzerinden sıfırdan yeniden oluşturulduğundan, bu yapılandırma ile internetin gerçekliğin tek bir versiyonuna yerleşmesi imkansızdır. Yetkili kayıtlar standartlara göre yasa dışı bir şey yapıyorsa, örneğin NSbirCNAME, bu sorunu gidermek daha da zorlaşır; etki alanı, ihlali reddeden yazılım için çalışma ve bozuk arasında değişecektir. (yani ISC BIND / adlı)

RFC 2181 §5.4.1 , bu verilerin güvenilirliği için bir sıralama tablosu sağlar ve başvurular ve yapıştırıcı ile ilişkili önbellek verilerinin, başvurdukları kayıtlar için açık bir talebin yanıtı olarak döndürülemeyeceğini açıkça belirtir.

5.4.1. Ranking data

   When considering whether to accept an RRSet in a reply, or retain an
   RRSet already in its cache instead, a server should consider the
   relative likely trustworthiness of the various data.  An
   authoritative answer from a reply should replace cached data that had
   been obtained from additional information in an earlier reply.
   However additional information from a reply will be ignored if the
   cache contains data from an authoritative answer or a zone file.

   The accuracy of data available is assumed from its source.
   Trustworthiness shall be, in order from most to least:

     + Data from a primary zone file, other than glue data,
     + Data from a zone transfer, other than glue,
     + The authoritative data included in the answer section of an
       authoritative reply.
     + Data from the authority section of an authoritative answer,
     + Glue from a primary zone, or glue from a zone transfer,
     + Data from the answer section of a non-authoritative answer, and
       non-authoritative data from the answer section of authoritative
       answers,
     + Additional information from an authoritative answer,
       Data from the authority section of a non-authoritative answer,
       Additional information from non-authoritative answers.

   <snip>

   Unauthenticated RRs received and cached from the least trustworthy of
   those groupings, that is data from the additional data section, and
   data from the authority section of a non-authoritative answer, should
   not be cached in such a way that they would ever be returned as
   answers to a received query.  They may be returned as additional
   information where appropriate.  Ignoring this would allow the
   trustworthiness of relatively untrustworthy data to be increased
   without cause or excuse.

İyi yazılmış cevap! Cevabınızın “uzun ve kısa” fikrine katılmıyorum. İnternette DNS'in birincil kullanımı, ana bilgisayar IP'sini almakla ilgilidir, dolayısıyla "A" talepleri. DNS çözümleyicileri Yetkili "A" Yanıtına ulaşmak için başvuruyu her zaman kabul eder ve değiştirir. Ve sadece referans kaydını "daima" önbelleğe alacaktır. Kayıtların değiştirileceği tek zaman, "example.com IN NS" için açık bir istek gelmesidir. Ardından çözümleyici, sunucuya başvuru yerinde soracaktır. Ve bu AR yanıtı, önbelleğe alınan yönlendirme yanıtının yerini alacaktır (yalnızca bu kaydın TTL'si için).
Wasted_Coder

@ BillThor'un cevabına göre yanlış olabilirim. Akıl yürütmem, bir DNS sunucusu yenilendiyse, (şimdi süresi dolmuş) yetkili bir NS yanıtından example.com için NS önbelleğe alınmış giriş olduğu gerçeğine dayanıyordu. DNS zincirini kıracaktır. Artık (eski) NS sunucusu yanıt vermeye devam ederken bir döngüde sıkıştığından, yukarıdaki apex DNS sunucusundaki (kayıt şirketi) değişiklikleri dikkate almayacaktır. DNS sunucularını taşıdığınız halde eski DNS sunucusunu çevrimdışı olarak güncellemez veya almazsanız olduğu gibi. Yoksa bu "sorun" bugün de böyle midir?
Wasted_Coder

@ Ben de birçok varsayım nedeniyle ilk yorum ile aynı fikirde değilim. Davranış açıkça standartlar tarafından belirlenmediğinden, aslında uygulamaya özeldir. Bu sunum 6 yaşındadır (11 no'lu slayttan başlamaktadır) ancak yine de bu konuya değinilmektedir; üst ve alt ad sunucusu tercihi değişiklik gösterir. Bunun ötesinde, yalnızca RFC 2181 gerekliliklerine güvenebilirsiniz.
Andrew B

Bir çözümleyicinin NS önbelleğe alınmış girişleri TTL = 0'a ulaşırsa endişe duyduğumu düşünüyorum. Ayrıca, new.example.com için de henüz önbelleğe alınmamış yeni bir ana bilgisayar girdisi araması gerekiyor. Artık example.com için NS sunucularına ihtiyaç duyuyor ve önbelleğe alınmış kopyaların süresi dolduğundan, hala yanıt verip vermediğini görmek için bu "süresi dolmuş" NS sunucusuna ulaşmaya çalışmak kötü olurdu. Bir sonraki ata ile kontrol etmek zorunda kalacak, böylece .com'un NS yön için. Bu, ata NS kayıtlarının çoğu zaman geçerli olacağı anlamına gelir (NS talebi işleme koyulana kadar).
Wasted_Coder

@ 11 numaralı slayttan başlayın ve üç deseni not edin: çocuk merkezli yapışkan olmayan ( PPPCCCPPPCCC...), çocuk merkezli yapışkan ( PPPCCCCCC...) ve üst yapışkan ( PPPPPP...). Çocuk merkezli yapışkan en yaygın olanıdır ve çocuk merkezli yapışkan aslında ana yapışkandan daha yaygındır. Çözümleyici yazılım ebeveyn yapışkan değilse , en az olası sonuç olan istemciler, çocuk ve ebeveyn üzerindeki NS verileri aynı fikirde değilse, gerçekliğin iki versiyonu arasında ileri geri sıçrayacaktır .
Andrew B

3

NS, devredilen bölgenin etki alanı tanımının bütünlüğünü sağladığını kaydeder. NS sunucularının kendisi bölge dosyasına güvenecektir. Kök sunuculardan özyinelemeli bir sorgu yaparak kendilerini bulmaya çalışmaları beklenmemektedir. Bölge dosyasındaki NS kayıtları bir dizi başka işlev sağlar.

Önbellek sunucuları, bir ad sunucusunu önbelleğinden sorgulayarak ad sunucusu listesini yenileyebilir. Önbellek sunucusu bir ad sunucusunun adresini bildiği sürece, uygun bir NS kaydını tekrar tekrar aramak yerine bunu kullanacaktır.

Ad sunucularını taşırken, yeni ad sunucularının yanı sıra eski ad sunucularını da güncelleştirmek önemlidir. Bu, iki bölge tanımı senkronize olmadığında ortaya çıkacak kesintileri veya tutarsızlıkları önleyecektir. Güncellenen kayıtlar, NS kayıtlarını önbelleğe alan tüm sunucular tarafından yenilenecektir. Bu, önbelleğe alınan ad sunucuları listesinin yerini alacaktır.

NS kayıtları ayrıca DNS yapılandırmasının doğruluğunun onaylanmasına yardımcı olur. Doğrulama yazılımı genellikle, temsilci alanın ad sunucusu tanımlarının bölge tarafından sağlananlarla eşleştiğini doğrular. Bu kontrol tüm ad sunucularında gerçekleştirilebilir. Herhangi bir uyuşmazlık yanlış yapılandırmayı gösterebilir.

NS kayıtlarının bağlantısı kesilmiş (yerel) bölgelere izin verir. Bunlar, kayıtlı bir alanın alt alanları veya tamamen yeni bir alan olabilir (TLD değişiklikleri nedeniyle önerilmez). Ad sunucularını ad sunucusu olarak kullanan ana makineler, kök sunuculardan yinelenerek erişilemeyen bölgeleri bulabilir. Diğer ad sunucuları, yerel bölgelerin ad sunucularına bakacak şekilde yapılandırılmış olabilir.

Bölünmüş DNS (dahili / harici) durumunda, farklı bir DNS sunucusu kümesine sahip olmak istenebilir. Bu durumda NS listesi (ve muhtemelen diğer veriler) farklı olur ve bölge dosyalarındaki NS kayıtları uygun ad sunucusu listesini listeler.

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.