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.efiund Legacy-BIOS-Geräte als Boot-Filenameopsi/loader/opsi-netboot.x86.bioserhalten. 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.