Files
bf-infra/routeros/wan-macclone-test.rsc

58 lines
3.0 KiB
Plaintext

# ===== ap1 — WAN MAC-Clone-Test (FB CM-MAC → ether1), scheduler-frei =====
# RouterOS 7.23.x, device-mode=home. Setzt wan-cutover-test.rsc voraus (nutzt wantest-probe).
#
# FB-WAN-MAC = CM-MAC 0C:72:74:36:90:99 (DOCSIS-SW 7.3.5.3.521, vom User aus FB-UI).
# ⚠️ CM-MAC = Cable-Modem-/DOCSIS-Layer. Im echten Bridge-Modus nutzt die FB diese MAC
# selbst → MAC-Konflikt-Risiko. Public-IP kam bereits mit ether1-eigener MAC → Clone ist
# Verifikation, kein Muss.
#
# device-mode blockiert /system scheduler → Auto-Revert ist hier KEIN Scheduler, sondern fest
# in den Clone-Lauf eingebaut (linearer Ablauf, ~90 s Clone-Fenster, dann garantierter Revert —
# läuft im Hintergrund zu Ende, auch wenn die Console-Session abreißt).
#
# Ablauf (Console über altes WiFi auf 10.40.41.1):
# 1) Baseline-Cutover mit ether1-eigener MAC (wantest-run) → Public-IP geloggt
# 2) /system script run wanmac-clone → setzt CM-MAC, release/renew, 4 Proben, AUTO-REVERT
# 3) Log prüfen: IP/Schichten mit FB-MAC vs. Baseline (/log print where message~"WANTEST")
# Not-Revert jederzeit: /system script run wanmac-revert
# --- idempotent ---
/system scheduler remove [find name~"^wanmac-"]
/system script remove [find name~"^wanmac-"]
# --- Clone: orig sichern → CM-MAC → release/renew → 4 Proben → GARANTIERTER Auto-Revert ---
/system script add name=wanmac-clone policy=read,write,test,policy source={
:global FBMAC
:if (([:typeof $FBMAC] = "nothing") or ($FBMAC = "")) do={ :set FBMAC "0C:72:74:36:90:99" }
:global E1ORIG
:set E1ORIG [/interface ethernet get [find name=ether1] mac-address]
:log info ("WANTEST macclone: orig=" . $E1ORIG . " -> fb=" . $FBMAC . " (Auto-Revert in ~90s)")
/interface ethernet set [find name=ether1] mac-address=$FBMAC
:do { /ip dhcp-client release [find interface=ether1] } on-error={}
:delay 2s
:do { /ip dhcp-client renew [find interface=ether1] } on-error={}
:delay 25s
:for i from=1 to=4 do={ /system script run wantest-probe ; :delay 15s }
# --- garantierter Auto-Revert im selben Lauf (kein Scheduler nötig) ---
/interface ethernet reset-mac-address [find name=ether1]
:do { /ip dhcp-client release [find interface=ether1] } on-error={}
:delay 2s
:do { /ip dhcp-client renew [find interface=ether1] } on-error={}
:delay 15s
/system script run wantest-probe
:log info ("WANTEST macclone done -> revert auf factory-MAC (orig war " . $E1ORIG . ")")
}
# --- Not-Revert: sofort Werks-MAC zurück (falls man früher raus will) ---
/system script add name=wanmac-revert policy=read,write,test,policy source={
/interface ethernet reset-mac-address [find name=ether1]
:do { /ip dhcp-client release [find interface=ether1] } on-error={}
:delay 2s
:do { /ip dhcp-client renew [find interface=ether1] } on-error={}
:delay 10s
/system script run wantest-probe
:log info "WANTEST macclone manual-revert -> factory-MAC"
}
:log info "WANTEST macclone-test installiert (clone mit eingebautem Auto-Revert + manual-revert)"