LugLD:Howtos:Netzwerk:DHCPDDNS
Aus LUG-LD Wiki
Sie befinden sich hier: Hauptseite / Inhaltsverzeichnis / Howto's / Netzwerk (inkl.) Internet / Einrichten von DHCP mit Dynamischem DNS
Konfiguration DDNS im Heimnetzwerk
(Aus der c't 2003/19)
Inhaltsverzeichnis |
Sinn & Zweck - oder einfach das Ziel
Im Heimnetzwerk ist es evtl. interessant die IP Einstellungen der Hosts automatisch per DHCP konfigurieren zu lassen. Dabei entsteht das Problem, dass man dann u.U. keine Zuordnung von Namen zu IP Adressen mehr hat. Um dies zu bewerkstelligen ist es relativ einfach den existierenden DHCP- und Nameserver für die Verwendung von DDNS zu erweitern.
Voraussetzungen
- ISC DHCP Server DHCP3
- Domain Name Server BIND9
Ich gehe bei der Beschreibung von einem System mit Debian 3.1 (Sarge) aus.
(Es geht bestimmt auch mit anderen System doch es kann zu stark abweichenden Pfaden kommen)
Konfiguration
Konfiguration des DHCP3-Servers
Die Fettgedruckten Zeilen sind das eigentlich wichtige!
# /etc/dhcp3/dhcpd.conf
ddns-update-style interim;
ignore-client-updates;
authoritative;
default-lease-time 600;
max-lease-time 7200;
zone domain.lan. {
primary 192.168.0.1;
}
zone xxx.168.192.in-addr.arpa. {
primary 192.168.0.1;
}
subnet 192.168.xxx.0 netmask 255.255.255.0 {
range 192.168.xxx.aaa 192.168.xxx.zzz;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.xxx.255;
option routers 192.168.xxx.rrr;
option domain-name "domain.lan";
option domain-name-servers 192.168.xxx.ddd;
}
Konfiguration BIND9
Zu den vh. Zonendefinitionen muss eine ACL für die Clients definiert werden die DNS Updates fahren dürfen und in den Zonendefinitionen muss denen dann das Update der Dateien erlaubt werden.
// /etc/bind/named.conf.local
acl "dhcp-clients" {
192.168.xxx/24;
};
zone "domain.lan" {
type master;
# /var/cache/bind/db.domain
file "db.domain";
allow-update { "dhcp-clients"; };
};
zone "xxx.168.192.in-addr.arpa" {
type master;
# /var/cache/bind/db.domainrev
file "db.domainrev";
allow-update { "dhcp-clients"; };
};
Nun muss man nur noch die DNS-Server seines Providers eintragen um auch Namen/ IPs ausserhalb seiner Zone auflösen zu können
// /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
forwarders {
1.2.3.4;
1.2.3.4;
};
auth-nxdomain no; # conform to RFC1035
};
Nun benötigt man nur noch die Zonen-Dateien:
/var/cache/bind/db.domain
Zonendatei für die Vorwärtsauflösung
$ORIGIN .
$TTL 86400 ; 1 day
domain.lan IN SOA server.domain.lan. root.server.domain.lan. (
2006050496 ; serial YYYYMMDDno
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
NS server. ; Namenserver der Domain
MX 10 server. ; Mailserver der Domain
$ORIGIN pclan.home.
server A 192.168.xxx.ddd
ftp CNAME server
www CNAME server
/var/cache/bind/db.domainrev
Zonendatei für die Rückwertsauflösung
$ORIGIN .
$TTL 86400 ; 1 day
xxx.168.192.in-addr.arpa IN SOA server.xxx.168.192.in-addr.arpa. root.sever.domain.lan. (
2006052501 ; serial YYYYMMDDno
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
86400 ; minimum (1 day)
)
NS server.domain.lan.
$ORIGIN xxx.168.192.in-addr.arpa.
1 PTR srv-master.pclan.home.
Von O'Reilly gibt es ein Buch Namens DNS & BIND Kochbuch, hier wird die Funktionsweise des BIND sehr schön erläutert. Des weiteren findet man ein Klasse Probekapitel zum Thema Zonendateien, für alle die nicht genau wissen wo nun ein Punkt hin kommt und wo nicht und für was die verschiedenen Einträge stehen kann ich diese kostenlose Lektüre nur empfehlen.
Nun nur noch die Dienste starten/ neustarten
/etc/init.d/dhcp3-server start bzw. restart /etc/init.d/bind9 start bzw. restart
Wenn sich der DHCPD oder BIND nicht starten lassen, dann hilft evtl. die Befragung des syslog.
tail -f /var/log/syslog
Zu beachten sind auch die Rechte an den Konfigurationsdateien und an den Zonendateien
Client Konfiguration
Die Clients, die jetzt per DHCP konfiguriert werden sollen, brauchen in der Datei /etc/dhclient.conf bzw. /etc/dhcp3/dhclient.conf noch die Option send host-name, dann sollte das auch funzen!
