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>
This commit is contained in:
@@ -29,11 +29,11 @@ GW je VLAN = `.1` · APs: ap1=`.1`, ap2=`.2` · Switches: ALLNET=`.11`, Omada=`.
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| ALLNET Core-Switch (sw1) | 10.40.41.11 (interim, VLAN1) | `telnet 10.40.41.11` · User: `claudecode` · PW: `switch/.secrets` |
|
| 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** |
|
| 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² #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** |
|
| 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) |
|
| 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-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) |
|
| 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 ✓ |
|
| 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 |
|
| 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`) |
|
| Docker-LXC (auf pve) | 10.40.41.126 | Portainer CE 2.40.0 (`https://10.40.41.126:9443`) |
|
||||||
@@ -48,8 +48,8 @@ GW je VLAN = `.1` · APs: ap1=`.1`, ap2=`.2` · Switches: ALLNET=`.11`, Omada=`.
|
|||||||
- **ALLNET-Switch:** kein MCP — nur Telnet-CLI (IOS-artig, FW 2.2.1). Runner:
|
- **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>.cli`
|
`cd ~/dev/bf-network-r6/switch && . ./.secrets && expect cli/run-cli.exp cli/<datei>.cli`
|
||||||
Klickanleitungen in `switch/ui-guides/` für manuelle Schritte.
|
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-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.
|
omada-mcp live auf pve-LXC (.176, StreamableHTTP /mcp, MCP in Claude Code ✓).
|
||||||
- **Docker-Management:** Portainer API `https://10.40.41.126:9443`, Key in `mcp/portainer/.env`.
|
- **Docker-Management:** Portainer API `https://10.40.41.126:9443`, Key in `mcp/portainer/.env`.
|
||||||
Ablösung durch Komodo (native MCP) geplant.
|
Ablösung durch Komodo (native MCP) geplant.
|
||||||
|
|
||||||
@@ -64,3 +64,4 @@ GW je VLAN = `.1` · APs: ap1=`.1`, ap2=`.2` · Switches: ALLNET=`.11`, Omada=`.
|
|||||||
- **Mesh = NEIN** (beide APs haben wired Trunk-Uplink → Loop-Risiko).
|
- **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.
|
- 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).
|
- **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 FB. Omada-PVID-Fix (→ .10/.20-Subnetze) ist nächster Schritt.
|
||||||
|
|||||||
@@ -18,11 +18,11 @@
|
|||||||
IP-Blöcke: `.1–10` Router/APs (ap1=.1, ap2=.2) · `.11–20` Switches (ALLNET=.11, Omada=.12). GW je VLAN = `.1`.
|
IP-Blöcke: `.1–10` Router/APs (ap1=.1, ap2=.2) · `.11–20` Switches (ALLNET=.11, Omada=.12). GW je VLAN = `.1`.
|
||||||
|
|
||||||
## Ist-Stand (Kurz)
|
## Ist-Stand (Kurz)
|
||||||
ALLNET-Core `.11` (FW2.2.1, VLANs 10/20/30/40/50/90/99/100; GE1/GE2/GE8 Trunk; **TP1 ✅ 2026-06-15**). Omada-Switch `.12` (adopted, **TP2 ✅ 2026-06-15**; Trunk-ALL auf P1+P2, Access-Profile auf P3-P8; Profile noch PVID=1 bis TP4 — siehe TP2).
|
ALLNET-Core `.11` (FW2.2.1, VLANs 10/20/30/40/50/90/99/100; GE1/GE2/GE8 Trunk; **TP1 ✅ 2026-06-15**). Omada-Switch `.12` (adopted, **TP2 ✅ 2026-06-15**; Trunk-ALL auf P1+P2, Access-Profile auf P3-P8; Profile noch PVID=1 bis Omada-PVID-Fix).
|
||||||
Omada-Controller **`.175`** (DS923/macvlan, mbentley 6.2, 🟢 live). omada-mcp **`.176`** (pve-LXC, StreamableHTTP, 🟢 live, 84 read-Tools; Controller-API v2 intern via christoph@emsenhuber.com).
|
Omada-Controller **`.175`** (DS923/macvlan, mbentley 6.2, 🟢 live). omada-mcp **`.176`** (pve-LXC, StreamableHTTP, 🟢 live, 84 read-Tools; Controller-API v2 intern via christoph@emsenhuber.com).
|
||||||
2× hAP ax² (7.23.1): ap1 `.1` (ALLNET P1), ap2 `.2` (Omada P2 — Trunk). FB6660 = Router/Telefon (`.254`).
|
2× hAP ax² (7.23.1): ap1 `.1` (ALLNET P1) — **TP4 ✅ 2026-06-15: L3-Router aktiv** (VLAN-Subinterfaces, DHCP, DNS, NAT). ap2 `.2` (Omada P2 — Trunk). FB6660 = Double-NAT-Upstream bis FB-Bridge-Mode (ausstehend, physisch).
|
||||||
Kontrolle: MikroMCP (MikroTik) live · ALLNET = Klickanleitungen · Omada → Controller + omada-mcp 🟢.
|
Kontrolle: MikroMCP (MikroTik) live · ALLNET = Klickanleitungen · Omada → Controller + omada-mcp 🟢.
|
||||||
**Nächster Schritt: TP4 (Router-Cutover) wird vorgezogen** — blockiert Profile-Fix und alle weiteren VLANs.
|
**Nächster Schritt: Omada-PVID-Fix** (MAIN→PVID10, INFRA→PVID20, untagNetworkIds bereinigen) + IP-Migration Geräte.
|
||||||
> ⚠️ **HW-Constraint hAP ax²:** 1 GB RAM, aber nur **128 MB Flash + KEIN USB** → **Container auf dem Router NICHT praktikabel**.
|
> ⚠️ **HW-Constraint hAP ax²:** 1 GB RAM, aber nur **128 MB Flash + KEIN USB** → **Container auf dem Router NICHT praktikabel**.
|
||||||
> Folge: **native RouterOS-Features bevorzugen** (z.B. Built-in-mDNS statt Container); Container (mDNS-Reflector, BIND9-DNS, Omada-Controller) laufen auf **NAS/pve**, nicht am hAP.
|
> Folge: **native RouterOS-Features bevorzugen** (z.B. Built-in-mDNS statt Container); Container (mDNS-Reflector, BIND9-DNS, Omada-Controller) laufen auf **NAS/pve**, nicht am hAP.
|
||||||
|
|
||||||
@@ -78,14 +78,18 @@ Kontrolle: MikroMCP (MikroTik) live · ALLNET = Klickanleitungen · Omada → Co
|
|||||||
- **Mesh = NEIN** (beide APs wired-trunk → Loop-Risiko via Router/LAN; Mesh nur sinnvoll ohne wired backhaul). Research bestätigt in TP-R.
|
- **Mesh = NEIN** (beide APs wired-trunk → Loop-Risiko via Router/LAN; Mesh nur sinnvoll ohne wired backhaul). Research bestätigt in TP-R.
|
||||||
- Abh.: TP8 (für 802.1X). research: CAPsMAN-bound, mesh.
|
- Abh.: TP8 (für 802.1X). research: CAPsMAN-bound, mesh.
|
||||||
|
|
||||||
### TP4 — Router-Cutover (hAP#1 = Router) ▸ ⚡ VORGEZOGEN — nächstes TP
|
### TP4 — Router-Cutover (hAP#1 = Router) ▸ ✅ L3-Infra FERTIG (2026-06-15) — FB-Bridge ausstehend
|
||||||
- Per-VLAN L3-Interface `.1`, **DHCP** (RouterOS), **DNS = RouterOS-nativ + nur statische Records**, **NAT**, FB→**Bridge-Mode/Exposed-Host**.
|
- ✅ **Bridge VLAN-Filtering aktiviert** (`vlan-filtering=yes`); VLAN-Tabelle: VLAN1 untagged bridge+ether2, VLANs 10/20/30/40/50/90/99/100 tagged bridge+ether2.
|
||||||
- **DNS-Entscheidung** (Technitium **und** externer BIND verworfen — Vorgabe: kein Container außer am Router, keine NAS/pve-Abhängigkeit; hAP kann praktikabel keinen DNS-Container hosten): RouterOS-DNS als Resolver, **keine DHCP→DNS-Auto-Registrierung**. Infra-Hosts (haben eh DHCP-Reservierungen) als statische `/ip dns static`-Einträge unter `bf.lan`; dynamische Clients bewusst ohne Namen. Filtering/DNSSEC via DoH-Upstream (TP3). HA: 2. Resolver auf ap2, statische Einträge beidseitig pflegen. Begründung/parkierte Variante A: `docs/research/dns-registration-options.md`.
|
- ✅ **VLAN-Subinterfaces:** vlan10/20/30/40/50/90/99 auf bridge; je GW `.1` (10.40.10.1 … 10.40.99.1).
|
||||||
- **FB-Bridge testen** (LAN4-Native-Bridge-Hack) → kein Double-NAT; sonst Exposed-Host-Fallback.
|
- ✅ **DHCP:** dhcp-v10…dhcp-v99 je auf eigenem VLAN-Interface, pools .100-.200, GW+DNS = VLAN-GW.
|
||||||
- Abh.: TP1 ✅. TP3-Abhängigkeit **entfällt** (TP4 vor TP3 ziehen; WLAN läuft weiterhin über FB bis TP3).
|
- ✅ **DNS:** RouterOS-nativ, allow-remote-requests=yes, Upstream 10.40.41.254 (FB, interim). Statische Einträge für alle Infra-Hosts unter `bf.lan` (13 Einträge, Transition-IPs bis PVID-Fix).
|
||||||
- **Ermöglicht nach TP4:** PVID-Fix in Omada-Profilen (MAIN→10, INFRA→20), untagNetworkIds-Bereinigung,
|
- ⚠️ Auto-Suffix `.lan` (RouterOS-Einschränkung, kann nicht auf leer gesetzt werden) — TP5-Cleanup.
|
||||||
DHCP-Reservierungen für NAS/macmini/pve auf neue VLAN-Subnetze migrieren.
|
- ✅ **NAT:** srcnat masquerade out-interface=bridge (ap1 → FB → Internet, Double-NAT Interim-Lösung).
|
||||||
- Ziel: VLAN-Traffic vollständig segmentiert + Internet aller VLANs via NAT auf ap1.
|
- ✅ **Routing-Tabelle:** 0.0.0.0/0 via 10.40.41.254%bridge; alle 7 VLAN-Subnetze als Connected-Routes aktiv.
|
||||||
|
- ⏳ **FB-Bridge-Mode** (LAN4-Native-Bridge-Hack) ausstehend — physisch: Kabel FB LAN4 → ap1 ether1, dann ether1 als WAN konfigurieren. Bis dahin: Double-NAT via bridge (funktioniert).
|
||||||
|
- **DNS-Entscheidung** (Technitium **und** externer BIND verworfen): RouterOS-DNS als Resolver, keine DHCP→DNS-Auto-Registrierung (soweit möglich). Infra-Hosts als statische `/ip dns static`-Einträge unter `bf.lan`; dynamische Clients bewusst ohne Namen. Filtering/DNSSEC via DoH-Upstream (TP3). HA: 2. Resolver auf ap2, statische Einträge beidseitig pflegen.
|
||||||
|
- Abh.: TP1 ✅. TP3-Abhängigkeit entfällt (WLAN läuft weiterhin über FB bis TP3).
|
||||||
|
- **Ermöglicht jetzt:** PVID-Fix in Omada-Profilen (MAIN→PVID10, INFRA→PVID20), untagNetworkIds-Bereinigung, DHCP-Reservierungen für NAS/macmini/pve auf neue VLAN-Subnetze migrieren.
|
||||||
|
|
||||||
### TP5 — Firewall & Inter-VLAN-Policy
|
### TP5 — Firewall & Inter-VLAN-Policy
|
||||||
- **Deny-by-default + least-privilege.** MAIN→INFRA nur Whitelist-Dienste; MAIN↔MEDIA allow (+mDNS); UNTRUSTED/GUEST nur Internet; MGMT isoliert; Router-input gehärtet.
|
- **Deny-by-default + least-privilege.** MAIN→INFRA nur Whitelist-Dienste; MAIN↔MEDIA allow (+mDNS); UNTRUSTED/GUEST nur Internet; MGMT isoliert; Router-input gehärtet.
|
||||||
@@ -140,8 +144,7 @@ Kontrolle: MikroMCP (MikroTik) live · ALLNET = Klickanleitungen · Omada → Co
|
|||||||
|
|
||||||
## Reihenfolge / Abhängigkeiten
|
## Reihenfolge / Abhängigkeiten
|
||||||
1. ~~**Jetzt:** TP1 (GE8) → TP2 (Omada Controller).~~ ✅ erledigt 2026-06-15.
|
1. ~~**Jetzt:** TP1 (GE8) → TP2 (Omada Controller).~~ ✅ erledigt 2026-06-15.
|
||||||
2. **Jetzt: TP4 (Router-Cutover)** — vorgezogen, weil Profile-Fix + VLAN-Segmentierung darauf warten.
|
2. ~~**TP4 (Router-Cutover L3-Infra).**~~ ✅ erledigt 2026-06-15. FB-Bridge-Mode noch offen (physisch).
|
||||||
TP3-Voraussetzung entfällt (WLAN bleibt vorerst an FB hängen).
|
3. **Jetzt: Omada-PVID-Fix** — Omada Access-Profile korrigieren (PVID 10/20, untagNetworkIds bereinigen, sicher P3/P5/P6 zuerst), dann IP-Migration NAS/macmini/pve auf VLAN-Subnetze + DNS-Einträge updaten.
|
||||||
3. **Nach TP4:** Omada-Profile finalisieren (PVID 10/20, untagNetworkIds bereinigen) + IP-Migration NAS/macmini/pve.
|
4. **Dann:** TP5 (Firewall/Deny-by-default) → TP6 (QoS/CAKE) → TP7 (mDNS) → TP3 (WLAN/CAPsMAN).
|
||||||
4. **Dann:** TP5 (Firewall) → TP6 (QoS) → TP7 (mDNS) → TP3 (WLAN/CAPsMAN). Disruptiv, aber TP4 macht den Weg frei.
|
|
||||||
5. **Nachgelagert/Research-getrieben:** TP8 (Access), TP9 (HA), TP10 (VPN), TP11 (Monitoring), TP12 (IPv6), TP13 (Spaß).
|
5. **Nachgelagert/Research-getrieben:** TP8 (Access), TP9 (HA), TP10 (VPN), TP11 (Monitoring), TP12 (IPv6), TP13 (Spaß).
|
||||||
|
|||||||
Reference in New Issue
Block a user