{% extends "base.html" %} {% set active_page = "settings_dhcp" %} {% set can_edit = current_user.has_permission('settings_dhcp.edit') %} {% block page_title %}DHCP{% endblock %} {% block page_sub %}
Reservierungen und eigene Options aus den Client-Stammdaten (Kea DHCP)
{% endblock %} {% block content %}

DHCP-Server-Status

Installation/Dienststeuerung nur über die Buttons unten.
{% if status.installed %}
Installiert {% if status.active is sameas true %} Dienst aktiv {% elif status.active is sameas false %} Dienst inaktiv {% else %} Dienst-Status unbekannt {% endif %} {% if status.enabled is sameas true %}Autostart an{% endif %}
{% if status.version %}
{{ status.version }}
{% endif %} {% if can_edit %}
{% if status.active is sameas true %}
{% endif %}
{% endif %} {% else %} Nicht installiert

Kein kea-dhcp4 auf diesem Host gefunden.

{% if can_edit %}
{% endif %} {% endif %}

Netzwerk-Konfiguration

Subnet/Netzmaske/Gateway werden live vom gewählten Interface übernommen, nicht manuell gepflegt.
{% if net_info.ok %}
Erkannt {{ net_info.ip }}/{{ net_info.prefix }} (Netz {{ net_info.network }}) {% if net_info.gateway %}Gateway {{ net_info.gateway }}{% endif %}
{% else %}
Nicht erkannt {{ net_info.error }}
{% endif %} {% if can_edit %}
Subnet/Netzmaske/Gateway oben werden für das hier ausgewählte Interface erkannt.
Pflichtfeld, muss im oben erkannten Netz liegen — ohne Range startet der Dienst nicht.
Nur bei abweichendem Router für die Clients nötig — leer lassen für das oben erkannte Gateway.
Kommagetrennt, falls mehrere.
Standardmäßig die aktive Kea-Konfiguration. Nach dem Schreiben den Dienst per Button neu starten, damit die Änderung wirksam wird.
{% else %}

Für Änderungen fehlt das Recht „DHCP ändern“.

{% endif %}

Eigene DHCP-Options

Herstellerspezifische Options, global oder pro Client überschreibbar.
{% if can_edit %} {% endif %}
{% if option_defs %}
{% for d in option_defs %} {% endfor %}
CodeNameTypBeschreibungGlobaler WertAktionen
{{ d.code }} {{ d.name }} {{ d.type }} {{ d.description or '—' }} {% if can_edit %}
{% else %} {{ option_values.get(d.id, {}).get('', '—') }} {% endif %}
{% if can_edit %}
{% endif %}
{% else %}

Noch keine eigenen Options definiert.

{% endif %}

Reservierungen aus den Clients

{{ reservations|length }} aktive{{ ' Clients' if reservations|length != 1 else 'r Client' }} mit gültiger MAC + IP im konfigurierten Subnet. {% if skipped_count %}{{ skipped_count }} aktive{{ ' Clients' if skipped_count != 1 else 'r Client' }} ohne MAC/IP übersprungen.{% endif %} {% if out_of_subnet_count %}{{ out_of_subnet_count }} aktive{{ ' Clients außerhalb' if out_of_subnet_count != 1 else 'r Client außerhalb' }} des erkannten Netzes übersprungen.{% endif %}
{% if can_edit %}
{% endif %}
{% if reservations %}
{% for r in reservations %} {% endfor %}
HostnameMACIP-AdresseClient-NameOptionenAktionen
{{ r.hostname }} {{ r.mac }} {{ r.ip }} {{ r.name }} {% for d in option_defs %} {% set override = option_values.get(d.id, {}).get(r.mac) %} {% set global_val = option_values.get(d.id, {}).get('') %} {% if override %} {{ d.name }} (eigen) {% elif global_val %} {{ d.name }} (global) {% endif %} {% endfor %} {% if option_defs and can_edit %} {% endif %}
{% if option_defs and can_edit %} {% for r in reservations %} {% endfor %} {% endif %} {% else %}

Keine aktiven Clients mit MAC + IP vorhanden.

{% endif %}
Generierte Konfiguration (Vorschau, Kea-JSON)
{{ preview }}
{% if can_edit %} {% endif %} {% endblock %}