TP3.1 ✅ ap2 VLAN-Trunk-Fix: vlan-filtering=yes (WLAN-Segmentierung)
Root cause: ap2 (CAP, local forwarding) hatte bridge vlan-filtering=no → datapath.vlan-id wurde nie getaggt → alle WLAN-Clients (main/media/iot/…) egressten ungetaggt in VLAN1 → OG-iPhone-Drops beim Roaming ap1↔ap2. Fix wie ap1: VLAN1 untagged=bridge,ether2 (Mgmt), 10/30/40/50/90 tagged auf ether2 + wifi1/wifi2 als tagged-Member (nur Master-Radios sind Bridge-Ports, CAPsMAN legt das auf dem CAP nicht an). As-built + teilprojekte.md TP3.1 + CLAUDE.md-Gotcha. OG-Funktionstest offen (User). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -62,6 +62,7 @@ GW je VLAN = `.1` · APs: ap1=`.1`, ap2=`.2` · Switches: ALLNET=`.11`, Omada=`.
|
||||
- **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).
|
||||
- **ap2 (CAP) braucht `vlan-filtering=yes` mit ether2-Trunk (TP3.1 ✅ 2026-07-01):** local forwarding → `datapath.vlan-id` wird nur bei vlan-filtering auf die Leitung geschrieben. Ohne → ALLE ap2-WLAN-Clients ungetaggt in VLAN1 (defconf/10.40.41.x). Nur Master-Radios wifi1/wifi2 sind Bridge-Ports (Slave-VAPs forwarden darüber) → wifi1/wifi2 müssen manuell tagged-Member je Client-VLAN sein (CAPsMAN legt das auf dem CAP NICHT an). As-built `routeros/tp3.1-ap2-vlan.rsc`. VLAN1 MUSS untagged=bridge,ether2 bleiben (Mgmt/MCP-Pfad 10.40.41.2, kein Scheduler → Recovery = Power-Cycle OG). Widerlegt „ein CAP hält keine Config" (galt nur für Manager-Forwarding).
|
||||
- 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.
|
||||
|
||||
@@ -91,6 +91,23 @@ Kontrolle: MikroMCP (MikroTik) live · ALLNET = Klickanleitungen · Omada → Co
|
||||
- **Mesh = NEIN** (beide APs wired-trunk → Loop-Risiko). DoH-Upstream = Cloudflare Gateway (seit TP4 aktiv).
|
||||
- Abh. erfüllt: TP4 ✅ (L3/VLAN-Interfaces). Folge: TP8 (802.1X), Sonos-Migration.
|
||||
|
||||
### TP3.1 — ap2 VLAN-Trunk-Fix ▸ ✅ Config live (2026-07-01) — `routeros/tp3.1-ap2-vlan.rsc`
|
||||
- **Root Cause:** ap2 (CAP, local forwarding) hatte `bridge vlan-filtering=no` → `datapath.vlan-id` wurde nie
|
||||
auf die Leitung geschrieben → **ALLE** WLAN-Clients auf ap2 (main/media/iot/…) egressten **ungetaggt in VLAN1**
|
||||
(defconf/`10.40.41.x`) statt ins Ziel-VLAN. Symptom: iPhone (VLAN10) im OG „verbunden, aber sporadisch kein
|
||||
WLAN-Symbol" — beim Roaming ap1↔ap2 sprang es VLAN10↔VLAN1 (Subnetz-Flip → Abbruch). Sonos-Terrasse landete
|
||||
auf ap2 fälschlich auf `10.40.41.183`. TP3 „ein CAP hält keine Config" gilt nur für Manager-Forwarding — hier
|
||||
local forwarding, daher **braucht ap2 doch VLAN-Config**.
|
||||
- ✅ **Fix (wie ap1):** ap2-Bridge `vlan-filtering=yes`; VLAN1 untagged=bridge,ether2 (Mgmt), VLANs 10/30/40/50/90
|
||||
tagged auf ether2. Da nur die Master-Radios wifi1(5G)/wifi2(2.4G) Bridge-Ports sind (Slave-VAPs forwarden über
|
||||
den Master), zusätzlich **wifi1/wifi2 als tagged-Member** je Client-VLAN (wifi1: 10/40/50/90, wifi2: 10/30/40/50/90).
|
||||
CAPsMAN legt diese auf dem CAP **nicht** automatisch an → manuell gesetzt. Danach `remote-cap provision`.
|
||||
- **Lockout-Risiko gehandhabt:** ap2-Mgmt (10.40.41.2) untagged VLAN1 blieb erhalten; kein Scheduler (device-mode=home)
|
||||
→ Recovery = Power-Cycle OG. Ausgeführt im leeren-registration-table-Fenster.
|
||||
- ⏳ **Offen — funktionaler OG-Test durch User:** Handy auf `dirtyvader-main` im OG → Lease muss `dhcp-v10`/`10.40.10.x`
|
||||
sein (nicht `defconf`/`10.40.41.x`). Falls kein DHCP: Omada-Port-2-Trunk (tagged 10/30/40/50/90) prüfen.
|
||||
- Abh.: TP3 ✅, TP4 ✅ (Bridge-VLAN-Muster gespiegelt). Config ap2-lokal (nicht CAPsMAN-verwaltet).
|
||||
|
||||
### TP4 — Router-Cutover (hAP#1 = Router) ▸ ✅ L3-Infra FERTIG (2026-06-15) — FB-Bridge ausstehend
|
||||
- ✅ **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.
|
||||
- ✅ **VLAN-Subinterfaces:** vlan10/20/30/40/50/90/99 auf bridge; je GW `.1` (10.40.10.1 … 10.40.99.1).
|
||||
|
||||
33
routeros/tp3.1-ap2-vlan.rsc
Normal file
33
routeros/tp3.1-ap2-vlan.rsc
Normal file
@@ -0,0 +1,33 @@
|
||||
# TP3.1 — ap2 VLAN-Trunk-Fix (As-built, 2026-07-01)
|
||||
# Kontext: ap2 (CAP, local forwarding) hatte bridge vlan-filtering=no → datapath.vlan-id
|
||||
# wurde nie auf die Leitung geschrieben → ALLE WLAN-Clients (main/media/iot/…) egressten
|
||||
# ungetaggt in VLAN1 (defconf/10.40.41.x). Fix: ap2-Bridge VLAN-scharf machen wie ap1.
|
||||
#
|
||||
# WICHTIG (Lockout): ap2-Mgmt (10.40.41.2) liegt untagged auf VLAN1 über die Bridge; MCP/SSH
|
||||
# läuft darüber. VLAN1 MUSS untagged=bridge,ether2 bleiben. Reihenfolge: erst Tabelle, dann Flip.
|
||||
# Kein Scheduler auf ap2 (device-mode=home) → kein Auto-Revert; Recovery = Power-Cycle im OG.
|
||||
#
|
||||
# Diese Datei ist ap2-LOKAL (nicht CAPsMAN-verwaltet). Auf ap2 ausführen.
|
||||
# Die master-Radios wifi1(5G)/wifi2(2.4G) tragen alle Client-VLANs getaggt; die Slave-VAPs
|
||||
# (media/iot/untrusted/guest) forwarden über ihren Master → nur wifi1/wifi2 müssen tagged-Member sein.
|
||||
# wifi1 (5G): main10 + media40 + untrusted50 + guest90
|
||||
# wifi2 (2.4G): main10 + iot30 + media40 + untrusted50 + guest90
|
||||
|
||||
/interface bridge vlan
|
||||
add bridge=bridge vlan-ids=1 untagged=bridge,ether2
|
||||
add bridge=bridge vlan-ids=10 tagged=ether2,wifi1,wifi2
|
||||
add bridge=bridge vlan-ids=30 tagged=ether2,wifi2
|
||||
add bridge=bridge vlan-ids=40 tagged=ether2,wifi1,wifi2
|
||||
add bridge=bridge vlan-ids=50 tagged=ether2,wifi1,wifi2
|
||||
add bridge=bridge vlan-ids=90 tagged=ether2,wifi1,wifi2
|
||||
|
||||
# Flip als LETZTER Schritt:
|
||||
/interface bridge set [find name=bridge] vlan-filtering=yes
|
||||
|
||||
# Danach auf ap1 einmalig re-provisionieren, damit der CAP sauber neu bindet:
|
||||
# /interface wifi capsman remote-cap provision [find identity=ap2]
|
||||
#
|
||||
# Verifikation:
|
||||
# /interface bridge vlan print detail → current-tagged je VLAN = ether2,wifi1(,wifi2)
|
||||
# OG-Client-Test: Handy auf dirtyvader-main im OG → auf ap1 muss der Lease server=dhcp-v10
|
||||
# (10.40.10.x) sein, NICHT defconf/10.40.41.x.
|
||||
Reference in New Issue
Block a user