ADMIN-Tipp: DHCP-Server testen

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Der DHCP-Server eines jeden Netzwerks erfreut sich häufiger Benutzung, aber wenig Beachtung. DHtest nimmt ihn unter die Lupe.

Der DHCP-Server spielt in den meisten Netzen eine entscheidende Rolle: ohne ihn erhalten die Clients keine IP-Adressen und somit scheitert ihre gesamte Netzkwerkkommunikation. Im Normalfall verrichtet er unscheinbar seinen Dienst, aber die Suche nach eventuellen Fehlern ist nicht leicht und lohnt sich auch präventiv. Das Tool DHtest bietet sich für diesen Zweck an.

Im einfachsten Fall funktioniert DHtest wie ein gewöhnlicher DHCP-Client. Der folgende Aufruf schickt ein Broadcast-"discover"-Paket über das Standard-Interface eth0:

$ ./dhtest -m 57:D1:CB:95:0D:0D
DHCP discover sent - Client MAC : 57:D1:CB:95:0D:0D
DHCP offer received - Offered IP : 192.168.178.26
DHCP request sent - Client MAC : 57:D1:CB:95:0D:0D
DHCP ack received - Acquired IP: 192.168.178.26

Um ein anderes Interface, zum Beispiel wlan0, zu definieren, dient die Option -i. Wer die erhaltene IP-Adresse, im obigen Beispiel 192.168.178.26, freigeben möchte, verwendet den Parameter --release oder -r. Um das angegebene Interface tatsächlich mit der erhaltenen IP-Adresse zu verwenden, also wie ein gewöhnlicher DHCP-Client, dient die Option --bind-ip oder -b.

--bind-timeout oder -k setzt ein Timeout in Sekunden, nach denen DHtest die Suche nach dem DHCP-Server abbricht; Standard ist 3600, also 60 Minuten. Weiterhin spezifiziert DHtest auf Wunsch mit --option51-lease_time oder kurz -L die präferierte Lease Time, also wie lange der Server die erhaltene IP-Adresse für den Client reserviert. Die meisten DHCP-Server setzen hier ein Maximum, das der Client nicht überschreiten kann.

Statt eines Broadcast im ganzen Netz sendet DHtest mit --server <Adresse> oder -S <Adresse> die DHCP-Discover-Pakete nur an die angegebene Adresse. Seit der neuesten Version rapportiert DHtest auch im Nagios-Format und fügt sich somit in ein Monitorung-Setup ein. Dazu dient die Option --nagios (kurz -a):

$ ./dhtest -m 57:D1:CB:95:0D:0D -i wlan0 --nagios 
OK: Acquired IP: 192.168.178.26

Auf diese Weise lässt sich DHtest beispielsweise automatisiert regelmäßig aufrufen, um die Ausgabe in eine Datei zu schreiben, die Nagios wiederum auswertet.

Hilfreich ist auch --verbose oder -V, um eine detaillierte Ausgabe zu erhalten. Diese Option funktioniert allerdings nicht im Kombination mit --nagios. In der Antwort stehen dann neben der zugewiesenen IP-Adresse die erhaltene Lease Time sowie Subnetzmaske, Gatewy und DNS-Server:

$ ./dhtest -m 57:D1:CB:95:0D:0D -V
DHCP discover sent - Client MAC : 57:D1:CB:95:0D:0D
DHCP offer received - Offered IP : 192.168.178.26
DHCP offer details
----------------------------------------------------------
DHCP offered IP from server - 192.168.178.26
Next server IP(Probably TFTP server) - 192.168.178.1
DHCP server - 192.168.178.1
Lease time - 10 Days 0 Hours 0 Minutes
Subnet mask - 255.255.255.0
Router/gateway - 192.168.178.1
DNS server - 192.168.178.1
----------------------------------------------------------
DHCP request sent - Client MAC : 57:D1:CB:95:0D:0D
DHCP ack received - Acquired IP: 192.168.178.26
DHCP ack details
----------------------------------------------------------
DHCP offered IP from server - 192.168.178.26
Next server IP(Probably TFTP server) - 192.168.178.1
DHCP server - 192.168.178.1
Lease time - 10 Days 0 Hours 0 Minutes
Subnet mask - 255.255.255.0
Router/gateway - 192.168.178.1
DNS server - 192.168.178.1
----------------------------------------------------------

Wer zufällige MAC-Adressen ausprobieren möchte, dem hilft der MAC Address Generator , solche zu erzeugen. Nebenan gibt außerdem das Tool MAC Address Lookup Auskunft über den Hersteller existierender Mac-Adressen.

03.12.2013
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023