Küçük siteler için neden coğrafi yedek DNS gerekli?


31

Bu, DNS coğrafi artıklığı ile ilgili Kanonik bir Sorudur .

Esnek web hizmetleri sunarken, ayrı fiziksel konumlarda bulunan coğrafi yedeklemeli DNS sunucularının oldukça istendiği oldukça yaygın bir bilgidir. Bu, BCP 16 belgesinde derinlemesine ele alınmaktadır , ancak en sık bahsedilen nedenlerden bazıları şunlardır:

  • Veri merkezi felaketlerine karşı koruma. Depremler olur. Yangınlar raflarda meydana gelir ve yakındaki sunucuları ve ağ ekipmanlarını çıkartır. Veri merkezindeki fiziksel sorunlar aynı anda olmasalar bile her iki DNS sunucusunu aynı anda elinden çıkarırsa, birden çok DNS sunucusu çok iyi sonuç vermez.

  • Karşılıklı akran sorunlarına karşı koruma. Birden fazla DNS sunucusu, bir paylaşılan yukarı akış ağ eşi bir kirlilik alırsa sorunları önlemez. Yukarı havzadaki sorun sizi tamamen çevrimdışı mı yoksa yalnızca tüm DNS sunucularınızı kullanıcı tabanınızın bir kısmından yalıtıyorsa da, sonuç, hizmetlerin kendisi tamamen farklı bir veri merkezinde olsa bile insanların etki alanınıza erişememesidir.

Her şey yolunda ve güzel, ama tüm hizmetlerimı aynı IP adresinden çalıştırıyorsam, gereksiz DNS sunucuları gerçekten gerekli mi? Etki alanımın sağladığı herhangi bir şeyi kimse yapamazsa, ikinci bir DNS sunucusuna sahip olmanın bana nasıl bir avantaj sağlayacağını göremiyorum.

Bunun en iyi uygulama olarak kabul edildiğini biliyorum, ama bu gerçekten anlamsız görünüyor!


Yanıtlar:


33

Not: Anlaşmazlıktaki içerik, her iki cevap için yorumlara bakın. Hatalar bulundu ve bu soru-cevap bir revizyona ihtiyacı var.

Bu kanonik soru-cevap durumunun doğru bir şekilde ele alındığı ana kadar bu cevabı kabul ediyorum. (bu cevabı silmek, ekli yorumları da silecektir, bu da IMO'ya gitmenin yolu değildir. Muhtemelen kapsamlı düzenlemelerden sonra bir topluluk wiki cevabına dönecektir.)


Burada RFC'leri alıntılayabilir ve teknik terimler kullanabilirim, ancak bu bilgi yelpazesinin her iki ucunda da birçok insan tarafından kaçırılan bir kavram ve daha geniş kitlelere cevap vermeye çalışacağım.

Bunun en iyi uygulama olarak kabul edildiğini biliyorum, ama bu gerçekten anlamsız görünüyor!

Bu anlamsız görünebilir ... ama aslında değil!

Özyinelemeli sunucular, uzak sunucuların bir sorguyu ne zaman yanıtlayamadıklarını, özellikle de yeniden denediklerinde ve bir yanıt almadıklarını hatırlamakta çok iyidir. Birçoğu bu iletişim hatalarının olumsuz önbelleklenmesini uygular ve geçici olarak cevap vermeyen isim sunucularını ceza kutusuna beş dakikadan uzun olmayan bir süre için koyacaktır. Sonunda bu "ceza" süresi sona erer ve iletişimi sürdürürler. Kötü sorgu tekrar başarısız olursa, tekrar kutuya geri giderler, aksi takdirde her zamanki gibi işe geri döner.

Bu, tek ad sunucusu sorunuyla karşılaştığımız yer:

  • Ceza süresi, uygulamanın doğası gereği her zaman şebeke probleminin süresine eşit veya ondan daha büyük olacaktır. Neredeyse tüm durumlarda, en fazla beş dakikaya kadar daha büyük olacaktır.
  • Tek DNS sunucunuz ceza kutusuna girerse, başarısızlıkla ilişkili sorgu tüm süre boyunca tamamen ölmüş olur.
  • Kısa yönlendirme kesintileri internette çoğu insanın düşündüğünden daha fazla gerçekleşiyor. TCP / IP yeniden iletimleri ve benzeri uygulama güvenceleri, kullanıcıyı kullanıcıdan gizlemek için iyi bir iş çıkarsa da, bu bir şekilde kaçınılmazdır. İnternet, ağ yığınını destekleyen çeşitli standartlara yerleştirilen korumalar nedeniyle çoğunlukla bu hasarı dolaştırmak için iyi bir iş çıkarıyor ... ama aynı zamanda DNS’de yerleşik olanları ve coğrafi yedekli DNS sunucularına sahip olmak bunun bir parçası.

Uzun lafın kısası, tek bir DNS sunucusuyla giderseniz (bu, aynı IP adresini NSkayıtlar arasında birden çok kez kullanmayı içerir ) gerçekleşir. Aynı zamanda fark ettiğinizden çok daha fazla olacak, ancak sorun o kadar tuhaf olacak ki, başarısızlığın 1) size bildirilmesi, 2) çoğaltılması ve 3) bu özel soruna bağlı kalması son derece yakın sıfır. Eğer bu sürecin nasıl yürüdüğünü bilmiyorsanız, bu soru-cevap bölümüne girerseniz hemen hemen sıfır oldular , ama neyse ki şimdi durum böyle olmamalı!

Bu seni rahatsız etmeli mi? Söylenecek yer orası değil. Bazı insanlar bu beş dakikalık kesinti problemini umursamazlar ve sizi bu konuda ikna etmek için burada değilim. Ne ben burada sizi ikna etmeye yalnızca tek bir DNS sunucusu çalıştırarak aslında kurban şey yapmak olduğunu, ve de tüm senaryolar.


1
Bazı sistemler umutsuzca başarısız olmayan dns-aramalarına da bağımlıdır. Çok fazla soruna neden olan fazlalık eksikliği sık görülen bir başarısızlık noktası.
artifex

18
Önbelleğe alınmış olan postalar, altyapınızın geri kalanıyla aynı anda DNS ile nasıl ayağınıza ateş edebileceğinize klasik bir örnektir. Gereksiz DNS ile, siteniz kapalı olduğunda, posta gönderenlerin sunucularında sıraya girer ve kurtarıldıktan sonra teslim edilir. Tek DNS ile, siz aşağıdayken gönderilen gelen postalar, genellikle bulunmayan etki alanı veya benzeri hataları olan gönderen sunucular tarafından kalıcı olarak reddedilir . Gönderen etki alanı şu an çözülmediğinden, çevresel (hareketsiz) sistemlerden gönderilen giden posta da başarısız olabilir .
MadHatter, Monica

5
Ayrıca, bir etki alanı adı genellikle yalnızca web değildir - e-postası da. Etki alanınız için bir e-posta servis sağlayıcısı kullanıyorsanız, web sunucunuz olsa bile kapalı olmayabilirler ve fazlalık DNS'iniz varsa e-postaları almaya devam edebilirsiniz.
Jenny D, Reinstate Monica’nın

5m, sadece tek bir sunucunun yeniden deneme süresi mi? Bu, zincirdeki birçok sunucu ile çarpılmaz mı ve istemci de kötü sorguları önbelleğe alır mı?
Nils,

@Nils Bunu hafifçe yeniden değerlendirebilir misiniz? Özyinelemeli bir kümede çok sayıda sunucu mu yoksa çok sayıda yetkili sunucu mu demek istediğinizi belirleme konusunda sorun yaşıyorum. 5m negatif önbellekleme aralığı sunucu başınadır, bu nedenle tüm özyinelemeli bir kümede önbelleğe alınmış tek bir rekor negatif almak için çok fazla istekte bulunmanız gerekir - bu da arızaları daha da sporadik yapar.
Andrew B,

-1

OP soruyor:

Her şey yolunda ve güzel, ama tüm hizmetlerimı aynı IP adresinden çalıştırıyorsam, gereksiz DNS sunucuları gerçekten gerekli mi? Etki alanımın sağladığı herhangi bir şeyi kimse yapamazsa, ikinci bir DNS sunucusuna sahip olmanın bana nasıl bir avantaj sağlayacağını göremiyorum.

Harika soru!

Sadece dünyaca ünlü bir araştırmacı, bilim adamı ve kriptolog olmayan Profesör Daniel J. Bernstein, doktora Berkeley tarafından sağlanmış , aynı zamanda DJBDNS olarak bilinen çok popüler ve iyi tanınan bir DNS paketi yazmıştır ( en son 2001- 02-11 , bu gün hala popüler).

http://cr.yp.to/djbdns/third-party.html (2003-01-11)

Üçüncü taraf DNS hizmetinin maliyetleri ve avantajları

Bu kısa ve özlü kısma dikkat edin:

Üçüncü taraf DNS hizmeti için hatalı argümanlar

...

İkinci taktik, yaygın DNS istemcilerinin, tüm DNS sunucularına erişemediklerinde Özellikle Kötü bir şey yapacağını iddia etmektir. Bu argümanla ilgili sorun, iddiaların yanlış olmasıdır. Bu tür herhangi bir müşteri açık bir şekilde can sıkıcıdır ve pazarda hayatta kalamaz: Müşterinin yönlendiricileri kısa bir süre aşağı inerse veya müşterinin ağı geçici olarak su altında kalırsa ne olacağını düşünün .

Bu nedenle, bu sorunun asıl cevabı daha yanlış olamazdı.

Evet, birkaç saniye süren kısa geçici ağ kesintileri her zaman ve sonra oluyor. Hayır, bu tür bir kesinti sırasındaki bir isim çözümlenememesi herhangi bir dakika boyunca önbelleklenmeyecektir (aksi halde, dünyadaki en iyi şekilde kullanılabilir olan yetkili isim sunucularının en iyi şekilde kurulmasına yardımcı olmaz).

1998-03 RFC’den önbellek arızalarına kadar 5 dakikaya kadar muhafazakar bir rehberi serbestçe uygulayan herhangi bir yazılım, tasarım nedeniyle bozulur ve fazladan bir coğrafi yedek sunucuya sahip olmak bir engel oluşturmaz.

Aslında, DNS zaman aşımı süresi ne kadar süre için önbelleğe alınır? BIND içinde, SERVFAILdurum geleneksel edildi DEĞİL 2014 tüm önceki önbelleğe ve 2015 yılından bu yana, varsayılan olarak önbelleğe sadece 1 saniye daha az bir ulaşması ortalama bir kullanıcıyı alacağını olandan, çözümleyici zaman aşımı tekrar isabet olduğunu Yenile düğmesi .

(Bir çözüm girişiminin önbelleğe alınmasının gerekip gerekmediğine dair yukarıdaki noktaya gelmeden önce bile, ilk SERVFAIL'ın ilk başta gerçekleşmesi için bile birkaç damlalık paketten daha fazlasını gerektirir.)

Üstelik, BIND geliştiricileri , sadece 30 saniyelik bir özellik için bir tavan bile uyguladılar ; bu, bir tavan olarak bile (örneğin, özelliğin kabul edeceği maksimum değer), 5 dakika (300s) önerisinden 10 kat daha düşüktü RFC’den en iyi niyetli yöneticilerin bile (göz topu kullananlar) kendi kullanıcılarını ayağından vuramayacaklarını garanti etmek.


Buna ek olarak, çok var sen neden nedenleri değil , bir üçüncü taraf DNS hizmetini çalıştırmak istediğiniz - Bütün aracılığıyla okumak djbdns/third-party.htmltüm detaylar için ve sadece kendiniz yönetmek DNS için küçük bir ekstra sunucu kiralama gerek pek garanti edilir BCP dışında 16 böyle bir çaba için var.

En azından 2002’den bu yana etki alanı adlarına sahip olma ve kurma konusundaki kişisel "anekdot" deneyimimde , profesyonel olarak işletilen nedeniyle, tüm alanlarımda gerçekten önemli bir duruş süresine sahip olduğum kesin ve dürüstlük ile söyleyebilirim. bir kerede ve yıllar boyunca hepsinin bir olayı olan, hiçbir zaman kullanılamayan, benim tescil ettirenlerimin ve barındırma sağlayıcılarımın üçüncü taraf sunucuları, kendi IP adresim (nerede (belirli bir etki alanı için barındırılan HTTP ve SMTP) 'den tamamen erişilemezdi. Bu kesintilerin birden fazla bağımsız, saygın ve profesyonelce çalışan sağlayıcılarla gerçekleştiğini ve hiçbir şekilde izole edilmiş olay olmadığını ve yıllık olarak ve üçüncü taraf bir hizmet olarak gerçekleştiğini unutmayın.tamamen sizin kontrolünüz dışında ; sadece çok az insan uzun zamandır bunun hakkında konuşuyor.


Kısacası:

Coğrafi yedekli DNS, küçük siteler için hiçbir şekilde gerekli DEĞİLDİR.

Eğer çalıştırıyorsanız tüm kapalı hizmetlerinizin aynı IP adresinden ikinci bir DNS ekleyerek, başarısızlık ek noktasında sonuçlanma ihtimali yüksek olan, ve etki devam kullanılabilirliği için zararlıdır. Hayal edilebilecek herhangi bir durumda her zaman yapmak zorunda olmanın "bilgeliği" , gerçekten çok popüler bir efsanedir; Bastı.

Elbette, etki alanı hizmetlerinden bazıları, web (HTTP / HTTPS), posta (SMTP / IMAP) veya sesli / metin (SIP / XMPP) olsa bile, tavsiye tamamen farklı olacaktır; Bu durumda, kendi IP'nizi tek bir başarısızlık noktası olarak ortadan kaldırmak gerçekten çok akıllıca bir yaklaşım olacaktır ve coğrafi artıklık gerçekten çok yararlı olacaktır.

Aynı şekilde, milyonlarca ziyaretçiyle özellikle popüler bir siteniz varsa ve bilerek BCP 16'ya göre coğrafi fazlalık DNS ek esnekliği ve korumaları gerektiriyorsa, o zaman ... muhtemelen web / posta için tek bir sunucu / site kullanmıyorsunuzdur / Zaten ses / metin, bu nedenle bu soru ve cevap kesinlikle geçerli değil. İyi şanslar!


Her iki yanıtı da incelemeleri için kurulu profesyonelleri davet etmekten çok mutlu olmama rağmen, bu sözlükten yalnızca bir miktar tiyatrosundan fazlasını alıyorum. Bu nedenle, sizinkine veya benimkine çok daha fazla güvendiğim tarafların görüşleri ne olursa olsun kabul edersem de, bu yorum dizisine daha fazla katılmaktan kendimi kullanmayı tercih ediyorum.
Andrew B,

Yorumunuzun ne demek istediğinden emin değilim. Kendi sorunuzu cevabımda gösterilen ve doğrudan DJB'den alıntılanan noktaya göre geçersiz olan bir argümanla cevapladınız. Cevabınız yanlış; Bu nedenle, bir efsaneyi koruyarak topluma bir kötülük yapıyorsunuz. Cevabınızı iptal etmek ve benimkini kabul etmek istiyorsanız, yapıcı eleştiriler / düzenlemeler kabul etmekten memnuniyet duyarım.
cnst

2
İyi yazılım bir SERVFAIL yanıtını tanıyacak (yetkili sunucuların hiçbirine ulaşılamıyorsa özyinelemeli bir sunucu tarafından oluşturulan) ve uygun şekilde, örneğin SMTP postasını sıraya alarak yönetecektir. Ne yazık ki tüm yazılımlar iyi değil. Protokollerin uygulanmasına dogmatik yaklaşımının önemli birlikte çalışabilirlik sorunlarına neden olduğu bilinen bir profesör var ...
Alnitak

2
Endüstrinin şu anki durumu ve vahşi olan şey, 2001 yılına bakılmaksızın 2003’ten çok daha fazla alakalı. Bu nedenle, ilgili üçüncü taraf görüşlerinin, konuyla ilgili olabilecek eski bir editör tarafından konuyu değerlendirmekten daha değerli olduğu bu yüzden. potansiyel olarak zaman testinden kurtuldu. Alnitak, BIND'in bu davayı nasıl ele aldığına dair hafızamın hatalı olduğunu ve bu hafızanın RFC 2308'den sözlü olarak güçlendirilmesinin gerçekten yanıltıcı olduğunu belirtti. Geri çekme, bu haftayı takip ettiğim gibi takip edecek.
Andrew B,

2
Yan not: Benim tarafımdaki gerçek yanılgıyı kabul etme uğruna sizi meşgul etmemeye karar verdim, ancak sınır çizgisi savaşının topraklarına geri döndüğümüz anlaşılıyor. Yanlış bilgiyi yaydığım için özür dilerim ve hatayı onayladım, ancak sizi meşgul etmek istemiyorum. (ben de, burada bunun tarihçesi var gibi görünmeyecek)
Andrew B
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.