DHCP ist eine Abkürzung für »Dynamic Host Configuration Protocol«. Mit DHCP wurde das Konfigurieren von Netzwerken mit sehr vielen Hosts sehr vereinfacht. Anstatt jeden Host einzeln zu konfigurieren, werden alle typischen hostspezifischen Parameter durch einen DHCP Server bereitgestellt.
Immer wenn ein Host bootet, sendet er ein Broadcast Paket ins Netz. Dieses Paket ist eine Konfigurationsanfrage an alle DHCP Server des Netzsegmentes.
DHCP ist sinnvoll, um Dinge wie z.B. die IP Adresse, die Netzmaske und das Gateway jedem Client zuzuweisen.
Sind Sie als »root« eingeloggt, starten Sie das Programm so:
linuxconf
Das Programm wird mit allen RedHat Versionen mitgeliefert und arbeitet
sowohl mit X11 als auch auf der Konsole. Es ist unter
http://www.solucorp.qc.ca
verfügbar und kann auch mit SuSE und Caldera genutzt werden.
Select Networking
----------------->Basic Host Information
----------------->Select Enable
----------------->Set Config Mode DHCP
Sind Sie als »root« eingeloggt, starten Sie das Programm so:
yast2
Das Programm wird mit allen aktuellen SuSE Versionen mitgeliefert
und arbeitet sowohl mit X11 als auch auf der Konsole.
Wählen Sie "Netzwerk/Erweitert"
------->Wählen Sie "Hostname und DNS"
------->Wenn gewünscht wählen Sie "Hostname über DHCP ändern"
------->Wenn gewünscht wählen Sie "Nameserver und Suchliste
über DHCP aktualisieren"
Falls er nicht bereits installiert ist, kann der Daemon dhcpd
von folgender Adresse bezogen werden:
ftp.isc.org:/isc/dhcp
Beachten Sie bitte: im Kernel muß »Multicasting« aktiviert sein.
Editieren Sie die Datei /etc/rc.d/rc.local
, um
sicherzustellen, daß diese einen Routing-Eintrag für
»255.255.255.255« enthält.
Zitat aus der dhcpd README
:
"In order for dhcpd to work correctly with picky DHCP clients (e.g., Windows 95), it must be able to send packets with an IP destination address of 255.255.255.255. Unfortunately, Linux insists on changing 255.255.255.255 into the local subnet broadcast address (in this case, the address would be 192.5.5.223). This results in a DHCP protocol violation. While many DHCP clients don't notice the problem, some (e.g., all Microsoft DHCP clients) will recognize the violation. Clients that have this problem will appear not to see DHCPOFFER messages from the server."Führen Sie als root folgendes Kommando aus:
route add -host 255.255.255.255 dev eth0
Sollte die Fehlermeldung
255.255.255.255: Unknown host
auftreten, dann tragen Sie folgenden Eintrag in Ihre /etc/hosts
ein:
255.255.255.255 dhcp
Ist dieser eingefügt, führen Sie folgendes Kommando aus:
route add -host dhcp dev eth0
Jetzt ist es notwendig, den dhcpd
zu konfigurieren. Dazu ist
es notwendig, die Datei /etc/dhcpd.conf
zu editieren bzw. zu
erstellen. Alternativ kann die Konfiguration mit z.B. linuxconf
durchgeführt werden.
Für die manuelle Konfiguration sollten die folgenden Schritte durchgeführt werden. Ich schlage vor, die Konfiguration mindestens einmal manuell durchzuführen. Das kann bei der Diagnose von Problemen helfen.
Der einfachste Weg beim Zuweisen der IP Adressen ist, sie zufällig zuzuordnen. Ein Beispiel für eine Konfigurationsdatei dieses Setuptypes:
# Beispiel /etc/dhcpd.conf
# (hier können die eigenen Kommentare eingefügt werden)
default-lease-time 1200;
max-lease-time 9200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.org";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}
Dieses Beispiel erlaubt dem DHCP Server, einem Client IP Adressen im Bereich von 192.168.1.10-192.168.1.100 oder 192.168.1.150-192.168.1.200 zuzuweisen.
Wenn der Client keine größeres Zeitfenster anfordert, vergibt der DHCP Server eine IP Adresse für 1200 Sekunden. Das maximal erlaubte Zeitfenster für die Adreßzuordnung durch den Server beträgt 9200 Sekunden. Auf Anfrage sendet der Server dem Client die folgenden Parameter:
Um Windows Clients einen WINS Server zuzuordnen, ist in der
dhcpd.conf
folgende Option notwendig:
option netbios-name-servers 192.168.1.1;
Natürlich kann man IP Adressen auch entsprechend der MAC Adressen der Clientrechner zuordnen. Die Einträge in der Konfigurationsdatei sehen so aus:
host haagen {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192.168.1.222;
}
Dieses Beispiel ordnet die IP Adresse 192.168.1.222 dem Client mit der Ethernet Adresse 08:00:2b:4c:59:23 zu.
In den meisten Fällen wird bei der DHCP Installation die Datei
dhcpd.leases
nicht erzeugt. Vor dem Serverstart muß
sichergestellt werden, daß diese vorhanden ist. Dazu reicht ein:
touch /var/state/dhcp/dhcpd.leases
Um den DHCP Server manuell zu starten, gibt man ein:
/usr/sbin/dhcpd
Damit würde der dhcpd
für das Device eth0
gestartet.
Alternativ kann er über die Bootskripte gestartet
werden. Um ihn für ein anderes Device zu starten, wird dieses wie im nächsten
Beispiel einfach auf der Kommandozeile übergeben:
/usr/sbin/dhcpd eth1
Um die Konfiguration auf Fehler zu testen, kann dhcpd
im Debugmodus
gestartet werden:
/usr/sbin/dhcpd -d -f
Jetzt kann ein Client gebootet werden und auf der Konsole des Servers sollten einige Debugmessages erscheinen.