Login
Login-Name Passwort


 
Newsletter
Werbung

Mo, 15. Juli 2002, 00:00

DHCP und dynamischer Update eines DNS

Viele haben es schon versucht, geschrieben wurde auch oft darüber, aber eine richtige Anleitung ist nirgens zu finden. Das Lesen der Manpages ist mühsam und so richtig schlau wird man auch nicht daraus. Allerdings steht wirklich alles in den Manpages, was man machen muss, damit ein DHCP-Server den DNS-Server aktualisiert. Deshalb beschränke ich mich hier auf das Wesentliche. Wer meine Konfiguration für seine Zwecke nutzen will, möge das tun. Für das Feintuning und eventuell auftretende Fehler ist jeder selbst verantwortlich.

Ich persönlich stand vor der Aufgabe, dynamisches DNS-Update zu realisieren, damit ein $WIN$-DHCP-Server ersetzt werden konnte. Dazu habe ich einen Linux-Server eingerichtet und die Pakete BIND9 und DHCP3 aus der Serie n von SuSE 7.3 Professional installiert. Der Server sollte, in meinem Fall, gleichzeitig als DHCP und primärer DNS genutzt werden. Der DHCP-Server sollte mehrere IP-Adressbereiche verwalten und die Clients, welche eine IP-Adresse von ihm bekamen, in den DNS eintragen.

Als erstes wurde ein KEY erstellt, welcher für die sichere Kommunikation DHCP <-> DNS notwendig ist. Das dazu benutzte Programm ist in BIND9 enthalten.

cd /etc
dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER

Im Verzeichnis /etc entstehen zwei Dateien, welche einen willkürlich generierten Schlüssel enthalten. Dieser wird für den Datenaustausch benutzt. Die Dateien beginnen mit KDHCP_UPDATER. Die wichtige ist die mit der Extension *.private. Der Inhalt ist ähnlich wie hier:

Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: H94JQHKbevJZwzd4OOTu5g==

Der Schlüssel, der hinter Key: steht, wird als Schlüssel für den DHCP-Server und für den DNS-Server benutzt. Jetzt geht es an das Einrichten des DHCP-Servers. Dieser wird über eine einzige Konfigurationsdatei eingestellt: /etc/dhcpd.conf.

# Einträge zur Vergabe vorhandener WINS-Server
option netbios-node-type 8;
option netbios-name-servers 192.168.171.3, 192.168.171.2;
# Dynamischer Update DNS, verwende sicheres Schema
ddns-update-style interim;
# Dynamischer Update DNS, Name der Domain
ddns-domainname "mein-netz.firma";
# Dynamischer Update DNS, statische Adressen auch im DNS updaten
update-static-leases true;
# Festlegen des KEY, secret = Schlüssel von dnssec-keygen
# Welche Zonen sollen mit in den Update des DNS
key DHCP_UPDATER {
 algorithm HMAC-MD5.SIG-ALG.REG.INT;
 secret H94JQHKbevJZwzd4OOTu5G==;
};
zone mein-netz.firma. {
 primary 192.168.170.1;
 key DHCP_UPDATER;
}
zone 170.168.192.in-addr.arpa. {
 primary 192.168.170.1;
 key DHCP_UPDATER;
}
zone 171.168.192.in-addr.arpa. {
 primary 192.168.170.1;
 key DHCP_UPDATER;
}
#this subnet is served by us
authoritative;
# declare the lease times (the time after which a client will
# renew its lease)
# experimentell, später größere Werte eintragen
default-lease-time 600;
max-lease-time 7200;
# Das Netz geht bei mir von 192.168.170.1 bis 192.168.171.255
subnet 192.168.170.0 netmask 255.255.254.0 {
 option domain-name-servers 192.168.170.222, 192.168.170.1;
 option broadcast-address 192.168.171.255;
 option routers 192.168.171.254;
 range 192.168.170.10 192.168.170.99;
 range 192.168.170.110 192.168.170.220;
 range 192.168.171.10 192.168.171.99;
 range 192.168.171.110 192.168.171.220;
 # Ein paar feste IP-Adressen werden vergeben
 host derboss {
 hardware ethernet 00:01:02:03:B1:B2;
 fixed-address 192.168.170.100;
 }
 host anton {
 hardware ethernet 00:01:02:03:B3:B4;
 fixed-address 192.168.171.101;
 }
 host fritz {
 hardware ethernet 00:01:02:03:B4:B5;
 fixed-address 192.168.170.102;
 }
 host ella {
 hardware ethernet 00:01:02:03:B6:B7;
 fixed-address 192.168.171.103;
 }
}

Das war auch schon alles für den DHCP.

Nun ist der DNS-Server an der Reihe. Das ist etwas Handarbeit, zumal ich hier auf grafische Tools verzichtet habe. Ich habe eine vorgefertigte *.conf benutzt und sie an meinen Server angepaßt.

/etc/named.conf:

options {
 auth-nxdomain yes;
 directory "/var/named";
 forwarders { 192.168.100.13; 192.168.105.27; };
 listen-on port 53 { 192.168.170.1; };
};
zone "localhost" in {
 type master;
 file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
 type master;
 file "127.0.0.zone";
};
zone "." in {
 type hint;
 file "root.hint";
};
key DHCP_UPDATER {
 algorithm HMAC-MD5.SIG-ALG.REG.INT;
 secret H94JQHKbevJZwzd4OOTu5G==;
};
zone "mein-netz.firma" {
 type master;
 file "/var/named/firma.host";
 allow-update { key DHCP_UPDATER; };
 notify yes;
 also-notify {
 164.133.170.222;
 };
};
zone "170.168.192.in-addr.arpa" {
 type master;
 file "/var/named/170.zone";
 allow-update { key DHCP_UPDATER; };
 notify yes;
 also-notify {
 192.168.170.222;
 };
};
zone "171.168.192.in-addr.arpa" {
 type master;
 file "/var/named/171.zone";
 allow-update { key DHCP_UPDATER; };
 notify yes;
 also-notify {
 192.168.170.222;
 };
};

Das war es auch hier schon.

Jetzt müssen nur noch die Zonendateien firma.host, 170.zone und 171.zone angelegt werden. Was in diesen Dateien stehen muss, erspare ich mir an dieser Stelle, denn das ist sehr genau in den Manpages zu BIND9 beschrieben und Beispiele sind genügend vorhanden. Was fehlt jetzt noch? Ach ja ;-)

Starten der Dienste:

/etc/init.d/named start
/etc/init.d/dhcpd start

Ausgaben der Dienste ansehen mit:

tail -f /var/log/messages

Zum Originalartikel: http://www.linuxkramkiste.de/dhcp__dns.html
Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung