DHCP: Subnet/Netzmaske/Gateway immer aus System-Netzwerkkonfiguration ableiten
- Neue Helfer _list_network_interfaces() (echte Interfaces aus /sys/class/net) und _detect_interface_network() (IPv4/Prefix per "ip addr show", Gateway per "ip route show default") — Subnet/ Netzmaske/Router werden dadurch bei jeder Anzeige/Generierung live vom System gelesen statt manuell gepflegt zu werden. - dhcp_subnet/dhcp_netmask als manuelle Settings entfernt; Interface ist jetzt ein Dropdown mit den tatsächlich vorhandenen Interfaces statt Freitext, serverseitig zusätzlich gegen die echte Liste validiert. - _dhcp_reservation_candidates()/_render_kea_config() nehmen jetzt das erkannte Netz (ipaddress.IPv4Network) bzw. net_info entgegen statt Subnet/Netzmaske aus der Konfiguration zu lesen; Router kommt vom erkannten Gateway (Fallback: erster DNS-Eintrag, wie zuvor). - UI zeigt das erkannte Netz (IP/Prefix, Subnet, Gateway) read-only an; Schreiben/Vorschau werden blockiert bzw. liefern eine leere Reservierungsliste, wenn die Erkennung fehlschlägt, statt eine mit Sicherheit falsche Konfiguration zu erzeugen. - Live getestet: Erkennung liefert korrekt das tatsächliche WSL-NAT-Netz (172.25.64.0/20) samt Gateway; generierte Config besteht kea-dhcp4 -t; ein Testgerät mit IP im erkannten Netz erscheint korrekt als Reservierung, Geräte außerhalb werden weiterhin sauber übersprungen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -235,10 +235,16 @@ der aktiv weiterentwickelte Nachfolger und bildet „globaler Wert, pro Client
|
||||
oder „In Datei schreiben“ gekoppelt — ein unerwartet aktiver oder
|
||||
fehlkonfigurierter DHCP-Server kann ein ganzes Netzsegment stören, jede
|
||||
dieser Aktionen soll ein bewusster, separater Klick bleiben.
|
||||
- **Konfiguration**: Interface, Subnet, Netzmaske, Range, DNS-Server,
|
||||
Domain, Lease-Zeiten sowie der Ausgabepfad der generierten Kea-Config
|
||||
(Standard: die aktive `/etc/kea/kea-dhcp4.conf`) — als `dhcp_*`-Schlüssel
|
||||
in der bestehenden `settings`-Tabelle gespeichert.
|
||||
- **Netzwerk-Kopplung**: Subnet, Netzmaske und Gateway werden **nie manuell
|
||||
eingegeben**, sondern bei jeder Anzeige/Generierung live aus der
|
||||
System-Netzwerkkonfiguration des gewählten Interfaces gelesen
|
||||
(`_detect_interface_network()`: `ip -4 addr show dev <iface>` +
|
||||
`ip route show default`). Die generierte Kea-Konfiguration ist dadurch
|
||||
immer an das Netz gekoppelt, in dem der Host tatsächlich hängt, auch wenn
|
||||
sich dessen IP/Subnet mal ändert — nur das Interface selbst (Dropdown,
|
||||
echte vorhandene Interfaces aus `/sys/class/net`), die Lease-Range,
|
||||
DNS-Server, Domain, Lease-Zeiten und der Ausgabepfad sind konfigurierbar
|
||||
(`dhcp_*`-Schlüssel in der `settings`-Tabelle).
|
||||
- **Eigene Options** (`dhcp_option_defs`/`dhcp_option_values`, analog den
|
||||
„Vordefinierten Optionen und Werten“ eines Windows-DHCP-Servers): Code,
|
||||
Name, Kea-Datentyp und Beschreibung frei definierbar (z.B. herstellerspezifische
|
||||
@@ -249,7 +255,7 @@ der aktiv weiterentwickelte Nachfolger und bildet „globaler Wert, pro Client
|
||||
`option-data` der jeweiligen Kea-Reservierung, was Kea automatisch pro
|
||||
Client Vorrang geben lässt).
|
||||
- **Reservierungen**: für jedes aktive Gerät mit gültiger MAC + IP **innerhalb
|
||||
des konfigurierten Subnets** wird eine Kea-Reservierung erzeugt; der
|
||||
des erkannten Subnets** wird eine Kea-Reservierung erzeugt; der
|
||||
Hostname wird aus dem Gerätenamen abgeleitet (nur `a-z0-9-`, Kollisionen
|
||||
bekommen automatisch ein `-2`/`-3`-Suffix). Geräte ohne MAC/IP oder mit
|
||||
einer IP außerhalb des Subnets werden mit Hinweis übersprungen — Kea lehnt
|
||||
|
||||
Reference in New Issue
Block a user