關於預設路由/網關的網路冗餘

關於預設路由/網關的網路冗餘

我有兩個 ISP(主要是 24.xxx 上的 100Mi 電纜 [快速但不可靠],我的備份是 70.xxx 上的 1.5Mi DSL)以實現冗餘和可靠性。我有專用的 Red Hat Linux 路由器防火牆連接到每個服務,這些防火牆透過 UPS 供電。每個防火牆/路由器的 LAN 端連接到 24 連接埠交換器以及我家庭網路上的其餘設備,包括房屋兩端不同通道上具有相同 SSID 的兩個 WiFi 存取點。

我的問題有兩個部分;

1) 如果主路由器上的服務失敗(這種情況似乎每月發生幾次,幾乎總是在周六早上),如何配置Windows/iOS/android/linux/solaris 用戶端以故障轉移到第二個路由器?

2) 當服務恢復時,如何通知客戶端重新使用主路由器?

是否可以在提供 DHCP 服務時僅列出兩個路由器,然後讓客戶端選擇它需要的內容?這看起來可能適用於第 1) 部分,但對第 2) 部分沒有任何作用,除非我在主資料庫還原聯機時手動/假使備份連線失敗。

最終,我的目標是維持所有裝置的網路服務,任何服務中斷的中斷時間不超過兩分鐘,每次發生時都無需觸摸或重新配置任何用戶端或路由器(手動)。

如果我知道手冊的名稱,我會很高興 RTFM。預先感謝您的任何建議。

答案1

有很多方法可以給這隻貓剝皮,但keepalived可能是選項

keepalived 是一個VRRP實現,這意味著您可以定義屬於一個或另一個路由器的“虛擬”IP。通常,您會指定一位為主,另一位為輔助。如果主伺服器無法使用,則輔助伺服器將獲得 IP 位址的所有權。

在您的場景中,這將是您的客戶端網關 IP。這樣,它們總是與相同的 IP 位址通信,根據哪個是主路由器,該 IP 位址會轉到第一個或第二個路由器。

如果主路由器關閉,這會自動導致輔助路由器接管 - 主路由器和輔助路由器交換「hello」封包,一旦輔助路由器不再收到主路由器的訊息,它就會接管 IP。

然而,您需要更多的東西來監視鏈接,並讓主站將其自身置於不可用模式 - 您可以使用“跟踪腳本”來做到這一點。

例如,這是主站的配置:

vrrp_instance RouterVRRP {
  state MASTER
  interface eth0
  virtual_router_id 50
  priority 200
  advert_int 1
  virtual_ipaddress {
    10.10.10.100/32 dev eth0
  }
  track_script {
    check_google
  }
}

然後是軌跡腳本定義:

vrrp_script check_google {
  script       "/scripts/pinggoogle.sh"
  interval 3   # check every 3 seconds
  fall 3       # require 3 fails for down
  rise 2       # require 2 successes back up
}

該腳本將 ping google 並傳回 0 表示一切正常,傳回 1 表示失敗。

相關內容