Created page with "= CAPsMAN Migration Plan = Courvoisier → Absolut (CHR) == Objectives == # Move CAPsMAN control from '''Courvoisier''' to '''Absolut''' # Preserve current SSIDs and datapath behavior during migration # Ensure '''no client traffic passes through Absolut''' # Avoid network disruption # Allow immediate rollback # Perform datapath cleanup '''after migration''' ---- == Phase 0 — Pre-Migration Verification == Verify current operational state. === On Courvoisier === <..." |
No edit summary |
||
| Line 1: | Line 1: | ||
= CAPsMAN Migration Plan = | |||
= CAPsMAN Migration Plan (Interim → Final) = | |||
Courvoisier → Absolut (CHR) | Courvoisier → Absolut (CHR) | ||
This revision reflects the updated priority: | |||
# | # Complete the CAPsMAN migration first | ||
# | # Temporary Guest-path inefficiency during migration is acceptable | ||
# | # By the final state, client traffic must stay off Absolut | ||
# | # Courvoisier must continue serving the KitsNetGN guest DHCP scope | ||
# | # Main SSID DHCP continues to come from radix.kitsnet.us (192.168.15.1) | ||
# | # Avoid mixing large redesign work into the controller cutover | ||
---- | ---- | ||
== | == Why this staged plan is needed == | ||
The current configuration shows: | |||
* Courvoisier central‑forwards Guest to BWF.KitsNetG and serves Guest DHCP there. | |||
* Main SSID traffic lives on the main bridge where Radix provides DHCP. | |||
* Absolut currently has datapaths configured for local forwarding and does not yet replicate the Guest bridge design. | |||
* Baker 2.4 GHz provisioning lacks the IoT SSID compared with Able. | |||
Because of this the migration uses two stages: | |||
* '''Interim state''' – Guest traffic temporarily traverses Absolut but is bridged back to Courvoisier so DHCP remains there. | |||
* '''Final state''' – Guest traffic no longer traverses Absolut once an off‑CHR L2 path exists. | |||
---- | |||
== | == Stage A — Interim Migration State == | ||
=== Design intent === | |||
* '''KitsNet''' – locally forwarded; DHCP from Radix on the LAN | |||
* '''KitsNetIN''' – unchanged during migration | |||
* '''KitsNetGN''' – temporarily central‑forwarded via Absolut then bridged back to Courvoisier | |||
This keeps the network functional while moving CAPsMAN. | |||
=== | === Interim prerequisites === | ||
# Import Courvoisier CAPsMAN certificate and CA into Absolut | |||
# Enable CAPsMAN on Absolut | |||
# Create temporary Guest EoIP link between Absolut and Courvoisier | |||
# Set DP.KitsNetG to central forwarding during migration | |||
# Keep DP.KitsNet locally forwarded | |||
# Correct Baker 2.4 GHz provisioning symmetry | |||
=== | === Interim cutover sequence === | ||
# Prepare Guest EoIP bridge on both routers | |||
# Verify Absolut CAPsMAN configuration | |||
# Move Able to Absolut | |||
# Validate Able | |||
# Move Baker to Absolut | |||
# Validate Baker | |||
# Disable CAPsMAN on Courvoisier | |||
# Re‑lock CAPs | |||
=== Interim success criteria === | |||
* Able and Baker show '''Run''' on Absolut | |||
* KitsNet clients obtain DHCP from Radix | |||
* KitsNetGN clients obtain DHCP from Courvoisier | |||
* IoT devices remain functional | |||
* Only Guest traffic temporarily traverses Absolut | |||
---- | ---- | ||
== | == Stage B — Final Controller‑Only State == | ||
=== | === Design intent === | ||
By the end state, Absolut acts only as the CAPsMAN controller. | |||
Requirements: | |||
* DP.KitsNetG changed back to '''local‑forwarding=yes''' | |||
* Temporary EoIP bridge removed | |||
* Guest L2 path provided elsewhere on the wired network | |||
=== Final transition sequence === | |||
# Prepare off‑CHR Guest L2 transport | |||
# Change DP.KitsNetG back to local forwarding | |||
# Remove temporary EoIP bridge on Absolut | |||
# Remove EoIP on Courvoisier | |||
# Validate Guest DHCP and isolation | |||
=== Final success criteria === | |||
* CAPs remain attached to Absolut | |||
* Main SSID DHCP still provided by Radix | |||
* | * Guest DHCP still provided by Courvoisier | ||
* | * No client traffic passes through Absolut | ||
* | * Temporary EoIP removed | ||
* | |||
* | |||
---- | ---- | ||
== | == Detailed Execution == | ||
=== | === Phase 0 — Pre‑checks === | ||
On Courvoisier: | |||
<pre> | <pre> | ||
/ | /caps-man remote-cap print detail | ||
/caps-man datapath print detail | |||
/ip dhcp-server print detail | |||
/ip address print | |||
</pre> | </pre> | ||
Confirm both CAPs connected and Guest DHCP bound to BWF.KitsNetG. | |||
On Able and Baker: | |||
<pre> | <pre> | ||
/interface wireless cap print | |||
</pre> | </pre> | ||
Verify: | |||
<pre> | <pre> | ||
enabled: yes | |||
lock-to-caps-man: no | |||
caps-man-addresses: 192.168.15.6 | |||
</pre> | </pre> | ||
On Absolut: | |||
<pre> | <pre> | ||
/caps-man manager print | /caps-man manager print | ||
/caps-man datapath print detail | |||
/caps-man provisioning print detail | |||
</pre> | </pre> | ||
---- | ---- | ||
== Phase | === Phase 1 — Prepare Absolut === | ||
Apply the interim Absolut migration patch which: | |||
* enables CAPsMAN | |||
* creates temporary Guest bridge | |||
* creates EoIP tunnel | |||
* sets Guest datapath to central forwarding | |||
* fixes Baker provisioning | |||
---- | |||
=== Phase 2 — Prepare Courvoisier === | |||
Apply the interim Guest transport patch. | |||
This creates the matching EoIP interface and adds it to BWF.KitsNetG. | |||
---- | ---- | ||
== Phase | === Phase 3 — Migrate Able === | ||
<pre> | <pre> | ||
/caps-man | /interface wireless cap set caps-man-addresses=<ABSOLUT_IP> | ||
</pre> | </pre> | ||
Validate on Absolut: | |||
<pre> | <pre> | ||
/caps-man remote-cap print | |||
/caps-man interface print | /caps-man interface print | ||
/caps-man registration-table print | /caps-man registration-table print | ||
</pre> | </pre> | ||
Rollback if necessary: | |||
<pre> | <pre> | ||
/caps-man | /interface wireless cap set caps-man-addresses=192.168.15.6 | ||
</pre> | </pre> | ||
---- | ---- | ||
== Phase | === Phase 4 — Migrate Baker === | ||
Repeat the same command on Baker. | |||
---- | ---- | ||
== Phase | === Phase 5 — Retire Courvoisier CAPsMAN === | ||
<pre> | <pre> | ||
| Line 282: | Line 193: | ||
</pre> | </pre> | ||
Then re‑lock the CAPs. | |||
---- | ---- | ||
== Phase | === Phase 6 — Final cleanup later === | ||
After the off‑CHR Guest path exists: | |||
# Apply Absolut final controller patch | |||
# Apply Courvoisier cleanup patch | |||
# Verify DHCP and isolation | |||
---- | ---- | ||
== | == Scope notes == | ||
Included: | |||
* CAPsMAN migration | |||
* Temporary Guest bridge | |||
* Baker provisioning fix | |||
Deferred: | |||
* | * VLAN redesign | ||
* | * IoT policy redesign | ||
* | * channel plan changes | ||
Revision as of 18:05, 12 March 2026
1 CAPsMAN Migration Plan (Interim → Final)[edit | edit source]
Courvoisier → Absolut (CHR)
This revision reflects the updated priority:
- Complete the CAPsMAN migration first
- Temporary Guest-path inefficiency during migration is acceptable
- By the final state, client traffic must stay off Absolut
- Courvoisier must continue serving the KitsNetGN guest DHCP scope
- Main SSID DHCP continues to come from radix.kitsnet.us (192.168.15.1)
- Avoid mixing large redesign work into the controller cutover
1.1 Why this staged plan is needed[edit | edit source]
The current configuration shows:
- Courvoisier central‑forwards Guest to BWF.KitsNetG and serves Guest DHCP there.
- Main SSID traffic lives on the main bridge where Radix provides DHCP.
- Absolut currently has datapaths configured for local forwarding and does not yet replicate the Guest bridge design.
- Baker 2.4 GHz provisioning lacks the IoT SSID compared with Able.
Because of this the migration uses two stages:
- Interim state – Guest traffic temporarily traverses Absolut but is bridged back to Courvoisier so DHCP remains there.
- Final state – Guest traffic no longer traverses Absolut once an off‑CHR L2 path exists.
1.2 Stage A — Interim Migration State[edit | edit source]
1.2.1 Design intent[edit | edit source]
- KitsNet – locally forwarded; DHCP from Radix on the LAN
- KitsNetIN – unchanged during migration
- KitsNetGN – temporarily central‑forwarded via Absolut then bridged back to Courvoisier
This keeps the network functional while moving CAPsMAN.
1.2.2 Interim prerequisites[edit | edit source]
- Import Courvoisier CAPsMAN certificate and CA into Absolut
- Enable CAPsMAN on Absolut
- Create temporary Guest EoIP link between Absolut and Courvoisier
- Set DP.KitsNetG to central forwarding during migration
- Keep DP.KitsNet locally forwarded
- Correct Baker 2.4 GHz provisioning symmetry
1.2.3 Interim cutover sequence[edit | edit source]
- Prepare Guest EoIP bridge on both routers
- Verify Absolut CAPsMAN configuration
- Move Able to Absolut
- Validate Able
- Move Baker to Absolut
- Validate Baker
- Disable CAPsMAN on Courvoisier
- Re‑lock CAPs
1.2.4 Interim success criteria[edit | edit source]
- Able and Baker show Run on Absolut
- KitsNet clients obtain DHCP from Radix
- KitsNetGN clients obtain DHCP from Courvoisier
- IoT devices remain functional
- Only Guest traffic temporarily traverses Absolut
1.3 Stage B — Final Controller‑Only State[edit | edit source]
1.3.1 Design intent[edit | edit source]
By the end state, Absolut acts only as the CAPsMAN controller.
Requirements:
- DP.KitsNetG changed back to local‑forwarding=yes
- Temporary EoIP bridge removed
- Guest L2 path provided elsewhere on the wired network
1.3.2 Final transition sequence[edit | edit source]
- Prepare off‑CHR Guest L2 transport
- Change DP.KitsNetG back to local forwarding
- Remove temporary EoIP bridge on Absolut
- Remove EoIP on Courvoisier
- Validate Guest DHCP and isolation
1.3.3 Final success criteria[edit | edit source]
- CAPs remain attached to Absolut
- Main SSID DHCP still provided by Radix
- Guest DHCP still provided by Courvoisier
- No client traffic passes through Absolut
- Temporary EoIP removed
1.4 Detailed Execution[edit | edit source]
1.4.1 Phase 0 — Pre‑checks[edit | edit source]
On Courvoisier:
/caps-man remote-cap print detail /caps-man datapath print detail /ip dhcp-server print detail /ip address print
Confirm both CAPs connected and Guest DHCP bound to BWF.KitsNetG.
On Able and Baker:
/interface wireless cap print
Verify:
enabled: yes lock-to-caps-man: no caps-man-addresses: 192.168.15.6
On Absolut:
/caps-man manager print /caps-man datapath print detail /caps-man provisioning print detail
1.4.2 Phase 1 — Prepare Absolut[edit | edit source]
Apply the interim Absolut migration patch which:
- enables CAPsMAN
- creates temporary Guest bridge
- creates EoIP tunnel
- sets Guest datapath to central forwarding
- fixes Baker provisioning
1.4.3 Phase 2 — Prepare Courvoisier[edit | edit source]
Apply the interim Guest transport patch.
This creates the matching EoIP interface and adds it to BWF.KitsNetG.
1.4.4 Phase 3 — Migrate Able[edit | edit source]
/interface wireless cap set caps-man-addresses=<ABSOLUT_IP>
Validate on Absolut:
/caps-man remote-cap print /caps-man interface print /caps-man registration-table print
Rollback if necessary:
/interface wireless cap set caps-man-addresses=192.168.15.6
1.4.5 Phase 4 — Migrate Baker[edit | edit source]
Repeat the same command on Baker.
1.4.6 Phase 5 — Retire Courvoisier CAPsMAN[edit | edit source]
/caps-man manager set enabled=no
Then re‑lock the CAPs.
1.4.7 Phase 6 — Final cleanup later[edit | edit source]
After the off‑CHR Guest path exists:
- Apply Absolut final controller patch
- Apply Courvoisier cleanup patch
- Verify DHCP and isolation
1.5 Scope notes[edit | edit source]
Included:
- CAPsMAN migration
- Temporary Guest bridge
- Baker provisioning fix
Deferred:
- VLAN redesign
- IoT policy redesign
- channel plan changes