tp28-ap3-bringup.rsc + tp28-ap3-lifeline-abbau.rsc ersetzt durch tp28-ap3-phase1-erreichbar.rsc + tp28-ap3-phase2-cap.rsc. Der Schnitt liegt dort, wo der Zugangsweg wechselt: - Phase 1 laeuft ueber das Werks-WLAN MikroTik-FF169F und fasst das WLAN bewusst NICHT an -- wer dort WLAN-Objekte abraeumt, saegt den Ast ab, auf dem die Sitzung sitzt. Sie macht ap3 auf 10.40.99.13/24 (vlan99) erreichbar. - Phase 2 laeuft ueber vlan99, weil dort das Werks-WLAN stirbt. Sie macht aus dem Standalone-Werksgeraet einen reinen CAP und schaltet vlan-filtering ZULETZT scharf. Grund fuer die Teilung, live gemessen ueber crs326-core ether21: am Werks- cAP-ax steht ether1 in der Interface-Liste WAN. Folge -- Discovery aus (kein MNDP/CDP/LLDP, unsichtbar in /ip neighbor), Input-TCP zu (22/80/8291/8728), aber ICMP erlaubt. Das Geraet PINGT also und wird leicht als "erreichbar" fehlgelesen. Die WAN-Listen-Mitgliedschaft faellt deshalb als erste Zeile. Nebenbefund im Kopf festgehalten: ein DHCP-Lease blieb auf `offered` und ARP auf `failed`, weil der Port in der TAGGED-Liste von VLAN99 stand -- pvid=99 regelt nur den Eingang, die Antwort ging getaggt raus, und das versteht ein Werksgeraet nicht. Merkregel: pvid ist Ingress, tagged/untagged ist Egress. Der Lifeline-Abbau braucht keine eigene Datei mehr: ether2 (PoE-out, haengt nichts) wird in Phase 2 aus der Bridge genommen und abgeschaltet, wie ap1/ap2 es mit ihrem PoE-Port halten. Kein Secret in den Dateien: das admin-Passwort steht als Platzhalter __ADMIN_PW__ und wird zur Laufzeit aus ~/.secrets/ap3-factory.env gezogen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
72 lines
4.5 KiB
Plaintext
72 lines
4.5 KiB
Plaintext
# =====================================================================================
|
|
# ap3 (cAP ax) — PHASE 2: aus dem Standalone-Werksgeraet einen reinen CAP machen.
|
|
# TP28-Nachtrag, 2026-08-30.
|
|
#
|
|
# LAEUFT UEBER vlan99 (10.40.99.13), NICHT ueber das Werks-WLAN -- denn hier stirbt das
|
|
# Werks-WLAN. Erst ausfuehren, wenn `ping 10.40.99.13` vom Core sauber durchgeht.
|
|
# =====================================================================================
|
|
|
|
# --- (1) Werks-WLAN und Standalone-Reste abraeumen.
|
|
# 🔴 REIHENFOLGE IST PFLICHT: `configuration` referenziert security/datapath/channel.
|
|
# Wer die Referenzierten zuerst loescht, bekommt einen Fehler und laesst einen
|
|
# Teil-Zustand zurueck.
|
|
# 🔴 `[find !dynamic]` waere hier ein SYNTAXFEHLER -- diese Objekte haben gar keine
|
|
# `dynamic`-Eigenschaft, die gibt es nur auf /interface wifi selbst. Ein frueherer
|
|
# Versuch lief deshalb komplett in die on-error-Zweige, aenderte NICHTS und meldete
|
|
# trotzdem Erfolg (Lehre aus tp28-ap-wifi-reste-abraeumen.rsc, 2026-08-18).
|
|
/interface wifi capsman set enabled=no
|
|
/interface wifi remove [find where !(name=wifi1 || name=wifi2)]
|
|
/interface wifi configuration remove [find]
|
|
/interface wifi steering remove [find]
|
|
/interface wifi security remove [find]
|
|
/interface wifi datapath remove [find]
|
|
/interface wifi channel remove [find]
|
|
# Werks-Inline-Overrides auf den Master-Radios loeschen, sonst gewinnen sie gegen den Manager.
|
|
/interface wifi set [find name=wifi1] !configuration.ssid !security.authentication-types !security.passphrase !security.ft-over-ds
|
|
/interface wifi set [find name=wifi2] !configuration.ssid !security.authentication-types !security.passphrase !security.ft-over-ds
|
|
|
|
# --- (2) L3-Reste des Werks-Routers weg (jetzt gefahrlos: die WLAN-Sitzung ist ohnehin tot) ---
|
|
/ip dhcp-server remove [find]
|
|
/ip dhcp-server network remove [find]
|
|
/ip pool remove [find]
|
|
/ip firewall nat remove [find]
|
|
/ipv6 dhcp-client remove [find]
|
|
/ip address remove [find where interface=bridge]
|
|
|
|
# --- (3) Bridge-Ports. cAP ax hat nur ZWEI Ethernet-Ports; ether2 traegt PoE-out und
|
|
# haengt nichts -> aus, wie ap1/ap2 es mit ihrem PoE-Port halten. ether2 wird
|
|
# KEIN Bridge-Port (Zielzustand identisch zu ap2) -> ap.extra_ports = [].
|
|
/interface ethernet set [find name=ether2] poe-out=off
|
|
/interface bridge port remove [find where interface=ether2]
|
|
:if ([:len [/interface bridge port find where interface=wifi1]]=0) do={ /interface bridge port add bridge=bridge comment=defconf interface=wifi1 }
|
|
:if ([:len [/interface bridge port find where interface=wifi2]]=0) do={ /interface bridge port add bridge=bridge comment=defconf interface=wifi2 }
|
|
|
|
# --- (4) Bridge-VLAN-Tabelle, Muster = ap2 live (2026-08-30 gelesen).
|
|
# IOT (30) nur auf wifi2: die Zone hat bands=["2g"] (ConfigContext ap-common).
|
|
# MGMT (99) liegt auf der Bridge, NICHT auf den Radios -- sonst waere Management
|
|
# over-the-air.
|
|
/interface bridge vlan remove [find where !dynamic]
|
|
/interface bridge vlan add bridge=bridge untagged=bridge,ether1 vlan-ids=1
|
|
/interface bridge vlan add bridge=bridge tagged=ether1,wifi1,wifi2 vlan-ids=10
|
|
/interface bridge vlan add bridge=bridge tagged=ether1,wifi1,wifi2 vlan-ids=20
|
|
/interface bridge vlan add bridge=bridge tagged=ether1,wifi2 vlan-ids=30
|
|
/interface bridge vlan add bridge=bridge tagged=ether1,wifi1,wifi2 vlan-ids=40
|
|
/interface bridge vlan add bridge=bridge tagged=ether1,wifi1,wifi2 vlan-ids=50
|
|
/interface bridge vlan add bridge=bridge tagged=ether1,wifi1,wifi2 vlan-ids=90
|
|
/interface bridge vlan add bridge=bridge tagged=ether1,bridge vlan-ids=99
|
|
|
|
# --- (5) CAP-Modus.
|
|
# 🔴🔴 `slaves-datapath` IST NICHT OPTIONAL. Der Manager schickt `datapath.bridge=bridge`
|
|
# zwar mit, der CAP uebernimmt davon aber NUR die vlan-id -- die Bridge-Mitgliedschaft
|
|
# bleibt lokal. Fehlt das Objekt, assoziieren Clients auf iot/media/untrusted/guest
|
|
# sauber und bekommen NIE DHCP, waehrend dirtyvader-main (Master-Radios = statische
|
|
# Bridge-Ports) weiterlaeuft. Genau so lagen IOT+MEDIA am 2026-08-18 rund 14 Stunden.
|
|
# Das Objekt traegt bewusst KEINE vlan-id: die liefert der Manager pro VAP.
|
|
/interface wifi datapath add name=dp-caps-slaves bridge=bridge comment="TP28-fix: bridge fuer CAPsMAN-Slave-VAPs"
|
|
/interface wifi cap set enabled=yes discovery-interfaces=vlan99 slaves-datapath=dp-caps-slaves
|
|
|
|
# --- (6) ZULETZT scharf schalten. Vorher waere der Rest der Datei nicht angekommen. ---
|
|
/interface bridge set [find name=bridge] vlan-filtering=yes
|
|
|
|
:log info "tp28-ap3 phase2: CAP aktiv, Manager-Suche auf vlan99, vlan-filtering=yes"
|