DNS ad sunucusu nasıl çalışır?


14

NS kaydımızda listelenen iki DNS sunucumuz var. Dün gece, DNS sunucularımızdan biri çöktü. Beklendiği gibi, bazı DNS sunucuları ana bilgisayar adlarımızı çözmüyordu. Bunun geçici olacağını ve NS kayıtlarımızın TTL'si sona erdiğinde çalışmaya başlayacağını varsaydım (1 saat).

Bir saat sonra, Earthlink, Verizon ve OpenDNS severs kullanan masaüstlerinden DNS zaman aşımları alıyordum. Diğer DNS sunucusunun yanıt verip vermediğini test ettim:

dig @ns2.example.com www.example.com +short

Bu işe yaradı.

Sorularım:

  1. TTL süresi dolduktan sonra bile diğer DNS sunucularının neden diğer DNS sunucumuza vurmadığına dair bir cevap var mı?
  2. DNS sunucuları bir alanın ana DNS sunucusunu ( SOAkayıttan) mı tercih ediyor ?
  3. Mevcut NS kayıtlarından bir ad sunucusu seçmek için kullanılan herhangi bir algoritma var mı? Bunun uygulamaya özel olduğunu varsayıyorum ama belki burada geçerli olan bazı standartlar var.

TTL'nin hiçbir şeyle ilgisi yoktur. Hiçbir kayıt değiştirilmediğinden, ilgili bir etkisi yoktur.
David Schwartz

Ah, şimdi görüyorum. Hamuru.
Belmin Fernandez

Yanıtlar:


17

Bu talihsiz bir tahriş. Birden fazla DNS sunucusunun güvenilirliği arttırması beklenir, ancak pratikte sıklıkla ters etkisi olur.

Sorun, istemcinin yalnızca bir yanıt beklemesi ve sunucunun aynı süre kadar beklemesidir. Diyelim ki A ve B olmak üzere iki DNS sunucunuz var. Diyelim ki A çalışıyor ve B başarısız oldu. Bu olur:

  1. İstemci ad sunucusu Z'ye bağlanır ve bilgi ister. Z, B'yi seçer ve bir sorgu gönderir.

  2. Ad sunucusu Z yanıt vermediği için istemci zaman aşımına uğradı.

  3. İstemci ad sunucusu Y'yi dener. Y B'yi seçer ve bir sorgu gönderir.

  4. Ad sunucusu Z zaman aşımına uğrar ve A'yı dener. Doğru cevabı alır, ancak istemci artık beklemez.

  5. Ad sunucusu Y yanıt vermediği için istemci zaman aşımına uğradı.

  6. İstemci, her iki ad sunucusunun da yanıt verememesinden vazgeçer.

  7. Ad sunucusu Y zaman aşımına uğrar ve A'yı dener. Doğru yanıtı alır, ancak istemci artık beklemez.

Ve iyi bir çözüm yok. Bir ad sunucusunun yanıt verip vermediğini görmek için ne kadar uzun süre beklerseniz, beklediğiniz ad sunucusu daha uzun süre beklediğinden daha uzun süre beklemeniz gerekir. Muhtemelen sorun, Y ve Z'nin B'den yeterince hızlı vazgeçmemeleriydi.

Esasen, ad sunucularınızdan herhangi biri dışarıda kalırsa, bazı istemciler, sadece kötü olanları denedikleri için zamanla şans eseri, zaman aşımına uğrarlar.

Parlak tarafta, iki ad sunucunuz varsa ve biri başarısız olursa, ad sunucularının yaklaşık% 75'i% 0 yerine yanıt alır.


Ne demek istediğini anlıyorum. Eek. Yani istemcinin nameserver ( Z) en son kullanılan hangi isim sunucusunu önbelleğe almayacak?
Belmin Fernandez

1
Bazı isim sunucuları bunu yapar ve bazen yardımcı olur. Genellikle ad sunucusunun tam olarak başarısız olmasına bağlıdır. Bunun UDP'nin tepesinde olduğunu hatırlamak zorundasınız, bu yüzden cevap alamamanız (bir veya iki aktarımdan sonra bile) ad sunucusunda bir sorun olmadığını kanıtlamıyor.
David Schwartz

DNS ve BIND kopyamda (Paul Albitz ve Cricket Lui, O'Rielly p278) Bind 8.2.3 sunucularının ileticiler listesinden en hızlı yanıt veren sunucuyu seçtiğini okudum, yani listedeki sunucu başarısız olursa, hemen hemen otomatik olarak bırakılır. Bind 9 bunu henüz uygulamıyor, ileri sunucuları liste sırasında sorgular. Bunun değişip değişmediğini bilen var mı?
Jaydee

Açıklığa kavuşturmak gerekirse, DNS kurulumlarında daha az tecrübeli olanlar için (bunu anlamak biraz zaman aldı) bu örnekteki DNS ad sunucuları Z ve Y, büyük olasılıkla istemcinin ağına dayanan, örneğin bir ISS'nin sağladığı DNS sunucuları olan özyinelemeli ad sunucularıdır. DHCP üzerinden müşterilerine. Sorun, bu sunucuların istemci DNS çözümleyicisinden (ör. Aygıt işletim sistemi) daha uzun bir zaman aşımı değerine sahip olması durumunda ortaya çıkar
Jordan Rieger

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.