get('kea'); $settings = modules()->settings('kea'); $metadataFallback = is_array($module['metadata_db_defaults'] ?? null) ? $module['metadata_db_defaults'] : []; $metadataConfig = is_array($settings['metadata_db'] ?? null) ? array_replace($metadataFallback, $settings['metadata_db']) : $metadataFallback; $fallback = $module['db_defaults'] ?? []; $error = null; $notice = null; $groups = []; $availableIpsByGroup = []; try { if (empty($metadataConfig['driver']) || empty($metadataConfig['dbname'])) { throw new RuntimeException('Nexus DHCP Zusatzdatenbank ist nicht konfiguriert.'); } $metadataRepo = new KeaHostMetadataRepository(Database::createFromArray($metadataConfig)); $metadataRepo->ensureSchema(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $action = (string)($_POST['action'] ?? ''); if ($action === 'save_group') { $metadataRepo->saveGroup((string)($_POST['name'] ?? ''), (string)($_POST['description'] ?? '')); $notice = 'Gruppe gespeichert.'; } elseif ($action === 'add_range') { $metadataRepo->addRange( (string)($_POST['group_name'] ?? ''), (string)($_POST['start_ip'] ?? ''), (string)($_POST['end_ip'] ?? '') ); $notice = 'IP-Bereich gespeichert.'; } } $groups = $metadataRepo->listGroupsWithRanges(); $keaRepo = new KeaHostRepository(modules()->modulePdo('kea', $fallback), $metadataRepo); $availableIpsByGroup = $metadataRepo->availableIpsByGroup( array_merge($keaRepo->usedIpAddresses(), $metadataRepo->desiredIps()), 4096 ); } catch (Throwable $e) { $error = $e->getMessage(); } ?>

KEA Gruppen

Gruppen und IP-Bereiche fuer DHCP-Reservierungen.

Zurueck
Gruppe

Gruppe anlegen

IP-Bereich

Bereich zuweisen

Uebersicht

Gruppen und freie IPs

Gruppe Beschreibung Bereiche Freie IPs
Noch keine Gruppen definiert.
Kein Bereich
-