Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Warum ein neuer DNS-Server?

Wenn du dieses Buch siehst, stellst du dir vielleicht als erstes die Frage: "Warum braucht die Welt noch einen DNS-Server?" Schließlich gibt es bereits viele Implementierungen von DNS-Servern, aus denen du wählen kannst. Zunächst einmal gibt es BIND, die Berkeley Internet Name Domain, den Urvater der DNS-Server. BIND gibt es in irgendeiner Form seit den 1980er Jahren und unterstützt so ziemlich jeden DNS-Standard, der geschrieben wurde. Dann gibt es noch den DNS-Server von Microsoft,1 der in Active Directory-Umgebungen weit verbreitet ist. NSD von NLnet Labs und Knot sind hervorragende autoritative DNS-Server, und Unbound, ebenfalls von NLnet Labs, ist ein schneller, schlanker rekursiver DNS-Server. Was bietet CoreDNS also, was diese anderen Server nicht können?

Zunächst einmal ist CoreDNS in Go geschrieben, und Go ist eine speichersichere Programmiersprache. Warum ist das wichtig? Nun, wenn du schon einmal eine BIND-basierte DNS-Infrastruktur betrieben hast und 100 DNS-Server wegen eines Pufferüberlaufs so schnell wie möglich aktualisieren musstest, weißt du das. Ein großer Teil der Schwachstellen in DNS-Servern aller Art (zumindest in denen, die in C und C++ geschrieben wurden) sind auf Pufferüberläufe oder -überläufe und "Dangling Pointer" zurückzuführen. CoreDNS, das in speichersicherfähigem Go geschrieben ist, ist von diesen Problemen nicht betroffen.

In Go geschriebene Programme können auch Parallelität oder parallele Ausführung unterstützen. Das kann nützlich sein, um mehr Leistung aus Multiprozessor- oder Multitasking-Systemen herauszuholen. Die Leistung von BIND skaliert bekanntermaßen nicht gut auf Multiprozessorsystemen, wohingegen die Leistung von CoreDNS gut skaliert, je mehr Prozessoren es zu bedienen hat.

Die Verbesserung der Leistung kann wichtig sein, weil Go dazu neigt, etwas langsamer zu laufen als C oder C++,2 Das liegt zum Teil an dem Overhead, der durch die vielen Funktionen entsteht. In den meisten Fällen ist das aber kein Problem: Wichtig ist, dass CoreDNS gut genug funktioniert, um die Arbeitslast zu bewältigen, die du ihm auferlegst, und das tut es in den allermeisten Fällen, Go hin oder her.

Die wahrscheinlich wichtigste Fähigkeit, die CoreDNS bietet, ist jedoch seine Fähigkeit, mit Container-Infrastrukturen und Orchestrierungssystemen wie etcd und Kubernetes zu kommunizieren.

Wer braucht CoreDNS?

Die kurze Antwort: Im Grunde jeder, der Kubernetes einsetzt, und die meisten Leute, die containerisierte Anwendungen einsetzen.

Die Funktion, die CoreDNS in einer containerisierten Umgebung erfüllt, ist die eines Dienstverzeichnisses, über das wir in diesem Buch ausführlich sprechen. Ein Dienstverzeichnis hilft Containern dabei, die IP-Adresse oder IP-Adressen zu ermitteln, unter denen die Container laufen, die einen bestimmten Dienst anbieten. So kann ein Container zum Beispiel einen Domainnamen nachschlagen, der den Datenbankdienst für eine bestimmte Anwendung darstellt, um Daten abzurufen. Die Funktion des Dienstverzeichnisses ist wichtig, denn in der Welt der Container und Microservices werden Anwendungen in der Regel in viele kleine Dienste zerlegt (daher "Microservices"!), und jeder Dienst kann von mehreren Containern angeboten werden, die jeweils unter einer anderen IP-Adresse laufen.

Aber der Nutzen von CoreDNS ist nicht auf containerisierte Umgebungen beschränkt. Die Plug-ins von CoreDNS unterstützen erweiterte DNS-Funktionen, die selbst die großen Jungs wie BIND nicht unterstützen. Du kannst zum Beispiel Abfragen und Antworten im laufenden Betrieb umschreiben. Du kannst automatisch Zonendaten von GitHub oder Amazon Route 53 laden. Und weil CoreDNS selbst klein ist und normalerweise in einem Container läuft, eignet er sich für den Einsatz in Szenarien, in denen ein großer DNS-Server wie BIND nicht einsetzbar wäre.

Für wen dieses Buch ist

Dieses Buch richtet sich an die folgenden Zielgruppen:

  • Administratoren von containerisierten Umgebungen, die eine DNS-basierte Service-Erkennung benötigen, insbesondere wenn diese Umgebungen von Kubernetes verwaltet werden.
  • DNS-Administratoren, die einen kleinen, flexiblen DNS-Server suchen, der in einem Container laufen kann.
  • DNS-Administratoren, die einen DNS-Server suchen, der
    • mit Route 53 integriert werden kann
    • das flexible Umschreiben von Abfragen und Antworten unterstützt
    • DNS über Transport Layer Security (TLS) und General-Purpose Remote Procedure Call (gRPC) unterstützt
  • Entwickler, die benutzerdefinierte DNS-Funktionen implementieren möchten, indem sie ihre eigenen CoreDNS-Plug-ins schreiben.

Was du lernen wirst

Die Leser/innen dieses Buches werden lernen:

  • Was CoreDNS von anderen DNS-Servern unterscheidet
  • Grundlegende DNS-Theorie, einschließlich des DNS-Namensraums, Domänennamen, Zonen, Ressourceneinträge, Rekursion, Caching und Weiterleitung
  • Grundlegende CoreDNS-Konfiguration, einschließlich der Konfiguration gängiger DNS-Server wie Primaries und Secondaries sowie Caching DNS-Server
  • Die Optionen von CoreDNS für die Verwaltung von Zonendaten, einschließlich erweiterter Optionen wie das Laden von Git und Route 53
  • Wie DNS-basierte Service Discovery funktioniert und wie man CoreDNS Service Discovery mit etcd und Kubernetes konfiguriert
  • Wie du Abfragen und Antworten umschreibst
  • Wie man CoreDNS überwacht und Fehler behebt
  • Wie man eigene Versionen von CoreDNS erstellt und neue Plug-ins schreibt

In diesem Buch verwendete Konventionen

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv

Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.

Constant width

Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Warnung

Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.

Code-Beispiele verwenden

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Wenn du eine CD-ROM mit Beispielen aus den O'Reilly-Büchern verkaufst oder verteilst, ist eine Genehmigung erforderlich. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Erlaubnis erforderlich.

Wir freuen uns über eine Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "CoreDNS lernen von John Belamaric und Cricket Liu (O'Reilly). Copyright 2019 John Belamaric und Cricket Liu, 978-1-492-04796-4."

Wenn du der Meinung bist, dass deine Verwendung von Codebeispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter kontaktieren

O'Reilly Online Learning

Hinweis

Seit fast 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel, Konferenzen und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen findest du unter http://oreilly.com.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Nord
  • Sebastopol, CA 95472
  • 800-998-9938 (in den Vereinigten Staaten oder Kanada)
  • 707-829-0515 (international oder lokal)
  • 707-829-0104 (Fax)

Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten: https://oreil.ly/learning-coreDNS.

Wenn du Kommentare oder technische Fragen zu diesem Buch stellen möchtest, schicke bitte eine E-Mail an

Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.

Finde uns auf Facebook: http://facebook.com/oreilly

Folge uns auf Twitter: http://twitter.com/oreillymedia

Schau uns auf YouTube: http://www.youtube.com/oreillymedia

Danksagungen

Die Autoren möchten ihren fähigen Reviewern Miek Gieben, François Tur und Michael Grosser dafür danken, dass sie sowohl kleine als auch große Fehler aufgedeckt haben. Sie möchten auch allen anderen Mitgliedern der CoreDNS-Gemeinschaft dafür danken, dass sie ein so unglaubliches Produkt geschaffen haben.

John möchte sich bei seiner wunderbaren Frau Robin für ihre Unterstützung, Ermutigung und Hilfe bedanken. Ohne sie hätte er es nicht geschafft. Er möchte sich auch für die Unterstützung seines Sohnes Owen und seiner Tochter Audrey bedanken, die all den Unsinn mitgemacht haben, der dazu gehört, dass ihr Vater ein Buch schreibt. Er bedankt sich bei Tim Hockin, Bowei Du und dem Rest des Kubernetes SIG-Network Teams für die Unterstützung bei der Einführung von CoreDNS in Kubernetes und bei seinen ehemaligen Kollegen bei Infoblox, insbesondere Chris O'Haver und Sandeep Rajan, die hart daran gearbeitet haben, CoreDNS zur richtigen Wahl für Kubernetes zu machen. Schließlich möchte er seinem ehemaligen Kollegen Alan Conley danken, ohne dessen Unterstützung CoreDNS nicht das wäre, was es heute ist.

Cricket möchte sich bei seinen Freunden und Kollegen bei Infoblox bedanken, insbesondere bei seinem Chef, Alan Conley. Ohne Alans regelmäßige Schikanen wäre dieses Buch nie zustande gekommen. Seine Liebe und seinen Dank richtet er auch an Kristin, die ihn immer unterstützt hat, an seine Kinder Walt (geb. Walter B.) und Greta (geb. Baby G.), die ihn immer wieder zum Lachen und Staunen bringen, aber auch immer wieder die Augen verdrehen, und schließlich an Charlie und Jessie, die ihn während des gesamten Projekts wie eine Schwester begleitet haben, aber leider das Ende nicht mehr erleben konnten.

1 Er gewinnt den Preis für den prosaischsten Namen mit links.

2 Das bedeutet, dass derselbe Algorithmus, der auf dieselbe Weise in Go, C und C++ implementiert ist, in C und C++ wahrscheinlich etwas schneller läuft.

Get CoreDNS lernen now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.