DHCP-Server
Ein DHCP-Server (DHCP = Dynamic Host Configuration Protocol)
in einem Netzwerk teilt den anderen Rechnern die Angaben mit,
die diese für den Betrieb im Netzwerk benötigen, also z.B. die
IP-Adressen, die Netzmaske, den Domainnamen, die IP-Adressen
des Gateways, der Nameserver und des WINS-Servers.
Der Vorteil eines DHCP-Servers liegt darin, dass die Rechner
im Netzwerk diese Angaben von einem zentralen Server bekommen.
Ändern sich diese Daten, können sie neu vom Server geholt
werden (spätestens beim Reboot), ohne dass sie auf jedem Rechner
einzeln neu eingegeben werden müssen. Das ist insbesondere bei
größeren Netzwerken ein entscheidender Vorteil.
Die Rechner im lokalen Netz, die sich die Netzwerkangaben vom
DHCP-Server holen, können sich jedoch nur solange austauschen,
wie auch der DHCP-Server läuft. Man wird deshalb je nach Art,
Einrichtung (Redundanz) und Größe des lokalen Netzes überlegen,
bei welchen Rechnern man die Netzwerkangaben fest einträgt
und bei welchen nicht.
Insbesondere für transportable Rechner wie Laptops, die an
verschiedenen Netzwerken angeschlossen werden, ist ein DHCP-Server
im lokalen Netz von Vorteil. Durch die entsprechende Konfiguration
des DHCP-Servers können solchen mobilen Rechnern jedoch ebenfalls
feste IP-Adressen zugeordnet werden.
Installation und Einrichtung des DHCP-Servers
-
Die Einrichtung des DCHP-Servers soll hier anhand eines
Beispiels eines Servers beschrieben werden, der zwei
Netzwerk-Interfaces mit den IP-Adressen 192.168.0.1 (eth0)
und 192.168.1.1 (eth1) für die beiden Subnets 192.168.0.0/24
und 192.168.1.0/24 hat (s. Bild 1). Die Konfiguration kann leicht
an ein Netzwerk, das aus nur einem Subnet besteht, angepasst werden.
Das Interface eth2 ist z.B. für den Anschluss eines DSL-Routers
vorgesehen und soll nicht vom DHCP-Server angesprochen werden.
Bild 1: Linux-Server mit DHCP-Server
-
Mit YaST das Paket "dhcp-server (n)" installieren.
-
Steuerung des DHCP-Servers:
- rcdhcp start (Start des DHCP-Servers)
- rcdhcp stop (Stop des DHCP-Servers)
- rcdhcp restart (Neustart des DHCP-Servers)
- rcdhcp status (Status des DHCP-Servers)
-
In der Datei /etc/sysconfig/dhcpd für die Variable
"DHCP_INTERFACE" die Netzwerk-Interfaces eintragen, an denen
der DHCP-Server "lauschen" soll, also z.B. "eth0 eth1".
-
Der DHCP-Server kann auch mit dem Kommando "dhcpd eth0 eth1"
gestartet werden. Mit dem Kommando "dhcpd -d eth0 eth1" werden
zusätzlich Debug-Informationen ausgegeben.
-
Mit dem Kommando "insserv dhcpd" wird der DHCP-Server
beim nächsten Booten des Rechners automatisch gestartet.
-
Die einzige Konfigurationsdatei des DHCP-Servers ist die
Datei /etc/dhcpd.conf. Wenn sie geändert wird, muss der Server
neu gestartet werden, damit die Änderungen wirksam werden.
# File /etc/dhcpd.conf
# Abschnitt Global (für alle Abschnitte gültig)
server-identifier 192.168.0.1;
option domain-name "local.netw";
default-lease-time 600; # zehn Minuten
max-lease-time 3600; # eine Stunde
ddns-update-style none;
# Abschnitt für Subnet 0 (an eth0)
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.51 192.168.0.60;
option broadcast-address 192.168.0.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.1;
option routers 192.168.0.1;
option netbios-name-servers 192.168.0.1;
host win1pc {
hardware ethernet 00:12:34:56:78:9A; # MAC-Adresse
fixed-address 192.168.0.90; # feste IP-Adresse
default-lease-time 172800; # zwei Tage
max-lease-time 604800; # eine Woche
}
}
# Abschnitt für Subnet 1 (an eth1)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.61 192.168.1.70;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.1;
option routers 192.168.1.1;
option netbios-name-servers 192.168.1.1;
host win2pc {
hardware ethernet 00:22:44:66:88:AA; # MAC-Adresse
fixed-address 192.168.1.91; # feste IP-Adresse
default-lease-time 172800; # zwei Tage
max-lease-time 604800; # eine Woche
}
}
-
Im ersten Abschnitt sind die globalen Parameter
aufgeführt, die für alle weiteren Abschnitte gelten.
Danach folgen die Abschnitte für das Subnet 0 und die
Hosts im Subnet 0, die feste IP-Adressen erhalten sollen.
Anschließend erfolgen die Angaben für das Subnet 1
in gleicher Weise.
-
Der Parameter "server-identifier" muss vorhanden sein,
wenn der Server mehr als eine Netzwerkkarte hat. Als Parameter
soll die IP-Adresse der ersten Netzwerkkarte des Servers
eingetragen werden.
-
Die Angaben "domain-name", "broadcast-address",
"subnet-mask", "domain-name-servers", "routers"
und "netbios-name-servers" werden an die DHCP-Clients
(also an die Rechner im Netzwerk) übermittelt.
-
Für den Router (= Gateway) ist die feste IP-Adresse
des Linux-Servers angegeben, ebenso für den Nameserver
und den WINS-Server, die ja auf dem Linux-Server laufen.
-
Die "default-lease-time" ist der Standardwert, die
"max-lease-time" der Maximalwert für die Gültigkeit
der übermittelten IP-Adressen (in Sekunden). Welche
Werte sinnvoll sind, hängt vom jeweiligen Netzwerk ab,
also davon, ob ausreichend IP-Adressen für alle Rechner
vorhanden sind und wie oft Rechner gewechselt werden.
Die Zeitspanne reicht von Minuten bis hin zu Wochen
oder Monaten.
-
In den Abschnitten "subnet" befinden sich die
spezifischen Angaben für die Subnets. Der Parameter
"range" gibt einen Bereich von IP-Adressen vor, die den
Hosts dynamisch zugeordnet werden können. Wenn die Rechner
im Netz auch mit Namen angesprochen werden sollen, müssen
alle möglichen Namen dieses Bereichs natürlich auch
in den Zone-Dateien des Nameservers aufgeführt
werden.
-
In den Abschnitten "host" werden einzelnen Rechnern
feste IP-Adressen zugeordnet (die sich natürlich nicht
in dem "range"-Bereich befinden dürfen). Zur Identifikation
der Rechner müssen unter den Parametern "hardware ethernet"
die Hardwareadressen der Netzwerkkarten (MAC-Adressen) angegeben
werden. Diese Adressen kann man unter Windows mit dem Kommando
"ipconfig /all", unter Linux mit dem Kommando "ifconfig"
ermitteln.
-
Sowohl unter Linux als auch unter Windows kann man die
Adressen der Netzwerkkarten für die anderen Rechner
des Netzes mit dem Kommando "arp -a" auflisten. Wenn der
gesuchte Rechner in der Liste fehlt, genügt es, ihn
"anzupingen", damit er in die Liste aufgenommen wird.
Ein Ping-Rundruf ergibt dann eine vollständige Liste.
-
Um die Konfiguration zu testen, sollte man die Lease-Zeiten
auf einen kurzen Wert von wenigen Minuten setzen und dabei die
Logdatei "/var/log/messages" auf dem Linux-Server beobachten.
Sind die IP-Adressen erst einmal erfolgreich vergeben, machen
sich eventuelle Fehler bei großen Lease-Zeiten erst sehr spät
bemerkbar.
Konfiguration der Clients
Die anderen Rechner im Netzwerk sollen sich nun die Netzwerkangaben
vom DHCP-Server holen.
Bei Windows-Rechnern kann man unter "Systemsteuerung / Netzwerkverbindungen /
LAN-Verbindung / Eigenschaften / Internetprotokoll / Eigenschaften"
die Einstellung "IP-Adresse automatisch beziehen" vornehmen.
Mit dem Kommando "ipconfig /all" werden die Daten, die der
DHCP-Server dem Windows-PC übermittelt, direkt angezeigt.
"ipconfig /help" zeigt die Kommandooptionen, um die Netzwerkdaten
freizugeben bzw. zu aktualisieren. Diese Vorgänge kann man auf dem
Linux-Server in der Logdatei /var/log/messages (mit dem Kommando
"tail -f /var/log/messages") gut verfolgen.
Auf Linux-Rechnern kann man mit YaST unter "Netzwerkgeräte /
Netzwerkkarte" die "Automatische Adressenkonfiguration" für
ein Interface auswählen.
Wenn man den Linux-Rechner neu startet, kann man im Bootlog
verfolgen, wie sich der Linux-DHCP-Client mit dem Linux-DHCP-Server
"unterhält".
Links
Internet Software Consortium ...
DHCP ... Server, Client, Relay Agent
Dank
... an M., der mich auf die
DHCP-Möglichkeiten ("I-Tüpfelchen") hingewiesen und mit seiner
Konfigurationsdatei zu dieser Seite beigetragen hat. (22.05.2002)
|