|
|

Einleitung
Auf die Grundlagen des DNS-Systems wird hier nicht eingegangen, genauso wenig wie dass man _nebst_ dem Webserver noch zwei Maschinen für die Nameserver haben sollte und es _keine_ gute Idee ist den DNS-Server auf dem gleichen Rechner wie den Webserver zu betreiben.
Das folgende Tutorial zeigt wie man auf Debian schnell einen Hosting tauglichen Nameserver aufsetzen kann.
Wir werden zuerst den primären Nameserver aufsetzen, dann den sekundären und schlussendlich diese so konfigurieren, dass sie sich aktualisieren.
Als erster installieren wir dazu auf beiden Maschinen bind9:
apt-get install bind9
Primärer Nameserver
Zuerst erstellen wir die Konfigurationsverzeichnisse für die Zonen, sowie die Reverse-Zonen:
mkdir -p /etc/bind/zones
Nun bearbeiten wie die Hauptkonfiguration in /etc/named.conf:
options {
directory "/var/bind";
listen-on-v6 { none; };
listen-on { x.x.x.x; };
allow-transfer {
"none";
};
pid-file "/var/run/named/named.pid";
};
logging{
channel simple_log {
file "/var/log/named/bind.log" versions 3 size 5m;
severity warning;
//severity debug 10;
print-time yes;
print-severity yes;
print-category yes;
};
category default{
simple_log;
};
};
include "/etc/bind/zones.conf";
Nun müssen wir eine sog. "rndc-key" erstellen:
rndc-keygen > /etc/bind/rndc.key
Das sog. "root-zone" file enthält die Informationen zu den rootservern, das wir erstellen müssen:
vi /etc/bind/zones/named.ca
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . "
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.cache
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: Jan 29, 2004
; related version of root zone: 2004012900
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; operated by VeriSign, Inc.
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
;
; operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; operated by ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
Nun erstellen- oder bearbeiten wir die Datei /etc/bind/zones.conf, die die Zonefiles konfiguriert.
Hier ist die Konfiguration für einen beispieldomain "domain.tld" angegeben. Diese muss dann durch die tatsächlichen Domain ersetzt werden, die man verwalten möchte:
zone "domain1.tld" { type master; file "/etc/bind/zones/domain1.tld"; };
zone "domain2.tld" { type master; file "/etc/bind/zones/domain2.tld"; };
zone "domain3.tld" { type master; file "/etc/bind/zones/domain3.tld"; };
# etc...
Dann noch die sog. "reverse" Zonen eintragen; diese wird gebraucht, wenn man nicht die IP über den Domainamen, sondern halt eben umgekehrt den Domainnamen über die IP-Adresse herausfinden möchte.
Dazu erstellen wir die Datei _/etc/bind/reverse-zones.conf_:
zone "." IN { type hint; file "/etc/bind/zones/named.ca"; };
zone "0.0.127.in-addr.arpa" IN { type master; file "/etc/bind/zones/reverse/127.0.0"; };
#usw.
Nun erstellen wir je eine Beispieldatei für die Namens-Zone und die reverse-zone; den Rest sollte sich daraus ableiten lassen:
/etc/bind/zones/domain1.tld
("server-domain.tld" ist hier die Domain des DNS Servers, "x.x.x.x" ist dessen IP!)
@ IN SOA dns.server-domain.tld. postmaster.server-domain.tld. (
2008061701 ; serial number
3600 ; refresh
600 ; retry
86400 ; expire
3600 ) ; minimum TTL
;
; Zone NS records
;
@ NS dns.server-domain.tld.
@ NS dns2.server-domain.tld.
;
; Zone records
;
@ A x.x.x.x
@ MX 10 mail.domain1.tld
* MX 10 mail.domain1.tld
domain1.tld. IN TXT "v=spf1 mx ptr ~all"
mail.domain1.tld. IN TXT "v=spf1 a -all"
www A x.x.x.x
// Hier lassen sich dann weitere Hosts integrieren
Ein solches file muss dann für jede gehostete Domain gemacht werden.
/etc/bind/reverse-zones.conf
Hinweise:
Dieses file listet alle IPs auf, die auf nahmen aufgelöst werden. Bei vielen verschiednen IP-Ranges macht es evtl. sinn dies in mehrere file pro IP aufzuteilen; im normalfall reicht aber ein file.
Im reverse Zonefile sind die IPs immer in umgekehrter Reihenfolge, also z.B. statt: "10.0.0.1" ist "1.0.0.10" zu verwenden
"x, y und z" sind also die letzten Ziffern der IP Adresse, also z.B. 1.0.0.x
@ IN SOA dns.server-domain.tld. postmaster.dns.server-domain.tld. (
2007110506 ; Serial, todays date + todays serial
8H ; Refresh
2H ; Retry
4W ; Expire
1D) ; Minimum TTL
@ NS dns.server-domain.tld.
@ NS dns2.server-domain.tld.
x PTR http://www.server-domain.tld.
y PTR mail.server-domain.tld.
z PTR test.server-domain.tld.
Sekundärer Nameserver
Nun kommen wir also zum Sekundären Nameserver; dieser hat selbst keine Zonen, da er seinen "cache" immer vom primären Nameserver bezieht. -Es ist daher auch etwas einfacher auzusetzen.
Als erstes muss man auf dem primären DNS-Server im der Datei /etc/named.conf bei der Option: allow-transfer das "none" mit der IP-Adresse des seknundären Servers- und eine neue option "notify yes" ersetzen:
allow-transfer {
"x.x.x.x";
notify yes;
};
Achtung: Die Unterscheidung zwischen alten und neuen Daten erfolgt ausschließlich über die Seriennummer im SOA-Header der Zone. Wenn man beim editieren vergisst, diese zu erhöhen, findet kein Zonentransfer statt und die Slaves arbeiten mit den veralteten Daten weiter.
Nun kann man erstmal alle, für den primären Nameserver beschriebenen Konfigurationsdateien auf den sekundären kopieren. Am einfachsten geht dies mit rsync:
rsync --rsh=/usr/bin/ssh -auq --delete /etc/bind/ server2:/etc/bind/
rsync --rsh=/usr/bin/ssh -auq --delete /var/bind/ server2:/var/bind/
rsync --rsh=/usr/bin/ssh -auq --delete /etc/named.conf server2:/etc/named.conf
Nun passt man die Datei: /etc/named.conf auf dem sekundären Server an und ändert den "allow-transfer"-Block in:
allow-notify { x.x.x.x; };
Die Datei: /etc/bind/zones.conf ändert man dann wie folgt ("x.x.x.x" ist die IP des primären servers)t:
zone "domainname" { type slave; masters { x.x.x.x; }; file "/var/bind/domain1.tld"; };
zone "0.168.192.in-addr.arpa" { type slave; masters { x.x.x.x; }; file "/var/bind/reverse-zones.bak"; };
//usw.
Das wärs dann auch schon. ;-)
Hinzugefügt am: 05.05.2008
Geändert am: 18.06.2008
Related Links
User Anmerkungen
0 User Anmerkungen zu dieser Seite [Anmerkung hinzufügen]
|
| Noch keine Notitzen zu dieser Seite vorhanden. Möchtest du eine Notiz hinzufügen? |
0 Beiträge zu dieser Seite im Forum [Zum Forum]
|
|