djbdns vs bind [kapalı]


20

DNS ad sunucusu kurmayı öğrenmek isteyen bir acemi. Djbdns, BIND veya başka bir şey kullanmalı mıyım?

Mevcut ağ gereksinimleri, hepsi çok hafif trafikte alt alan desteği, SSL ve posta hizmetini içerir. Bir gün daha yoğun trafiğe ve muhtemelen daha zorlayıcı gereksinimlere (yük dengeleme gibi) kadar ölçeklenebilecek bir çözüm istiyorum. Şu anda Linux'ta da çalışıyordum.

BIND'ın düzgün yapılandırılmadığı takdirde güvenlik sorunları olduğunu ve yapılandırmasının zor olabileceğini okudum. Ayrıca djbdns'in yapılandırılması daha kolay, daha güvenli ve ağır yüklere eşit olduğunu okudum. Djbdns'in argümanları mantıklı görünüyor, ancak onları doğru bir şekilde değerlendirecek uzmanlığa sahip değilim. BIND daha iyiyse, djbdns için bu iddiaların tartışılmasını takdir ediyorum.

Teşekkürler.


Yetkili servis mi, özyinelemeli mi?
bortzmeyer

Yetkili, sanırım.
chernevik

Yanıtlar:


14

Geçmişte djbdns ile çalıştım ve şu anda bir grup BIND sunucusu çalıştırıyorum.

Djbdns ile ilgili en büyük sorun en iyi birinci sınıf öğretmenimin karneme koymasıdır: "başkalarıyla iyi oynamıyor". Sizi daha sonra ısırabilecek çok küçük şekillerde bir unix kutusunda başka bir şey gibi davranmaz. Başka hiçbir yerde görmeyeceğiniz bölge dosyaları için bir sözdizimi kullanır.

Djbdns'in en büyük avantajı, sıfırdan güvenlik # 1 hedefi olarak tasarlanmasıdır.

Bir DNS sunucusu kuracak, internete açacak ve daha sonra hiç bakım yapmayacaksanız, djbdns gitmenin yolu olurdu.

Gerçek dünyada, çoğu yönetici OS satıcısından BIND paketlerini kullanmaktan ve bir güncelleme olduğunda derhal yama yapmaktan daha iyidir. Ancak onu çalıştırmak, iyi bir fikirdir ve yetkili DNS sunucularınızı özyinelemeli çözümleyici DNS sunucularınızdan ayrı tutmak iyi bir fikirdir.

DNS ile ilgili bir şey için dokümanlar bulursanız, BIND eklenir ve djbdns'in eklenmesi olası değildir. Dig kullanırsanız, döndürdüğü biçim bir BIND bölge dosyasına yapıştırılabilir ve çalışabilir. Başka bir gezegenden bir şey yerine normal bir unix daemon gibi davranır.

Bazı donanım yük dengeleyicileri kullanır ve özyinelemeli çözümleyici BIND sunucularımızı yük dengesi kullanırız; harika çalışıyor. Kullanıcıların isteklerini gönderdikleriyle aynı kaynak IP'sini aldıklarından emin olun; tüm UDP ve TCP özellikli yük dengeleme kurulumlarının çalışması gerekir. Yetkili DNS yapıyorsanız, yük dengeleme birden fazla sunucuya sahip olmak ve hepsini whois bilgilerinde yayınlamak kadar basittir; diğer DNS sunucuları dengeyi akıllı bir şekilde yükleyecektir.


2
Bunu djdns çalışmıyormuş gibi düşünmeyi seviyorum, eğer senin hatan, eğer yaparsa, o zaman DJ'leri.
Dave Cheney

2
Tüm tartışma yardımcı olur ve herhangi bir cevabı söylemek diğerlerine biraz haksızlık gibi görünür. Bu, kendim için ulaştığım sonuca en yakın: teknolojik farklılıkları ne olursa olsun, BIND dokümantasyon ve topluluk tarafından daha iyi destekleniyor. Başka bir yanıtın belirttiği gibi, gelecekteki DNS etkileşimlerini basitleştirmenin anlaşılması muhtemel görünüyor. Bu avantajlar, yapılandırma kolaylığı açısından djbdns'in sağladığı faydadan daha önemli görünmektedir.
chernevik

9

Yetkili bir servis için nsd .

Özyinelemeli biri için, bağlı olmayan .

Her ikisi de küçüktür (muhtemelen keşfedilmeyi bekleyen daha az güvenlik boşluğu vardır), aktif olarak korunur ve tüm son DNS şeylerini (DNSSEC, IPv6, vb.) Destekler.

Aksi takdirde, BIND iyi bir yazılımdır.

djbdns, uzun süre korunmayan, daha güvenli olmayan (yazar bunu söylüyor) tek resmi bir projedir ve resmi Web sitesi hatalarla doludur. (Şimdi, eminim djbboys bir sürü downvotes alacak, benim temsilcisi. Tadı için çok yüksek :-)


8

Kendiniz içinse ve DNS'in nasıl çalıştığını öğrenmek istiyorsanız djbdns kullanırdım.

Herkesin DNS'yi nasıl yaptığını ve tipik kurumsal dağıtımları nasıl destekleyeceğini anlamak istiyorsanız, bağlama bilgisini öğrenin.

Hedefiniz minimum çaba ve destekse ve makul derecede yetkinseniz, djbdns'in daha düşük destek yükü vardır.

Çitin acemi tarafında iseniz, muhtemelen bağlanmak ve koşmak için daha kolay bir zamanınız olacak, ancak garip ve tuhaf yollarla patlamanın çok daha muhtemel olduğunu unutmayın.

Eğer zaten djbdns (ve bağlama) bilmiyordum ben de powerdns ve maradns içine bakmak istiyorum, ama küçük kurulumlar için djbdns suite daha iyi olduğundan şüphe.

Ne olursa olsun, DNS'inizi internete tanıtmak için bağlama kullansanız bile, yine de sisteminizin çözümleyicisi için localhost üzerinde çalışan dnscache (djbdns paketinin bir parçası) çalıştırmalısınız.


6

Djbdns'i atla. Djb bir kahraman olmasına rağmen, bir matematikçinin yazılım kibirini taşır. Başlatma / durdurma konusunda diğer yazılımlar gibi davranmaması, cinleri yönetmenin akıllı bir tekniğinin iyi bir göstergesi olabilir. Ancak, düzenli olarak kullanmazsanız belgeleri çıkarmanız gerekecek, çünkü her şey çok farklı. Bunu diğerlerinin de koruduğu sistemlere kurarsanız, onlara basit işlemler yapmak için tümüyle okuması gereken açık belgeler yazmanız gerekir. Başlangıçta bir şeyleri yapmak sevimli, hatta akıllı. Ama aynı zamanda iğrenç, şaşırtıcı ve standart dışı.

Ayrıca, djbdns ile sadece yazılımlara birlikte çalışabilirlik değil, sadece standartlara saygı konusunda ısrar nedeniyle ciddi sorunlara neden olan sorunlar yaşadım. Bu sorunların giderilmesi büyük bir zaman kaybıydı, çünkü DNS paketlerindeki küçük farklılıklara bağlıydı.

Ayrıca djbdns, bazı durumlarda DNS sunucunuzda djb dışındaki araçlarla (örneğin nslookup ile) sorun giderme işlemlerinin şaşırtıcı sonuçlar almasına neden olacak garip davranışlara sahiptir. Açıklamak için zamanınızı harcayacaksınız "aslında, ben sadece djbdns adlı bu karanlık DNS sunucusunu kullanıyorum. Sorun teşhis araçlarınızın size garip bir mesaj veriyor olması, ama sorun değil. Bu paket yakalamaya bakarsanız, Bu, birkaç ay önce djbdns'in DNS sunucunuzla birlikte çalışmadığı sorunla ilgili değil, birkaç hafta önce ofis dışında olduğum ve sorunumu çözmediğimiz sorunla da ilgili değil. DNS sunucusunu yeniden başlatmak için bir saat çalışıyor. "

Her yerde qmail ile benzer sorunlar.

Soruyu soruyorsanız ve öldürmek için zamanınız varsa, djbdns kurmanın bazı eğitimsel değeri vardır. Ayrıca sadece djb'nin web sitesini okuyarak bolca öğrenebilirsiniz.

İki güvenlik sorunu vardır. Bir saldırganın sisteme erişmesine izin veren güvenlik delikleri - djbdns neredeyse kesinlikle bunlardan hiçbirine sahip değildir. Birkaç yıl önce bind, kısa bir süre içinde keşfedilen ve aynı zamanda kötü bir tasarımı ortaya çıkaran birkaç utanç verici olana sahipti. Bu yıllar boyunca tamamen yeniden yazılmış olmasını beklerdim. Bu bakımdan gerçekten güvende olmak istiyorsanız, onu sanal bir makine altında çalıştırın (örn. Xen). Ayrıca, SELinux'u hedefli modda bir Linux sisteminde çalıştırıyorsanız, bağlama için bir kurulumunuz olacak ve muhtemelen djbdns için bir tane ile uğraşmayacaksınız. Bind + SELinux sistemi potansiyel olarak daha güvenlidir.

Diğer konu önbellek zehirlenmesine karşı güvenlik. Benim tahminim djbdns serbest bırakıldığında daha iyi ve bağlama büyük ilgi nedeniyle şimdi muhtemelen daha iyi. Muhtemelen "düzgün yapılandırılmadığı" sürece bağlantının güvensiz olmasının nedeni budur. En azından bu sorunu araştırmalı ve anlamalısınız. Bu süreçte muhtemelen her iki DNS sunucusu için hangi yapılandırma risklerinin bulunduğunu öğreneceksiniz.

Ağır yük altında davranış, çoğu kullanıcı için saçma bir kriterdir. Nadiren bir performans darboğazı olan yazılımı değerlendirmek için bir ölçüt olarak kullanılan performansa dikkat edin. Çok büyük bir kullanıcı tabanı için önbellek DNS sunucusuna ev sahipliği yapmıyorsunuz, burada önemli bir oranda istek alabilirsiniz. Muhtemelen aynı sistemde çalışan hizmetler sağlamak için yetkili DNS çalıştırıyorsunuz. Bu hizmetler DNS'den binlerce kat daha pahalıdır. İnternet bağlantınız DNS sunucunuzu ağır bir şekilde yüklemek için bile yeterli olmayabilir, ancak sağladığınız hizmetlerde bu kadar ağır bir yük alıyorsanız, DNS olası bir darboğaz olmayacaktır.


5

Güvenlik bilincine sahip bir DNS sunucusu olan MaraDNS'ye göz atmak isteyebilirsiniz .

  • Güvenli. MaraDNS, diğer DNS sunucuları kadar iyi veya daha iyi bir güvenlik geçmişine sahiptir. Örneğin, MaraDNS her zaman güvenli bir rasgele sayı üreteci, Sorgu Kimliği ve DNS sorgularının kaynak bağlantı noktasını kullanarak rasgeleleştirmiştir; ve "yeni" önbellek zehirlenmesi saldırısına karşı asla savunmasız değildi.

  • Desteklenen. MaraDNS'nin bakımı ve güncellenmesi uzun bir geçmişe sahiptir. MaraDNS ilk olarak 2001 yılında kuruldu. MaraDNS 1.0 2002 yılında piyasaya sürüldü ve MaraDNS 1.2 Aralık 2005'te piyasaya sürüldü. MaraDNS, hem SQA süreci hem de dört yılı aşkın gerçek dünya kullanımı ile kapsamlı bir şekilde test edildi. MaraDNS tam olarak desteklenmeye devam ediyor: En son sürüm 13 Şubat 2009'da yapıldı. MaraDNS 2.0'ın parçası olacak kod olan Deadwood aktif olarak geliştiriliyor.

  • Kullanımı kolay. Temel bir özyinelemeli yapılandırma için yalnızca tek bir üç satırlı yapılandırma dosyası gerekir. Temel bir yetkili yapılandırma için yalnızca dört satırlı bir yapılandırma dosyası ve tek satırlı bir bölge dosyası gerekir. MaraDNS, hem takip edilmesi kolay öğreticiler hem de eksiksiz ve güncel bir referans kılavuzu ile tamamen belgelenmiştir.

  • Küçük. MaraDNS, sunucunun mümkün olan en az sayıda kaynağı kullanması gereken gömülü uygulamalar ve diğer ortamlar için çok uygundur. MaraDNS'in ikili dosyası, şu anda bakımı yapılan diğer özyinelemeli DNS sunucusundan daha küçüktür.

  • Açık kaynak. MaraDNS tamamen açık kaynaklıdır, lisans FreeBSD lisansıyla neredeyse aynı olan iki maddeli bir BSD lisansıdır.

Seçim yapmanıza yardımcı olabilecek birkaç DNS sunucusu yazılımının karşılaştırmasının yapıldığı maraDNS savunuculuğu sayfasına bakın .


MaraDNS, projenin ana sayfasında belirtildiği gibi artık yazar tarafından tutulmamaktadır
Joseph Holsten

1
Bir düzeltme olarak, artık MaraDNS'yi aktif olarak geliştirmeme rağmen, hala koruyorum (hata düzeltmeleri, yeni derleyiciler için güncellemeler ve Linux dağıtımları, vb.). Aslında, bu sene (2014) yeni bir MaraDNS sürümü çıkardım ve muhtemelen gelecek yıl bir tane yapacağım: maradns.samiam.org/download.html
samiam

4

DNS'yi yalnızca kendiniz çalıştırıyorsanız, djbdns daha iyi bir yazılım paketidir. Geçen yıldan itibaren önemli DNS güvenlik sorununu tanımlayan ve bunu yıllar önce düzeltmek için oluşturulmuş / yamalı birkaç yazılım paketinden biriydi. DNS önbelleklemesi için, yetkili DNS sunucuları olarak çalışmayan tüm sunuculara dnscache (djbdns'in bir parçası) yüklerim. Çoğu öğe için gerçekten BIND'den daha iyi çalışıyor, ancak bugünün donanımı göz önüne alındığında, BIND'in ekstra ağırlığı ve daha düşük hızı sorun değil.

Deneyim için, hangi paketi çalıştırmak istediğinize bakılmaksızın BIND'in temellerini öğrenirim.

Djbdns, komut satırından yönetilmesi gerçekten kolay olacak şekilde ayarlanmıştır. DNS verilerindeki tüm değişiklikler komut olarak yapılır. BIND'de bir dizi metin dosyasını düzenlersiniz.

Her ikisi için de paket alabilirsiniz. Farkı IE ve diğer tarayıcılar olarak görüyorum. IE yerleşik olarak gelir ve birçok şey için çalışır ve varsayılandan değiştirmezsiniz. Djbdns farklıdır ve farklı bir dizi takas gerektirir. Bir ISS için, BIND'den djbdns'e geçmek biraz zor olabilir, çünkü BIND varsayılan olarak önbelleğe alma ve ad sunma yapar, burada djbdns olarak bunu iki parçaya ayırır. Bu güvenlik çözümünü tercih etti, ancak kurulumu daha zor, bu yüzden birçok BIND kurulumu rahatsız etmiyor.


3

Şahsen ben referans için BIND'ın temellerini öğrenmeniz gerektiğini söyleyebilirim, ancak başka bir şeye geçmek sizi gelecekte daha mutlu bir sistem yöneticisi yapacak :)

ISS endüstrisinde çalıştığım çoğu yer djbdns kullanıyor gibi görünüyor, üstündeki 'yönetilen' hizmetleri katmanlamak için mükemmel yapı taşları ve temeller sağlıyor - bölge dosyaları oluşturmak için komut dosyaları yazmak oldukça önemsiz, yani tüm DNS verilerinizi saklayabilirsiniz SQL'de zaten. Saniyede gülünç miktarda sorgu işliyor ve önyükleme yapmak güvenlidir.

Ölçeklendirmeniz gerekiyorsa, http://haproxy.1wt.eu adresine bir göz atın ve bunun arkasında birkaç yetkili sunucu açın! Ayrıca, dağıtıcıları dağıtmayı seçtiğiniz herhangi bir kurulumda yetkili sunuculardan ayırmanızı da öneririm.

Okumaya değer diğer şeyler MaraDNS ve PowerDNS'dir.


2

Öncelikle FreeBSD'yi bu tür şeyler için kullanıyorum ve BIND ile birlikte geldiğinden asla başka bir şey öğrenmek için çaba göstermedim. Hoever BIND'in yapılandırılmasını oldukça kolay buluyorum ve FreeBSD tarafından bir güvenlik perspektifinde tutulduğundan, sadece herhangi bir güvenlik sorunu için bu kanalı izlemem gerekiyor.

Sanırım sizin için en iyi bahis, ikisini de denemek ve size en uygun olanı görmek, yani ikisiyle birlikte gelen bir işletim sistemi kullanmamanızdır.


2

DNS hakkında bilgi edinmek istiyorsanız, O'Reilly " DNS ve BIND " kitabının bir kopyası ve en son bağlanan sürümü muhtemelen en iyi yoludur.

BIND'ın kullanım ömrü boyunca daha fazla güvenlik sorunu yaşadığı doğrudur. dnjdns'ın geçen yıla kadar hiçbiri yoktu, ancak BIND'den çok farklı bir mimariye sahip ve adlandırma sisteminin nasıl çalıştığını bilmiyorsanız almak daha zor olabilir.

Sadece bir DNS sunucusunun nasıl çalıştırılacağını öğrenmek istiyorsanız (protokoller ve benzerlerini öğrenmenin aksine), sadece birini seçip dalmanız en iyisi olacaktır. Her ikisi için de ikili paketler bulacağınızı umuyorum. seçtiğiniz * nix dağıtımında. Bununla birlikte, bir güvenlik açığı duyurulursa, yeniden derlemeniz gerekebilecek yazılımla kaynaktan derlemenin bazı avantajları vardır.

Herhangi bir internet servisinde olduğu gibi, hangi yazılımı kullandığınızdan bağımsız olarak sağduyulu ve pragmatik düşünme en iyi yoldur. Dinamik güncelleştirmeleri etkinleştirmeniz gerekiyorsa, bunların imzalandığından emin olun. Bölge aktarımlarına izin verirseniz, bunları sunucunuzdan vb. Gerçekleştirebilecek olanları kısıtlayın.


1
Ben djbdns ile güvercin, hızlı bir şekilde bazı küçük kurulum sorunları vurdu ve sadece bu tür sorunları belgeleyen çok büyük bir topluluk olmadığını keşfetti. Bunun için "DNS ve BIND" gibi bir şey yoktur. Bu engeli aşsam bile, yapmak isteyebileceğim her şeyin BIND çözümü hakkında tartışması daha olasıdır. Teknolojisi daha iyi olsun ya da olmasın, BIND daha iyi bir desteğe sahip gibi görünüyor.
chernevik

Görünüşe göre, istediğiniz kadar zor değil. İş yapmaya ve belirli bir aracın potansiyelini tüketmemek için sınırlı anlayışla yapabileceğim en iyi seçimleri yapmaya çalışıyorum. Ben djbdns ve Perl ve lighttpd ve Free BSD için minnettarım ve tüm diğer açık kaynak şeyler ben değilim değil şu anda kullanmakta. Neredeyse hepsi. Ama benden daha fazla bir acemi RTFM veya TFM arayın, ciddi olarak bekleyebilirsiniz sanmıyorum. Djbdns'e açıkça yatırım yaptınız ve bu harika. Benim düşüncem seni rahatsız ediyorsa, sanırım daha akıllı yeni başlayanlar için umut edebilirsin ya da cevapları bulmamızı kolaylaştırmak için çalışabilirsin.
chernevik

2

BIND.

Nasıl yapılandırılacağını öğrenirseniz (biraz yorucu DNS ile ilgili RFC'lerin bir kısmını okurken), gelecekte başka bir DNS sunucusuna kolayca geçebilirsiniz (herhangi bir amaç için). BIND FreeBSD, Linux ve hatta Vista dizüstü bilgisayarlarda (VMware NAT'ed ana bilgisayarlar için) her yerde birincil ve ikincil sunucular olarak kullanıyorum.

Btw, BIND kaynağını okumak ve örneğin gethostbyname () veya gethostbyaddr () gibi klasik işlevlerin nasıl çalıştığını keşfetmek biraz eğlencelidir.


2

Yıllarca bağlamayı kullandıktan sonra, sunucularımın çoğunun kendi DNS arka plan programını çalıştırması gerekmediği için nihayet şaşkına döndüm. Bu sizin için geçerli olmayabilir, ancak bunu düşünün: bu günlerde neredeyse her etki alanı kayıt şirketi DNS kayıtlarınızı sizin için sunucuya sunmayı teklif ediyor (genellikle DNS kayıtlarınızı düzenlemek için size web tabanlı bir yol sağlar). Bilgiyi sunma, ikincilleri yönetme vb. İşlemlerini yaparlar. Sunucunuzun DNS sorgularına yanıt verme ihtiyacını kaldırırsanız, geriye kalan tek şey sunucunuzun DNS aramaları yapmasıdır. Bunun için, /etc/resolv.conf dosyamı Level3 "anycast" DNS sunucuları olan ve oldukça hızlı ve güvenilir görünen 4.2.2.1 ve 4.2.2.2'ye işaret ediyorum.

Ek bir avantaj, sunucunuz için güvenlik duvarı yapılandırmasının artık DNS'ye izin vermek zorunda olmamasıdır. Sunucunuzun DNS sorgularının çalışmasına izin vermek için "yerleşik, ilgili" kurallara ihtiyacınız vardır.

Tamam, bu yüzden bir DNS arka plan programı çalıştırmanız gerekip gerekmediğini sormadınız, ama cevapladığım soru bu. Tam olarak söylemek gerekirse, bir tane çalıştırmanız gerektiğini tespit ederseniz, çok sık kullanıldığından, çok fazla belge bulacağınız ve istediğinizi yapmanıza yardımcı olacağınız için bağlamanızı öneririz.


Makul görünüyor, ancak önce kendimi barındırarak bunun nasıl çalıştığını anlamak daha kolay görünüyor.
chernevik
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.