DNS Server aufsetzen (bind9)
Doch zu Beginn die Frage: Warum sollte man seinen eigenen DNS Server betreiben?
Man muss es nicht! Wenn man seine Domains z.B. bei Strato, United Domains oder einem ähnlichen Provider (Hoster) registriert, kümmern sich diese um die DNS Angelegenheiten.
Möchte man jedoch ein bisschen mehr Einfluss darauf haben, welcher Teil der Domain auf welche IP Adresse zeigt oder möchte man einfach ein bisschen über DNS dazu lernen, kann man die DNS Verwaltung selbst in die Hand nehmen.
Ich setze voraus, dass ein grundsätzliches Verständnis des DNS vorhanden ist.
Installation
Ich selbst benutze Ubuntu 8.04 und deshalb ist dieses Tutorial auf Ubuntu ausgerichtet, sollte aber auf anderen Betriebssystemen ähnlich funktionieren.
Um bind9 zu installieren folgendes eintippen:
sudo apt-get install bind9 Auf Servern bei Hostern (z.B. Root-Server, VServer) ist man normalerweise root und braucht deshalb das “sudo” nicht eintippen.
Sobald die Installation abgeschlossen ist, läuft der DNS-Server bereits und ist funktionstüchtig. Nun muss er nur noch für die gewünschten Domains konfiguriert werden
Konfiguration
Die Datei /etc/bind/named.conf sollte nicht verändert werden. Einstellungen müssen lediglich in der Datei /etc/bind/named.conf.local vorgenommen werden.
Im folgenden sollte “domain.com” durch den entsprechenden eigenen Domainnamen ersetzt werden.
zone “domain.com” {
type master;
file “/etc/bind/zones/domain.com.db”;
};zone “3.2.1.in-addr.arpa” {
type master;
file “/etc/bind/zones/rev.3.2.1.in-addr.arpa”;
};
3.2.1. steht in diesem Fall für die IP Adresse. Die echte IP-Adresse des Servers ist 1.2.3.4.
Beispiel
Falls die IP-Adresse des Servers 192.168.2.1 ist, muss oben 2.168.192 stehen. Also insgesamt
zone “domain.com” {
type master;
file “/etc/bind/zones/domain.com.db”;
};zone “2.168.192.in-addr.arpa” {
type master;
file “/etc/bind/zones/rev.2.168.192.in-addr.arpa”;
};
So muss also nun die jeweilige IP des Servers eingefügt werden.
Die Angabe “master” legt fest, dass dieser Server das “Hausrecht” zu dieser Domain besitzt.
Die Angabe “file” legt fest, in welcher Datei die Informationen über die Zone (Domain) gespeichert sind. Auch falls mehrere Domains eingerichtet werden sollen, wird der Teil mit der IP-Adresse nur einmal in die Datei geschrieben.
Zone
So wie oben beschrieben befinden sich die Zonen im Pfad /etc/bind/zones/Falls dieser Ordner nicht existiert, muss er erstellt werden.
Die Zonendatei, in diesem Beispiel /etc/bind/zones/domain.com.db könnte wie folgt aussehen
$TTL 86400
@ IN SOA ns.domain.com. admin.email.com. (
2007031001
28800
3600
604800
38400 )domain.com. IN NS ns.domain.com.
ns.domain.com. IN A 1.2.3.4
domain.com. IN MX 10 mail.domain.com.
domain.com. IN A 1.2.3.4
mail.domain.com. IN A 1.2.3.4
ftp.domain.com. IN CNAME domain.com.
www.domain.com. IN CNAME domain.com.
Hier sollten nur die Domainnamen und IP-Adressen durch die jeweils Richtigen ersetzt werden. Bitte beachten: Domainnamen enden mit einem “.”. Zusätzlich sollte die Email-Adresse in der 3. Zeile ersetzt werden:
“admin.email.com.” steht für admin@email.com. Wenn die Mailadresse des Betreibers z.B. master@domain.com lautet müsste hier stehen “master.domain.com.”.
In der Zonendatei wird festgelegt welcher Hosts unter welche IP-Adresse zu erreichen ist. Man könnte hier z.B. festlegen, dass der Mailserver auf einem anderen Server (unter einer anderen IP) läuft, einfach indem man die IP in
mail.domain.com. IN A 1.2.3.4
durch die des Mailservers ersetzt. Das selbe gilt dafür falls man z.B. subdomains auf einem anderen Server haben möchte (in diesem Beispiel fotos.domain.com):
fotos.domain.com. IN A 12.34.56.78
Die Möglichkeiten sind fast grenzenlos! Und hier stellt man alles ein.
- A-Records weisen Hosts eine IP zu.
- MX-Records zeigen auf den Mailserver.
- CNAME-Records sagen, dass der Host ein Alias eines anderen Hosts ist. (z.B. www.domain.com ist derselbe Host wie domain.com).
Allerdings sollten CNAME Records nie auf CNAME Records zeigen. Falsch wäre z.B.
domain.com. IN A 1.2.3.4
ftp.domain.com. IN CNAME domain.com.
www.domain.com. IN CNAME ftp.domain.com.
Auch sollten MX-Records immer auf einen Host zeigen, der wiederrum mit einem A-Record angegeben ist
domain.com. IN MX 10 mail.domain.com.
mail.domain.com. IN A 1.2.3.4
Reverse
Wenn man herausfinden möchte welche Domain sich hinter einer IP verbirgt wird ein Reverse-Lookup vorgenommen. Für diesen Zweck gib es die zweite Zonendatei, in diesem Beispiel /etc/bind/zones/rev.3.2.1.in-addr.arpa
Diese könnte wie folgt aussehen
$TTL 68400
@ IN SOA ns.domain.com. admin.email.com. (
2007031001;
28800;
604800;
604800;
86400 )IN NS ns.domain.com.
4 IN PTR domain.com.
Die “4″ in diesem Beispiel vervollständigt die IP-Adresse. Für das zweite Beispiel oben, falls die IP 192.168.2.1 ist, würde hier eine “1″ stehen; falls sie 12.34.56.78 wäre müsste hier “78″ stehen.
Der Domainname hinter PTR bedeutet, dass sich hinter der IP die Domain “domain.com” verbirgt.
Auch hier müssen Domainnamen, IP-Adressen (bzw. das letzte Byte) und Emailadresse ersetzt werden.
Updates
In den Zonendateien stehen mehrer Zahlen. Die erste in Klammern – in den oberen Beispielen 2007031001 ist eine Seriennummer. Diese ist frei wählbar, sollte aber nach jedem Update geändert werden. D.h. immer wenn sich an der Zone etwas ändert, sollte diese Zahl um 1 erhöht werden.
Dadurch wissen andere DNS Server, konkret Secondary oder Slave Server, dass sich etwas geändert hat.
Der Rest des Tutorials, wie man einen 2. DNS Server (Secondary DNS Server) einrichtet folgt.
fotos.