Eigene DNS-Zone mit BIND

Für mein Heimnetzwerk habe ich mir eine eigene DNS-Zone angelegt. Die verschiedenen Server (Domain Controller, Reverse Proxy, Webserver, Mailserver) sprechen untereinander in der DNS-Zone xentity.lan, wobei .lan als Top Level Domain wie .de, .net., .org. oder .com fungiert und xentity darunter als Domain.

Die Server werden dann Namen wie mail01.xentity.lan, web01.xentity.lan oder dc01.xentity.lan haben, d.h. es sind keine weiteren Zonen unterhalb von xentity.lan geplant.

Ich erkläre nun kompakt, wie das bewerkstelligt werden kann…

Ausgangslage ist ein frisch installierter Ubuntu Server 11.10 (Oneric). DNS ist bei mir ein Bestandteil des Domain Controllers. Zuerst muss BIND installiert werden:

Forwarder oder „Ich hab keine Ahnung – frag den da!“

In der Regel wird bei der Installation von Ubuntu Server in der Datei /etc/resolv.conf der Nameserver eingetragen. Bei Heiminstallationen ist das meist der Router. Diese IP benötigen wir nun, da in der Datei /etc/bind/named.conf.local erstmal ein Forwarder eingetragen werden muss, sprich die IP, die der DNS fragen muss, wenn er selbst keine Antwort auf die DNS Query kennt:

Auf dem Heimrouter läuft auch kein DNS-Server, sondern ein Forwarder oder DNS-Proxy, der bei jeder PPPoE-Einwahl die DNS-Server des Providers in seine Forwarders-Datei einträgt.

Nach einen Neustart des Dienstes (sudo service bind9 restart) kann man auf seinem PC in der Datei /etc/resolv.conf und /etc/network/interfaces den Nameserver auf die IP des DNS-Servers umstellen, das Surfen im Internet sollte nach wie vor funktionieren, es ist lediglich ein weiterer DNS-Server in der Kommunikation, der alle Anfragen an den zuvor eingestellten Dienst leitet. Klappt die DNS-Auflösung Richtung Internet nicht, muss nachgebessert werden. Die Datei /etc/resolv.conf sollte nun folgendermaßen aussehen:

Die zweite Zeile hängt an Hosts wie mail01 noch die Domain xentity.lan ran. Man kann daher eine SSH-Verbindung zu mail01 oder zu mail01.xentity.lan aufbauen, der Ziel-Host ist der selbe. Der Primäre Nameserver ist der DC, der zweite ist der Router ins Internet, so dass die Internet-Auflösung funktioniert, wenn der DC/DNS-Server down ist.

Zonenmaster

Nun erklären wir uns als Master einer neuen Zone, ein Eintrag in der Datei /etc/bind/named.conf.local sieht dann folgendermaßen aus:

Für die eigene Zone sollte sowohl die erste als auch die dritte Zeile entsprechend angepasst werden, wobei der Zonenname in der Datei nur eine Konvention ist, um die Ordnung zu behalten.

Zonendatei

Nun fehlen eigentlich nur noch die „echten“ DNS-Einträge, diese werden dann in der oben referenzierten Datei angegeben, bei mir wäre das /etc/bin/db.xentity.lan:

So, geschafft. Noch einmal den Dienst neustarten (sudo service bind9 restart) und der DNS-Server kann genutzt werden, bspw.:

PC „laptop1“, Nameserver 192.168.200.101, Search Domain xentity.lan :

Der erste Abschnitt zeigt eine einfache Namensauflösung eines Hostnames, der zweite Befehl fragt, wer für die Domain xentity.lan die E-Mails annimmt, falls man an info@xentity.lan, postmaster@xentity.lan oder admin@xentity.lan eine E-Mail versenden möchte, jedoch klappt das nur innerhalb des lokalen DNS, da es im Internet-DNS die TLD .lan nicht gibt. Somit kann man aus Namen IP ermitteln.

Reverse Queries oder „Rolle rückwärts“

Spätestens wenn man einen Mailserver gewissenhaft konfiguriert kommt die Frage nach einer Rückwärtsauflösung auf. Jemand behauptet, er wäre mail12.example.com und wolle eine Mail absetzen. Der eigene Mailserver schaut nun, ob der Hostname mit IP-Adresse vorwärts und rückwärts plausibel erscheint. Oder man bekommt einen SNMP-Trap von der IP 10.68.28.17 und das Monitoring-System weiß nun nicht, welcher Switch den Trap abgesandt hat.

Beim Reverse Lookup wird die IP umgedreht und in-addr.arpa drangehangen, dann den DNS-Server gefragt, was er zu diesem Hostname zu sagen hat. So wird aus der Frage, wer sich hinter 10.20.30.40 verbirgt: 40.30.20.10.in-addr.arpa . Nun folgt die Definition der Reverse Zone-Datei. Wichtig sind die Punkte hinter der TLD. Vergisst man die, klappt die Auflösung nicht. Der Punkt ist die Wurzel des ganzen DNS‘. (Der Punkt gehört da eigentlich immer hin, jedoch kann er auch weggelassen werden. So gibt es im Browser keinen Fehler, wenn man http://www.google.de. ansurft, es ist sogar die korrekte Form.)

So, dann probieren wir das mal aus:

Quellen und weiterführende Links

Auf linuxconfig.org wird neben der Forward Zone auch die Reverse Zone beschrieben. Auch Ubuntu bietet einen Leitfaden für die BIND-Konfiguration. Höchst offiziell ist auch die Doku unter tldp.org . Unter AdminWerk.de finden sich Hinweise zum sicheren Betrieb des BINDs. Eine englischsprachige Anleitung findet sich unter palethorn.wordpress.com.

Verwandte Posts:

Schreibe einen Kommentar