docs: add Sanctum dual-WAN failover + Uptime Kuma runbook
Omada policy-routing setup that pins each monitoring host to a specific ISP (Canal+/Airtel) so Uptime Kuma surfaces per-link failures instead of masking them behind WAN failover. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
432
Sanctum-Auto-FailOver-Uptime-Kuma.md
Normal file
432
Sanctum-Auto-FailOver-Uptime-Kuma.md
Normal file
@@ -0,0 +1,432 @@
|
||||
# Sanctum Auto FailOver with Uptime Kuma
|
||||
|
||||
# Omada Dual-WAN Monitoring Architecture
|
||||
## Airtel + Canal+ with Uptime Kuma
|
||||
|
||||
---
|
||||
|
||||
# Network Layout
|
||||
|
||||
| Device | IP | Purpose |
|
||||
|--------------|------------|-----------------|
|
||||
| Kuma-Canal | 10.10.1.50 | Monitor Canal+ |
|
||||
| Kuma-Airtel | 10.10.1.51 | Monitor Airtel |
|
||||
| Omada Gateway| 10.10.1.1 | Policy Routing |
|
||||
|
||||
---
|
||||
|
||||
# Objective
|
||||
|
||||
Detect ISP failures while maintaining Internet connectivity.
|
||||
|
||||
Requirements:
|
||||
|
||||
```
|
||||
10.10.1.50 must always test through Canal+
|
||||
10.10.1.51 must always test through Airtel
|
||||
|
||||
If Canal+ fails:
|
||||
.50 fails
|
||||
If Airtel fails:
|
||||
.51 fails
|
||||
|
||||
Internet remains available through surviving ISP.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Omada Configuration
|
||||
|
||||
## Load Balancing
|
||||
|
||||
Navigate:
|
||||
|
||||
```
|
||||
Settings
|
||||
→ Wired Networks
|
||||
→ Internet
|
||||
```
|
||||
|
||||
Configure:
|
||||
|
||||
```
|
||||
Load Balancing: Enabled
|
||||
|
||||
WAN Weight:
|
||||
Airtel = 2
|
||||
Canal+ = 1
|
||||
|
||||
Application Optimized Routing:
|
||||
Disabled
|
||||
|
||||
Link Backup:
|
||||
Disabled
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Create IP Groups
|
||||
|
||||
Navigate:
|
||||
|
||||
```
|
||||
Settings
|
||||
→ Profiles
|
||||
→ Groups
|
||||
→ IP Group
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## IP Group 1
|
||||
|
||||
Name:
|
||||
|
||||
```
|
||||
Canal-Monitor
|
||||
```
|
||||
|
||||
Type:
|
||||
|
||||
```
|
||||
IP Address
|
||||
```
|
||||
|
||||
Members:
|
||||
|
||||
```
|
||||
10.10.1.50/32
|
||||
```
|
||||
|
||||
Description:
|
||||
|
||||
```
|
||||
Canal+ Monitoring Host
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## IP Group 2
|
||||
|
||||
Name:
|
||||
|
||||
```
|
||||
Airtel-Monitor
|
||||
```
|
||||
|
||||
Type:
|
||||
|
||||
```
|
||||
IP Address
|
||||
```
|
||||
|
||||
Members:
|
||||
|
||||
```
|
||||
10.10.1.51/32
|
||||
```
|
||||
|
||||
Description:
|
||||
|
||||
```
|
||||
Airtel Monitoring Host
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# IMPORTANT
|
||||
|
||||
Correct:
|
||||
|
||||
```
|
||||
10.10.1.50/32
|
||||
10.10.1.51/32
|
||||
```
|
||||
|
||||
Wrong:
|
||||
|
||||
```
|
||||
10.10.1.50/24
|
||||
10.10.1.51/24
|
||||
```
|
||||
|
||||
A /24 includes the entire subnet.
|
||||
|
||||
A /32 includes only the specified host.
|
||||
|
||||
---
|
||||
|
||||
# Create Policy Routes
|
||||
|
||||
Navigate:
|
||||
|
||||
```
|
||||
Settings
|
||||
→ Transmission
|
||||
→ Routing
|
||||
→ Policy Routing
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Rule 1 - Canal Monitor
|
||||
|
||||
Name:
|
||||
|
||||
```
|
||||
Canal-Kuma
|
||||
```
|
||||
|
||||
Status:
|
||||
|
||||
```
|
||||
Enabled
|
||||
```
|
||||
|
||||
Protocols:
|
||||
|
||||
```
|
||||
All
|
||||
```
|
||||
|
||||
WAN:
|
||||
|
||||
```
|
||||
Canal+
|
||||
```
|
||||
|
||||
Use the other WAN port if current WAN is down:
|
||||
|
||||
```
|
||||
Disabled
|
||||
```
|
||||
|
||||
Source Type:
|
||||
|
||||
```
|
||||
IP Group
|
||||
```
|
||||
|
||||
Source:
|
||||
|
||||
```
|
||||
Canal-Monitor
|
||||
```
|
||||
|
||||
Destination Type:
|
||||
|
||||
```
|
||||
IP Group
|
||||
```
|
||||
|
||||
Destination:
|
||||
|
||||
```
|
||||
IPGroup_Any
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Rule 2 - Airtel Monitor
|
||||
|
||||
Name:
|
||||
|
||||
```
|
||||
Airtel-Kuma
|
||||
```
|
||||
|
||||
Status:
|
||||
|
||||
```
|
||||
Enabled
|
||||
```
|
||||
|
||||
Protocols:
|
||||
|
||||
```
|
||||
All
|
||||
```
|
||||
|
||||
WAN:
|
||||
|
||||
```
|
||||
Airtel
|
||||
```
|
||||
|
||||
Use the other WAN port if current WAN is down:
|
||||
|
||||
```
|
||||
Disabled
|
||||
```
|
||||
|
||||
Source Type:
|
||||
|
||||
```
|
||||
IP Group
|
||||
```
|
||||
|
||||
Source:
|
||||
|
||||
```
|
||||
Airtel-Monitor
|
||||
```
|
||||
|
||||
Destination Type:
|
||||
|
||||
```
|
||||
IP Group
|
||||
```
|
||||
|
||||
Destination:
|
||||
|
||||
```
|
||||
IPGroup_Any
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Why Failover Is Disabled
|
||||
|
||||
Correct:
|
||||
|
||||
```
|
||||
Airtel fails
|
||||
↓
|
||||
10.10.1.51 loses Internet
|
||||
↓
|
||||
Kuma reports DOWN
|
||||
```
|
||||
|
||||
Wrong:
|
||||
|
||||
```
|
||||
Airtel fails
|
||||
↓
|
||||
Traffic silently moves to Canal+
|
||||
↓
|
||||
Kuma stays UP
|
||||
↓
|
||||
Failure hidden
|
||||
```
|
||||
|
||||
Monitoring hosts must fail with their assigned ISP.
|
||||
|
||||
---
|
||||
|
||||
# Uptime Kuma Configuration
|
||||
|
||||
## Kuma-Canal
|
||||
|
||||
Host:
|
||||
|
||||
```
|
||||
10.10.1.50
|
||||
```
|
||||
|
||||
Monitor:
|
||||
|
||||
```
|
||||
1.1.1.1
|
||||
8.8.8.8
|
||||
```
|
||||
|
||||
Traffic forced through Canal+.
|
||||
|
||||
---
|
||||
|
||||
## Kuma-Airtel
|
||||
|
||||
Host:
|
||||
|
||||
```
|
||||
10.10.1.51
|
||||
```
|
||||
|
||||
Monitor:
|
||||
|
||||
```
|
||||
1.1.1.1
|
||||
8.8.8.8
|
||||
```
|
||||
|
||||
Traffic forced through Airtel.
|
||||
|
||||
---
|
||||
|
||||
# Validation Tests
|
||||
|
||||
## Test Canal+
|
||||
|
||||
Disconnect Canal+.
|
||||
|
||||
Expected:
|
||||
|
||||
```
|
||||
10.10.1.50 → DOWN
|
||||
10.10.1.51 → UP
|
||||
Internet → UP
|
||||
```
|
||||
|
||||
Reconnect Canal+.
|
||||
|
||||
Expected:
|
||||
|
||||
```
|
||||
10.10.1.50 → UP
|
||||
10.10.1.51 → UP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Test Airtel
|
||||
|
||||
Disconnect Airtel.
|
||||
|
||||
Expected:
|
||||
|
||||
```
|
||||
10.10.1.51 → DOWN
|
||||
10.10.1.50 → UP
|
||||
Internet → UP
|
||||
```
|
||||
|
||||
Reconnect Airtel.
|
||||
|
||||
Expected:
|
||||
|
||||
```
|
||||
10.10.1.51 → UP
|
||||
10.10.1.50 → UP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
If both monitors fail together:
|
||||
|
||||
Check:
|
||||
|
||||
```
|
||||
IP Groups are /32
|
||||
```
|
||||
|
||||
Check:
|
||||
|
||||
```
|
||||
Destination = IPGroup_Any
|
||||
```
|
||||
|
||||
Check:
|
||||
|
||||
```
|
||||
Use other WAN if down = Disabled
|
||||
```
|
||||
|
||||
Check:
|
||||
|
||||
```
|
||||
Application Optimized Routing = Disabled
|
||||
```
|
||||
|
||||
These four settings are responsible for most routing issues in this design.
|
||||
Reference in New Issue
Block a user