Zum Hauptinhalt springen

Netzwerk

Schnittstellen, Hostname, DNS, IPv4/IPv6 und LAN-Bridge mit automatischer Rücknahme.

Netzwerk zeigt alle Schnittstellen mit Zustand, Adressen, MAC-Adresse, Geschwindigkeit und MTU, dazu Hostname, Standard-Gateway und die verwendeten DNS-Server. Schnittstellen von Docker, Incus und anderen Diensten (docker0, br-…, veth…, incusbr0, virbr…, tap…, wg…) werden nur angezeigt (Schalter Virtuelle anzeigen) und nie verändert.

Konfiguration bearbeiten​

Konfiguration bearbeiten öffnet den Editor:

BereichEinstellungen
AllgemeinHostname (ein DNS-Label, ohne Domäne), DNS-Server (eine Adresse pro Zeile, höchstens 6; leer = per DHCP), Suchdomänen
LAN-BridgeSchalter für br0 und die Ethernet-Anschlüsse, die zur Bridge gehören
je SchnittstelleIPv4: DHCP, statisch (Adressen mit Präfix, Gateway) oder aus; IPv6: automatisch (SLAAC), DHCPv6, statisch oder aus; MTU (leer = 1500)

Vorschau zeigt die erzeugten Dateien und Hinweise, ohne etwas zu ändern. Geprüft wird unter anderem: gültige Adressen mit Präfix, keine Netz- oder Broadcast-Adresse, das Gateway liegt im Netz der Schnittstelle, keine Adresse doppelt, MTU 576–9216 (mit IPv6 mindestens 1280), mindestens eine Schnittstelle mit IPv4 oder IPv6. Hinweise erscheinen zum Beispiel, wenn die Adresse wegfällt, über die du gerade verbunden bist, wenn kein Gateway oder kein DNS-Server übrig bleibt oder wenn ohne systemd-resolved DNS-Server per DHCP erwartet werden.

LAN-Bridge für VMs und Container​

Mit eingeschalteter LAN-Bridge legt Bunkerbox br0 an und hängt die gewählten Anschlüsse (z. B. enp3s0) ohne eigene Adressen hinein; die Adresskonfiguration des Anschlusses wandert auf die Bridge. Virtuelle Maschinen und LXC-Container unter Virtualisierung hängen dann direkt im LAN und bekommen Adressen vom Router. br0 übernimmt die MAC-Adresse des ersten Anschlusses, deshalb vergibt der DHCP-Server in der Regel dieselbe Adresse wie vorher und Reservierungen gelten weiter. STP ist aus.

Anwenden mit automatischer Rücknahme​

Eine falsche Netzwerkeinstellung kann Bunkerbox unerreichbar machen. Deshalb gilt jede Änderung zunächst nur vorläufig:

  1. Anwenden … zeigt die künftigen Adressen und Hinweise. Nach dem Bestätigen legt Bunkerbox die neuen Dateien in /var/lib/bunkerbox-network/staged/ bereit, sichert alle betroffenen Dateien nach …/network/backup/ und startet einen systemd-Timer (bunkerbox-network-rollback.timer, 90 Sekunden).
  2. Etwa 1,5 Sekunden später aktiviert die Unit bunkerbox-network-apply.service die neue Konfiguration (Dateien installieren, Hostname setzen, systemd-networkd neu starten). Die Verbindung kann dabei kurz abbrechen.
  3. Die Seite zeigt einen Countdown. Erreicht sie Bunkerbox weiterhin, genügt Konfiguration behalten. Ändert sich die Adresse, prüft die Seite die neuen Adressen und bietet je Adresse Dort öffnen und bestätigen an. Der Link führt auf /network-confirm der neuen Adresse und enthält einen einmaligen Code im Fragment (#…, wird nie an einen Server gesendet). Eine Anmeldung ist dafür nicht nötig, denn das Sitzungs-Cookie gehört zur alten Adresse.
  4. Ohne Bestätigung innerhalb von 90 Sekunden startet der Timer bunkerbox-network-rollback.service: Er stellt die gesicherten Dateien wieder her, entfernt neue Dateien, löscht eine neu angelegte Bridge, setzt den alten Hostnamen und aktiviert die vorherige Konfiguration (ifupdown bzw. systemd-networkd). Jetzt zurücknehmen startet dieselbe Unit sofort.

Die Rücknahme läuft vollständig in systemd und hängt nicht vom Bunkerbox-Dienst ab: Sie greift auch, wenn der Dienst abstürzt oder neu startet. Der Timer ist aktiviert (timers.target); startet der Rechner vor der Bestätigung neu, wird 90 Sekunden nach dem Hochfahren zurückgenommen. Solange eine Änderung auf Bestätigung wartet, sind weitere Änderungen und Updates gesperrt. Schlägt die Aktivierung fehl, wird sofort zurückgenommen (Details im Systemprotokoll, Unit bunkerbox-network-apply).

Übernahme von ifupdown​

Ein frisch installiertes Debian konfiguriert das Netz mit ifupdown (/etc/network/interfaces). Bis zum ersten Anwenden liest Bunkerbox diese Datei (und die aktuellen Adressen) nur. Beim ersten Anwenden

  • bringt die Apply-Unit die ifupdown-Schnittstellen herunter (ifdown -a --exclude=lo),
  • ersetzt /etc/network/interfaces durch eine Fassung, die nur noch lo enthält, und sichert das Original als /etc/network/interfaces.bunkerbox-migrated,
  • aktiviert systemd-networkd.

Die Rücknahme macht das rückgängig (Original zurück, systemd-networkd wieder aus, ifup -a). Über source eingebundene Dateien (/etc/network/interfaces.d/) werden nicht übernommen; die Vorschau weist darauf hin.

Erzeugte Dateien​

DateiInhalt
/etc/systemd/network/10-bunkerbox-br0.netdevBridge br0 (MACAddress= des ersten Anschlusses, STP=no)
/etc/systemd/network/10-bunkerbox-<anschluss>.networkBridge-Mitglied (Bridge=br0) oder Adressen, DHCP=, Gateway=, DNS=, Domains=, IPv6AcceptRA=, MTUBytes=; DHCPv4 mit ClientIdentifier=mac wie zuvor bei ifupdown
/etc/systemd/network/10-bunkerbox-br0.networkAdressen der Bridge
/etc/systemd/networkd.conf.d/10-bunkerbox.confManageForeignRoutes=no, ManageForeignRoutingPolicyRules=no, damit Routen und Regeln von Docker und Incus einen Neustart von networkd überstehen
/etc/resolv.confnur ohne systemd-resolved und mit eingetragenen DNS-Servern (höchstens drei werden genutzt); ein Symlink wird nie überschrieben
/etc/hostsZeile 127.0.1.1 <hostname>

Mit aktivem systemd-resolved gehen DNS-Server und Suchdomänen über networkd an resolved. Ohne resolved werden per DHCP gelieferte DNS-Server nicht übernommen – dann DNS-Server eintragen oder systemd-resolved installieren. Alle Werte werden vor dem Schreiben geprüft; die Units enthalten nur feste Programme (install, rm, ip, ifup/ifdown, hostnamectl, systemctl, networkctl) mit geprüften Argumenten, nie eine Shell.

Von Hand zurücksetzen​

Ist Bunkerbox nach einer bestätigten Änderung nicht mehr erreichbar, an der Konsole als root:

rm /etc/systemd/network/10-bunkerbox-*
mv /etc/network/interfaces.bunkerbox-migrated /etc/network/interfaces # falls vorhanden
systemctl disable --now systemd-networkd.socket systemd-networkd.service
ip link delete br0 2>/dev/null; ifup -a

Mock-Modus​

Im Mock-Modus gibt es enp3s0 (2,5 GbE, per DHCP 192.168.1.20 und fd00::20), enp4s0 ohne Kabel sowie docker0, ein veth… und incusbr0; ifupdown verwaltet anfangs enp3s0. Nach dem Anwenden schaltet die Simulation nach etwa 2 Sekunden um; ohne Bestätigung wird nach 90 Sekunden zurückgenommen.