DW/Geli on-site abgeschlossen (2026-06-27): Geli auf 10.95.10.0/24 renumbert, FB-WG single 10.95.10.1/24, alter FB↔FB-WG geswappt. End-to-End verifiziert (macmini/Linz → Gelis 24/7-APs .246/.247, echte LAN-IPs, kein 10.255.255.x-NAT-Leak). FM+DW live im Double-NAT. Doku/Status von "🅿️ vertagt/geparkt" auf Ist-Stand gezogen, Bridge-Gate an allen Stellen aufgelöst, stale 192.168.178-Referenzen bereinigt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.2 KiB
5.2 KiB
BF-Netzwerk — Projekt-Kontext (auto-read)
Standort BF: VLAN-segmentiertes Heimnetz auf MikroTik/RouterOS. Ziel: CAKE/QoS gegen Bufferbloat, DNS/DHCP-Ablösung, WLAN via CAPsMAN, Firewall Least-Privilege, Multi-Site VPN.
Für jede TP-Session: zuerst docs/teilprojekte.md lesen — enthält kanonischen Stand, Scope, Abhängigkeiten
und Reihenfolge aller Teilprojekte. Kein anderer Kontext nötig.
VLAN-Modell (kanonisch)
| VLAN | Name | Subnetz | Zweck |
|---|---|---|---|
| 10 | MAIN | 10.40.10.0/24 | Trusted (Handy/Laptop) |
| 20 | INFRA | 10.40.20.0/24 | NAS/VMs/Docker/HA |
| 30 | IOT | 10.40.30.0/24 | Smart-Home |
| 40 | MEDIA | 10.40.40.0/24 | Sonos/AppleTV/TV/Cast |
| 50 | UNTRUSTED | 10.40.50.0/24 | Konsole/Low-Trust |
| 90 | GUEST | 10.40.90.0/24 | nur Internet |
| 99 | MGMT | 10.40.99.0/24 | Switch/AP/Hypervisor-Mgmt |
| 100 | WAN | (FB-Transfer) | zur FritzBox |
GW je VLAN = .1 · APs: ap1=.1, ap2=.2 · Switches: ALLNET=.11, Omada=.12
Hardware & Zugang
| Gerät | IP | Zugang |
|---|---|---|
| ALLNET Core-Switch (sw1) | 10.40.41.11 (interim, VLAN1) | telnet 10.40.41.11 · User: claudecode · PW: switch/.secrets |
| Omada Access-Switch (sw2) | 10.40.41.12 | Web-UI HTTPS · Creds omada/.secrets · Adoption pending |
| hAP ax² #1 (ap1) | 10.40.41.1 (bridge/VLAN1 Mgmt) | MikroMCP (live) · TP4 ✅: L3-Router, GW je VLAN = .1 |
| hAP ax² #2 (ap2) | 10.40.41.2 | MikroMCP (live) · Port 2 am Omada-Switch |
| NAS (nas-bf, DS923) | 10.40.41.10 | SSH · Docker (Portainer endpointId=14) |
| Omada-Controller | 10.40.41.175 | https://10.40.41.175:8043 (macvlan auf DS923) |
| omada-mcp | 10.40.41.176 | StreamableHTTP http://10.40.41.176:3000/mcp · MCP in Claude Code ✓ (pve-LXC) |
| pve-mcp | 10.40.41.173 | SSE http://10.40.41.173:3000/sse · MCP in Claude Code ✓ |
| Proxmox (pve) | 10.40.41.100 | kein SSH-Key konfiguriert |
| Docker-LXC (auf pve) | 10.40.41.126 | Portainer CE 2.40.0 (https://10.40.41.126:9443) |
| Mac mini | 10.40.41.167 | ssh macmini |
| FritzBox 6660 | 10.40.41.254 | Web-UI (Telefon bleibt dort) |
Tooling
- MikroTik (hAP ax²): MikroMCP-Server live verbunden →
mcp__mikromcp__*-Tools verwenden. Reads immer safe; Writes mitdryRun:truepreviwen, dannapply_plan. - ALLNET-Switch: kein MCP — nur Telnet-CLI (IOS-artig, FW 2.2.1). Runner:
cd ~/dev/bf-network-r6/switch && . ./.secrets && expect cli/run-cli.exp cli/<datei>.cliKlickanleitungen inswitch/ui-guides/für manuelle Schritte. - Omada-Switch: Controller
https://10.40.41.175:8043(TP2 ✅). Adoption ✅. Port-Config: manuell im Browser. omada-mcp live auf pve-LXC (.176, StreamableHTTP /mcp, MCP in Claude Code ✓). - Docker-Management: Portainer API
https://10.40.41.126:9443, Key inmcp/portainer/.env. Ablösung durch Komodo (native MCP) geplant.
Kritische Gotchas
- ALLNET: nur 1 Telnet-VTY — stale Sessions blockieren ~15 min. Sauber ausloggen (
exit exit), nie hammern. savenicht vergessen nach ALLNET-Änderungen (sonst nach Reboot weg).- hAP ax² hat 128 MB Flash, kein USB → Container NICHT auf dem Router; Container laufen auf NAS/pve.
- ALLNET VLAN-DB final (TP1 ✅): 40=MEDIA, 50=UNTRUSTED; GE1/GE2/GE8 alle als Trunk mit 10/20/30/40/50/90/99/100.
- Omada-Switch Port 2 = ap2 (Trunk all VLANs), Uplink-Port → ALLNET GE8 (Trunk all), Restports = Access.
- Mesh = NEIN (beide APs haben wired Trunk-Uplink → Loop-Risiko).
- mgmt-VLAN-Wechsel am Switch = Lockout-Risiko: VLAN muss existieren + Port muss es tragen, in einem Schritt.
- Omada ES208G = Easy Managed → Controller-adoptierbar (ab 6.1.x), nur Basis-VLAN/QoS im Controller (kein ACL/Policy-Routing).
- TP4 ✅: ap1 ist L3-Router. Bridge mit vlan-filtering=yes; VLAN1 untagged (Mgmt/Transition); vlan10-99 Subinterfaces mit DHCP+DNS. NAT masquerade out=bridge → FB (Double-NAT bis FB-Bridge-Mode). DNS: 13 statische A-Records bf.lan, Upstream seit 2026-06-16 = DoH Cloudflare Gateway (servers=1.1.1.1 Bootstrap). Omada-PVID-Fix (→ .10/.20-Subnetze) ist nächster Schritt.
- AP4.1 FB-Bridge = nur TEST/reversibel. Public-IP
86.56.201.104per ether1 bewiesen (kein Liwest-MAC-Lock, FB CM-MAC0C:72:74:36:90:99). Offline-Testmechanismus live auf ap1:routeros/wan-cutover-{test,macclone-test}.rsc+wan-cutover-runbook.md, Scriptswantest-probe/-run,wanmac-clone/-revert, Disk-Logwan-test.0.txt. Console-Pfad während Cutover = FritzBox-WiFi → 10.40.41.1 (via ether2, unabhängig von ether1/LAN4). ✅ Bridge-Gate aufgelöst (2026-06-27): TP10-Kern durch — beide VPN von der FB auf ap1-WG migriert (FM+DW live aufwg-hub, Double-NAT). FB terminiert keine Tunnel mehr → permanenter Bridge-Mode entblockt; offen = WAN-Input-Seal (Block Crouteros/tp10-cutover-apply.rsc) + Liwest-Anruf. Telefon bleibt an der FB. - ap1 RouterOS-Scripting (device-mode=home): scheduler + fetch blockiert (
not allowed by device-mode) → keine Scheduler in Scripts, Autonomie via Loop-Script.[/ping]gibt nil in 7.23, ICMP geblockt → Reachability via:resolve(server=1.1.1.1 = Routing-Test, ohne server = DoH). MikroMCP-Tools können droppen → Fallback RESThttp://10.40.41.1/rest(Creds = ROUTER_AP1 in~/.claude.json).