In diesem Tutorial richten wir unseren eigenen DHCP-Server unter Ubuntu ein. DHCP (Dynamic Host Configuration Protocol) ist ein Netzwerkdienst zum automatischen Zuweisen von IP-Adressen zu Clients in einem Netzwerk. Es folgt einer Server-Client-Architektur, bei der der Client einen DHCP-Server anfordert, eine IP-Adresse abzurufen. Die meisten Router verfügen über einen integrierten DHCP-Server, aber wir können auch unseren eigenen DHCP-Server verwenden.
Inhaltsverzeichnis
- Wie funktioniert DHCP?
- Zuweisungsmethoden für DHCP
- Schritte zum Einrichten eines DHCP-Servers unter Ubuntu
- 1. DHCP-Server installieren
- 2. Konfigurieren des DHPC-Servers
- Sicherung der ursprünglichen Konfigurationsdatei
- Erstellen und bearbeiten Sie die neue Konfigurationsdatei
- Zuweisen zufälliger IP-Adressen aus einem Pool
- Zuweisen einer statischen IP-Adresse zu einem Client
- 3. Binden Sie den DHCP-Server an eine Schnittstelle
- 4. Starten Sie den DHCP-Server neu
- 5. Überprüfen Sie den Status des DHCP-Servers
- Fehlerbehebung
- Fazit
Wie funktioniert DHCP?
Wenn der Computer hochfährt, hat er keine IP-Adresse (vorausgesetzt, er hat keine statische IP-Adresse konfiguriert, die die meisten Computer nicht haben). Es sendet eine Sendung (auf der MAC-Adresse mit allen F’s), die als DHCP-Server bezeichnet wird. DHCP-Server sind so konzipiert, dass sie auf solche Broadcasts reagieren.
Sie senden dann Unicast-Datenverkehr, der als DHCP-Angebot bekannt ist, an den anfordernden Client zurück. Dieses DHCP-Angebot enthält in der Regel die zugewiesene IP-Adresse, die IP-Adresse des Standard-Gateways und die IP-Adresse des DNS-Servers.
Der Client sendet beim Empfang des Angebots eine DHCP-Anforderung an den DHCP-Server, die bestätigt, dass er die ihm vom Server übermittelten Informationen akzeptiert hat.
DHCP-Server zeichnen die zugewiesenen IP-Adressen auf, um eine doppelte Zuweisung oder IP-Adresskollisionen zu verhindern.
Da DHCP-Server auf Broadcast reagieren, müssen sie im lokalen Netzwerk vorhanden sein, und es sollten nicht mehr als 1 DHCP-Server in einem lokalen Netzwerk vorhanden sein.
Zuweisungsmethoden für DHCP
Im Folgenden sind die beiden Zuweisungsmethoden für einen DHCP-Server aufgeführt:
- Handbuch: Bei dieser Methode wird die IP-Adresse anhand der MAC-Adresse angegeben. Dadurch wird sichergestellt, dass ein bestimmter Computer eine feste IP-Adresse erhält, da seine IP-Adresse dann an seine MAC-Adresse gebunden ist. Der DHCP-Server sendet abhängig von seiner MAC-Adresse bei dieser Art der Zuweisung eine konstante Konfiguration an den Client.
- Automatisch: Bei dieser Methode werden die IP-Adressen automatisch vom DHCP-Server auf der Basis des First-Come-first-Served aus einem Pool von Adressen zugewiesen. Es kann weiter in zwei Kategorien unterteilt werden, basierend auf der Lease–Zeit – Der Zeit, für die eine IP-Adresse einem Client zugewiesen wird.
- Feste Lease-Zeit: Wenn ein DHCP-Client für einen bestimmten Zeitraum nicht mehr im Netzwerk ist, ist die Konfiguration abgelaufen und wird für die Verwendung durch andere DHCP-Clients an den Adresspool zurückgegeben. Der Client muss neu verhandeln, um die vorherige IP-Adresse beizubehalten.
- Unendliche Lease-Zeit: Dies hat den Effekt, dass einem Client dauerhaft eine IP-Adresse zugewiesen wird.
Schritte zum Einrichten eines DHCP-Servers unter Ubuntu
Jetzt sehen wir uns an, wie Sie einen DHCP-Server unter Ubuntu einrichten.
1. DHCP-Server installieren
Sie können den DHCP-Server mit dem Befehl apt wie folgt installieren:
sudo apt install isc-dhcp-server
Hinweis: Sie können einen DHCP-Server auch auf einer Desktop-Edition anstelle der Server-Edition von Ubuntu installieren. In dieser StackOverflow-Antwort erfahren Sie, wie sich Desktop- und Servereditionen unterscheiden / ähneln.
2. Konfigurieren des DHPC-Servers
Die Hauptkonfigurationsdatei des ISC-DHCP-Servers lautet /etc/dhcp/dhcpd.conf
.
Sicherung der ursprünglichen Konfigurationsdatei
Es ist immer eine gute Idee, die ursprünglichen Konfigurationsdateien zu sichern. Falls etwas schief geht, kann die ursprüngliche Konfiguration problemlos wiederhergestellt werden. Sie können den Befehl cp oder den Befehl mv verwenden, um ein Backup zu erstellen.
sudo mv /etc/dhcp/dhcpd.conf{,.backup}#Expands to sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
Der obige Befehl erstellt eine dhcpd.conf.backup
-Datei mit der {}
-Erweiterungsfunktion von bash.
Erstellen und bearbeiten Sie die neue Konfigurationsdatei
Sie können den Editor Ihrer Wahl verwenden. Ich werde den Nano-Editor verwenden:
sudo nano /etc/dhcp/dhcpd.conf
Die Optionen in der Konfigurationsdatei hängen von der Komplexität des Netzwerks ab.
Zuweisen zufälliger IP-Adressen aus einem Pool
Die häufigste Aufgabe eines DHCP-Servers besteht darin, Adressen zufällig zuzuweisen. Die Einstellungen für dasselbe wären wie folgt:
# a simple /etc/dhcp/dhcpd.confdefault-lease-time 600;max-lease-time 7200;authoritative;subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2;#option domain-name "mydomain.example";}
Entsprechend dieser Konfiguration:
- Die Standard-Lease-Zeit für einen Client beträgt 10 Minuten (600 Sekunden) und die maximale Lease-Zeit beträgt 2 Stunden (7200 Sekunden).
- Dieser DHCP-Server ist der offizielle Server für das lokale Netzwerk. (angezeigt durch
authoritative
). - Der Server übergibt die IP-Adresse aus dem Bereich 192.168.1.100 bis 192.168.1.200.
- Der Server „rät“ dem Client außerdem, 192.168.1.254 als Standard-Gateway und 192.168.1.1 und 192.168.1.2 als DNS-Server zu verwenden.
Sie können auch einen Domainnamen angeben.
Zuweisen einer statischen IP-Adresse zu einem Client
Um sicherzustellen, dass ein bestimmter Client immer dieselbe IP-Adresse erhält, benötigt der DHCP-Server die MAC-Adresse dieses Clients. Dies wäre der manuelle Zuordnungsmodus, über den zuvor in diesem Artikel gesprochen wurde.
Um die MAC-Adresse eines Clients abzurufen, können wir den Befehl ip auf dem Client-Computer verwenden:
ip a
( Sie müssen die MAC-Adresse der Schnittstelle auswählen, von der aus Sie eine Verbindung zum Netzwerk herstellen möchten. Ich habe die drahtlose gewählt.)
Nachdem wir die MAC-Adresse haben, können wir sie in die Konfigurationsdatei einfügen:
host archmachine {hardware ethernet e0:91:53:31:af:ab;fixed-address 192.168.1.20;}
Dadurch wird die IP-Adresse 192.168.1.20 für den Client mit der MAC-Adresse e0:91:53:31:af:ab
reserviert.
Schließlich sieht die Konfigurationsdatei folgendermaßen aus:
Sie können den Teil Statische IP-Konfiguration weglassen, wenn Sie Adressen automatisch zuweisen möchten.
3. Binden Sie den DHCP-Server an eine Schnittstelle
Der DHCP-Server kann viele Schnittstellen haben. Sie müssen die Schnittstelle definieren, auf die sie hören soll. Sie können die Schnittstellen auf dem Server mit ip a
genau wie der Client anzeigen.
Die zu bindende Schnittstelle ist in der /etc/default/isc-dhcp-server
-Datei definiert. Öffnen Sie es mit dem Editor Ihrer Wahl. Die Schnittstelle für meinen Server ist eth0
. Dies kann für Ihren Server unterschiedlich sein. Bearbeiten Sie die Datei als:
INTERFACESv4="eth0"
4. Starten Sie den DHCP-Server neu
Nachdem Änderungen an der Konfiguration vorgenommen wurden, müssen wir den Dienst neu starten, um diese Änderungen zu aktivieren. Dazu verwenden wir den Befehl systemctl
:
sudo systemctl restart isc-dhcp-server.service
5. Überprüfen Sie den Status des DHCP-Servers
Dies kann wiederum mit dem Befehl systemctl
erfolgen :
sudo systemctl status isc-dhcp-server.service
Ein aktiver Status zeigt an, dass der DHCP-Server die Konfiguration erfolgreich übernommen hat und bereit ist, IP-Adressen zu verteilen.
Fehlerbehebung
Der DHCP-Server schreibt seine Protokolle in das Syslog. Wenn Sie feststellen, dass der Status des Dienstes inaktiv ist, sollten Sie in die Datei /var/log/syslog
schauen. Von dort aus können Sie im Internet nach dem im Syslog genannten spezifischen Problem suchen.
Fazit
In diesem Artikel haben wir mehr über DHCP und die Installation eines DHCP-Servers auf einem Ubuntu-Computer erfahren. Ein DHCP-Server automatisiert die Zuweisung von IP-Adressen, was viel besser ist als die manuelle Konfiguration jedes Clients.