Soru DNS yük devretme neden önerilmez?


Okumadan, DNS'in bunun için tasarlanmadığı için DNS yük devretme önerilmiyor gibi görünüyor. Ancak, farklı alt ağlarda yedek içerik barındıran iki web sunucunuz varsa, bir sunucu çökerse tüm trafiğin canlı sunucuya yönlendirilmesini sağlamak için başka yöntemler var mı?

Bana göre DNS yük devretme burada tek yük devretme seçeneği gibi görünüyor, ancak fikir birliği iyi bir seçenek değil. Yine de DNSmadeeasy.com gibi hizmetler sağladığından, bunun için hak olması gerekir. Herhangi bir yorum?


166
2017-08-30 17:57


Menşei


Bak İşte konuyla ilgili güncel bir tartışma için. Yük devretme şimdi modern tarayıcılar tarafından otomatik olarak yapılır. - GetFree


Cevaplar:


'DNS yük devretme' ile aldığım DNS Round Robin, bazı izleme, yani bir DNS ana bilgisayar adı için çoklu IP adresleri yayınlama ve bir sunucunun kapalı olduğunu algıladığında bir ölü adresin kaldırılması ile birleştirildi. Bu, küçük, daha az trafiğe eklenen web siteleri için kullanılabilir.

Tasarım gereği, bir DNS isteğini cevapladığınızda, dağıttığınız yanıt için bir Canlı Zaman (TTL) de sağlarsınız. Başka bir deyişle, diğer DNS sunucularına ve önbelleklere "bu cevabı saklayabilir ve benimle tekrar kontrol etmeden önce x dakika boyunca kullanabilirsiniz" diyorsunuz. Dezavantajları bundan geliyor:

  • DNS yük devretme ile, kullanıcılarınızın bilinmeyen bir yüzdesi, DNS verilerinizi değişen miktarlarda TTL ile önbelleğe almış olacaktır. TTL'nin süresi bitene kadar, bunlar ölü sunucuya bağlanabilir. Yük devretme işleminin bundan daha hızlı tamamlanma yolları vardır.
  • Yukarıdakiler nedeniyle, TTL'yi 5-10 dakika gibi düşük seviyeye getirme eğilimindesiniz. Ancak, daha yüksek bir değere ayarlamak (çok küçük) bir performans avantajı sağlar ve ağ trafiğinde kısa bir aksaklık olsa bile DNS yayılımınızın güvenilir şekilde çalışmasına yardımcı olabilir. Dolayısıyla, DNS tabanlı yük devretme kullanımı, yüksek TTL'lere karşı gider, ancak yüksek TTL'ler, DNS'nin bir parçasıdır ve yararlı olabilir.

İyi çalışma zamanı elde etmenin daha yaygın yöntemleri şunları içerir:

  • Sunucuları aynı LAN üzerinde bir araya getirme.
  • LAN'ı yüksek kullanılabilir güç ve ağ düzlemlerine sahip bir veri merkezine yerleştirin.
  • Yükü dağıtmak ve tek tek sunucu hatalarında başarısız olmak için bir HTTP yük dengeleyici kullanın.
  • Güvenlik duvarlarınız, yük dengeleyicileriniz ve anahtarlarınız için ihtiyacınız olan fazlalık / beklenen çalışma süresini alın.
  • Tam veri merkezi arızaları için bir iletişim stratejisi ve kolayca değiştirilemeyen bir anahtar / veritabanı sunucusunun / diğer kaynağın arızalanması.

Web sitelerinin çok az bir azınlığı, veri merkezleri arasında “coğrafi dengeleme” ile çoklu veri merkezi kurulumları kullanmaktadır.


93
2017-08-30 18:39



Özellikle iki farklı veri merkezi arasındaki yük devretmeyi yönetmeye çalıştığını düşünüyorum (farklı alt ağlar hakkındaki yorumları not edin), böylece sunucuların bir araya getirilmesi / yük dengeleyici / ekstra fazlalık kullanılması ona yardımcı olmaz (yedek veri merkezlerinden ayrı olarak. Hala internete hala devam eden birine gitmesi gerektiğini söylemeliyim). - Cian
Çoklu datacenter kurulumuna herhangi bir mesaj ekleyin ve datacenter-failure proof olur. - petrus
anycast'de wikipedia girişi (en.wikipedia.org/wiki/Anycast) DNS kök sunucu esnekliği ile ilgili olarak tartışır. - dunxd
DDoS saldırıları çok yaygındır, şimdi tüm veri merkezleri çevrimdışı duruma getirilebilir (Linode London ve diğer veri merkezlerinde Aralık 2015). Aynı sağlayıcıyı kullanarak aynı veri merkezinde tavsiye edilmez. Bu nedenle, farklı sağlayıcılara sahip birden fazla veri merkezi, daha iyi bir alternatif olmadıkça bizi DNS yük devretmeye geri getiren iyi bir strateji olacaktır. - Laurence Cope
Bir yük devretme neden mevcut değil, çünkü bir aygıt aşağı / hatalı olduğunda sitenizi canlı tutmanız gerekiyor mu? Aynı ağda aynı cihazları paylaşırken, yük devretme işleminiz ne kadar iyi olacaktır. yönlendiriciler? - user2128576


DNS yük devretme kesinlikle harika çalışıyor. Veri merkezler arasındaki trafiği manuel olarak değiştirmek için ya da izleme sistemleri kesintileri, bağlantı sorunları ya da aşırı yüklenmiş sunucular algılandığında otomatik olarak uzun yıllar kullanıyorum. Çalıştığı hızı ve kolaylıkla değiştirilebilen gerçek dünya trafiği hacimlerini gördüğünüzde asla geriye bakmayacaksınız. Tüm sistemlerimi izlemek için Zabbix'i kullanıyorum ve DNS yük devretme durumu sırasında neler olduğunu gösteren görsel grafikler tüm şüphelerimi sona erdiriyor ve sonlandırıyor. Orada TTL'leri göz ardı eden birkaç İSS var olabilir ve eski tarayıcılarda hala bazı kullanıcılar var. Ancak, milyonlarca sayfa görüntülemesinden gelen trafiğe baktığınız zaman, 2 veri merkezi konumunda bir gün geçiyorsunuz ve bir DNS trafik kaydırması yapıyorsunuz - Gelen kalan trafik TTL'leri yok sayar. DNS yük devretme katı bir tekniktir.

DNS yerine çalışma için tasarlanmamıştır - ancak katı bir izleme sistemi ile birleştirildiğinde yük devretme ihtiyaçları için inanılmaz şekilde çalışan TTL'lerle tasarlanmıştır. TTL'ler çok kısa ayarlanabilir. Hızlı DNS failover tabanlı çözümlerin aydınlatılması için 5 saniyelik TTL'leri etkin bir şekilde kullandım. Ekstra yükü idare edebilen DNS sunucularına sahip olmalısınız - ve adlandırılmış, onu kesmeyecektir. Ancak, yedek kartlar gereksiz isim sunucularında bir mysql çoğaltılmış veritabanlarıyla desteklendiğinde faturaya uyar. Otomatik yük devretme entegrasyonu için güvenebileceğiniz katı bir dağıtılmış izleme sistemine de ihtiyacınız vardır. Zabbix benim için çalışıyor - Ben hemen hemen anında birden fazla dağıtılmış Zabbix sistemlerinden kesintileri doğrulayabilirim - powerdns tarafından kullanılan mysql kayıtlarını anında günceller - ve kesintiler ve trafik artışları sırasında neredeyse anında yük devretme sağlar.

Ama hey - yıllar sonra büyük şirketler için çalışmasını sağlayan DNS yük devretme hizmetleri sunan bir şirket kurdum. Öyleyse fikrimi bir tuz tohumu ile al. Bir kesinti sırasında yüksek hacimli sitelerin bazı zabbix trafik grafiklerini görmek istiyorsanız - kendiniz için tam olarak ne kadar iyi DNS yük devretme çalışıyor görmek - e-posta bana paylaşmaktan mutluluk duyuyorum.


44
2017-10-20 17:17



Cian'ın cevabı serverfault.com/a/60562/87017 doğrudan seninle çelişiyor ..... kim haklı? - Pacerier
Bu benim uzunluğum, kısa TTL'lerin internet üzerinden ÇALIŞMAMASI. RFC'lere saygılı olan DNS sunucularını çalıştırıyor olabilirsiniz, ancak orada olmayan birçok sunucu var. Lütfen bunun Round Robin DNS'ye karşı bir argüman olduğunu düşünmeyin - ayrıca vmiazzo'nun yanıtına da bakın - RR DNS kullanarak yoğun siteleri işletiyorum ve test ettim - işe yarıyor. Karşılaştığım tek sorunlar, bir RST'deki ana bilgisayarların listesini devre dışı bırakmama bile başarısızlığa yeniden bağlanmayı bile deneyemeyen bazı Java tabanlı istemciler (tarayıcılar değil) idi. - symcbean
Bahse girerim, DNS yük devretmenin izlendiğini söyleyenlerin büyük olduğunu ve bunu söyleyenlerin de benzer deneyimler yaşadıklarını, ancak farklı beklentilere sahip olduklarını iddia ediyorum. DNS yük devretme sorunsuz DEĞİLDİR, ancak önemli bir aksama süresini önler. Tamamen kesintisiz bir erişime ihtiyacınız varsa (sunucu arızası sırasında bile tek bir isteği asla kaybetmeyin), muhtemelen çok daha karmaşık ve pahalı bir mimariye ihtiyacınız vardır. Bu birçok uygulama için bir gereklilik değil. - Tom Wilson


DNS yük devretme ile ilgili sorun, pek çok durumda güvenilmez olmasıdır. Bazı İSS'ler, TTL'lerinizi göz ardı edecekler, TTL'lerinizi dikkate alsalar bile hemen gerçekleşmez ve siteniz tekrar geldiğinde, bir kullanıcının DNS önbelleği zaman aşımına uğradığında oturumlar ile bazı garipliklere yol açabilir, ve onlar da başlığa düşer diğer sunucuya.

Ne yazık ki, kendi (harici) yönlendirme yapmak için yeterince büyük olmadıkça, hemen hemen tek seçenek.


31
2017-08-30 18:27



+1 Yavaş ve Güvenilmez - Chris S
Ayrıca bkz. serverfault.com/q/315199/87017 - Pacerier


Yaygın olan fikir, DNS RR ile bir IP azaldığında, bazı istemcilerin kırık IP'yi dakikalarca kullanmaya devam etmesidir. Bu, önceki soruların bazı cevaplarında belirtildi ve Wikipedia'da da yazıldı.

Neyse

http://crypto.stanford.edu/dns/dns-rebinding.pdf Mevcut HTML tarayıcılarının çoğu için doğru olmadığını açıklar. Saniyeler içinde bir sonraki IP'yi deneyecekler.

http://www.tenereillo.com/GSLBPageOfShame.htm daha da güçlü görünüyor:

Çoklu A kayıtlarının kullanımı ticaretin bir hilesi veya yük dengeleme ekipmanı satıcıları tarafından tasarlanan bir özellik değildir. DNS protokolü, bu nedenle birden çok A kaydı için destekle tasarlanmıştır. Tarayıcılar ve proxy'ler ve posta sunucuları gibi uygulamalar, DNS protokolünün bu bölümünü kullanır.

Belki bazı uzmanlar, DNS RR'nin yüksek kullanılabilirlik için neden iyi olmadığına dair daha net bir açıklama yapabilir ve açıklayabilir.

Teşekkürler,

Valentino

Not: kırık bağlantı için özür dilerim, ancak yeni kullanıcı olarak, 1'den fazla yayınlayamıyorum


19
2017-09-29 10:06



Çoklu A kayıtları, başarısızlıktan ziyade yük dengeleme için tasarlanmıştır. Müşteriler sonuçları önbelleğe alacaktır ve kaydı değiştirdikten sonra birkaç dakika boyunca tüm havuzu (kırık IP dahil) kullanmaya devam edecektir. - Cian
Yani, ne yazıyor crypto.stanford.edu/dns/dns-rebinding.pdf bölüm 3.1 yanlış? << Internet Explorer 7 iğneleri 30 dakika boyunca DNS bağlamaları.1 Maalesef, saldırganın etki alanı birden fazla A kaydına sahipse ve geçerli sunucu kullanılamıyorsa, tarayıcı bir saniye içinde farklı bir IP adresi deneyecek. - Valentino Miazzo
Benim alt sorgum buraya taşındı serverfault.com/questions/69870/... - Valentino Miazzo


DNS RR yük devretme işlemini yıllarca trafiğe kapalı ancak iş açısından kritik bir web sitesinde (iki coğrafyada) çalıştırdım.

İyi çalışıyor, ama en az üç incelik var zor yoldan öğrendim.

1) Tarayıcılar, çalışmayan bir IP'den 30 saniyeden sonra (son kontrol ettiğimde) her ikisi de aktif olarak kabul edilirse, çalışan bir IP'den çalışma IP'sine geri yüklenir. Bu temel olarak iyi bir şey.

Ancak, kullanıcılarınızın "yarısı" 30 saniye beklemek kabul edilemez. Bu nedenle, TTL kayıtlarınızı birkaç dakika, birkaç gün veya haftada değil, bir kesinti durumunda, sunucuyu hızla kaldırabilmeniz için muhtemelen güncellemek isteyeceksiniz. DNS’inizden Diğerleri cevaplarında buna itiraz etmişlerdir.

2) Eğer sizin adınızdaki oyunculardan biri (ya da iki coğrafyadan biri tamamen) robota ait alanınız için çalışıyorsa, ve bunlardan birincil tanesi aşağı inerse, anımsıyorum ki, bunu kaldırmaya çalışan diğer sorunlarla karşılaşabilirsiniz. SOA TTL / expiration'ınızı ad sunucu için yeterince düşük bir değere ayarlamamışsanız, DNS'den ad sunucusu. Burada teknik detayların yanlış olmasına rağmen, tek hata noktalarına karşı gerçekten savunmak için ihtiyacınız olan tek bir TTL ayarından daha fazlası var.

3) Web API'lerini, REST servislerini, vb. Yayınlarsanız, bunlar genellikle tarayıcılar tarafından aranmazlar ve bu nedenle fikrimce DNS yük devretme gerçek kusurları göstermeye başlar. Bu, bazılarının söylediği gibi "tavsiye edilmez" şeklinde olabilir. İşte bu yüzden bunu söylüyorum. Öncelikle, bu URL'leri tüketen uygulamalar genellikle tarayıcı değildir. Bu nedenle, ortak tarayıcıların 30 saniyelik yük devretme özellikleri / mantığından yoksundurlar. İkincisi, ikinci DNS girişinin çağrılıp yapılmadığı veya DNS yeniden sorgulanıp uygulanmadığı, bu API / REST istemcileri tarafından kullanılan programlama dillerindeki ağ kitaplıklarının düşük düzeyli programlama ayrıntılarına ve aynı şekilde nasıl çağrıldığına bağlıdır. API / REST istemci uygulaması. (Onlar kapsar, kütüphane get_addr çağırır, ve ne zaman? Yuvaları asmak veya kapatmak, uygulama yeni yuvaları yeniden açar mı? Bir çeşit zaman aşımı mantığı var mı? Vs vs)

Ucuz, iyi test edilmiş ve "çoğunlukla çalışıyor". Çoğu şeyde olduğu gibi, kilometreniz değişebilir.


11
2018-04-12 01:21



Bir adres için diğer RR'lerde tekrar denemeyen bir kitaplık bozulur. Geliştiricileri, getaddrinfo () vb. - Jasen


Yük devretme için bizi (Dyn) kullanan bir grup insan var. Sitelerin, kesinti süreleri olduğunda (Twitter'ın Fail Balina'sı gibi şeyleri düşünürken) bir durum sayfası yapabilmeleri veya TTL'lere dayanan trafiği yeniden yönlendirmelerinin aynı nedenidir. Bazı insanlar DNS Yük Devretme'nin getto olduğunu düşünebilir ... fakat ağımızı baştan başlayarak yükümüzü ciddiye aldık ... böylece donanımın yanı sıra çalışırdı. DME'nin bunu nasıl yaptığından emin değilim, ancak en yakın yayınlanmış PoP'larımızın 17'sinden 3'üne sunucunuzu en yakın yerden izliyoruz. Düştüğünden üçünün ikisini algıladığında, sadece diğer IP'ye giden trafiği yeniden yönlendiririz. Tek arıza süresi, bu TTL aralığının geri kalanı için talep edilenler içindir.

Bazı insanlar her iki sunucuyu bir kerede kullanmayı severler ... ve bu durumda yuvarlak bir robin yük dengeleme ... veya coğrafi tabanlı yük dengeleme gibi bir şey yapabilirler. Performansı gerçekten önemseyenler için ... gerçek zamanlı trafik yöneticimiz her sunucuyu izleyecek ... ve daha yavaşsa ... host adlarınızda hangi IP'leri bağladığınıza göre en hızlı trafiği yönlendirin. Yine ... bu, UI / API / Portal'ımızda uyguladığınız değerleri temel alarak çalışır.

Sanırım benim amacım ... amaç için dns yük devretmeyi tasarladık. DNS, orijinal olarak oluşturulduğunda yerine çalışma için yapılmadıysa da, ... ... DNS ağımız, onu hareket halindeyken uygulamak için tasarlandı. Bu genellikle donanım kadar etkili olabilir ... amortisman veya donanım maliyeti olmadan. Umarım bu beni Dyn'nin tıkadığı için sağlam bir hale getirmez ... Yapacak çok fazla şirket var ... Sadece ekibimizin bakış açısıyla konuşuyorum. Bu yardımcı olur umarım...


9
2018-05-25 19:38



"Donanım kadar etkili olabilir" ile ne demek istiyorsun? DNS ne tür bir donanım yönlendiriyor? - mpen
@Ryan, "getto" derken ne demek istiyorsun? - Pacerier
Bu kelime için kentsel sözlük, olumlu çağrışımla hiçbir tanım vermez, "dilenci çözümü" uygun bir çeviri olabilir diye farz edebilirim. - Jasen


Başka bir seçenek, A konumuna ad sunucusu 1 ve B konumu için ad sunucusu 2'yi kurmak, ancak her birini ayarlamak, böylece A konumunun IP'leri için NS1 noktası trafiğinin tüm A kayıtlarını, ve tüm A kayıtları için NS2'nin tüm IP kayıtları konum B. Daha sonra TTL'lerinizi çok düşük bir sayı için ayarlayın ve alan adındaki kayıt alanınızın NS1 ve NS2 için ayarlandığından emin olun. Bu şekilde, otomatik olarak denge yükler ve bir sunucu ya da bir konumun bir bağlantısının azalması durumunda başarısız olur.

Bu yaklaşımı biraz farklı bir şekilde kullandım. İki ISS ile bir konumum var ve her bağlantı üzerinden trafiği yönlendirmek için bu yöntemi kullanın. Şimdi, yapmaya istekli olduğunuzdan biraz daha fazla bakım olabilir ... ancak NS1 kayıtlarını otomatik olarak çeken basit bir yazılım parçası oluşturabiliyordum, güncelleme bölgeleri için bir kayıt IP adresi güncelleştiriyor ve bu bölgeleri NS2.


5
2017-08-07 05:13



İsim oyuncuları yayılmak için fazla zaman harcamazlar mı? Bir DNS kaydını düşük TTL ile değiştirirseniz hemen çalışır, ancak ad sunucusunu değiştirdiğinizde yaymak için 24 horus veya daha fazla zaman alır, dolayısıyla bunun nasıl bir başarısızlık çözümü olabileceğini anlamıyorum. - Marco Demaio


Alternatif, BGP tabanlı bir yük devretme sistemidir. Kurulması kolay değil, ama kurşun geçirmez olmalı. A bölgesini tek bir konumda, B bölgesinde yerel IP adresleriyle bir saniye kurun, sonra taşınabilir IP'lerden yerel IP'lere taşınabilir ve yeniden yönlendirme olan bir sınıf C veya başka bir ip bloğu edinin.

Tuzaklar var, ancak bu kontrol seviyesine ihtiyacınız varsa, DNS tabanlı çözümlerden daha iyidir.


4
2017-08-30 21:40



BGP tabanlı çözümler herkes için uygun değildir. Ve DNS’den çok daha korkunç yollardan kurtulmak çok daha kolay. Salıncaklar ve döner kavşaklar, sanırım. - Cian