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>
64 lines
3.7 KiB
Plaintext
64 lines
3.7 KiB
Plaintext
# =====================================================================================
|
|
# ap3 (cAP ax) — PHASE 1: erreichbar machen. TP28-Nachtrag, 2026-08-30.
|
|
#
|
|
# LAEUFT UEBER DAS WERKS-WLAN `MikroTik-FF169F` und fasst das WLAN bewusst NICHT an.
|
|
# Wer hier WLAN-Objekte abraeumt, saegt den Ast ab, auf dem die Sitzung sitzt.
|
|
#
|
|
# WARUM UEBERHAUPT: am Werks-cAP-ax steht `ether1` in der Interface-Liste `WAN`.
|
|
# Folge, alles live gemessen am 2026-08-30 ueber `crs326-core ether21`:
|
|
# - Discovery aus -> kein MNDP/CDP/LLDP, das Geraet ist in `/ip neighbor` unsichtbar
|
|
# - Input-TCP weg -> 22/80/8291/8728 alle zu, obwohl ICMP durchgeht
|
|
# - ICMP erlaubt -> es PINGT, was leicht als "erreichbar" fehlgelesen wird
|
|
# Genau deshalb ist die WAN-Listen-Mitgliedschaft die erste Zeile, die faellt.
|
|
#
|
|
# NEBENBEFUND, der eine halbe Stunde gekostet hat: ein DHCP-Lease blieb ewig auf
|
|
# `offered` und ARP auf `failed`, weil `pvid=99` nur den EINGANG regelt -- der Port
|
|
# stand in der TAGGED-Liste von VLAN99, die Antwort ging also getaggt raus und ein
|
|
# Werksgeraet versteht das nicht. Merkregel: pvid ist Ingress, tagged/untagged ist Egress.
|
|
#
|
|
# AUFRUF (Passwort NIE als Argument -- weder `sshpass -p` noch in der ssh-Kommandozeile):
|
|
# set -a; . ~/.secrets/ap3-factory.env; set +a
|
|
# scp <generierte-datei> admin@192.168.88.1:
|
|
# sshpass -e ssh admin@192.168.88.1 "/import file=<name>.rsc"
|
|
#
|
|
# `__ADMIN_PW__` ist ein PLATZHALTER. Die echte Datei wird zur Laufzeit ins Scratchpad
|
|
# generiert, hochgeladen und beidseitig geloescht -- der Wert steht nie in diesem Repo.
|
|
# =====================================================================================
|
|
|
|
/system identity set name=ap3
|
|
|
|
# --- (1) ether1 raus aus WAN. Das ist der eigentliche Fix. ---
|
|
:if ([:len [/interface list find where name=LAN]]=0) do={ /interface list add name=LAN }
|
|
/interface list member remove [find where interface=ether1]
|
|
|
|
# --- (2) Werks-DHCP-Client weg. Er kaempft sonst weiter um eine Adresse, die er nicht
|
|
# braucht -- ap3 bekommt eine statische nach TP32 (.10-.29 = physische Hosts).
|
|
# ⚠️ Der DHCP-SERVER bleibt: er versorgt genau die WLAN-Sitzung, ueber die das hier
|
|
# laeuft. Er faellt erst in Phase 2.
|
|
/ip dhcp-client remove [find]
|
|
|
|
# --- (3) ether1 in die Bridge (im Werkszustand ist er WAN-Port, kein Bridge-Port) ---
|
|
:if ([:len [/interface bridge find where name=bridge]]=0) do={ /interface bridge add name=bridge }
|
|
:if ([:len [/interface bridge port find where interface=ether1]]=0) do={ /interface bridge port add bridge=bridge interface=ether1 }
|
|
|
|
# --- (4) Mgmt auf vlan99.
|
|
# `vlan-filtering` bleibt bewusst NO: ein /interface vlan auf der Bridge entkapselt
|
|
# getaggte Frames auch ohne Filter. Das reicht fuer die Erreichbarkeit und vermeidet,
|
|
# dass hier schon eine halbfertige VLAN-Tabelle scharf geschaltet wird.
|
|
:if ([:len [/interface vlan find where name=vlan99]]=0) do={ /interface vlan add name=vlan99 interface=bridge vlan-id=99 }
|
|
/ip address remove [find where interface=vlan99]
|
|
/ip address add address=10.40.99.13/24 interface=vlan99
|
|
:if ([:len [/interface list member find where list=LAN and interface=vlan99]]=0) do={ /interface list member add list=LAN interface=vlan99 }
|
|
/ip route remove [find where comment="mgmt default via core"]
|
|
/ip route add dst-address=0.0.0.0/0 gateway=10.40.99.1 comment="mgmt default via core"
|
|
/ip dns set servers=10.40.99.1
|
|
# Zeitquelle ist der Core (seit 2026-08-18). Ohne das war ap2 einmal 17 h versetzt.
|
|
/system ntp client set enabled=yes
|
|
/system ntp client servers remove [find]
|
|
/system ntp client servers add address=10.40.99.1
|
|
|
|
# --- (5) Flotten-Passwort, damit MikroMCP ap3 nach dem Neustart sofort erreicht ---
|
|
/user set [find name=admin] password="__ADMIN_PW__"
|
|
|
|
:log info "tp28-ap3 phase1: 10.40.99.13/24 auf vlan99, ether1 aus WAN, WLAN unberuehrt"
|