2c9c1b0e6c
TP10 🔐 WG-Hub auf ap1 gebaut (Phase A); Cutover-Runbook FM/DW
...
ap1 = WireGuard-Hub (wg-hub, UDP 51821, MTU 1412, keine IF-IP). Port 51821
statt 51820, damit der FB-eigene WG-Server (laufender DW-Tunnel) parallel intakt
bleibt. 2 Peers vorkonfiguriert: FM 10.101.0.0/24 (war IPsec), DW/Geli
192.168.178.0/24 CGNAT (war WG). Routen + Firewall (input/forward) gesetzt;
NAT unverändert (Egress wg-hub != masquerade-Interface).
docs/tp10-vpn-migration.md: As-built + Phase-B-Cutover-Runbook (FB-Import,
L3-Verify, NetBIOS-Lehre, Parallelphase, DDNS-Übergabe für Bridge-Mode).
Spoke-.conf mit Private-Keys liegen gitignored in routeros/.secrets/.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 20:55:47 +02:00
3e59383317
AP4.1 📋 Cutover-Tutorial + Session-Doku — FB-Bridge gegated auf TP10-VPN
...
Schärft das Runbook zum vollständigen Solo-Tutorial (Verkabelungs-Diagramm,
WiFi/VLAN-Matrix, Schritt-für-Schritt mit Zurückbau) und schreibt den
Session-Stand für die Fortsetzung fort.
Kernpunkt: FB-Bridge ist nur ein REVERSIBLER TEST. Die BF-FritzBox terminiert
aktuell 2 produktive Site-to-Site-Tunnel (AVM LAN-LAN: 1× IPsec + 1× WG),
Ziel 2× WG auf ap1 = TP10. Voller Bridge-Mode killt diese Tunnel → permanenter
Umstieg ist auf TP10 gegated (FB bleibt bis dahin Router + VPN + Telefon).
- wan-cutover-runbook.md: TEST-Banner, Verkabelung (ether2=Uplink nie ziehen,
ether1=WAN), Console = FritzBox-WiFi → 10.40.41.1, install-SSIDs für DHCP-Test,
wantest-run erklärt, Zurückbau-Schritt.
- docs/teilprojekte.md: Ist-Stand + TP4 (AP4.1 Public-IP bewiesen, Testmechanismus,
DNS-Upstream jetzt CF-DoH) + TP10 (FB hält 2 Tunnel, gated permanenten Bridge).
- CLAUDE.md: WAN-Testmechanismus, device-mode-Gotchas (scheduler/fetch blockiert,
[/ping]=nil → :resolve), VPN-Gate, REST-Fallback.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 11:45:41 +02:00
48cdcc0fa2
TP4 ✅ ap1 ist L3-Router — VLAN-Subinterfaces, DHCP, DNS, NAT live
...
Bridge vlan-filtering=yes; vlan10/20/30/40/50/90/99 je mit GW .1/24, DHCP-Server
(Pool .100-.200), statischen DNS-Einträgen bf.lan und srcnat masquerade →bridge.
Double-NAT via FB (Interim), FB-Bridge-Mode + Omada-PVID-Fix als nächste Schritte.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 19:24:32 +02:00
f0c08263dd
TP2 🔍 Profile-Analyse + TP4 vorgezogen
...
Analyse via Omada Controller v2-API (2026-06-15):
- Access-Profile haben PVID=1 statt 10/20 (Constraint: fixe IPs in 10.40.41.x)
- Access-MAIN hat untagNetworkIds=[VLAN1,VLAN10,VLAN20] — bekannter Fehler, Fix nach TP4
- P4 (dock/monitor) → Access-MAIN (Lifeline-Port, nicht anfassen)
- P3/P5/P6 sicher zum Testen, P7/P8 eingefroren
- Network-IDs + v2-API-Pfade dokumentiert (Ctrl-API: Csrf-Token, /switches/{MAC}/ports)
- TP4 vorgezogen: blockiert Profile-Fix + echte VLAN-Segmentierung
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 19:00:40 +02:00
fe477073a3
TP2 ✅ Omada ES208G vollständig konfiguriert — VLANs + Port-Profile live
...
- Switch adopted (switchConsistent=true), alle 8 Ports benannt und mit
Trunk-ALL/Access-MAIN/Access-INFRA Profilen versehen
- omada-mcp Settings-Bug behoben (doppelter Eintrag → .174 statt .176)
- Open-API-Auth dokumentiert: AccessToken=-Header, grant_type als Query-Param
- Ist-Stand und TP2-Abschnitt auf FERTIG aktualisiert; TP4-Hinweis ergänzt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 18:32:26 +02:00
d99d8cf6da
TP2 ✅ omada-mcp live (.176/pve, StreamableHTTP /mcp) — Verbindungstest grün
...
Root cause der Crash-Loops gefunden:
- Container bekam Env beim Deploy INLINE (Portainer ignoriert env_file) → alte falsche Var-Namen
- jmtvms/tplink-omada-mcp v0.15 nutzt Omada OPEN API (CLIENT_ID/SECRET), nicht user/pass
- Transport ist StreamableHTTP (MCP_SERVER_USE_HTTP + MCP_HTTP_*), NICHT SSE/MCP_TRANSPORT
Jetzt: /health 200, MCP initialize-Handshake liefert Tools/Capabilities. settings.json → /mcp.
.env-Schema, .env.template, compose-Doku korrigiert.
Offen: Claude Code reload → VLANs anlegen + .12 adoptieren (Tool-Categories ggf. um write erweitern).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 15:07:14 +02:00
bf5d2b2741
TP2 🔄 omada-mcp deployed (.176/pve-LXC) — braucht Open-API-Client-Creds
...
- omada-mcp Container auf pve-LXC (.126, endpointId=2, ipvlan .176), Stack Id=200, gestoppt
- Erkenntnis: jmtvms/tplink-omada-mcp nutzt Omada OPEN API (CLIENT_ID/SECRET/OMADAC_ID/SITE_ID),
NICHT username/password → .env-Schema + compose-Kommentare + .env.template angepasst
- omada-mcp in ~/.claude/settings.json eingetragen (SSE .176:3000)
- Letzter manueller Schritt: Open-API-App im Controller-UI anlegen (Platform Integration),
Client-Creds + SITE_ID in .env → Container starten → reload → dann VLANs + Adoption
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 14:49:51 +02:00
8b08d9b5a4
TP2 🔄 Status persistiert: Wizard ✅ , omada-mcp staged (Container noch offen)
...
- teilprojekte.md: TP2 als IN ARBEIT markiert, offene Schritte präzisiert
(omada-mcp deployen → Claude Code eintragen → VLANs anlegen → .12 adoptieren)
- INVENTORY.md: omada-controller 🟢 (Wizard done), omada-mcp 🔴 (Container pending)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 14:26:21 +02:00
a36bdd8f56
TP2 ✅ Omada Controller deployed + omada-mcp staged: DS923/macvlan, pve-mcp eingetragen
...
- omada/docker-compose.yml: Controller 6.2.10.17 auf DS923 (macvlan .175, endpointId=14);
pve-LXC (.126) hat zu wenig Disk → DS923 standard pattern
- mcp/omada/: docker-compose.yml + .env.template für omada-mcp (macvlan .174, MCP_TRANSPORT=sse);
wartet auf Wizard-Passwort nach https://10.40.41.175:8043
- pve-mcp (samik081) in ~/.claude/settings.json eingetragen (SSE .173:3000)
- CLAUDE.md: Topologie korrigiert (wahre IPs .100/.126/.167/.173-.175, Omada Port 2 = ap2)
- INVENTORY.md: pve-mcp 🟢 , omada-mcp 🟡 , portainer-mcp zurückgestellt (→ Komodo)
- teilprojekte.md: TP2 ✅ , Ist-Stand + offene manuelle Schritte dokumentiert
Noch offen (manuell): Wizard, .12 adopt, Port-Config, .env + Stack deploy, Claude Code eintragen.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 14:11:05 +02:00
a58d419747
TP1 ✅ ALLNET Core-Switch finalisiert: VLAN 40→MEDIA, VLAN 50 UNTRUSTED, GE8 Trunk verifiziert
...
- Neues CLI-Script 04-vlan50-media-untrusted.cli ausgeführt + verifiziert:
VLAN 40 umbenannt UNTRUSTED→MEDIA, VLAN 50 angelegt (UNTRUSTED),
GE1/GE2 um VLAN 50 ergänzt; GE8 war bereits Trunk, VLAN 50 auto-includiert.
- Docs: teilprojekte.md TP1 als FERTIG markiert, Ist-Stand aktualisiert,
VLAN-Gotcha entfernt. core-switch-prep.md Phase A/TP1 Stand ergänzt,
Switch-IP .239→.11 korrigiert. CLAUDE.md Gotcha aktualisiert, IP korrigiert.
- CLI-REFERENCE.md: VLAN-Namen 40=MEDIA, 50=UNTRUSTED.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 11:33:25 +02:00
e15edc22d7
TP4 DNS: Entscheidung auf RouterOS-nativ + nur statische Records
...
Variante A (BIND/RFC2136) verworfen: HW-Vorgabe "Container nur am Router
oder gar nicht, keine NAS/pve-Abhaengigkeit" + hAP kann praktikabel keinen
DNS-Container hosten (live: ~90MB frei, kein USB, Flash-Wear).
- research-Doc umgeschrieben: Entscheidung + Variante A als parkierter Anhang
- teilprojekte TP4 auf finale Entscheidung
- technitium/ -> dns/ umbenannt + README
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 11:24:05 +02:00
ae4d1e5fcd
TP4 DNS: Variante A (RouterOS-DHCP + RFC2136 → BIND9), Technitium verworfen
...
- Research-Doc: DHCP→DNS-Registrierung standardnah, PowerDNS-vs-BIND9-Vergleich
- teilprojekte TP4 auf BIND9 + RFC2136 umgestellt + Verweis; HW-Notiz angepasst
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 11:24:05 +02:00
Christoph Emsenhuber
e688b37b60
Teilprojekte + MikroMCP + WLAN-Vorarbeit: Steuerungsdok, Research, MCP-Setup, CAPsMAN-Asbuilt, AP-Trunk-Guides + Port-Map
...
- docs/teilprojekte.md: kanonisches Projektsteuerungsdokument (TP1–TP13 + TP-R)
- docs/research/: RouterOS-Capabilities-Sweep (TP-R) + VPN-Vergleich (TP10)
- mcp/: MikroMCP + Portainer-MCP Docker-Compose, routers.yaml, READMEs, .gitignore
- routeros/: ap1-manager.rsc, ap2-cap.rsc, CAPsMAN-Flat-Asbuilt, WLAN-Handover
- switch/cli/03-trunk-ap-ports.cli + switch/ui-guides/01-trunk-ap-ports.md: AP-Trunk-Konfiguration
- docs/allnet-ge8-trunk-klickanleitung.md: GE8 Hybrid→Trunk Schritt-für-Schritt
- inventory/bf-core-ports: gi1/gi2 als TRUNK zu ap1/ap2 eingetragen (gesetzt 2026-06-09)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 08:42:03 +02:00