Nach vier Jahren habe ich mich endlich mit BIND auseinandergesetzt. Schon längere Zeit wollte ich in unserem Heimnetzwerk einen DNS-Server aufsetzen, damit man nicht ständig die Clients einzeln konfigurieren muß und ich bei einer Änderung nicht immer jeden Client anpassen muß.
Das Netzwerk sollt so aussehen:
lokales Netz: unknown-online.local
lokale Rechner:
Gateway = cerberus
Arbeitsrechner 1 = helix
Arbeitsrechner 2 = asgard
Schlepptop = Paranoia
sowie vier Gastsysteme
Guest 1 - Guest 4
Die beiden Arbeitsrechner sind untereinander und mit dem Gateway über einen Switch verbunden. Der Gateway hängt mit einer Netzwerkkarte im internen Netz und mit der anderen am DSL-Router. Bislang ist noch keine Wireless-Komponente im Netz enthalten, die berücksichtigt werden müßte.
Als Standard-Nameserver zur Weiterleitung der DNS-Abfragen nehme ich (als T-Online-Kunde) die Nameserver der Telekom, hier habe ich drei Nameserver herausgesucht. Eine Übersicht über die Nameserver der Telekom gibt es hier: http://www.atelier89.de/users/dirk/t-o/010.html
Schritt 1: Per "apt-get install" die nötigen Pakete installiert (bind) und eifrig HowTos und Forenanleitungen gelesen.
Schritt 2: Nun geht es ans anpassen der Konfigurationsdateien.
Folgende Konfig-Dateien (unter /etc/bind/ zu finden) müssen geändert bzw. neu angelegt werden:
zu ändern:
- /etc/bind/named.conf.options
- /etc/bind/named.conf.local
- /etc/resolv.conf
neu anzulegen:
- /etc/bind/unknown-online.local.hosts
Auf die Dateien komme ich jetzt im einzelnen:
Schritt 3: -named.conf.options ändern
Diese Konfig-Datei enthält die Einträge für die Forwarder-Server. Standardmäßig bringt die BIND-Installation in der db.root-Konfigurationsdatei die DNS-Rootserver mit. Damit nun nicht jede DNS-Anfrage an die DNS-Rootserver geht, kann man eigene Nameserver definieren - die sogenannten Forwarder. Dies geschieht in der named.conf.options-Datei und sieht bei mir jetzt so aus:
Im Konfig-Punkt muss man hier einfach bei dem Punkt "forwarders {" in den nächsten Zeilen die gewünschen Nameserver eintragen. Dann die Konfig-Datei speichern und weiter zum nächsten Schritt - dem Einrichten der lokalen Zone.
Schritt 4: Lokalen Namensbereich einrichten
Vorbemerkung: Natürlich könnte ich in einem kleinen Netzwerk auch auf jedem Rechner eine hosts-Datei pflegen. Aber wenn schon DNS, dann auch richtig.
Der DNS-Server kann bereits DNS-Anfragen vom Intranet ans Internet auflösen. Jetzt möchte ich aber, daß er auch intern die IP-Adressen auflöst, so daß ich die einzelnen Systeme im lokalen Netz per Rechnername ansprechen kann.
Dazu muss ich eine Zonendatei für mein lokales Netz anlegen, in der ich die Rechnernamen sowie die dazugehörigen IP-Adressen festlege. Auf diese Zonendatei kann ich dann in der named.conf.local einen link setzen. Das sieht bei mir in der Praxis folgendermaßen aus:
Und die dazugehörige Zonendatei für obiges Netzwerk:
Die obige Datei gibt den Namen des Netzwerkes und der darin enthaltenen Rechner an.
Gleich in der ersten Zeile findet sich der Name des Netzwerkes sowie der lokale DNS-Master. Die Angabe dahinter ist die Kontaktadresse des Masterservers - der Punkt zwischen "root" und dem Domainnamen steht für ein "@"-Zeichen.
In den darunterliegenden Zeilen finden sich Angaben zu den einzelnen Hosts und weitere Informationen wie z.B. eine kurze Hardwarebeschreibung und ein kurzer Beschreibungstext zum jeweiligen System. Unterhalb der Namenseintragungen finden sich dann die Eintragungen für das Reverse-Lookup, der Auflösung von IP-Adresse zum Rechnernamen.
Schritt 5: Den Systemen beibringen, wo sie gucken sollen
Nach dem Einrichten des Nameservers müssen nun die einzelnen Systeme im Netz noch wissen, wo sie den DNS-Server finden. Dazu muss die /etc/resolv.conf pro Rechner angepasst werden:
Nun muss ich auf dem DNS-Server noch die /etc/host.conf anpassen:
damit das System weiß, daß es die Anfragen erst mit der /etc/hosts-Datei abgleichen soll und bei Nichterfolg den lokalen BIND-Server kontaktiert.
Schritt 6: Funktionstest
Nach erfolger Konfiguration startet man den bind-daemon per "/etc/init.d/bind9 restart" neu. Dann kann man per "nslookup" die Funktionsfähigkeit testen, bei mir lief danach alles ohne probleme. Weitere Informationen bzw. tiefergehendes Wissen zum Thema DNS gibts in einigen guten Howtos und den Manpages, wenn man sich mit dem Thema noch näher auseinandersetzen möchte - ich hab für heute genug getippt *g*
Das Netzwerk sollt so aussehen:
lokales Netz: unknown-online.local
lokale Rechner:
Gateway = cerberus
Arbeitsrechner 1 = helix
Arbeitsrechner 2 = asgard
Schlepptop = Paranoia
sowie vier Gastsysteme
Guest 1 - Guest 4
Die beiden Arbeitsrechner sind untereinander und mit dem Gateway über einen Switch verbunden. Der Gateway hängt mit einer Netzwerkkarte im internen Netz und mit der anderen am DSL-Router. Bislang ist noch keine Wireless-Komponente im Netz enthalten, die berücksichtigt werden müßte.
Als Standard-Nameserver zur Weiterleitung der DNS-Abfragen nehme ich (als T-Online-Kunde) die Nameserver der Telekom, hier habe ich drei Nameserver herausgesucht. Eine Übersicht über die Nameserver der Telekom gibt es hier: http://www.atelier89.de/users/dirk/t-o/010.html
Schritt 1: Per "apt-get install" die nötigen Pakete installiert (bind) und eifrig HowTos und Forenanleitungen gelesen.
Schritt 2: Nun geht es ans anpassen der Konfigurationsdateien.
Folgende Konfig-Dateien (unter /etc/bind/ zu finden) müssen geändert bzw. neu angelegt werden:
zu ändern:
- /etc/bind/named.conf.options
- /etc/bind/named.conf.local
- /etc/resolv.conf
neu anzulegen:
- /etc/bind/unknown-online.local.hosts
Auf die Dateien komme ich jetzt im einzelnen:
Schritt 3: -named.conf.options ändern
Diese Konfig-Datei enthält die Einträge für die Forwarder-Server. Standardmäßig bringt die BIND-Installation in der db.root-Konfigurationsdatei die DNS-Rootserver mit. Damit nun nicht jede DNS-Anfrage an die DNS-Rootserver geht, kann man eigene Nameserver definieren - die sogenannten Forwarder. Dies geschieht in der named.conf.options-Datei und sieht bei mir jetzt so aus:
Code:
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 {
217.237.148.49;
217.237.148.65;
217.237.148.161;
};
auth-nxdomain no; # conform to RFC1035
};
Schritt 4: Lokalen Namensbereich einrichten
Vorbemerkung: Natürlich könnte ich in einem kleinen Netzwerk auch auf jedem Rechner eine hosts-Datei pflegen. Aber wenn schon DNS, dann auch richtig.
Der DNS-Server kann bereits DNS-Anfragen vom Intranet ans Internet auflösen. Jetzt möchte ich aber, daß er auch intern die IP-Adressen auflöst, so daß ich die einzelnen Systeme im lokalen Netz per Rechnername ansprechen kann.
Dazu muss ich eine Zonendatei für mein lokales Netz anlegen, in der ich die Rechnernamen sowie die dazugehörigen IP-Adressen festlege. Auf diese Zonendatei kann ich dann in der named.conf.local einen link setzen. Das sieht bei mir in der Praxis folgendermaßen aus:
Code:
//
// 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 "unknown-online.local" {
type master;
file "/etc/bind/unknown-online.local.hosts";
};
Code:
$ttl 38400
unknown-online.local. IN SOA cerberus.unknown-online.local. root.cerberus.unknown-online.local. (
1147256750
10800
3600
604800
38400 )
unknown-online.local. IN NS cerberus.unknown-online.local.
cerberus.unknown-online.local. IN A 192.168.1.1
cerberus.unknown-online.local. IN HINFO i586 GNU/Linux
cerberus.unknown-online.local. IN TXT "Welcome to cerberus."
helix.unknown-online.local. IN A 192.168.1.30
helix.unknown-online.local. IN HINFO i686 Debian-Linux
helix.unknown-online.local. IN TXT "Helix-System"
asgard.unknown-online.local. IN A 192.168.1.40
asgard.unknown-online.local. IN HINFO AMD Debian-Linux
asgard.unknown-online.local. IN TXT "Asgard-System"
paranoia.unknown-online.local. IN A 192.168.1.100
paranoia.unknown-online.local. IN HINFO i586 Debian-Linux
paranoia.unknown-online.local. IN TXT "Mobiles Paranoia-System"
guest1.unknown-online.local. IN A 192.168.1.150
guest2.unknown-online.local. IN A 192.168.1.160
guest3.unknown-online.local. IN A 192.168.1.170
guest4.unknown-online.local. IN A 192.168.1.180
192.168.1.1.unknown-online.local. IN PTR cerberus
192.168.1.30.unknown-online.local. IN PTR helix
192.168.1.40.unknown-online.local. IN PTR asgard
192.168.1.100.unknown-online.local. IN PTR paranoia
192.168.1.150.unknown-online.local. IN PTR guest1
192.168.1.160.unknown-online.local. IN PTR guest2
192.168.1.170.unknown-online.local. IN PTR guest3
192.168.1.180.unknown-online.local. IN PTR guest4
Gleich in der ersten Zeile findet sich der Name des Netzwerkes sowie der lokale DNS-Master. Die Angabe dahinter ist die Kontaktadresse des Masterservers - der Punkt zwischen "root" und dem Domainnamen steht für ein "@"-Zeichen.
In den darunterliegenden Zeilen finden sich Angaben zu den einzelnen Hosts und weitere Informationen wie z.B. eine kurze Hardwarebeschreibung und ein kurzer Beschreibungstext zum jeweiligen System. Unterhalb der Namenseintragungen finden sich dann die Eintragungen für das Reverse-Lookup, der Auflösung von IP-Adresse zum Rechnernamen.
Schritt 5: Den Systemen beibringen, wo sie gucken sollen
Nach dem Einrichten des Nameservers müssen nun die einzelnen Systeme im Netz noch wissen, wo sie den DNS-Server finden. Dazu muss die /etc/resolv.conf pro Rechner angepasst werden:
Code:
#Own Server
search unknown-online.local
nameserver 192.168.1.1
Code:
order hosts,bind
multi on
Schritt 6: Funktionstest
Nach erfolger Konfiguration startet man den bind-daemon per "/etc/init.d/bind9 restart" neu. Dann kann man per "nslookup" die Funktionsfähigkeit testen, bei mir lief danach alles ohne probleme. Weitere Informationen bzw. tiefergehendes Wissen zum Thema DNS gibts in einigen guten Howtos und den Manpages, wenn man sich mit dem Thema noch näher auseinandersetzen möchte - ich hab für heute genug getippt *g*