M8: Netzwerk-Isolation live verifiziert (manuell + über den Wizard)

Isolation zuerst manuell per SSH nachgebaut (ether5), danach über den
App-Wizard (Experte-Modus, ether4), um die eigentliche Abnahme-
Bedingung ("kompletter Wizard-Durchlauf") zu erfüllen. Dabei drei
App-Bugs gefunden und gefixt:

- Bug 22: neues LAN-/VLAN-Interface wurde nie der defconf-Interface-
  Liste "LAN" hinzugefügt, wodurch DNS-Anfragen an den Router selbst
  blockiert blieben (Werks-Firewall droppt Input von allem außerhalb
  dieser Liste).
- Bug 23: ein voller Wizard-Durchlauf gegen einen bereits konfigurierten
  Router brach am ersten nicht-idempotenten Add-Befehl ab
  (/ip address, /ip pool, /ip dhcp-server, /ip dhcp-server network).
- Bug 24: ein als eigenes isoliertes Netz konfiguriertes Interface
  blieb Bridge-"Slave" (Werks-Bridging), wodurch RouterOS die
  generierten Isolationsregeln selbst als ungültig verwarf.

Alle drei in DhcpServerCommandBuilder/SetupViewModel gefixt, 52 Unit-
Tests grün, Isolation+DNS+Internet am echten Gerät bestätigt. M8 auf
live verifiziert gesetzt. Nebenbei zwei veraltete Doku-Stellen zum
Gitea-Remote korrigiert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YDmUd93KxsYGr2kLTotWnG
This commit is contained in:
Kay
2026-09-15 10:28:09 +02:00
co-authored by Claude Sonnet 5
parent 19fa1d6ef4
commit fc3b2ca039
7 changed files with 286 additions and 75 deletions
+39
View File
@@ -696,3 +696,42 @@ Test, WLAN/Bonding/PPPoE-Live-Tests).
(Bug 21, Nächste-Schritte Punkt 1 als "in Arbeit" markiert — der
eigentliche M8-Isolationstest ist noch nicht zu Ende geführt, nächste
Session dort fortsetzen) aktualisiert, Commit erstellt. Sitzung beendet.
## Session: M8 komplett live verifiziert (manuell + über die App)
- "wo waren wir stehen geblieben?" → Stand zusammengefasst, "weiter bei
M8" (M5 kann mangels Hardware nicht getestet werden).
- Nutzerfrage: Port 5 komplett isolieren, eigener DHCP-Server, trotzdem
Internet — `mikrotik-setup.md` Szenario C traf exakt zu, Befehle
gegeben. Danach mehrere Diagnoserunden am echten Router (SSH), jede
ein eigener Konfigurationsfehler statt App-Bug: Adresse zuerst als
`/32`, dann versehentlich als `.0`-Netzadresse statt `.1`-Host-Adresse
eingetragen (Route fehlte); danach DNS-Anfragen an den Router liefen
in Timeout, obwohl Lease+Route+Internet gingen — Ursache: `ether5`
fehlte in der defconf-Interface-Liste "LAN", RouterOS' Werks-Firewall
blockt Input von allem, was nicht in dieser Liste steht. Isolation
danach per `/interface list`-basierter Forward-Drop-Regel gesetzt und
beidseitig bestätigt (iMac ↔ Laptop erreichen sich nicht, Internet
bleibt für beide).
- "testen wir das nochmal über die App" → derselbe Test über den
Wizard (Experte-Modus, `ether4`) wiederholt, um die eigentliche
M8-Abnahmebedingung zu erfüllen. Dabei vorab zwei App-Bugs erkannt und
gefixt, bevor überhaupt angewendet wurde: **Bug 22** (LAN/VLAN-Schritt
fügt neues Interface nie der "LAN"-Liste hinzu — derselbe DNS-Bug wie
eben, jetzt als App-Bug bestätigt) und **Bug 23** (voller
Wizard-Durchlauf gegen bereits konfigurierten Router bricht am
zweiten, nicht-idempotenten Befehl ab — Nutzer wählte "Idempotenz
jetzt erweitern" statt nur Befehle zu verifizieren).
- Nach Apply zeigte `/ip firewall filter print` zwei mit `I` (INVALID)
markierte Isolationsregeln: `ether4` war noch Bridge-Slave (Werks-
Bridging), RouterOS verwirft Interface-Matcher auf Slave-Ports selbst.
**Bug 24** gefunden — Nutzer entfernte `ether4` manuell aus der
Bridge, danach wurden die Regeln automatisch gültig; Fix (automatisches
Lösen aus der Bridge vor Zuweisung) direkt im Wizard-Code ergänzt und
getestet.
- Alle Live-Tests am Ende erfolgreich (Lease, Gateway-Ping, DNS,
Internet, Isolation gegen iMac/Laptop), 52 Unit-Tests grün. M8 als
erster Milestone sowohl manuell als auch über die App selbst
verifiziert. Nebenbei zwei veraltete Doku-Stellen korrigiert (Gitea-
Remote existiert längst, war noch als "nicht vorhanden" dokumentiert).
HANDOFF.md/README.md aktualisiert, Commit + Push.