Vorstellung
In diesem Tutorial werde ich Ihnen erklären, wie Sie unter Ubuntu mit KEA (isc-kea) einen DHCP-Server installieren.
isc-dhcp-server wird seit Ende 2022 nicht mehr weiterentwickelt und durch isc-kea ersetzt.
In diesem Tutorial werden wir uns ausschließlich mit dem IPv4-DHCP-Server befassen.
Zur Erinnerung: Ein DHCP-Server ermöglicht die dynamische Zuweisung von Netzwerkkonfigurationen an Computer, die diese anfordern. In dieser Konfiguration finden wir Folgendes:
- IP-Adresse
- DNS-Server
- Router
- Domainname
- …
Installation des DHCP-Servers Kea unter Ubuntu
Wir werden das Paket „kea-dhcp4-server“ installieren:
sudo apt install kea-dhcp4-server -y
Bitte warten Sie während der Installation …
Der Kea-DHCP-Server ist installiert.
Bevor Sie mit der Konfiguration fortfahren, ermitteln Sie den Namen der Netzwerkkarte des Servers:
ip a
Der Name der Netzwerkkarte, auf der DHCP auf Anfragen wartet, lautet „ens33“.
Die Konfigurationsdateien befinden sich im Ordner /etc/kea/, und die Datei, die uns in diesem Tutorial interessieren wird, ist kea-dhcp4.conf.
Bevor wir mit der Konfiguration beginnen, sichern wir zunächst die Originaldatei.
Wechseln Sie in das Verzeichnis /etc/kea/:
cd /etc/kea
Konfigurationsdatei kopieren:
sudo cp kea-dhcp4.conf kea-dhcp4.conf.bak
Konfiguration des Kea-DHCP-Servers
Um diesen Abschnitt möglichst verständlich zu gestalten, werden wir bei der Konfiguration des Kea-DHCP-Servers Schritt für Schritt vorgehen.
Der DHCP-Server hat die IP-Adresse 192.168.100.181 und wird so konfiguriert, dass er Adressen im Netzwerk 192.168.100.0/24 vergibt. Sein Adresspool lautet: 192.168.100.120 bis 192.168.100.130.
Zur Information: Die Konfigurationsdatei liegt im JSON-Format vor.
Ich empfehle Ihnen, die Konfiguration in einem Texteditor wie VSCode zu bearbeiten, da dies übersichtlicher ist.
Grundkonfiguration
Wir beginnen mit einer einfachen Konfiguration, bei der wir einen DHCP-Bereich einrichten und außerdem den Router, die DNS-Server und den Domainnamen festlegen.
Öffnen Sie zunächst die Konfigurationsdatei:
sudo nano kea-dhcp.4.conf
Wie Sie sehen können, enthält die Datei bereits Konfigurationselemente und zahlreiche Kommentare. Löschen Sie den Inhalt der Datei mit „Strg+K“ (Ausschneiden).
Zunächst einmal sehen wir uns die Konfiguration an, die wir verwenden werden:
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "ens33" ]
},
"control-socket": {
"socket-type": "unix",
"socket-name": "/run/kea/kea4-ctrl-socket"
},
"lease-database": {
"type": "memfile",
"lfc-interval": 3600
},
"valid-lifetime": 600,
"max-valid-lifetime": 7200,
"subnet4": [
{
"id": 1,
"subnet": "192.168.100.0/24",
"pools": [
{
"pool": "192.168.100.120 - 192.168.100.130"
}
],
"option-data": [
{
"name": "routers",
"data": "192.168.100.254"
},
{
"name": "domain-name-servers",
"data": "1.1.1.1, 8.8.8.8"
},
{
"name": "domain-name",
"data": "247-it.io"
}
]
}
]
}
}
Passen Sie die Konfiguration an Ihre Umgebung an und kopieren Sie diese Konfiguration in die Datei auf dem Server, der geleert wurde.
Speichern Sie die Konfiguration und starten Sie den Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart kea-dhcp4-server
Überprüfen Sie, ob der DHCP-Server ordnungsgemäß gestartet ist:
sudo systemctl status kea-dhcp4-server
Um die Konfiguration nun zu testen, ist es am einfachsten, den Test mit einem Computer im Netzwerk durchzuführen. Unten sehen Sie einen Screenshot von einem Windows-11-Computer, auf dem zu erkennen ist, dass ich mit dieser Konfiguration tatsächlich eine Adresse vom DHCP-Server erhalte.
Vom Server aus kann man die DHCP-Leases einsehen; diese sind in einer Datei gespeichert, die sich unter folgendem Pfad befindet: /var/lib/kea/ in der Datei kea-leases4.csv.
Hier ist der Inhalt der Datei, in der sich der Lease des Windows-11-Computers befindet.
Konfiguration der Optionen auf DHCP-Serverebene
Im ersten Beispiel wurden die DHCP-Optionen so konfiguriert, dass die DNS-Server und der Domänenname auf Bereichsebene bereitgestellt werden.
Wenn Sie mehrere Domänen konfigurieren und diese alle dieselben DNS-Server und denselben Domänennamen haben, können Sie diese Optionen auf Serverebene festlegen, um zu vermeiden, dass Sie diese Angaben für jede einzelne DHCP-Domäne vornehmen müssen.
Das ist auch praktisch: Wenn einmal eine Änderung vorgenommen werden muss, muss sie nur einmal durchgeführt werden.
Um den Unterschied zu erkennen, habe ich die DNS-Server so geändert, dass sie nun die Adressen 2.2.2.2 und 3.3.3.3 verwenden.
Hier ist die Konfigurationsdatei:
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "ens33" ]
},
"control-socket": {
"socket-type": "unix",
"socket-name": "/run/kea/kea4-ctrl-socket"
},
"lease-database": {
"type": "memfile",
"lfc-interval": 3600
},
"valid-lifetime": 600,
"max-valid-lifetime": 7200,
"option-data": [
{
"name": "domain-name-servers",
"data": "1.1.1.1, 8.8.8.8"
},
{
"name": "domain-name",
"data": "247-it.io"
}
],
"subnet4": [
{
"id": 1,
"subnet": "192.168.100.0/24",
"pools": [
{
"pool": "192.168.100.120 - 192.168.100.130"
}
],
"option-data": [
{
"name": "routers",
"data": "192.168.100.254"
}
]
}
]
}
}
Damit die Änderungen wirksam werden, starten Sie den Dienst „kea-dhcp4-server“ neu und überprüfen Sie dessen Status.
Auf meinem Windows-11-Rechner sieht man nach der Aktualisierung, dass die neuen Optionen bereitgestellt wurden.
Eine DHCP-Reservierung einrichten
Zum Abschluss des Abschnitts zur Konfiguration zeige ich Ihnen, wie Sie eine Reservierung so einrichten, dass dem Computer immer dieselbe Adresse zugewiesen wird.
Für diese Reservierung wird die MAC-Adresse der Netzwerkkarte verwendet; die Reservierung muss zwingend eine IP-Adresse nutzen, die außerhalb des Zuweisungspools liegt.
Zum Schluss habe ich noch einige spezielle Optionen (DNS-Server) hinzugefügt.
Hier ist die Konfiguration:
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "ens33" ]
},
"control-socket": {
"socket-type": "unix",
"socket-name": "/run/kea/kea4-ctrl-socket"
},
"lease-database": {
"type": "memfile",
"lfc-interval": 3600
},
"valid-lifetime": 600,
"max-valid-lifetime": 7200,
"option-data": [
{
"name": "domain-name-servers",
"data": "2.2.2.2, 3.3.3.3"
},
{
"name": "domain-name",
"data": "247-it.io"
}
],
"subnet4": [
{
"id": 1,
"subnet": "192.168.100.0/24",
"reservations-global": false,
"reservations-in-subnet": true,
"reservations-out-of-pool": false,
"reservations": [
{
"hw-address": "00:0c:29:a1:92:36",
"ip-address": "192.168.100.135",
"hostname": "lab-cl-w11",
"option-data": [
{
"name": "domain-name-servers",
"data": "1.1.1.1, 8.8.8.8"
}
]
}
],
"pools": [
{
"pool": "192.168.100.120 - 192.168.100.130"
}
],
"option-data": [
{
"name": "routers",
"data": "192.168.100.254"
}
]
}
]
}
}
Der Windows-11-Computer wird immer die Adresse 192.168.100.135 haben
Damit die Änderungen wirksam werden, starten Sie den Dienst „kea-dhcp4-server“ neu und überprüfen Sie dessen Status.
An den IP-Einstellungen des Windows-11-Computers lässt sich erkennen, dass er die reservierte Adresse mit den dazugehörigen Optionen tatsächlich erhalten hat.
Ein paar weitere Informationen
Mit dem folgenden Befehl lässt sich der Status des DHCP-Dienstes überprüfen:
keactrl status
Die Protokolle des Kea-DHCP-Servers anzeigen:
journalctl -u kea-dhcp4-server
Link zur offiziellen Dokumentation: https://kea.readthedocs.io/en/latest/
Dieses erste Tutorial zum Kea-DHCP-Server endet hier und soll Ihnen dabei helfen, einen DHCP-Dienst unter Ubuntu einzurichten.
Ich denke, ich werde noch weitere Anleitungen zu den Kea-Diensten erstellen, die viele Möglichkeiten bieten.


