Frage djbdns vs bind [geschlossen]


Ich bin ein Neuling, der lernen möchte, wie man einen DNS Nameserver einrichtet. Sollte ich djbdns, BIND oder etwas anderes verwenden?

Zu den aktuellen Netzwerkanforderungen gehören Subdomain-Unterstützung, SSL und E-Mail-Dienst bei sehr geringem Datenaufkommen. Ich hätte gerne eine Lösung, die sich irgendwann auf einen höheren Traffic und möglicherweise schwierigere Anforderungen (wie Lastausgleich) ausweiten könnte. Zu dieser Zeit lief ich entweder unter Linux.

Ich habe gelesen, dass BIND Sicherheitsprobleme hat, wenn es nicht richtig konfiguriert ist, und dass seine Konfiguration schwierig sein kann. Ich habe auch gelesen, dass djbdns einfacher zu konfigurieren, sicherer und gleich schwerer Lasten ist. Die Argumente für djbdns scheinen plausibel zu sein, aber ich habe nicht das Fachwissen, sie richtig zu bewerten. Wenn BIND besser ist, würde ich mich über eine Diskussion dieser Behauptungen für Djbdns freuen.

Vielen Dank.


20
2018-06-27 15:45


Ursprung


Autorisierender Service oder rekursiver Service? - bortzmeyer
Autoritativ, denke ich. - chernevik


Antworten:


Ich habe in der Vergangenheit mit djbdns gearbeitet und betreibe derzeit eine Reihe von BIND-Servern.

Das größte Problem mit djbdns ist am besten so zu stellen, wie es mein Lehrer der ersten Klasse auf meinen Bericht geschrieben hat: "spielt nicht gut mit anderen". Es verhält sich einfach nicht anders als alles andere auf einer Unix-Box in allen möglichen sehr kleinen Arten, die Sie später beißen können. Es verwendet eine Syntax für Zonendateien, die Sie nirgendwo anders sehen.

Der größte Vorteil von djbdns ist, dass es von Grund auf mit Sicherheit als Ziel # 1 entworfen wurde.

Wenn Sie einen DNS-Server einrichten, ihn dem Internet aussetzen und ihn dann nie pflegen würden, wäre djbdns der richtige Weg.

In der realen Welt sind die meisten Admins besser dran, die BIND-Pakete des Betriebssystemherstellers zu verwenden und sie bei einem Update sofort zu patchen. Aber es chroot ist eine gute Idee, und halten Sie Ihre autoritativen DNS-Server getrennt von Ihren rekursiven Resolver-DNS-Server ist eine gute Idee.

Wenn Sie Dokumente für etwas mit DNS finden, wird BIND eingeschlossen und djbdns ist wahrscheinlich nicht enthalten. Wenn Sie dig verwenden, kann das zurückgegebene Format in eine BIND-Zonendatei eingefügt werden und funktionieren. Es verhält sich wie jeder normale Unix-Daemon anstelle von etwas anderem von einem anderen Planeten.

Wir verwenden einige Hardware Load Balancer und Lastausgleich unserer rekursiven Resolver BIND Server; funktioniert super. Stellen Sie nur sicher, dass die Benutzer dieselbe Quell-IP erhalten, an die sie ihre Anforderungen gesendet haben, und dass alle UDP- und TCP-fähigen Lastenausgleichs-Setups funktionieren sollten. Wenn Sie autorisierendes DNS verwenden, ist der Lastenausgleich so einfach, wie mehr als einen Server zu haben und alle in der Whois-Information zu veröffentlichen; Die anderen DNS-Server werden intelligent geladen.


14
2018-06-27 17:18



Ich mag es so zu denken, als ob djdns nicht funktioniert, es ist deine Schuld, wenn es so ist, dann seine DJ's. - Dave Cheney
Die ganze Diskussion ist hilfreich, und die Auswahl einer Antwort erscheint den anderen ein wenig unfair. Dieser kommt der Schlussfolgerung am nächsten, die ich für mich selbst erreicht habe: Was auch immer ihre technologischen Unterschiede sind, BIND wird besser durch Dokumentation und Community unterstützt. Wie eine andere Antwort bemerkt, scheint es wahrscheinlich, zukünftige DNS-Interaktionen zu vereinfachen. Diese Vorteile scheinen wichtiger zu sein als jeder andere Vorteil, den djbdns in der Konfiguration bietet. - chernevik


Für einen maßgeblichen Dienst, nsd.

Für eine rekursive, ungebunden.

Beide sind klein (haben also wahrscheinlich weniger Sicherheitslücken, die darauf warten entdeckt zu werden), werden aktiv gepflegt und unterstützen alle aktuellen DNS-Dinge (DNSSEC, IPv6, etc.).

Ansonsten ist BIND eine gute Software.

djbdns ist ein Ein-Mann-Projekt, lange nicht mehr gepflegt, nicht sicherer (der Autor sagt es einfach), und die offizielle Website ist voller Fehler. (Ich bin mir sicher, dass ich eine Menge Downvotes von djbboys bekommen werde, mein rep. War zu hoch für meinen Geschmack :-)


9
2017-07-02 12:05





Wenn es für Sie selbst ist, und wenn Sie lernen möchten, wie DNS funktioniert, würde ich djbdns verwenden.

Wenn Sie wissen möchten, wie jeder andere DNS ausführt und typische Unternehmensbereitstellungen unterstützt, lernen Sie bind.

Wenn Ihr Ziel minimaler Aufwand und Support ist und Sie einigermaßen kompetent sind, hat djbdns einen viel geringeren Support-Overhead.

Wenn du mehr auf der Anfänger-Seite des Zauns bist, wirst du es wahrscheinlich leichter haben, die Bindung aufzubauen und zu rennen, aber bedenke, dass es viel wahrscheinlicher ist, auf seltsame und verrückte Weise zu explodieren.

Wenn ich djbdns (und bind) noch nicht kenne, würde ich auch in powerdns und maradns schauen, aber ich bezweifle, dass es für kleine Installationen besser ist als die djbdns-Suite.

Unabhängig davon, auch wenn Sie bind verwenden, um Ihr DNS mit dem Internet zu bewerben, sollten Sie dennoch dnscache (Teil der djbdns-Suite) ausführen, das auf localhost für den Resolver Ihres Systems ausgeführt wird.


8
2018-06-27 21:54





Skip djbdns. Obwohl djb ein Held ist, trägt er die Arroganz eines Mathematikers zur Software bei. Die Tatsache, dass es sich nicht wie andere Software in Bezug auf das Starten / Stoppen verhält, könnte eine gute Demonstration einer cleveren Technik der Verwaltung von Dämonen sein. Aber Sie müssen die Dokumentation herausziehen, wenn Sie sie nicht regelmäßig verwenden, weil alles so anders ist. Wenn Sie es auf Systemen einrichten, die andere ebenfalls verwalten, müssen Sie ihnen eine klare Dokumentation schreiben, die sie vollständig lesen müssen, um einfache Operationen auszuführen. Running stuff out of init ist süß, sogar clever. Aber es ist auch anstößig, überraschend und nicht standardgemäß.

Außerdem hatte ich Probleme mit djbdns, was zu ernsthaften Problemen führte, da ich darauf bestand, nur die Standards einzuhalten, und nicht die Interoperabilität der Software. Die Behebung dieser Probleme war eine große Zeitverschwendung, da sie auf kleinen Unterschieden in DNS-Paketen beruhte.

Außerdem hat djbdns in bestimmten Fällen seltsames Verhalten, das dazu führt, dass Benutzer Ihren DNS-Server mit anderen Tools als djb (z. B. mit nslookup) behandeln, um überraschende Ergebnisse zu erhalten. Sie werden Ihre Zeit damit verschwenden zu erklären, "eigentlich benutze ich nur diesen obskuren DNS-Server namens djbdns. Das Problem ist, dass Ihre Diagnose-Tools Ihnen eine seltsame Nachricht geben, aber es funktioniert OK. Wenn Sie diese Paketerfassung betrachten, können Sie sagen Dies hängt nicht mit dem Problem zusammen, das wir vor ein paar Monaten hatten, als djbdns nicht korrekt mit Ihrem DNS Server interoperierte, und auch nicht mit dem Problem, das wir vor ein paar Wochen hatten, wo ich nicht im Büro war und es brauchte meine Teamkameraden eine Stunde, um den DNS-Server neu zu starten. "

Ähnliche Probleme mit qmail rundherum.

Es gibt einen pädagogischen Wert bei der Einrichtung von djbdns, wenn Sie die Frage stellen und die Zeit haben zu töten. Sie können auch viel lernen, indem Sie einfach die Website von djb lesen.

Es gibt zwei Arten von Sicherheitsproblemen. Sicherheitslücken, die einem Angreifer Zugriff auf das System ermöglichen - djbdns hat fast keine davon. Vor ein paar Jahren hatte bind einige ziemlich peinliche Entdeckungen in kurzer Zeit entdeckt und auch ein schlechtes Design preisgegeben. Ich würde erwarten, dass es in all den Jahren komplett neu geschrieben wurde. Wenn Sie in dieser Hinsicht wirklich sicher sein möchten, führen Sie es unter einer virtuellen Maschine (z. B. Xen) aus. Bedenken Sie auch, wenn Sie auf einem Linux-System mit SELinux im Targeted-Modus laufen, haben Sie ein Setup für bind und werden wahrscheinlich keinen für djbdns verwenden. Das bind + SELinux-System ist potenziell sicherer.

Das andere Problem ist die Sicherheit gegen Cache-Poisoning. Meine Vermutung ist, dass Djbdns besser war, als es veröffentlicht wurde, und Bindung ist wahrscheinlich jetzt besser wegen größerer Aufmerksamkeit. Dies ist wahrscheinlich die Ursache für Ihr Gehör, dass die Bindung unsicher ist, es sei denn, "richtig konfiguriert". Sie sollten dieses Problem zumindest erforschen und verstehen. Dabei werden Sie wahrscheinlich herausfinden, welche Konfigurationsrisiken für beide DNS-Server bestehen.

Verhalten unter hoher Last ist ein Nonsense-Kriterium für die meisten Benutzer. Achten Sie auf die Leistung, die als Kriterium für die Bewertung von Software verwendet wird, die selten einen Leistungsengpass darstellt. Sie hosten keinen Caching-DNS-Server für eine große Benutzergruppe, in der Sie möglicherweise Anfragen in erheblichem Umfang erhalten. Sie führen autorisierende DNS aus, um Dienste bereitzustellen, die wahrscheinlich auf demselben System ausgeführt werden. Diese Dienste sind tausende Male teurer als DNS. Ihr Internet-Link reicht möglicherweise nicht einmal aus, um Ihren DNS-Server stark zu belasten. Wenn Sie jedoch eine derart hohe Belastung für die von Ihnen bereitgestellten Dienste erleiden, wäre DNS kein wahrscheinlicher Engpass.


6
2018-06-28 19:23





Vielleicht möchten Sie sich ansehen MaraDNSein sicherheitsbewusster DNS-Server.

  • Sichern. MaraDNS hat eine Sicherheitsgeschichte, die so gut oder besser als jeder andere DNS-Server ist. Zum Beispiel hat MaraDNS immer mit einem sicheren Zufallszahlengenerator die Abfrage-ID und den Quellport von DNS-Anfragen randomisiert; und war nie anfällig für den "neuen" Cache-Poisoning-Angriff.

  • Unterstützt. MaraDNS hat eine lange Geschichte der Aufrechterhaltung und Aktualisierung. MaraDNS wurde ursprünglich im Jahr 2001 erstellt. MaraDNS 1.0 wurde 2002 veröffentlicht und MaraDNS 1.2 wurde im Dezember 2005 veröffentlicht. MaraDNS wurde ausführlich getestet, sowohl mit einem SQA-Prozess als auch mit über vier Jahren Praxiseinsatz. MaraDNS wird weiterhin vollständig unterstützt: Die neueste Version wurde am 13. Februar 2009 veröffentlicht. Deadwood, der Code, der Teil von MaraDNS 2.0 wird, wird aktiv entwickelt.

  • Einfach zu verwenden. Eine grundlegende rekursive Konfiguration benötigt nur eine einzelne dreizeilige Konfigurationsdatei. Eine grundlegende autorisierende Konfiguration benötigt nur eine vierzeilige Konfigurationsdatei und eine einzeilige Zonendatei. MaraDNS ist vollständig dokumentiert, mit leicht verständlichen Anleitungen und einem vollständigen und aktuellen Referenzhandbuch.

  • Klein. MaraDNS eignet sich gut für eingebettete Anwendungen und andere Umgebungen, in denen der Server die absolut minimale Anzahl von möglichen Ressourcen verwenden muss. Die Binärdatei von MaraDNS ist kleiner als die eines anderen derzeit gepflegten rekursiven DNS-Servers.

  • Open Source. MaraDNS ist vollständig Open-Source, Die Lizenz ist eine Zwei-Klausel-BSD-Lizenz, die fast identisch mit der FreeBSD-Lizenz ist.

Siehe die Seite von maraDNS Interessenvertretung wo gibt es einen Vergleich von mehreren DNS-Server-Software, die Ihnen bei der Auswahl helfen können.


5
2018-06-27 21:12



MaraDNS wird nicht mehr vom Autor verwaltet, wie auf der Projekthomepage angegeben: maradns.org - Joseph Holsten
Zur Korrektur, während ich MaraDNS nicht mehr aktiv entwickle, behalte ich es immer noch bei (Bugfixes, Updates für neue Compiler und Linux-Distributionen usw.). Tatsächlich habe ich gerade dieses Jahr (2014) eine neue MaraDNS-Veröffentlichung veröffentlicht und werde wahrscheinlich nächstes Jahr eine machen: maradns.samiam.org/download.html - samiam


Wenn Sie DNS nur für sich selbst betreiben, ist djbdns das bessere Softwarepaket. Es war eines der wenigen Softwarepakete, die das größte DNS-Sicherheitsproblem des letzten Jahres identifiziert hatten und es wurde gebaut / gepatcht, um es Jahre zuvor zu reparieren. Für das DNS-Caching installiere ich DNSCache (Teil von djbdns) auf allen Servern, die nicht als autorisierende DNS-Server laufen. Es funktioniert wirklich besser als BIND für die meisten Gegenstände, aber angesichts der heutigen Hardware ist das zusätzliche Gewicht und die langsamere Geschwindigkeit von BIND kein Problem.

Aus Erfahrung würde ich die Grundlagen von BIND lernen, unabhängig davon, welches Paket Sie ausführen möchten.

Djbdns ist so eingestellt, dass es von der Kommandozeile aus einfach zu verwalten ist. Alle Änderungen an DNS-Daten werden als Befehle ausgeführt. In BIND bearbeiten Sie eine Reihe von Textdateien.

Sie können Pakete für beide erhalten. Ich sehe den Unterschied als IE gegenüber anderen Browsern. IE kommt eingebaut und funktioniert für viele Dinge und ändert nicht von der Standardeinstellung. Djbdns ist anders und erfordert eine andere Reihe von Kompromissen. Für einen ISP kann der Wechsel von BIND zu djbdns ein wenig schwierig sein, da BIND standardmäßig Caching und Name Serving durchführt, wobei djbdns dies in zwei Teile aufteilt. Diese bevorzugte Sicherheitslösung ist aber schwieriger einzurichten, so dass viele BIND-Installationen nicht stören.


4
2018-06-27 19:36





Persönlich würde ich sagen, dass Sie die Grundlagen von BIND aus Gründen des Grundwissens lernen müssen, aber dass sich auf etwas anderes zu bewegen, werden Sie ein glücklicherer Systemadministrator für die Zukunft machen :)

Die meisten Orte, an denen ich in der ISP-Branche gearbeitet habe, scheinen djbdns zu nutzen, sie bieten exzellente Bausteine ​​und Grundlagen, um "verwaltete" Dienste zu überlagern - das Schreiben von Skripten zum Generieren von Zonendateien ist ziemlich trivial, dh Sie können all Ihre DNS-Daten speichern in SQL sowieso. Es verarbeitet eine lächerliche Menge an Abfragen pro Sekunde und ist sicher zu booten.

Wenn Sie es skalieren müssen, werfen Sie einen Blick auf http://haproxy.1wt.eu und ein paar autoritative Server dahinter! Ich würde auch sehr empfehlen, die Resolver von autoritativen Servern in jedem Setup zu trennen, das Sie bereitstellen möchten.

Weitere interessante Dinge sind MaraDNS und PowerDNS.


3
2018-06-28 09:17





Ich verwende FreeBSD hauptsächlich für diese Art von Dingen und da es Bündel mit BIND gibt, habe ich mich nie wirklich bemüht, etwas anderes zu lernen. Allerdings finde ich BIND ziemlich einfach zu konfigurieren und da es von FreeBSD in einer Sicherheitsperspektive gehalten wird, muss ich diesen Kanal nur für irgendwelche Sicherheitsprobleme verfolgen.

Also denke ich, dass die beste Wette für Sie ist, beide zu testen und zu sehen, welcher Ihnen am meisten entspricht, es sei denn, Sie verwenden ein Betriebssystem, das mit beiden mitgeliefert wird.


2
2018-06-27 16:02





Wenn Sie etwas über DNS erfahren möchten, eine Kopie des O'Reilly-Buches "DNS und BIND"und die neueste Version von Bind installiert ist wahrscheinlich der beste Weg zu gehen.

Es ist wahr, dass BIND während seiner Lebensdauer mehr Sicherheitsprobleme hatte. dnjdns hatte bis letztes Jahr keine, aber es hat eine ganz andere Architektur als BIND und du wirst es vielleicht schwieriger finden, wenn du nicht weißt, wie das Benennungssystem funktioniert.

Wenn Sie nur herausfinden möchten, wie Sie DNS ausführen können Server (Im Gegensatz zum Lernen über die Protokolle und so), wäre es das Beste, einen auszuwählen und einzusteigen. Ich nehme an, dass Sie Binärpakete für beide finden, in welcher * nix-Distribution Sie sich auch entscheiden. Abgesehen davon gibt es einige Vorteile beim Kompilieren von der Quelle mit der Software, die Sie möglicherweise neu erstellen müssen, wenn eine Sicherheitslücke gemeldet wird.

Wie bei jedem internetbasierten Dienst ist auch hier ein vernünftiger und pragmatischer Ansatz der beste Weg, unabhängig davon, welche Software Sie verwenden. Wenn Sie dynamische Updates aktivieren müssen, stellen Sie sicher, dass diese signiert sind. Wenn Sie Zonenübertragungen zulassen, beschränken Sie, wer sie von Ihrem Server aus ausführen darf usw.


2
2018-06-27 16:46



Ich tauchte mit djbdns ein, traf schnell einige kleinere Installationsprobleme und entdeckte, dass es keine große Community gibt, die solche Probleme dokumentiert. Es gibt nichts wie "DNS und BIND" dafür. Selbst wenn ich über diese Hürde hinauskomme, ist alles, was ich tun möchte, eher eine Diskussion über die BIND-Lösung. Ob es besser ist oder nicht, BIND scheint eine bessere Unterstützung zu haben. - chernevik
Anscheinend nicht so schwer, wie du es gerne hättest. Ich versuche, Arbeit zu verrichten und die besten Entscheidungen zu treffen, die ich mit begrenztem Verständnis treffen kann, nicht das Potenzial eines bestimmten Werkzeugs ausschöpfen. Ich bin dankbar für djbdns, und perl, und lighttpd, und Free BSD, und all die anderen Open-Source-Sachen, die ich bin nicht derzeit verwenden. Nun, fast alles. Aber ich glaube nicht, dass Sie ernsthaft einen Neuling für RTFM oder Look for TFM erwarten können, mehr als ich. Du bist eindeutig in djbdns investiert, und das ist großartig. Wenn meine Meinung dich ärgert, dann denke ich, dass du auf intelligentere Anfänger hoffen kannst, oder du kannst arbeiten, um es uns leichter zu machen, Antworten zu finden. - chernevik