Domain-Name-System

2 用於高可用性的不同公共地址

  • September 20, 2021

這是我第一次在這裡提出問題,我想知道是否可以將兩個不同的 ISP 公共 IP 連接到一個系統以實現高可用性?

例如,如果我們的 ISP 1 離線,則第二個 ISP 將可用,就像 google 和 youtube 有不同的公共地址一樣,我只是不知道在哪裡配置它。

我們目前使用的是fortinet 300D。

是的,但是當其中一個系統出現故障時,您如何實現這一點會影響使用者體驗。

最簡單的是,您可以在面向外部的 DNS 中輸入 2 個地址 A 記錄,使用者將被發送到這兩個地址(稱為循環 DNS 負載平衡)。這不是特別好,因為這意味著當其中一個地址不可用時,大約一半的使用者連接將失敗。這也是低效的,因為一個 ISP 的客戶端可以通過另一個 ISP 發送,或者通過具有不太理想的路由的 ISP。客戶端應用程序和 DNS 記憶體可能會延遲客戶端獲取工作系統的地址,因此失敗的客戶端往往會在相當長的時間內失敗,而無需干預以重新啟動應用程序和刷新 DNS 記憶體。如果您保持 DNS TTL 較短並且不介意短暫的中斷,您可以在該地址不提供服務時手動禁用該地址,

為了使這一點更加智能,您需要讓外部系統檢查您的服務是否可用,並自動更新 DNS 記錄以將使用者指向工作系統。進一步的改進使 DNS 系統直接連接到後端監控,以將使用者引導到負載較少的系統。儘管是自動化的,但仍然存在一些使用者仍然會看到失敗的使用者體驗。

這些都不是特定於您的防火牆的,它只是為兩個 ISP 提供兩個外部介面。請注意,無法通過 ISP2 路由 ISP1 的流量,反之亦然,因為 Internet 路由只會丟棄此流量。您不能“交叉連接”兩個 ISP 並期望任何東西都能正常工作。

大型企業一般不會單獨依賴 DNS 輪詢。相反,他們將轉移到他們自己的網路(或合作夥伴網路),並讓 ISP 在稱為對等互連的系統中路由到他們的網路。公司網路可能有許多對等點,由分佈在區域到全球範圍內的多個 ISP 組成。通過交換路由資訊,客戶端從他們的 ISP 通過目前工作的 ISP 路由到公司網路。當網路無法訪問時,這仍然會導致短暫的中斷,但是這些系統為企業網路提供了極好的冗餘,即使在鏈路中斷期間也可以訪問。

其他更複雜的複雜解決方案是可能的,但不在 StackExchange 答案的範圍內。例如:

  • 將負載均衡器放置在高度可靠的系統(Azure、AWS 等)上,並讓它將流量轉發到“啟動”的受監控地址。
  • 使用基於 VPN 的對等點(有時稱為隧道代理)獲取獨立於 ISP 的外部 IP,並允許 VPN 隧道跨越兩個 ISP
  • 將整個系統移動到高可用性位置

引用自:https://serverfault.com/questions/1078059