DHCP (steht für Dynamic Host Configuration Protocol) weist Client-Systemen dynamisch eindeutige IP-Adressen und andere Informationen zu. Einige der Informationen, die von DHCP zugewiesen werden, umfassen Hostname, Domänenname, IP-Adresse des Standard-Gateways und DNS-Servers usw. Dies erspart dem Systemadministrator die Mühe, IP-Adressen und zugehörige Informationen jedem der Client-Systeme manuell zuzuweisen. Üblicherweise übernehmen Router zu Hause oder in kleinen Unternehmen die Rolle eines DHCP-Servers. In einem großen Setup müssen wir jedoch einen dedizierten Server konfigurieren, der als DHCP-Server dient. Unter Linux können Sie ganz einfach einen DHCP-Server einrichten und Clients IP-Adressen zuweisen.
In diesem Tutorial zeigen wir Ihnen, wie Sie DHCP unter Linux konfigurieren, um Clients automatisch IP-Adressen zuzuweisen.
So funktioniert DHCP
Lassen Sie uns kurz erklären, wie DHCP funktioniert:
Stellen Sie sich ein Szenario vor, in dem der Client und der DHCP-Server mit demselben kabelgebundenen Netzwerk verbunden sind.
- Wenn ein Client-Rechner eingeschaltet wird, sendet er eine Broadcast-Nachricht DHCPDISCOVER an jedes Gerät im Netzwerk.
- Wenn diese Nachricht den DHCP-Server erreicht, sendet er ein DHCPOFFER zurück Nachricht mit einer IP-Adresse an den Client.
- Der Client sendet dann einen DHCPREQUEST an den DHCP-Server, um diese IP-Adresse anzufordern.
- Der DHCP-Server sendet dann DHCPACK um die Anfrage zu bestätigen und dem Client eine IP-Adresse zuzuweisen.
Voraussetzungen
- Mindestens zwei Linux-Rechner (für DHCP-Server und -Client)
- Benutzer mit sudo-Berechtigungen
- Statische IP auf DHCP-Server konfiguriert
Hinweis:
Zu Demonstrationszwecken haben wir drei Linux-Rechner verwendet, die sich im selben LAN befanden. Sie können sich vorstellen, dass alle über einen Switch miteinander verbunden sind.
DHCP-Server
Für den DHCP-Server haben wir verwendet:
- Ubuntu 20.04 LTS mit statischer IP „192.168.9.1“ und Hostname „ubuntu“
DHCP-Client
Für den DHCP-Client haben wir zwei Maschinen verwendet:
- Ubuntu 20.04 mit dem Hostnamen „mypc“
- Mint 20 mit dem Hostnamen „mint“
Installation des DHCP-Servers
Aktualisieren Sie zunächst den System-Repository-Index in Ihrem System. Geben Sie dazu den folgenden Befehl im Terminal ein:
$ sudo apt update
Geben Sie nun den folgenden Befehl im Terminal aus, um den DHCP-Server zu installieren:
$ sudo apt-get install isc-dhcp-server -y
Konfiguration des DHCP-Servers
Stellen Sie vor der Konfiguration eines Linux-Systems als DHCP-Server sicher, dass eine statische IP-Adresse konfiguriert ist, damit Clients problemlos eine Verbindung dazu herstellen können. Andernfalls wird es für die Clients schwierig, den DHCP-Server zu finden, mit dem sie sich verbinden sollen.
In /etc/default/isc-dhcp-server -Datei müssen Sie die Schnittstelle angeben, auf der der DHCP-Server lauschen soll. Geben Sie den folgenden Befehl im Terminal ein, um diese Datei zu bearbeiten:
$ sudo nano /etc/default/isc-dhcp-server
In den INTERFACESv4 e ntry, geben Sie die Schnittstelle an, auf der der DHCP-Server lauschen soll, z. B. ens33, eth0, eth1 usw.
INTERFACESv4="interface_name"
In unserem Szenario ist die Schnittstelleens33 , also würde sich der Eintrag zu:
ändernINTERFACESv4="ens33"
Nachdem Sie die Datei konfiguriert haben, speichern und schließen Sie sie.
Jetzt konfigurieren wir den DHCP-Server mit seiner Standardkonfigurationsdatei unter /etc/dhcp/dhcpd.conf .
Bearbeiten Sie die /etc/dhcp/dhcpd.conf Datei wie folgt:
$ sudo nano /etc/dhcp/dhcpd.conf
Kommentieren Sie die folgende Zeile aus, indem Sie das # entfernen Symbol davor.
authoritative;
Fügen Sie außerdem die folgenden Zeilen in die Datei ein:
default-lease-time 600; max-lease-time 7200; # subnet subnet 192.168.9.0 netmask 255.255.255.0 { # range of subnet range 192.168.9.5 192.168.9.15; # gateway address option routers 192.168.9.1; # DNS server address option domain-name-servers 8.8.8.8, 8.8.4.4; }
Nachdem Sie die Datei konfiguriert haben, speichern und schließen Sie sie.
Weisen Sie Clients vom DHCP-Server eine statische IP-Adresse zu
Der DHCP-Server vergibt standardmäßig dynamische IP-Adressen an die Clients. Sie können es jedoch auch so konfigurieren, dass Clients feste oder statische IP-Adressen zugewiesen werden. Feste Adressen sind für einige Netzwerkgeräte wie Drucker, Router erforderlich oder wenn Sie ein Gerät von außen fernverbinden müssen. Um einem bestimmten Rechner eine statische IP-Adresse zuzuweisen, benötigen Sie seine MAC-Adresse.
Angenommen, wir möchten einem Client die MAC-Adresse 00:0c:29:c1:d5:d4 zuweisen eine feste IP 192.168.1.13 jedes Mal.
Bearbeiten Sie die /etc/dhcp/dhcpd.conf Datei und fügen Sie einen Host-Eintrag hinzu, der die MAC-Adresse des Clients und die feste IP-Adresse enthält, die Sie dem Client zuweisen möchten:
host mint { hardware ethernet 00:0c:29:c1:d5:d4; fixed-address 192.168.9.13; }
Hinweis: Die feste IP-Adresse sollte nicht aus dem Bereich des dynamischen IP-Bereichs stammen.
Jetzt erhält jedes Mal, wenn der Client mit der passenden MAC-Adresse (00:0c:29:c1:d5:d4) eine DHCPDISCOVER-Nachricht an den DHCP-Server sendet, dieselbe IP-Adresse 192.168.9.13.
DHCP-Dienst neu starten
Wenn Sie mit den Konfigurationen fertig sind, starten Sie den DHCP-Serverdienst neu. Geben Sie dazu den folgenden Befehl im Terminal ein:
$ sudo systemctl restart isc-dhcp-server.service
Überprüfen Sie nun den Status des DHCP-Servers mit dem folgenden Befehl:
$ sudo systemctl status isc-dhcp-server.service
Die folgende Ausgabe zeigt, dass der DHCP-Dienst aktiv ist und erfolgreich ohne Fehler ausgeführt wird.
DHCP-Client-Konfiguration
Jetzt werden wir zwei Client-Rechner konfigurieren. Einem Client wird eine zufällige IP aus dem in der Konfigurationsdatei definierten Subnetzbereich zugewiesen. Dem anderen Client wird die statische IP zugewiesen.
Standardmäßig ist die dynamische IP-Adressierung in Ubuntu OS konfiguriert. Wenn es jedoch die statische IP-Adresse verwendet, können Sie es so konfigurieren, dass es eine IP-Adresse vom DHCP-Server bezieht.
Client 1- Erhalten Sie eine dynamische IP-Adresse vom DHCP-Server
Suchen Sie zuerst Ihren Netzwerkschnittstellennamen mit dem folgenden Befehl:
$ ifconfig
Wenn Sie den Schnittstellennamen gefunden haben, geben Sie im Terminal den folgenden Befehl ein, um die Netzwerkschnittstelle zu konfigurieren:
$ sudo nano /etc/network/interfaces
Fügen Sie die folgenden Zeilen in die Datei ein:
auto <interface_name> iface <interface_name>inet dhcp
In unserem Fall wäre es:
auto ens33 iface ens33 inet dhcp
Speichern und schließen Sie die Datei und starten Sie den Netzwerk-Manager-Dienst mit dem folgenden Befehl im Terminal neu:
$ sudo systemctl restart network-manager.service
Führen Sie nun den Befehl ifconfig aus, um die IP-Adresse Ihres Clients zu überprüfen.
$ ifconfig
In der folgenden Ausgabe sehen Sie, dass der Client die IP-Adresse 192.168.9.5 erhalten hat, die aus dem in der DHCP-Serverkonfiguration definierten Subnetzbereich stammt.
Um die IP-Adresse des DHCP-Servers zu finden, geben Sie im Terminal den folgenden Befehl ein:
$ sudo grep -R “DHCPOFFER” /var/sys/log
Anhand der Ausgabe können Sie überprüfen, ob die IP-Adresse von 192.168.9.1 zugewiesen wurde, was die IP-Adresse unseres DHCP-Servers ist.
Falls der Client-Rechner keine IP-Adresse vom DHCP-Server erhalten hat, verwenden Sie die folgenden Befehle, um die IP-Adresse freizugeben/zu erneuern:
$ sudo dhclient -r
$ sudo dhclient -v
Führen Sie nun die ifconfig aus Befehl, um die IP-Adresse des Clients zu überprüfen. Diesmal erhält der Client hoffentlich die IP-Adresse vom DHCP-Server.
Client 2 – Erhalten Sie eine statische IP-Adresse vom DHCP-Server
Für unseren zweiten Client-Rechner haben wir den Eintrag für die statische/feste IP-Adresse in der Konfigurationsdatei des DHCP-Servers hinzugefügt. Konfigurieren Sie auf dem Client-Rechner zuerst die Schnittstelle, um die IP-Adresse vom DHCP-Server abzurufen.
Finden Sie Ihren Netzwerkschnittstellennamen mit dem folgenden Befehl:
$ ifconfig
Wenn Sie den Schnittstellennamen gefunden haben, geben Sie im Terminal den folgenden Befehl ein, um die Netzwerkschnittstelle zu konfigurieren:
$ sudo nano /etc/network/interfaces
Fügen Sie die folgenden Zeilen in die Datei ein:
auto <interface_name>
iface <interface_name>inet dhcp
In unserem Fall wäre es:
auto ens33
iface ens33 inet dhcp
Speichern und schließen Sie nun die Datei und starten Sie den Netzwerk-Manager-Dienst mit dem folgenden Befehl im Terminal neu:
$ sudo systemctl restart network-manager.service
Führen Sie nun den Befehl ifconfig aus, um die IP-Adresse Ihres Clients zu überprüfen.
$ ifconfig
In der folgenden Ausgabe sehen Sie, dass der Client die feste IP-Adresse 192.168.9.13 vom DHCP-Server erhalten hat. Dies ist dieselbe feste IP-Adresse, die wir in der DHCP-Konfigurationsdatei hinzugefügt haben.
Um die IP-Adresse des DHCP-Servers zu finden, geben Sie im Terminal den folgenden Befehl ein:
$ sudo grep -R “DHCPOFFER” /var/sys/log
Anhand der Ausgabe können Sie überprüfen, ob die IP-Adressen von 192.168.9.1, unserem DHCP-Server, zugewiesen wurden.
Falls der Client-Rechner keine IP-Adresse vom DHCP-Server erhalten hat, verwenden Sie die folgenden Befehle, um die IP-Adresse freizugeben/zu erneuern:
$ sudo dhclient –r -v
$ sudo dhclient -v
Führen Sie nun die ifconfig aus Befehl, um die IP-Adresse des Clients zu überprüfen. Diesmal erhält der Client hoffentlich die IP-Adresse vom DHCP-Server.
Zugewiesene IP-Adressen vom DHCP-Server anzeigen
Vom DHCP-Server aus können Sie auch die von ihm den Clients zugewiesenen dynamischen Adressen überprüfen.
Führen Sie auf dem DHCP-Server-Computer den folgenden Befehl im Terminal aus, um die vom DHCP-Server zugewiesenen Adressen aufzulisten:
$ dhcp-lease-list
In der folgenden Ausgabe sehen Sie nur die IP-Adressen, die dynamisch vom DHCP-Server einem Client zugewiesen wurden. Denken Sie daran, dass die vom DHCP-Server ausgegebenen statischen IP-Adressen nicht aufgelistet werden.
In diesem Artikel haben Sie erfahren, wie Sie den DHCP-Server im Linux-System installieren und konfigurieren und den Clients dynamische und feste IP-Adressen zuweisen. Es sind nur wenige einfache Schritte erforderlich, um den DHCP-Server auf einem Linux-Computer zu konfigurieren. Sobald Sie es konfiguriert haben, weist es jedem Computer im Netzwerk automatisch die zugewiesenen IP-Adressen und zugehörige Informationen zu.