2 不同的公共地址以實現高可用性

2 不同的公共地址以實現高可用性

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

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

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

答案1

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

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

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

這些都不是特定於您的防火牆的,防火牆只是向兩個 ISP 提供兩個外部介面。請注意,無法透過 ISP2 路由 ISP1 的流量,反之亦然,因為網際網路路由只會丟棄此流量。您不能「交叉連接」兩個 ISP 並期望一切正常。

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

其他更複雜的複雜解決方案也是可能的,但超出了 StackExchange 答案的範圍。舉例來說:

  • 將負載平衡器放置在高度可靠的系統(Azure、AWS 等)上,並將流量轉送到「可用」的受監控位址。
  • 使用基於 VPN 的對等點(有時稱為隧道代理)來獲取獨立於 ISP 的外部 IP,並允許 VPN 隧道穿越兩個 ISP
  • 將整個系統移至高可用性位置

答案2

從適合您需求的提供者購買虛擬機器(可能是 cloudflare 等級?),在那裡設定虛擬防火牆,並從本地站點建立多個 VPN,以進行綁定並用於虛擬路由(考慮 MPTCP 或類似的) 。

本機系統的網路連線將是冗餘的,可以有任意數量的連結(不同的供應商、多種技術),並且每個連結都有一個到虛擬防火牆的 VPN。

您將透過託管虛擬防火牆從本機系統發布所需的服務。

根據可用性要求,您可以新增本機 WAN 連結、虛擬防火牆頻寬或選擇更可靠的虛擬機器託管提供者。

相關內容