← Alle Beiträge

Dual ISP Failover auf dem Juniper SRX mit RPM-Probes und Routing Instances

Wie ich zwei ISPs (Telekom VDSL + Vodafone Kabel) mit automatischem Failover über RPM-Probes, IP-Monitoring, Policy-Options und Routing Instances konfiguriert habe.

Ali Sharif
Netzwerkadmin · Frankfurt

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

Dual ISP Topologie — ISP-Primary über ge-0/0/0 (192.168.178.1/24), ISP-Secondary über ge-0/0/2 (192.168.179.1/24), beide an den SRX, der über ge-0/0/4 ins LAN geht

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.

Quellen