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>
433 lines
3.5 KiB
Markdown
433 lines
3.5 KiB
Markdown
# 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.
|