# 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 | MikroMCP (live) | | 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.174 | SSE `http://10.40.41.174:3000/sse` (staged, nach Wizard) | | 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 mit `dryRun:true` previwen, dann `apply_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/.cli` Klickanleitungen in `switch/ui-guides/` für manuelle Schritte. - **Omada-Switch:** Controller `https://10.40.41.175:8043` (TP2 ✅). Adoption + Port-Config: manuell im Browser. omada-mcp nach Wizard: `mcp/omada/docker-compose.yml` deployen (endpointId=14), Claude Code eintragen. - **Docker-Management:** Portainer API `https://10.40.41.126:9443`, Key in `mcp/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. - **`save` nicht 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).