84 lines
No EOL
3.1 KiB
Text
84 lines
No EOL
3.1 KiB
Text
# 982 Router CGNAT Migration Script - SAFE VERSION
|
|
# This version adds the new configuration alongside the old one
|
|
# Allows gradual migration without service interruption
|
|
#
|
|
# Migration: 100.64.32.0/22 -> 100.64.48.0/20
|
|
# Matches management subnet pattern (10.10.48.0/20)
|
|
|
|
# PREPARATION PHASE - Run these first
|
|
{
|
|
# Add new CGNAT pool with expanded range
|
|
/ip pool add name=cgnat-new ranges=100.64.48.1-100.64.63.199 comment="New /20 CGNAT pool"
|
|
|
|
# Add new IP address (keep old one for now)
|
|
/ip address add address=100.64.63.254/20 interface=982 comment="New CGNAT gateway /20"
|
|
|
|
# Create temporary PPP profile for migration
|
|
/ppp profile add name=982-migrate local-address=100.64.63.253 remote-address=cgnat-new comment="Migration profile"
|
|
|
|
# Print current state
|
|
:put "New CGNAT configuration added. Current state:"
|
|
/ip pool print where name~"cgnat"
|
|
/ip address print where interface=982
|
|
/ppp profile print where name~"982"
|
|
}
|
|
|
|
# TESTING PHASE - Test with one client
|
|
{
|
|
# Change one PPPoE client to test
|
|
# Replace 'testclient' with actual username
|
|
# /ppp secret set [find name="testclient"] profile=982-migrate
|
|
|
|
# Have client reconnect and verify they get IP from new range
|
|
# Check with: /ppp active print where name="testclient"
|
|
}
|
|
|
|
# MIGRATION PHASE - Run during maintenance window
|
|
{
|
|
# Update PPPoE server to use new profile for new connections
|
|
/interface pppoe-server server set [find name=982] default-profile=982-migrate
|
|
|
|
# Force all clients to reconnect (will cause brief outage)
|
|
# /ppp active remove [find]
|
|
|
|
# Or disconnect clients gradually:
|
|
# :foreach i in=[/ppp active find] do={
|
|
# /ppp active remove $i
|
|
# :delay 1s
|
|
# }
|
|
}
|
|
|
|
# VERIFICATION COMMANDS
|
|
{
|
|
# Check active connections
|
|
:put "Active PPPoE connections by IP range:"
|
|
:put "Old range (100.64.32.x): $([:len [/ppp active find where address~"100.64.32"]])"
|
|
:put "Old range (100.64.33.x): $([:len [/ppp active find where address~"100.64.33"]])"
|
|
:put "Old range (100.64.34.x): $([:len [/ppp active find where address~"100.64.34"]])"
|
|
:put "Old range (100.64.35.x): $([:len [/ppp active find where address~"100.64.35"]])"
|
|
:put "New range (100.64.48-63.x): $([:len [/ppp active find where address~"100.64.[45][0-9]"]])"
|
|
}
|
|
|
|
# CLEANUP PHASE - Only run after ALL clients migrated
|
|
{
|
|
# Remove old configuration
|
|
# /ip address remove [find address="100.64.35.254/22"]
|
|
# /ip pool remove [find name=cgnat]
|
|
# /ppp profile remove [find name=982]
|
|
|
|
# Rename new items to standard names
|
|
# /ip pool set [find name=cgnat-new] name=cgnat comment="982 CGNAT pool /20"
|
|
# /ppp profile set [find name=982-migrate] name=982 comment=""
|
|
# /ip address set [find address="100.64.63.254/20"] comment="982 CGNAT gateway"
|
|
}
|
|
|
|
# ROLLBACK COMMANDS - If something goes wrong
|
|
{
|
|
# Revert PPPoE server to old profile
|
|
# /interface pppoe-server server set [find name=982] default-profile=982
|
|
|
|
# Remove new configuration
|
|
# /ip address remove [find address="100.64.63.254/20"]
|
|
# /ip pool remove [find name=cgnat-new]
|
|
# /ppp profile remove [find name=982-migrate]
|
|
} |