Da meine Frau und ich beide remote arbeiten, sind wir auf eine stabile Internetverbindung angewiesen. Deshalb haben wir uns zwei verschiedene Internetanschlüsse von zwei verschiedenen ISPs mit zwei verschiedenen Medien zugelegt — VDSL über die Telekom und Kabel über Vodafone. So sind wir bei einem Ausfall eines Anbieters oder Mediums abgesichert.
Ziel: automatischer Failover ohne manuelle Eingriffe, ohne Router-Neustart — und automatische Rückkehr auf den primären Link sobald er wieder stabil ist.
Topologie

TLDR — Was konfiguriert wird
- RPM-Probes für den primären ISP (Google DNS + Quad9) mit
successive-loss 3 - IP-Monitoring auf Basis der RPM-Probes — bei Ausfall wird eine Preferred-Route aktiviert
- Policy-Options zum Export der Default-Routes aus den Routing Instances
- Separate Routing Instance pro ISP (
ISP-Primary,ISP-Secondary) - Route-Import damit der Traffic aus der Default Instance über den Backup-ISP fließt
- Statische Routen für die ISP-Subnetze in der Default Instance
Konfiguration
set services rpm probe ISP-Primary test GOOGLE-DNS probe-type icmp-ping
set services rpm probe ISP-Primary test GOOGLE-DNS target address 8.8.8.8
set services rpm probe ISP-Primary test GOOGLE-DNS probe-count 3
set services rpm probe ISP-Primary test GOOGLE-DNS probe-interval 2
set services rpm probe ISP-Primary test GOOGLE-DNS test-interval 5
set services rpm probe ISP-Primary test GOOGLE-DNS routing-instance ISP-Primary
set services rpm probe ISP-Primary test GOOGLE-DNS thresholds successive-loss 3
set services rpm probe ISP-Primary test GOOGLE-DNS hardware-timestamp
set services rpm probe ISP-Primary test QUAD9-DNS probe-type icmp-ping
set services rpm probe ISP-Primary test QUAD9-DNS target address 9.9.9.9
set services rpm probe ISP-Primary test QUAD9-DNS probe-count 3
set services rpm probe ISP-Primary test QUAD9-DNS probe-interval 2
set services rpm probe ISP-Primary test QUAD9-DNS test-interval 3
set services rpm probe ISP-Primary test QUAD9-DNS routing-instance ISP-Primary
set services rpm probe ISP-Primary test QUAD9-DNS thresholds successive-loss 3
set services rpm probe ISP-Primary test QUAD9-DNS hardware-timestamp
set services ip-monitoring policy HELLO-IS-ISP-Primary-OKAY match rpm-probe ISP-Primary
set services ip-monitoring policy HELLO-IS-ISP-Primary-OKAY then preferred-route route 0.0.0.0/0 next-hop 192.168.179.1
set policy-options policy-statement ipv6-default term 0 from route-filter ::/0 exact
set policy-options policy-statement ipv6-default term 0 then accept
set policy-options policy-statement ipv4-default-telekom term 0 from instance ISP-Secondary
set policy-options policy-statement ipv4-default-telekom term 0 from route-filter 0.0.0.0/0 exact
set policy-options policy-statement ipv4-default-telekom term 0 then accept
set policy-options policy-statement ipv4-default-vodafone term 0 from instance ISP-Primary
set policy-options policy-statement ipv4-default-vodafone term 0 from route-filter 0.0.0.0/0 exact
set policy-options policy-statement ipv4-default-vodafone term 0 then accept
set routing-instances ISP-Secondary interface ge-0/0/2.0
set routing-instances ISP-Secondary instance-type virtual-router
set routing-instances ISP-Secondary routing-options static route 0.0.0.0/0 qualified-next-hop 192.168.179.1
set routing-instances ISP-Primary interface ge-0/0/0.0
set routing-instances ISP-Primary instance-type virtual-router
set routing-instances ISP-Primary routing-options static route 0.0.0.0/0 qualified-next-hop 192.168.178.1
set routing-instances ISP-Primary routing-options instance-export ipv6-default
set routing-instances ISP-Primary routing-options instance-export ipv4-default-vodafone
set routing-options static route 192.168.179.0/24 next-table ISP-Secondary.inet.0
set routing-options static route 192.168.178.0/24 next-table ISP-Primary.inet.0
set routing-options instance-import ipv6-default
set routing-options instance-import ipv4-default-vodafone
Wie es funktioniert
Sobald der primäre ISP ausfällt, schlagen die RPM-Probes nach drei aufeinanderfolgenden Verlusten an. Das IP-Monitoring-Policy greift und aktiviert die Preferred-Route über den sekundären ISP. Sobald der primäre ISP wieder stabil läuft und drei Probes erfolgreich sind, wird die Preferred-Route wieder zurückgezogen — automatisch.
Der frustrierendste Teil war, das Setup nur nachts nach 23 Uhr zu testen, wenn meine Frau nicht arbeitet. Aber es hat sich gelohnt.