DHCP-Server/PXE-Boot
Ein DHCP-Server (Dynamic Host Configuration Protocol) übernimmt die automatische Netzwerkkonfiguration von Geräten. Dazu zählen die Vergabe von IP-Adresse, Netzmaske, Gateway und Domain Name Server (DNS). Darüber hinaus kann der DHCP-Server auch die Voraussetzungen für einen Netzwerk-Boot (PXE) schaffen.
Das Preboot Execution Environment (PXE) ermöglicht es, Computer direkt über das Netzwerk zu starten und ein Betriebssystem oder spezielle Tools zu laden.
PXE funktioniert sowohl mit BIOS (Basic Input/Output System) als auch mit UEFI (Unified Extensible Firmware Interface). Die PXE-Spezifikation ist unabhängig von der Firmware, allerdings unterscheiden sich die eingesetzten Bootloader. |
Im opsi-Umfeld übernimmt der opsi-Depotserver die Rolle des Boot-Servers.
Damit PXE-Boot reibungslos funktioniert, muss der DHCP-Server dem Netzwerkgerät zusätzliche Informationen bereitstellen. Diese sind:
-
Boot-Server (DHCP-Option 66): IP-Adresse des Boot-Servers (auch Next-Server genannt)
-
Boot-Filename (DHCP-Option 67): Pfad zum Bootloader auf dem Boot-Server. Für UEFI- und BIOS-Geräte muss diese Option unterschiedlich konfiguriert werden.
Ausführliche Informationen zu TFTP (Trivial File Transfer Protocol) finden Sie im Kapitel TFTP-Server. |
DHCP auf dem opsi-Depotserver
Ein opsi-Depotserver kann auch als DHCP-Server eingesetzt werden. Besonders komfortabel ist die automatische Verwaltung der DHCP-Konfiguration durch opsi.
Installieren Sie dazu auf dem opsi-Depotserver den ISC-DHCP-Server. Der Paketname variiert je nach Linux-Distribution und lautet entweder isc-dhcp-server oder dhcp-server. Prüfen Sie im Zweifel die Paketquellen oder das Handbuch Ihres Systems.
Die vorkonfigurierte virtuelle Maschine (siehe Kapitel Vorkonfigurierte virtuelle Maschine) enthält bereits einen DHCP-Server. Dieser ist so konfiguriert, dass er IP-Adressen ausschließlich an bekannte Clients vergibt. Das erhöht die Sicherheit und verhindert Konflikte mit anderen DHCP-Serven. |
Automatische DHCP-Konfiguration
Ist opsi auf einem opsi-Depotserver installiert, kann die DHCP-Konfiguration automatisch erfolgen. Dabei werden die Einstellungen direkt aus der opsi-Datenbank übernommen. Sie müssen lediglich die MAC-Adresse und ggf. die IP-Adresse hinterlegen – zum Beispiel beim Anlegen eines Clients über die Management-Oberfläche opsi-configed (siehe Kapitel Management-Oberfläche opsi-configed).
Die automatische DHCP-Konfiguration steuern Sie über die Datei /etc/opsi/backends/dhcpd.conf
auf dem opsi-Configserver.
Ein Beispiel:
module = 'DHCPD'
config = {
"enabled": True,
"dhcpdOnDepot": True,
"fixedAddressFormat": "FQDN", # or IP
"dhcpdConfigFile": "/etc/dhcp/dhcpd.conf",
"reloadConfigCommand": "sudo service isc-dhcp-server restart",
"defaultClientParameters": { "next-server": "10.11.12.13" }
}
Die einzelnen Konfigurationsparameter bedeuten:
-
enabled
:-
True
: Die automatische Konfiguration ist aktiviert. -
False
: Die automatische Konfiguration ist deaktiviert.
-
-
dhcpdOnDepot
:-
False
: Der DHCP-Server auf dem opsi-Configserver verwaltet alle Clients. -
True
: Die Clients werden in der DHCP-Konfiguration des zugeordneten opsi-Depotservers verwaltet.
-
-
fixedAddressFormat
:-
FQDN
: Für die Client-Einträge wird der FQDN als Adresse verwendet. -
IP
: Für die Client-Einträge wird die IP-Adresse verwendet.
-
-
dhcpdConfigFile
: Der Pfad zur ISC-DHCP-Konfigurationsdatei. Fehlt dieser Eintrag, wird der Pfad automatisch ermittelt (empfohlen und Standard). -
reloadConfigCommand
: Das Kommando, das nach Änderungen an der Konfigurationsdatei ausgeführt wird, um diese zu aktivieren. Fehlt dieser Eintrag, wird der Befehl automatisch ermittelt (empfohlen und Standard). -
defaultClientParameters
: Client-Konfigurations-Parameter, die für jeden Client gesetzt werden sollen. Fehlt dieser Eintrag, werden sie automatisch ermittelt (empfohlen und Standard).
Externer DHCP-Server
Nutzen Sie bereits einen eigenen DHCP-Server im Netzwerk und möchten die PXE-Boot-Funktion von opsi verwenden, müssen Sie die Konfiguration Ihres DHCP-Servers entsprechend anpassen:
-
Boot-Server (DHCP-Option 66): Tragen Sie die IP-Adresse Ihres opsi-Depotservers als Boot-Server ein.
-
Boot-Filename (DHCP-Option 67): Konfigurieren Sie Ihren DHCP-Server so, dass UEFI-Geräte als Boot-Filename
opsi/loader/opsi-netboot.x64.efi
und Legacy-BIOS-Geräte als Boot-Filenameopsi/loader/opsi-netboot.x86.bios
erhalten. Für ARM64 verwenden Sie entsprechendopsi/loader/opsi-netboot.arm64.efi
.
Das folgende Beispiel zeigt die Konfiguration eines ISC-DHCP-Servers für verschiedene Bootloader:
next-server 10.10.1.2;
filename "opsi/loader/opsi-netboot.x64.efi";
if substring (option vendor-class-identifier, 19, 1) = "0" {
filename "opsi/loader/opsi-netboot.x86.bios";
}
else if substring (option vendor-class-identifier, 19, 1) = "7" {
filename "opsi/loader/opsi-netboot.x64.efi";
}
else if substring (option vendor-class-identifier, 15, 5) = "00011" {
filename "opsi/loader/opsi-netboot.arm64.efi";
}
DHCP-Troubleshooting
Wenn der PXE-Boot nicht wie erwartet funktioniert, prüfen Sie zunächst die Konfiguration Ihres DHCP-Servers und stellen Sie sicher, dass der Dienst läuft.
Zur Analyse des DHCP-Verkehrs im Netzwerk eignen sich Tools wie tcpdump oder Wireshark. Mit diesen Programmen können Sie die übertragenen Pakete mitschneiden und gezielt auswerten.
Der folgende Befehl zeigt alle DHCP-Pakete, die im Netzwerk übertragen werden:
tcpdump -s0 -vv port bootpc or port bootps
In der Ausgabe sehen Sie, welche Informationen der DHCP-Server an den Client übermittelt – insbesondere den konfigurierten Boot-Server und den Boot-Filename. So lassen sich Fehlerquellen schnell identifizieren.