當前位置:
首頁 > 最新 > 使用 OctoDNS 啟用 DNS 分割權威

使用 OctoDNS 啟用 DNS 分割權威

大型 DNS 提供商在其服務中構建了多級冗餘,出現導致中斷的問題時,可以採取措施來減輕其影響。最佳選擇之一是把你的區域的權威服務分割到多個服務提供商中。

-- Ross Mcfarland

本文導航

配置

44%

同步

60%

總結

86%

編譯自https://githubengineering.com/enabling-split-authority-dns-with-octodns/

作者Ross Mcfarland

譯者geekpi

構建一個健壯的系統需要為故障而設計。作為 GitHub 的網站可靠性工程師(SRE),我們一直在尋求通過冗餘來幫助緩解問題,今天將討論最近我們所做的工作,以便支持你通過 DNS 來查找我們的伺服器。

大型DNS

[1]

提供商在其服務中構建了多級冗餘,出現導致中斷的問題時,可以採取措施來減輕其影響。最佳選擇之一是把你的區域zone的權威服務分割到多個服務提供商中。啟用分割權威split authority很簡單,你只需在域名註冊商配置兩套或多套你區域的名稱伺服器

[2]

,然後 DNS 請求將分割到整個列表中。但是,你必須在多個提供商之間對這些區域的記錄保持同步,並且,根據具體情況這可能要麼設置複雜,要麼是完全手動的過程。

上面的查詢是向TLD 名稱伺服器

[3]

詢問 的 記錄。它返回了在我們在域名註冊商中配置的值,在本例中,一共有兩個 DNS 服務提供商,每個四條記錄。如果其中一個提供商發生中斷,那麼其它的仍有希望可以服務請求。我們在各個地方同步記錄,並且可以安全地修改它們,而不必擔心數據陳舊或狀態不正確。

完整地配置分割權威的最後一部分是在兩個 DNS 服務提供商中將所有名稱伺服器作為頂層 記錄添加到區域的根中。

在 GitHub,我們有幾十個區域和數千條記錄,而大多數這些區域並沒有關鍵到需要冗餘,因此我們只需要處理一部分。我們希望有能夠在多個 DNS 服務提供商中保持這些記錄同步的方案,並且更一般地管理內部和外部的所有 DNS 記錄。所以今天我們宣布了OctoDNS

[4]

配置

OctoDNS 能夠讓我們重新打造我們的 DNS 工作流程。我們的區域和記錄存儲在 Git 倉庫的配置文件中。對它們的變更使用GitHub 流

[5]

,並像個站點一樣用分支部署

[6]

。我們甚至可以做個 「空」 部署來預覽哪些記錄將在變更中修改。配置文件是 yaml 字典,每個區域一個,它的頂層的鍵名是記錄名稱,鍵值是 ttl、類型和類型特定的數據。例如,當包含在區域文件 中時,以下配置將創建 的 記錄。

配置的第二部分將記錄數據的源映射到 DNS 服務提供商。下面的代碼片段告訴 OctoDNS 從 提供程序載入區域 ,並將其結果同步到 和 。

同步

一旦我們的配置完成,OctoDNS 就可以評估當前的狀態,並建立一個計劃,其中列出將需要將目標狀態與源相匹配的一組更改。在下面的例子中, 是一個新的記錄,所以所需的操作是在兩者中創建記錄。

默認情況下 處於模擬運行模式,因此不會採取任何行動。一旦我們審閱了變更,並對它們感到滿意,我們可以添加 `--doit 標誌並再次運行命令。OctoDNS 將繼續它的處理流程,這一次將在 Route53 和 Dynect 中進行必要的更改,以便創建新的記錄。

此刻,在兩個 DNS 服務提供商里我們有了相同的數據記錄,並可以輕鬆地分割我們的 DNS 請求給它們,並知道它們將提供準確的結果。當我們直接運行上面的 OctoDNS 命令時,我們的內部工作流程依賴於部署腳本和 chatops。你可以在README 的工作流程部分

[7]

中找到更多信息。

總結

我們認為大多數網站可以從分割權威中受益,並且希望用OctoDNS

[8]

,其中最大的障礙已被掃除。即使對分割權威不感興趣,OctoDNS 仍然值得一看,因為它將基礎設施即代碼

[9]

的好處帶給了 DNS。

想幫助 GitHub SRE 團隊解決有趣的問題嗎?我們很樂意加入我們。在這裡申請

[10]

via: https://githubengineering.com/enabling-split-authority-dns-with-octodns/

作者:Ross McFarland譯者:geekpi校對:wxy

本文由LCTT原創編譯,Linux中國榮譽推出

LCTT 譯者

geekpi

共計翻譯:535篇

貢獻時間:1210 天

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux中國 的精彩文章:

Kubernetes 是什麼?
Oracle 終於幹掉了 Sun!

TAG:Linux中國 |