- Backend-Wechsel von isc-dhcp-server (seit 2022 EOL) auf Kea DHCP
(kea-dhcp4-server) — aktiv weiterentwickelt, bildet "globaler Wert, pro
Client überschreibbar" nativ über Kea-Reservation-Option-Data ab.
- Neue Tabellen dhcp_option_defs/dhcp_option_values: eigene/herstellerspezifische
Options mit Code/Name/Typ/Beschreibung, Wert global sowie optional pro
Client (device_mac="" für global, siehe Kommentar zur SQLite-NULL-
UNIQUE-Falle). UI dafür: Optionen-Tabelle + "Neue Option"-Modal +
Pro-Client-Overrides-Modal je Reservierung.
- Kea-JSON-Generator (_render_kea_config): option-def für jede eigene
Option, globale Werte im Top-Level option-data, Client-Overrides im
option-data der jeweiligen Reservierung.
- Reservierungen werden jetzt zusätzlich auf Zugehörigkeit zum
konfigurierten Subnet gefiltert (_dhcp_reservation_candidates) — beim
Live-Test gegen echtes Kea gefunden: Kea lehnt Reservierungen außerhalb
ihres Subnets als Konfigurationsfehler ab, das muss also schon bei der
Generierung berücksichtigt werden statt erst beim Laden zu crashen.
- Neue, einzeln bestätigte Aktionen: "kea-dhcp4-server installieren"
(apt-get), "Aktivieren & (neu) starten" sowie "Stoppen"
(systemctl) — bewusst getrennt von "Konfiguration speichern"/"In
Datei schreiben".
- Live gegen eine echte, frisch installierte Kea-3.0.3-Instanz verifiziert:
Installation erfolgreich, generierte Config besteht "kea-dhcp4 -t",
Dienst übernimmt sie beim Neustart fehlerfrei (DHCP4_CONFIG_COMPLETE),
globaler Options-Wert und Client-Override erscheinen korrekt getrennt.
Danach wieder gestoppt; Paket bleibt installiert.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Neue Unterseite unter Einstellungen (eigenes Rechtepaar
settings_dhcp.view/settings_dhcp.edit, in PERMISSIONS/NAV_ITEMS/
_nav_key_visible integriert, Kill-Switch über settings_group.view
greift wie bei den anderen Einstellungen-Unterpunkten).
- Rein lesende Installations-/Status-Erkennung (shutil.which("dhcpd"),
systemctl is-active isc-dhcp-server) — die App installiert/startet nie
selbst einen DHCP-Dienst, sondern zeigt bei fehlender Installation den
passenden manuellen Befehl an.
- Konfigurierbare Netzwerkparameter (Interface/Subnet/Netzmaske/Range/
DNS/Domain/Lease-Zeiten/Ausgabepfad), gespeichert als dhcp_*-Schlüssel
in der bestehenden settings-Tabelle.
- Reservierungen werden aus aktiven Geräten mit gültiger MAC+IP generiert
(Hostname aus Gerätename abgeleitet, Kollisionen automatisch
durchnummeriert, Geräte ohne MAC/IP werden übersprungen).
- "In Datei schreiben" (nur mit settings_dhcp.edit) schreibt eine
separate Include-Datei statt der aktiven dhcpd.conf; kein automatischer
Dienst-Reload/-Restart durch die App.
- Live getestet: Status-Erkennung, Config speichern, Reservierungs-
Generierung inkl. Namenskollisionen, Datei-Schreiben in sicheren
Testpfad, View-only-Gating (Formular ausgeblendet, POST blockiert),
Kill-Switch über settings_group.view.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>