Login
Newsletter
Werbung

Sa, 27. September 2003, 00:00

Ein Beispiel zur Konfiguration des Nameservers BIND

Einer der grundlegenden Dienste im Internet ist DNS, das Domain Name System. Ein freier DNS-Server für Unix ist BIND, der hier als Nameserver für eine eigene Domain eingerichtet wird.

Intro

Einer der grundlegenden Dienste im Internet ist DNS, das Domain Name System. Seine wichtigste Aufgabe ist die Übersetzung von IP-Adressen in Rechnernamen (einschließlich Domain) und umgekehrt. Prinzipiell sind Rechner- und Domainnamen nur dazu da, den Benutzern und Systemverwaltern das Leben leichter zu machen. Das Internet würde auch ohne die Namen auskommen.

Ein freier DNS-Server für Unix (und damit auch für Linux) steht mit BIND vom Internet Software Consortium (ISC) zur Verfügung.

Dieser Artikel wird sich nicht mit den Prinzipien von DNS beschäftigen (diese sind in der BIND-Dokumentation sowie in RFC 1034, 1035 und anderen nachzulesen) und auch nicht auf die Installation von BIND eingehen. Wir nehmen an, daß BIND in jeder Distribution enthalten ist. Dementsprechend ist die Installation kein Problem.

Wir beschreiben in diesem Artikel lediglich das Setup eines Nameservers für eine eigene Domain, die entweder offizielle (weltweit eindeutige) oder private IP-Adressen besitzen kann. In letzterem Fall ist oft eine Verbindung ins Internet über einen Proxy irgendeiner Art gegeben. Daher ist es sinnvoll, für die privaten IP-Adressen einen der in RFC 1537 exakt für diesen Zweck reservierten Bereiche zu verwenden (sonst könnte es Adreßkonflikte geben).

Wir setzen voraus, daß die prinzipielle Funktionsweise und Aufgaben der diversen Konfigurationsdateien bekannt sind. Gute Informationsquellen hierzu sind das Linux NET3-HOWTO und das DNS-HOWTO, ebenso die Dokumentation von BIND.

Hinweis: Ein DNS-Server ist nicht unbedingt erforderlich, um ein privates Netz zu betreiben. Bei kleinen Netzen mit zwei bis fünf Rechnern (oder auch mehr) ist es meist einfacher, die Namen bei allen Rechnern in /etc/hosts einzutragen. Dies erfordert zwar bei Namens- oder Adreßänderungen Änderungen auf allen Rechnern, doch das läßt sich ggf. automatisieren.

Verwendete Konfiguration

Um die Konfiguration interessanter zu machen, ist unser lokales Netz in zwei Subnetze aufgeteilt. Eine Erweiterung auf mehr als zwei, auch mit völlig unterschiedlichen Adressen, ist auf offensichtliche Art und Weise möglich. Der einfache Fall mit nur einem Subnetz ergibt sich ebenso offensichtlich durch Weglassen des zweiten Subnetzes.

Die Konfiguration in Stichworten:

  • Zwei lokale Netze mit Adressen 172.30.2.x und 172.30.3.x
  • Ein Router (mandel.hjbaader.home), der die beiden Netze verbindet
  • Ein nicht permanenter Internet-Zugang über den Server
  • Server 'grumbeer.hjbaader.home' (mit BIND 8.1) mit Adresse 173.30.2.1 und gleichzeitig mit dynamischer Adresse (ISDN-Anschluß) als 'grumbeer.inka.de'

Resolver

Der Resolver verwendet die Dateien /etc/hosts, /etc/host.conf und /etc/resolv.conf. Mit libc6, die in allen Distributionen mittlerweile Standard ist, kommt noch /etc/nsswitch.conf hinzu.

/etc/host.conf

In dieser Konfiguration habe ich mich dafür entschieden, die Reihenfolge /etc/hosts, dann DNS beizubehalten. So können auch Namen, die außerhalb der privaten Domain liegen, ohne Befragen eines externen Nameservers aufgelöst werden. Das hilft, Telefonkosten zu sparen.

order	hosts, bind
multi	on

/etc/nsswitch.conf

hosts: files dns

Obwohl in dieser Datei recht viel stehen kann (siehe Manpage), genügt uns eine einzige Zeile. Diese legt im Prinzip dasselbe fest wie /etc/host.conf. Sie ist nicht nötig auf älteren Systemen mit libc5.

/etc/hosts

Dies sind die wenigen verbleibenden Einträge in /etc/hosts. Auf die Zeile mit 127.0.0.1 kann man im Prinzip auch noch verzichten. Doch es ist wahrscheinlich effizienter, die häufig gebrauchte Adresse von localhost aus der Datei zu lesen, als sie von einem DNS-Server zu erfragen.

Der Eintrag grumbeer.inka.de ist ein übler Hack, da diesem Namen ja eigentlich keine statische IP-Adresse zugeordnet ist. Damit wird aber verhindert, daß ein externer Nameserver gefragt wird, wiederum um Telefonkosten zu sparen.

# host database
127.0.0.1	localhost loopback
172.30.2.1 grumbeer.inka.de

/etc/resolv.conf

Die private Domain (172.30.x.x) habe ich hjbaader.home getauft. Der Nameserver-Eintrag dürfte offensichtlich sein. home ist keine offizielle TLD (Top Level Domain), d.h. Namenskonflikte mit Servern, die im Internet erreichbar sind, sind ausgeschlossen.

domain hjbaader.home
nameserver 172.30.2.1

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung