如何使用動態 DNS 管理冗餘 ISP
我試圖通過添加備份 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 地址,我不確定如何繼續。我有兩個主要問題:
- 我希望 ISP 1 成為主要的(它具有更好的連接),但如果 1 不可用,我想回退到 ISP 2。我將伺服器用於 VoIP 以及 HTTP 和 SSH。VoIP 需要具有相當高的可用性(因此需要冗餘 ISP)。但是,我不知道如何實現這樣的故障轉移。
- 如何使兩個 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 條目相關聯。