Fix: 'host-name'-Option kollidierte mit dem nativen Reservierungs-Hostname
Der Nutzer fragte zu Recht nach, ob eine Reservierung mit gleichzeitig gesetztem hostname-Feld (aus dem Namen abgeleitet, z.B. 'unraid') UND einem option-data-Override fuer 'host-name' (Code 12, z.B. 'test') so beabsichtigt ist. Laut Kea-Dokumentation beantwortet Kea die Host-Name- Anfrage eines Clients bei einer Reservierung automatisch mit deren eigenem hostname-Feld -- der zusaetzliche Options-Override fuer dieselbe Option war eine unbeabsichtigte Dopplung/Quelle fuer Widersprueche, keine zusaetzliche Funktion. 'host-name' aus den 56 verbleibenden Standard-Optionen entfernt (war eine von 57), neue Migration v3 loescht eine bereits geseedete/gesetzte host-name-Zeile samt Wert aus bestehenden Installationen nach. Live auf der Test-VM verifiziert: Option ist verschwunden, die 'unraid'-Reservierung enthaelt jetzt nur noch hw-address/ip-address/hostname ohne option-data, kea-dhcp4 -t weiterhin erfolgreich.
This commit is contained in:
@@ -271,27 +271,33 @@ der aktiv weiterentwickelte Nachfolger und bildet „globaler Wert, pro Client
|
||||
kein "ungültig", da das Fehlen des Netzes hier Absicht ist), statt es
|
||||
jedes Mal neu anlegen zu müssen.
|
||||
- **DHCP-Options** (`dhcp_option_defs`/`dhcp_option_values`): eine kuratierte
|
||||
Auswahl an **57 Standard-Optionen** (analog den „Vordefinierten Optionen“
|
||||
eines Windows-DHCP-Servers — u.a. Hostname erzwingen, NTP-/WINS-/TFTP-/
|
||||
SMTP-Server, Boot-Datei, Domain-Search, IP-Forwarding) ist automatisch
|
||||
vorbefüllt und **nicht löschbar** (Backend lehnt es ab, UI zeigt statt
|
||||
eines Löschen-Buttons ein Schloss-Symbol) — Router/DNS-Server/Domain-Name/
|
||||
Lease-Zeiten sind bewusst ausgenommen, da dafür bereits eigene, dedizierte
|
||||
Felder existieren (Subnetze bzw. globale Einstellungen oben); ebenso
|
||||
client-/protokollinterne Optionen (message-type, parameter-request-list,
|
||||
Auswahl an **56 Standard-Optionen** (analog den „Vordefinierten Optionen“
|
||||
eines Windows-DHCP-Servers — u.a. NTP-/WINS-/TFTP-/SMTP-Server, Boot-Datei,
|
||||
Domain-Search, IP-Forwarding) ist automatisch vorbefüllt und **nicht
|
||||
löschbar** (Backend lehnt es ab, UI zeigt statt eines Löschen-Buttons ein
|
||||
Schloss-Symbol) — Router/DNS-Server/Domain-Name/Lease-Zeiten sind bewusst
|
||||
ausgenommen, da dafür bereits eigene, dedizierte Felder existieren
|
||||
(Subnetze bzw. globale Einstellungen oben); ebenso client-/
|
||||
protokollinterne Optionen (message-type, parameter-request-list,
|
||||
requested-address, ...), die serverseitig nicht sinnvoll setzbar sind.
|
||||
Alle 57 Namen sind live gegen eine echte Kea-2.4.1-Instanz verifiziert
|
||||
(`kea-dhcp4 -t`, jede Option einzeln getestet — u.a. „host-name“ mit
|
||||
Bindestrich statt „hostname“ als Kea-Name richtiggestellt). Standard-
|
||||
Optionen bekommen bewusst **kein eigenes `option-def`** in der generierten
|
||||
Konfiguration — Kea kennt sie bereits nativ, eine Neudefinition würde die
|
||||
eingebaute duplizieren; nur zusätzlich angelegte, wirklich eigene/
|
||||
herstellerspezifische Options (z.B. eine Terminal-Boot-URL) bekommen eines
|
||||
und bleiben frei löschbar.
|
||||
„host-name“ (12) ist ebenfalls bewusst **nicht** enthalten (war es
|
||||
zwischenzeitlich, wurde aber wieder entfernt): Kea beantwortet die
|
||||
Host-Name-Anfrage eines Clients bei einer Reservierung bereits automatisch
|
||||
über deren eigenes `hostname`-Feld (aus dem Namen der Reservierung
|
||||
abgeleitet) — ein zusätzlicher `option-data`-Override für dieselbe Option
|
||||
wäre laut Kea-Dokumentation eine Dopplung und Quelle für Widersprüche,
|
||||
live an einer echten Reservierung mit beiden gleichzeitig gesetzten
|
||||
Werten nachvollzogen. Alle verbleibenden Namen sind live gegen eine echte
|
||||
Kea-2.4.1-Instanz verifiziert (`kea-dhcp4 -t`, jede Option einzeln
|
||||
getestet). Standard-Optionen bekommen bewusst **kein eigenes
|
||||
`option-def`** in der generierten Konfiguration — Kea kennt sie bereits
|
||||
nativ, eine Neudefinition würde die eingebaute duplizieren; nur
|
||||
zusätzlich angelegte, wirklich eigene/herstellerspezifische Options (z.B.
|
||||
eine Terminal-Boot-URL) bekommen eines und bleiben frei löschbar.
|
||||
In der Tabelle sind grundsätzlich nur **tatsächlich genutzte** Options
|
||||
sichtbar (eigene immer, Standard-Optionen nur mit gesetztem globalen Wert)
|
||||
— weitere Standard-Optionen kommen über ein Dropdown „+ Standard-Option
|
||||
hinzufügen“ dazu, statt alle 57 dauerhaft als leere Zeilen anzuzeigen.
|
||||
hinzufügen“ dazu, statt alle 56 dauerhaft als leere Zeilen anzuzeigen.
|
||||
Jede Option hat einen **globalen** Wert sowie optional einen **Wert pro
|
||||
Client** — ein Client-Override überschreibt den globalen Wert
|
||||
ausschließlich für dieses eine Gerät (technisch: globale Werte landen im
|
||||
@@ -301,7 +307,7 @@ der aktiv weiterentwickelte Nachfolger und bildet „globaler Wert, pro Client
|
||||
gesetztem Override sind sichtbar, weitere kommen über ein Dropdown dazu.
|
||||
Das ausgewählte Feld wird dabei direkt unter das Dropdown verschoben und
|
||||
fokussiert, statt an seiner ursprünglichen Stelle irgendwo in der u.U.
|
||||
langen Liste (bis zu 57 mögliche Options) zu erscheinen — sonst lag es
|
||||
langen Liste (bis zu 56 mögliche Options) zu erscheinen — sonst lag es
|
||||
oft außerhalb des sichtbaren Modal-Ausschnitts und wirkte, als wäre nichts
|
||||
passiert (live genau so reproduziert und behoben).
|
||||
- **Reservierungen aus zwei Quellen**: automatisch für jedes aktive Gerät mit
|
||||
|
||||
Reference in New Issue
Block a user