1 CAPsMAN Migration: Courvoisier → Absolut[edit | edit source]
This document describes the complete migration of CAPsMAN control from courvoisier to the CHR instance absolut while keeping wireless client traffic off the CHR in the final state.
The migration is performed in two stages:
- Interim migration state – CAPsMAN moves to Absolut while Guest traffic temporarily traverses the CHR.
- Final controller‑only state – client traffic no longer traverses Absolut.
1.1 Supporting Configuration Patch Files[edit | edit source]
File:Courvoisier-final-post-migration-patch.rsc.txt File:Absolut-final-controller-only-patch.rsc.txt File:Courvoisier-interim-guest-transport-patch.rsc.txt File:Absolut-interim-migration-patch.rsc.txt
1.2 Architecture Context[edit | edit source]
Final architecture goals:
| Component | Role |
|---|---|
| absolut | CAPsMAN controller (control plane only) |
| courvoisier | edge router and Guest DHCP server |
| radix.kitsnet.us (192.168.15.1) | DHCP server for main and IoT WLAN |
Wireless data traffic must remain on the physical network and must not traverse the CHR once the migration is complete.
1.3 SSID Design[edit | edit source]
| SSID | Purpose | DHCP Source |
|---|---|---|
| KitsNet | trusted WLAN | radix.kitsnet.us |
| KitsNetIN | IoT devices | radix.kitsnet.us |
| KitsNetGN | guest WLAN | courvoisier |
1.4 Preconditions[edit | edit source]
Before beginning the migration verify:
1.4.1 CAP state[edit | edit source]
On Courvoisier:
/caps-man remote-cap print detail
Expected:
- able – Run
- baker – Run
1.4.2 CAP configuration[edit | edit source]
On Able and Baker:
/interface wireless cap print
Verify:
enabled: yes lock-to-caps-man: no caps-man-addresses: 192.168.15.6
1.4.3 Guest DHCP[edit | edit source]
On Courvoisier:
/ip dhcp-server print detail
Confirm DHCP server bound to bridge:
BWF.KitsNetG
1.5 Stage A – Interim Migration State[edit | edit source]
During migration Guest traffic may temporarily traverse Absolut. This allows the CAPsMAN controller to move while keeping Guest DHCP hosted on Courvoisier.
1.5.1 Design[edit | edit source]
- KitsNet → local forwarding → Radix DHCP
- KitsNetIN → unchanged during migration
- KitsNetGN → temporarily central forwarded to Absolut and bridged back to Courvoisier
1.6 Prepare Absolut[edit | edit source]
On Absolut:
/caps-man manager set enabled=yes
Import CAPsMAN certificates copied from Courvoisier.
Create temporary Guest bridge:
/interface bridge add name=BWF.KitsNetG
Create EoIP transport to Courvoisier:
/interface eoip add name=EOIP.KitsNetG.to.Courvoisier \ local-address=<ABSOLUT_IP> \ remote-address=192.168.15.6 \ tunnel-id=120
Attach EoIP to bridge:
/interface bridge port add bridge=BWF.KitsNetG interface=EOIP.KitsNetG.to.Courvoisier
Change Guest datapath:
/caps-man datapath set [find name="DP.KitsNetG"] local-forwarding=no bridge=BWF.KitsNetG
1.7 Prepare Courvoisier[edit | edit source]
Create matching EoIP interface:
/interface eoip add name=EOIP.KitsNetG.to.Absolut \ local-address=192.168.15.6 \ remote-address=<ABSOLUT_IP> \ tunnel-id=120
Attach to Guest bridge:
/interface bridge port add bridge=BWF.KitsNetG interface=EOIP.KitsNetG.to.Absolut
1.8 Migration Procedure[edit | edit source]
1.8.1 Step 1 – Move Able[edit | edit source]
On Able:
/interface wireless cap set caps-man-addresses=<ABSOLUT_IP>
Verify on Absolut:
/caps-man remote-cap print /caps-man interface print
Test:
- KitsNet connectivity
- KitsNetGN guest DHCP
- IoT connectivity
1.8.2 Step 2 – Move Baker[edit | edit source]
On Baker:
/interface wireless cap set caps-man-addresses=<ABSOLUT_IP>
Verify both CAPs on Absolut:
/caps-man remote-cap print
1.8.3 Step 3 – Disable Courvoisier CAPsMAN[edit | edit source]
Once both CAPs are stable:
/caps-man manager set enabled=no
Lock CAPs:
/interface wireless cap set lock-to-caps-man=yes
1.9 Validation[edit | edit source]
On Absolut:
/caps-man registration-table print
On Courvoisier:
/ip dhcp-server lease print
Confirm:
- clients on KitsNet obtain DHCP from Radix
- guest clients obtain DHCP from Courvoisier
- both CAPs remain connected to Absolut
1.10 Rollback[edit | edit source]
If migration fails revert CAPs to Courvoisier.
On CAP:
/interface wireless cap set caps-man-addresses=192.168.15.6
Re-enable CAPsMAN on Courvoisier if necessary:
/caps-man manager set enabled=yes
1.11 Stage B – Final Controller‑Only State[edit | edit source]
After a permanent Guest L2 path exists outside the CHR:
On Absolut:
/caps-man datapath set [find name="DP.KitsNetG"] local-forwarding=yes
Remove temporary EoIP:
/interface bridge port remove [find interface="EOIP.KitsNetG.to.Courvoisier"] /interface eoip remove EOIP.KitsNetG.to.Courvoisier /interface bridge remove BWF.KitsNetG
On Courvoisier:
/interface bridge port remove [find interface="EOIP.KitsNetG.to.Absolut"] /interface eoip remove EOIP.KitsNetG.to.Absolut
1.12 Final State[edit | edit source]
- Absolut runs CAPsMAN only
- Courvoisier serves Guest DHCP
- Radix serves LAN DHCP
- CAPs locally forward all client traffic
- no wireless data traffic transits the CHR