# ===== AS-BUILT 2026-06-17: TP3 WLAN/CAPsMAN — finale dirtyvader-SSIDs ===== # Angewendet via MikroMCP (run_command) auf ap1=10.40.41.1 (Manager+AP), ap2=10.40.41.2 (CAP). # Ersetzt capsman-flat-asbuilt.rsc + ap1-manager.rsc + ap2-cap.rsc (alle obsolet). # # ZIEL: 5 sichtbare SSIDs, beide APs, beide Bänder, je SSID -> eigenes VLAN (wifi datapath vlan-id). # dirtyvader-main(10) WPA3-only FT | dirtyvader-iot(30, NUR 2,4 GHz) WPA2+3 # dirtyvader-media(40) WPA2+3 FT | dirtyvader-untrusted(50) WPA2+3 | dirtyvader-guest(90) WPA2+3 # VERTAGT: hidden dirtyvader-infra(20) + dirtyvader-mgmt(99) — Mgmt verkabelt; ggf. TP8-Enterprise-SSID. # Passphrase = gemeinsames TEMP, Platzhalter __TEMP_PSK__ vor dem Anwenden ersetzen. # Echter Temp-Wert liegt (gitignored) in routeros/.secrets/tp3-capsman.psk; User ersetzt später pro security-Profil. # # KERNLEKTION (verifiziert 2026-06-17, RouterOS 7.23.1 wifi-Paket): # - Der CAPsMAN-MANAGER kann seine EIGENEN (lokalen) Radios NICHT über Provisioning beziehen # ("no connection to CAPsMAN, managed locally" / "SSID not set"). configuration.manager=capsman # fällt auf 'local' zurück, ohne Config => kein SSID. # - DAHER: ap1-Radios LOKAL zuweisen (Master via set, Slaves als statische virtual interfaces). # ap2 (remote CAP) zieht Master+Slaves DYNAMISCH über die Provisioning-Regeln. -> Asymmetrisch, # funktional identisch. # - Bandzuordnung verifiziert: wifi1 = 5 GHz, wifi2 = 2,4 GHz (auf BEIDEN APs). iot nur auf 2,4 GHz. # - reset = "/interface/wifi reset " (NICHT 'reset-configuration' — existiert in 7.23 nicht). # - CAPsMAN/CA-Cert + ap2-Adoption blieben unberührt (kein Re-Adopt). # ================= ap1 = MANAGER + AP ================= # --- Channels (non-DFS gepinnt; diese Frequenzen gelten fuer ap2 = CAP, ap1 wird unten lokal ueberschrieben) --- /interface/wifi/channel add name=ch-2g band=2ghz-ax width=20mhz frequency=2462 ;# ch11 (ap2) add name=ch-5g band=5ghz-ax width=20/40/80mhz frequency=5745 ;# ch149 non-DFS (ap2) # --- Security je SSID (gemeinsames Temp-PW; FT nur main+media) --- /interface/wifi/security add name=sec-main authentication-types=wpa3-psk ft=yes ft-over-ds=yes passphrase="__TEMP_PSK__" add name=sec-iot authentication-types=wpa2-psk,wpa3-psk ft=no passphrase="__TEMP_PSK__" add name=sec-media authentication-types=wpa2-psk,wpa3-psk ft=no passphrase="__TEMP_PSK__" ;# ft=no: 802.11r bricht Sonos add name=sec-untrusted authentication-types=wpa2-psk,wpa3-psk ft=no passphrase="__TEMP_PSK__" add name=sec-guest authentication-types=wpa2-psk,wpa3-psk ft=no passphrase="__TEMP_PSK__" # --- Datapath = SSID->VLAN (Bridge hat vlan-filtering=yes seit TP4) --- /interface/wifi/datapath add name=dp-main bridge=bridge vlan-id=10 add name=dp-iot bridge=bridge vlan-id=30 add name=dp-media bridge=bridge vlan-id=40 add name=dp-untrusted bridge=bridge vlan-id=50 add name=dp-guest bridge=bridge vlan-id=90 # --- Configuration je SSID (main band-spezifisch mit channel; Slaves ohne channel) --- /interface/wifi/configuration add name=cfg-main-5g ssid=dirtyvader-main mode=ap country=Austria security=sec-main datapath=dp-main channel=ch-5g add name=cfg-main-2g ssid=dirtyvader-main mode=ap country=Austria security=sec-main datapath=dp-main channel=ch-2g add name=cfg-iot ssid=dirtyvader-iot mode=ap country=Austria security=sec-iot datapath=dp-iot add name=cfg-media ssid=dirtyvader-media mode=ap country=Austria security=sec-media datapath=dp-media add name=cfg-untrusted ssid=dirtyvader-untrusted mode=ap country=Austria security=sec-untrusted datapath=dp-untrusted add name=cfg-guest ssid=dirtyvader-guest mode=ap country=Austria security=sec-guest datapath=dp-guest # --- CAPsMAN bleibt enabled (CA/Cert auto, ap2-Pairing unberührt) --- # /interface/wifi/capsman set enabled=yes interfaces=bridge ;# war bereits aktiv # --- Provisioning fuer ap2 (remote CAP): Master + Slaves; iot NUR in der 2-GHz-Regel --- /interface/wifi/provisioning add action=create-dynamic-enabled supported-bands=2ghz-ax master-configuration=cfg-main-2g \ slave-configurations=cfg-iot,cfg-media,cfg-untrusted,cfg-guest add action=create-dynamic-enabled supported-bands=5ghz-ax master-configuration=cfg-main-5g \ slave-configurations=cfg-media,cfg-untrusted,cfg-guest # --- ap1-EIGENE Radios LOKAL zuweisen (Manager provisioniert sich nicht selbst!) --- /interface/wifi set wifi1 configuration=cfg-main-5g configuration.manager=local disabled=no channel.frequency=5180 ;# wifi1 = 5 GHz, ch36 (override gg. ch-5g) set wifi2 configuration=cfg-main-2g configuration.manager=local disabled=no channel.frequency=2412 ;# wifi2 = 2,4 GHz, ch1 (override gg. ch-2g) # Statische Slaves je Band (5 GHz ohne iot): add master-interface=wifi1 configuration=cfg-media name=w5-media disabled=no add master-interface=wifi1 configuration=cfg-untrusted name=w5-untrusted disabled=no add master-interface=wifi1 configuration=cfg-guest name=w5-guest disabled=no add master-interface=wifi2 configuration=cfg-iot name=w2-iot disabled=no add master-interface=wifi2 configuration=cfg-media name=w2-media disabled=no add master-interface=wifi2 configuration=cfg-untrusted name=w2-untrusted disabled=no add master-interface=wifi2 configuration=cfg-guest name=w2-guest disabled=no # ================= ap2 = CAP (zieht alles vom Manager) ================= # Keine Objekte noetig — ap2 war bereits adoptiert (remote-cap state=Ok). Nach Provisioning-Update # erscheinen dynamisch: wifi1(5G)=main + media/untrusted/guest ; wifi2(2,4G)=main + iot/media/untrusted/guest. # Falls je noetig: /interface/wifi/capsman/remote-cap provision [find] # ================= VERIFIKATION (durchgefuehrt 2026-06-18) ================= # ap1: monitor wifi1,wifi2 -> running, ch36/5180 (5G) + ch1/2412 (2,4G), tx-power ~18-25/15 dBm, 2 Clients FT-WPA3 VLAN10 # ap2: print brief -> 9 IFs MBR/DBR running, ch149/5745 (5G) + ch11/2462 (2,4G), "managed by CAPsMAN 10.40.41.1" # ap1: /interface/wifi/capsman/remote-cap print -> ap2 STATE=Ok # Kanaele distinkt + non-DFS auf beiden Baendern (Co-Channel beseitigt). KANAL-AENDERUNG an ap2 braucht # manuellen Push: /interface/wifi/capsman/remote-cap provision [find] # Offen (User-Geraetetest): Client je SSID -> DHCP aus 10.40.{10,30,40,50,90}.x, list_wifi_clients vlan-id. # ================= OFFENE PUNKTE / TUNING ================= # - Echte Passphrasen pro security-Profil setzen (Temp ersetzen). User macht das selbst. # - Kanal-Plan erledigt: ap1 ch36/ch1, ap2 ch149/ch11 (alle non-DFS, ueberlappungsfrei). # - hidden dirtyvader-infra(20)/-mgmt(99) bei Bedarf nachziehen (sec WPA3-only, configuration.hide-ssid=yes). # - Sonos-Migration (TP7-Anschluss): 7 WLAN-Sonos noch auf FB-WLAN (VLAN1) -> auf dirtyvader-media (VLAN40) # holen, dann ist der Household geschlossen und mDNS-Repeater vlan10<->vlan40 liefert MAIN volle Discovery. # - TP8: eine 802.1X-SSID (dirtyvader-secure) mit FreeRADIUS-Dynamic-VLAN -> dann PSK-main/infra retiren.