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.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:
Und die dazugehörige Zonendatei für obiges Netzwerk: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"; };
Die obige Datei gibt den Namen des Netzwerkes und der darin enthaltenen Rechner an.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:
Nun muss ich auf dem DNS-Server noch die /etc/host.conf anpassen:Code:#Own Server search unknown-online.local nameserver 192.168.1.1
damit das System weiß, daß es die Anfragen erst mit der /etc/hosts-Datei abgleichen soll und bei Nichterfolg den lokalen BIND-Server kontaktiert.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*


LinkBack URL
Über LinkBacks

Lesezeichen