DHCP-Server/PXE-Boot

Ein DHCP-Server (Dynamic Host Configuration Protocol) richtet Geräte in einem Netzwerk automatisch ein. Dazu gehört etwa die Zuweisung von IP-Adresse, Netzmaske, Gateway, Domain Name Server (DNS) und auch die Konfiguration von Netzwerk-Boot (PXE). Preboot Execution Environment ermöglicht es, Computer über das Netzwerk zu starten und ein Betriebssystem zu laden. Geräte, die über einen PXE-fähigen Netzwerkadapter verfügen, greifen dazu über das Netzwerk auf ein Boot-Image zu, das das Betriebssystem oder andere benötigte Startdateien enthält.

PXE kann sowohl mit BIOS (Basic Input/Output System) als auch mit UEFI (Unified Extensible Firmware Interface) verwendet werden. PXE selbst ist unabhängig von der Firmware des Computers. Die verwendeten Bootloader unterscheiden sich voneinander.

Der opsi-Depotserver fungiert in diesem Fall als Boot-Server — opsi ermöglicht also das Durchführen automatisierter Prozesse unabhängig von einem auf dem Client installierten Betriebssystem.

Um PXE-Boot zu ermöglichen, muss ein DHCP-Server dem Netzwerkgerät zusätzliche Informationen mitteilen. Bei Verwendung des TFTP-Protokolls sind das die folgenden:

  • Boot-Server (DHCP-Option 66): IP-Adresse des TFTP-Servers (auch Next-Server genannt)

  • Boot-Filename (DHCP-Option 67): Der Pfad zum Bootloader auf dem TFTP-Server. Diese Option muss für UEFI- und BIOS-Geräte unterschiedlich konfiguriert werden.

Mehr Informationen zu TFTP (Trivial File Transfer Protocol) finden Sie in Kapitel TFTP-Server.

DHCP auf dem opsi-Depotserver

Ein opsi-Depotserver kann als DHCP-Server dienen. Dabei besteht die Möglichkeit, die DHCP-Server-Konfiguration automatisch mit opsi zu verwalten.

Auf dem opsi-Server installieren Sie dazu den ICS-DHCP-Server. Der Name des Paketes hängt von der verwendeten Linux-Distribution ab; es heißt entweder isc-dhcp-server oder dhcp-server. Schauen Sie im Zweifelsfall im Handbuch bzw. in den Paketquellen des Linux-Systems nach.

Die vorkonfigurierte virtuelle Maschine (siehe Kapitel Vorkonfigurierte virtuelle Maschine) ist bereits mit einem DHCP-Server ausgestattet. Er ist so konfiguriert, dass er IP-Adressen ausschließlich an bekannte Clients vergibt (keine freien Leases).

Automatische DHCP-Konfiguration

opsi kann wie gesagt den DHCP-Server automatisch konfigurieren, wenn er auf dem opsi-Server installiert ist. In dem Fall erzeugt und aktualisiert opsi auch Client-Einträge. Sie hinterlegen dazu lediglich die MAC-Adresse und gegebenenfalls die IP-Adresse, beispielsweise wenn Sie einen Client über die Management-Oberfläche opsi-configed anlegen (siehe Kapitel Management-Oberfläche opsi-configed).

Die automatische DHCP-Konfiguration über opsi konfigurieren Sie in der Datei /etc/opsi/backends/dhcpd.conf auf dem opsi-Configserver, z. B. so:

# -*- coding: utf-8 -*-

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 Konfigurations-Parameter haben die folgende Bedeutung:

  • enabled:

    • True: Die automatische Konfiguration ist aktivert.

    • False: Die automatische Konfiguration ist deaktivert.

  • dhcpdOnDepot:

    • False: Der DHCP-Server auf dem opsi-Configserver verwaltet alle Clients.

    • True: Die Clients verden in der DHCP-Konfiguration des zugeordneten Depots 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 Kommado, 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

Wenn Sie die PXE-Boot-Funktionalität des opsi-Servers nutzen wollen und bereits ein DHCP-Server in Ihrem Netzwerk existiert, der auch die opsi-Clients verwalten soll, müssen Sie die Konfiguration dieses DHCP-Servers anpassen:

  • Boot-Server (DHCP-Option 66): Tragen Sie für den Boot-Server die IP-Adresse Ihres opsi-Depotservers ein.

  • Boot-Filename (DHCP-Option 67): Konfigurieren Sie Ihren DHCP-Server so, dass er UEFI-Geräten als Boot-Filename opsi/opsi-linux-bootimage/loader/shimx64.efi.signed und Legcy-BIOS-Geräten als Boot-Filename opsi/opsi-linux-bootimage/loader/opsi-netboot.bios zuweist.

Das folgende Beispiel zeigt eine Konfiguration eines ISC-DHCP-Servers:

next-server 10.10.1.2;
filename "opsi/opsi-linux-bootimage/loader/shimx64.efi.signed"
if substring (option vendor-class-identifier, 19, 1) = "0" {
	filename "opsi/opsi-linux-bootimage/loader/opsi-netboot.bios";
}
else if substring (option vendor-class-identifier, 19, 1) = "7" {
	filename "opsi/opsi-linux-bootimage/loader/shimx64.efi.signed";
}