15.2 Bind aufsetzen
In diesem Buch soll der Software mit dem größeren Funktionsumfang – natürlich dem DNS-Server Bind – der Vortritt gelassen werden. Es gibt Tools für die Konfiguration von Bind. Doch diese Tools stehen zum einen erstens nicht auf jedem System zur Verfügung, und zweitens wollen wir Ihnen grundsätzlich Hintergrundwissen vermitteln. In diesem Fall lernen Sie also, wie man Bind mittels der zugehörigen Konfigurationsdateien zum Laufen bringt.
Die Basiskonfiguration von Bind erfolgt über die Datei named.conf. Je nach Linux-Distribution beziehungsweise BSD-Derivat befindet sich diese Datei meist im Verzeichnis /etc, /var/named oder /usr/local/etc.
Zone konfigurieren
Zunächst wird eine Zone konfiguriert. Um beispielsweise das lokale Netzwerk »sun« einzubauen, müsste diese Zone auch sogenannt werden. Dabei soll dieser Server Masterserver der Domain werden, was man mit type master spezifiziert. Die Daten der Resource Records sollen in der Datei sun im Bind-Unterverzeichnis master liegen – also etwa in /var/named/master/sun.
zone "sun" { type master; file "master/sun"; };
Listing 15.1 sun
Slave-Server
Um einen Slave-Server zu konfigurieren, wird als type slave und ein oder mehrere Master angegeben:
masters { 192.168.0.1; [...;] };
Listing 15.2 Master angeben
Caching-Only
Um einen Caching-Only-Server aufzusetzen, müssen hingegen noch Hosts spezifiziert werden, zu denen die DNS-Requests weitergeleitet werden sollen. Dies funktioniert durch das Schlüsselwort forwarders, das man im options-Teil hinzugefügt:
options { ... forwarders { 10.0.0.213; }; ... }
Listing 15.3 forwarders
Resource Records anlegen
Um nun eine eigene Zone mit eigenen Resource Records (RR) anzulegen, erstellt man die in der Zonen-Konfiguration mit dem Schlüsselwort file angegebene Datei und fügt in diese mit einem Texteditor die Resource Records ein.
Eine fertige RR-Datei sieht etwa folgendermaßen aus:
$ORIGIN sun.
Listing 15.4 sun-Datei
Domain
Mit $ORIGIN wird die Domain für alle folgenden Hosts festgelegt. »sun.« hängt an alle unten definierten A-Records die Domain ».sun.« an und spart somit Arbeit und trägt zur Übersichtlichkeit der Konfigurationsdatei bei.
$TTL 6h ; Das ist ein Kommentar
Listing 15.5 sun-Datei (Fortsetzung)
Lebensspanne
Mittels $TTL (time to life) wird eine allgemein gültige Lebensspanne für die Resource Records festgelegt. Sie kann auch für jeden Resource Record einzeln festgelegt werden, doch das macht in der Regel nur selten Sinn.
Kommentare
Kommentare werden durch ein Semikolon eingeleitet. Man kann diese Form von Kommentaren mit der Raute (#) in der Shell vergleichen.
@ IN SOA eygo.sun. admin.sun. (
1 ; serial
1h ; refresh
30m ; retry
7d ; expiration
1h ) ; minimum
Listing 15.6 sun-Datei (noch eine Fortsetzung)
SOA
Als Erstes wird ein SOA-Record (Start-Of-Authority) angelegt. Über diesen werden, grundlegende Eigenschaften der Zone festgelegt, die verwendet werden um mit anderen Servern dieser Zone zu »kommunizieren«. Bei Bind wird dabei zunächst die DNS-Klasse festgelegt. In diesem Fall ist dies »IN«, also Internet-Klasse. Die anderen Klassen sind praktisch tot, weshalb Sie bei einigen DNS-Servern gar nicht mehr anzugeben brauchen, welche Klasse Sie verwenden möchten.
Nach dem Typ des Records (SOA) folgen zwei Hostnamen. Der erste Hostname gibt den Master-DNS-Server an, der zweite ist eine Mail-Adresse. Da in der Konfiguration allerdings keine @-Zeichen verwendet werden dürfen, muss »admin.sun.« als »admin@sun« gelesen werden.
Innerhalb der Klammern folgen verschiedene numerische Werte:
- Die erste Nummer – die Serial-Number – legt die Version der Datei fest. Damit kann geprüft werden, ob Clients bereits die aktuelle Konfigurationsversion geladen haben.
- Die zweite Nummer – die Refresh-Number – gibt an, in welchen Zeitabständen Slave-Server prüfen sollen, ob sie über die aktuelle Version der Konfiguration verfügen.
- Die dritte Nummer – die Retry-Number – legt fest, nach welcher Zeitspanne der Slave erneut versuchen soll, Kontakt mit dem Master aufzunehmen, falls dieser nicht antwortete (beispielsweise wegen Wartungsarbeiten oder einem Absturz).
- Die vorletzte Nummer – Expire – legt fest, wie lange ein Slave die Datenbestände behalten soll, bevor sie als »unaktuell« gewertet und gelöscht werden sollen, wenn der Slave den Master nicht zwecks Update kontaktieren kann.
- Der letzte Wert legt fest, wie groß die Mindest-Lebenszeit (Time To Life, kurz TTL) eines Resource Records sein muss, bevor dessen Aktualität überprüft werden soll.
NS eygo.sun. A 192.168.0.1 AAAA ::1 milk A 192.168.0.2 yorick A 192.168.0.5
Listing 15.7 Weitere RR-Typen
Weitere RR-Typen
Anschließend wird mit dem RR-Typ »NS« ein Nameserver für die Domain festgelegt, der mit dem A-Record-Typ eine IPv4-Adresse bekommt und dessen lokale IPv6-Adresse ::1 ist (AAAA). Anschließend werden weitere IPv4-Records angelegt. Mit diesen wird hier im Beispiel dem Rechnernamen »milk« die IP-Adresse 192.168.0.2 zugewiesen.
Bind unterstützt noch diverse weitere Resource Records wie MX, TXT oder PTR, die Sie im RFC 1033 [Lot87A] finden.
Bind starten
Bind wird über die Binary named gestartet. Dabei werden eventuelle Probleme über den syslogd protokolliert:
# tail -f /var/log/messages& ... ... # /usr/sbin/named # Jul 12 17:40:39 eygo named[19507]: starting BIND 9.3.0
Listing 15.8 named starten mit Fehlerdiagnose