Domain-Name-System

A-記錄故障轉移?

  • April 7, 2013

我有一台 Fortigate 100D,帶有 2 個 BT Business Infinity 光纖連接,用作 WAN1 和 WAN2。

BT 線路每條都有 5 個靜態公共 IP,我的 DNS 通過 CloudFlare 託管,指向一個 WAN 連接上的靜態 IP。

(假設您在 mylesgray.com 上執行 nslookup,您將看到 217.45.201.1 作為公共 IP)。

我們希望我們的 A 記錄有冗餘(用於託管網站、VPN、ssh 等),但顯然 2x BT 線路有 2x 不同的公共 IP 集,所以如果 WAN1 出現故障,我們就死定了 - 因為地址是沒有故障轉移靜止的。

我查找了外部 DNS 故障轉移,但這對我來說似乎很混亂而且非常錯誤(循環讓我很惱火)。然後任播作為一種選擇出現了,然而,任播似乎需要整個 /24 塊或在某些 ISP 的演員陣容中甚至 /22。我們正在執行企業級路由器,因此使用 BGP 等不是問題。

除了購買 /22 塊 IP 或使用循環 DNS 之外,任何人都可以了解如何實現 DNS A-Records 的故障轉移嗎?

請注意:Anycast 並沒有真正提供 A 記錄故障轉移。您提到“外部 DNS 故障轉移”和輪詢 - 這些根本不是一回事。Roundrobin 對同一個主機名有多個 A 記錄。DNS 故障轉移是在連結斷開時將單個 A 記錄更改為不同的 IP 地址,理想情況下,在連結恢復時將其更改回來。

正如 Lukas 提到的,由於他提到的原因,DNS 故障轉移通常不是最好的方法。它確實適用於大多數使用者,但記憶體和 DNS 伺服器會延遲忽略 TTL,這會影響故障轉移到備用 IP 地址的時間。

如果您希望繼續這條路,有各種 3rd 方 DNS 服務(DNSMadeEasy、Amazon Route 53 等)提供此服務。如果各種連結平衡器(PepLink、Baraccuda)充當您的 DNS 伺服器,它們中的一些也可以執行 DNS 故障轉移的變體。根據您的環境,您還可以編寫自定義腳本來檢查連結狀態並根據需要更新 IP 地址。

除非您擁有並管理自己的 ASN 和 IP 地址塊,否則 BGP 不會為您提供任何幫助。理想的解決方案是為您自己的 IP 塊和 ASN 向您當地的區域網際網路註冊機構 (RIPE/ARIN/etc) 申請,並執行您自己的路由器來通告來自適當連結的路由。

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