Domain-Name-System

如何使用動態 DNS 管理冗餘 ISP

  • December 16, 2018

我試圖通過添加備份 ISP 使我的小型企業網路更加強大。我不知道如何管理入站連接的 DNS。我的網路的簡化視圖如下所示:

+-------+    +-------+
| ISP 1 |    | ISP 2 |
+-------+    +-------+
   |           |
+-----------------+
| Dual WAN Router |
+-----------------+
         |
   +----------+
   |  Server  |
   +----------+

當我只有 1 個 ISP 時,我只需要擔心一個 WAN IP 地址,我只需在動態 IP 更改時更新我的 DNS A 記錄。我正在使用 AWS (Route 53) 作為 DNS,因此編寫腳本來獲取您目前的 IP 然後使用他們的 CLI 工具相應地更新您的 DNS 記錄非常容易。

現在我有兩個 WAN IP 地址,我不確定如何繼續。我有兩個主要問題:

  1. 我希望 ISP 1 成為主要的(它具有更好的連接),但如果 1 不可用,我想回退到 ISP 2。我將伺服器用於 VoIP 以及 HTTP 和 SSH。VoIP 需要具有相當高的可用性(因此需要冗餘 ISP)。但是,我不知道如何實現這樣的故障轉移。
  2. 如何使兩個 DNS 記錄保持最新?只需一個 ISP,我就可以使用如下命令可靠地確定來自伺服器的 WAN IP dig +short myip.opendns.com @resolver1.opendns.com:對於兩個 ISP,我無法想像如何從伺服器獲取兩者的 IP。

#1的想法

我已經閱讀了有關具有多個 A 記錄的 DNS 循環法,但我發現它在任何地方都提到它是不推薦的。另一個選項似乎是 BGP,但我不明白,我覺得我沒有實現它所需的東西(這篇文章似乎適用)。

#1 的另一個解決方案可能是使用域指向的單個 IP 的負載均衡器。然後,該負載均衡器根據一些健康檢查選擇將流量路由到哪個 ISP。問題是這需要與協議無關(即與 VoIP 流量以及 HTTP 等無縫協作)。這就是為什麼 DNS 級別的解決方案看起來很有吸引力的原因。

我偶然發現了這篇看起來很有希望的 AWS 部落格文章,但是當我試圖弄清楚如何在執行狀況檢查和各種相應的 DNS 記錄中保持動態 IP 為最新時,我的頭腦爆炸了。

閱讀這篇文章後,在我的水平上執行此操作的“正確”方法似乎是這樣的連結平衡器但該系列中最便宜的型號約為 1,200 美元,這比我想要的要多一點。另外,當它從 ISP 獲取動態 IP 時,如何將我的域的名稱伺服器指向我的連結平衡器,我仍然有點迷茫。

#2的想法

我想我可以將我的雙 WAN 路由器配置為在 IP 更改時呼叫 webhook,但這實現起來有點複雜。

是否有一些我缺少的靈丹妙藥解決方案?

這取決於您的雙 WAN 路由器的功能,但我相信最直接的解決方案可能是讓路由器僅在檢測到 ISP/WAN 1 關閉時才使用 ISP/WAN 2。這樣您就可以擁有伺服器及其動態 DNS 腳本;當 WAN1 失敗時,它將更新相同的記錄以解析為 WAN2 的公共 IP。

當然,這最多需要TTL幾秒鐘才能生效,但是TTL這樣的短暫300時間不會導致停機時間過長。

我將AWS Route53執行狀況檢查用於入站 DNS 解析和 Internet 故障轉移。

創建健康檢查。

在此處輸入圖像描述

在此處輸入圖像描述

為每個服務創建一個公共 DNS 條目。

在此處輸入圖像描述

將執行狀況檢查與 DNS 條目相關聯。

在此處輸入圖像描述

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