Diese Angaben berufen sich auf Ubuntu 8.04 Server. Es sollte auch auf anderen Debian basierenden Systemen und Unix laufen.
# apt-get install bind9 # /etc/init.d/bind9 stop
Erklärung: 1. Installieren; 2. Dienst stoppen, da eh nichts gescheites läuft.
Da sich alles im Ordner '/etc/bind' abspielt wechseln wir hinein uns sehen uns mit 'ls -asl' mal alles an. In den Dateien, die mit 'named.' beginnen wird die allgemeine Funktion des Servers konfiguriert. Die 'db.'-Dateien sind dagegen die sogenannten Zonendateien, in denen die eigentlichen DNS-Daten abgelegt werden.
Dein DNS kann nicht alles wissen. Darum editieren wir die Datei 'named.conf.options'. Das Ergebnis sollte etwa so aussehen:
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you might need to uncomment the query-source
// directive below. Previous versions of BIND always asked
// questions using port 53, but BIND 8.1 and later use an unprivileged
// port by default.
// query-source address * port 53;
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
// 0.0.0.0;
192.168.1.1;
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
Wir erstellen uns also einen neue Zone und nennen sie zum Beispiel 'intern'.
# nano db.intern
In die Datei kommt dann folgender Inhalt:
; db.intern ; Forwardlookupzone für intern ; Der lokale Host heiss gruft.intern und hat die IP 192.168.1.2 $TTL 2D @ IN SOA gruft.intern. root.localhost ( 2008072204 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D ) ; TTL Negativ Cache ; @ IN NS gruft.intern. @ IN A 192.168.1.2 gruft IN A 192.168.1.2 ; fileserver IN A 192.168.1.3 router IN A 192.168.1.1 ;
Besonders wichtig an dieser Stelle ist eine Leerzeile am Ende der Datei!
Das TTL (time to live) gibt an, wie lange Informationen im Cache gültig bleiben und danach neu angefordert werden (in unserem Fall 2Days also 2 Tage).
Als nächstes kommt dann der SOA (start of authority resource records), welcher folgende Werte für den Bereich unserer Domäne festlegt:
Im Moment ingnoriert bind unsere neue Konfigurationsdatei. Darum ergänzen wir die Datei 'named.conf.local'. Das Ergebnis:
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "intern" {
type master;
file "/etc/bind/db.intern";
//notify no;
};
Wird bind jetzt neugestartet, funktioniert die Namensauflösung.
Für einen richtigen DNS braucht es aber noch mehr. Darum hängen wir noch folgendes an die Datei 'named.conf.local'an:
zone "192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
//notify no;
};
Die Datei 'db.192' kannst du entweder von hier oder von '/etc/bind/db.127' kopieren. Ich empfehle letzteres.
Wichtig: Das Format der IP ist umgekehrt und ohne das erste Oktett! Aus '192.168.1.1' wird '1.1.168'.
; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA gruft. root.gruft. ( 2008071206 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS gruft. 2.1.168 IN PTR gruft. 3.1.168 IN PTR fileserver. 1.1.168 IN PTR router.
Jetzt muss man bind nur noch starten und Testen
# /etc/init.d/bind9 start dig @localhost
Zwar hast du jetzt einen wunderbaren Nameserver aufgesetzt, aber er wird noch nicht benutzt. Um den Clients beizubringen, den neuen Dienst zu nutzen bearbeitest du entweder bei allen Clients die Auflösungsdaten (unter Linux '/etc/resolv.conf') oder richtest deinen DHCP-Server ein, dann sagte er den Clients wo sie nachfragen sollen.
Es ist wichtig, das zu jedem neuen A Eintrage auch ein passender Eintrag in der Reverse-Zone erstellt wird.
Die meisten Administratoren kennen es von Microsoft's AD: Das dynamische Update. Wer nicht warten will und französisch kann, einfach auf den Link klicken.