Nameserver

Dieses Kapitel beschreibt die Installation und Konfiguration von Netzwerkdiensten für die automatische Zuweisung von Netzwerkadressen über das DHCP und die Auflösung von IP-Adressen zu Hostnamen über den DNS.

Datensammlung

Dnsmasq

Um Domain-Namen im lokalen Netzwerk aufzulösen und IP-Adressen per DHCP an mobile Rechner zu verteilen, genügt der leichtgewichtige Dnsmasq daemon.

apt-get install dnsmasq

Den Domain-Namen und die IP-Adressen trägt man in die Konfigurationsdatei /etc/dnsmasq.conf ein.

# /etc/dnsmasq.conf

local=/example/
domain=example
dhcp-range=192.168.23.20,192.168.23.255,12h
dhcp-option=option:router,192.168.23.1

Das Such-Präfix, den Domain-Namen und die Adresse des übergeordneten DNS-Servers – normalerweise die des DSL-Routers – trägt man wie gewohnt in /etc/resolv.conf ein.

# /etc/resolv.conf

search example
domain example
nameserver 192.168.23.1

Statische IP-Adressen liest Dnsmasq aus der Datei /etc/hosts.

# /etc/hosts

127.0.0.1       localhost
192.168.23.1    router gw
192.168.23.2    server ns mail www

DHCP

Für komplexere Anforderungen muß man auf die etwas schwereren Geschütze des ISC DHCP und BIND daemon zurückgreifen.

apt-get install dhcp3-server

Die Konfigurationsdatei /etc/dhcp3/dhcpd.conf muß manuell angepaßt werden.

# /etc/dhcp3/dhcpd.conf - configuration file for ISC dhcpd for Debian

authoritative;
default-lease-time 600;
max-lease-time     7200;
log-facility       local7;

# dynamic dns
ddns-update-style  interim;
ddns-domainname    example;
include            "/etc/bind/rndc.key";
zone example. {
    primary        192.168.23.2;
    key            "rndc-key";
}
zone 23.168.192.in-addr.arpa. {
    primary        192.168.23.2;
    key            "rndc-key";
}

# Address range available for lease
subnet 192.168.23.0 netmask 255.255.255.0 {
    range                           192.168.23.100 192.168.23.199;
    option subnet-mask              255.255.255.0; 
    option broadcast-address        192.168.23.255;
    option routers                  192.168.23.1;
    option domain-name-servers      192.168.23.2;
    option domain-name              example;
    option netbios-name-servers     samba.example;
    option netbios-dd-server        samba.example;
    option netbios-node-type        8;
}

BIND

BIND ordnet Internet-Adressen zu Hostnamen und umgekehrt.

apt-get install bind9

Nicht-lokale Anfragen werden an den DNS-Server des ISPs weitergeleitet, diese trägt man in der Konfigurationsdatei /etc/bind/named.conf.options ein.

# /etc/bind/named.conf.options
options {
	directory "/var/cache/bind";
	auth-nxdomain no;    # conform to RFC1035
	forwarders { 192.168.23.1; };
};
# /etc/bind/named.conf.local
include "/etc/bind/rndc.key";

zone "example" {
	type master;
	notify no;
	file "/etc/bind/db.example";
	allow-update { key "rndc-key"; };
};
                
zone "23.168.192.in-addr.arpa" {
	type master;
	notify no;
	file "/etc/bind/db.23.168.192";
	allow-update { key "rndc-key"; };
};

Bei der Erstellung von lokalen Zonendateien hilft das beiliegende Skript bindgen.sh. Die erste Zeile enthält den Netzwerkanteil der Adresse sowie den Domainnamen des lokalen Subnetzes. Die weiteren Zeilen enhalten jeweils den Hostanteil der Adresse, den kanonischen Hostnamen sowie optional eine Reihe von Aliasnamen (CNAMEs).

cat << EOF | ./bindgen.sh
192.168.23 example
1 gateway   gw
2 server    ns log time mail www samba
3 printer   lp
EOF

Dieses Skript erzeugt für jedes Netzwerk die Zonen-Einträge der Datei /etc/bind/named.conf.local sowie die Zonendatenbank /etc/bind/db.example und die Reverse-Lookup-Zonendatenbank /etc/bind/db.23.168.192.

Bei der Fehlersuche hilft das Programm dig(1).

Auf dem Mailserver sollte man ein Alias für den hostmaster anlegen.

Literatur