搜尋
首頁系統教程LinuxOctoDNS 的使用方法和 DNS 分割權威配置

OctoDNS 的使用方法和 DNS 分割權威配置

Jan 02, 2024 pm 08:30 PM
linuxlinux教程紅帽linux系統linux指令linux認證紅帽linuxlinux視頻

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

大型 DNS 供應商在其服務中建構了多層冗餘,當出現導致中斷的問題時,可以採取措施來減輕其影響。最佳選擇之一是把你的區域的權威服務分割到多個服務提供者。啟用分割權威很簡單,你只需在網域註冊商配置兩套或多套你區域的名稱伺服器,然後 DNS 請求將分割到整個清單中。但是,你必須在多個提供者之間對這些區域的記錄保持同步,並且,根據具體情況這可能要么設置複雜,要么是完全手動的過程。

$ dig NS github.com. @a.gtld-servers.net.
...
;; QUESTION SECTION:
;github.com. IN NS
;; AUTHORITY SECTION:
github.com. 172800 IN NS ns4.p16.dynect.net.
github.com. 172800 IN NS ns-520.awsdns-01.net.
github.com. 172800 IN NS ns1.p16.dynect.net.
github.com. 172800 IN NS ns3.p16.dynect.net.
github.com. 172800 IN NS ns-421.awsdns-52.com.
github.com. 172800 IN NS ns-1283.awsdns-32.org.
github.com. 172800 IN NS ns2.p16.dynect.net.
github.com. 172800 IN NS ns-1707.awsdns-21.co.uk.
...

上面的查詢是向 TLD 名稱伺服器 詢問 github.com. 的 NS 記錄。它傳回了我們在網域名稱註冊商中配置的值,在本例中,一共有兩個 DNS 服務供應商,每個四筆記錄。如果其中一個提供者發生中斷,那麼其它的仍有希望可以服務請求。我們在各個地方同步記錄,並且可以安全地修改它們,而不必擔心資料陳舊或狀態不正確。

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

$ dig NS github.com. @ns1.p16.dynect.net.
...
;; QUESTION SECTION:
;github.com. IN NS
;; ANSWER SECTION:
github.com. 551 IN NS ns1.p16.dynect.net.
github.com. 551 IN NS ns2.p16.dynect.net.
github.com. 551 IN NS ns-520.awsdns-01.net.
github.com. 551 IN NS ns3.p16.dynect.net.
github.com. 551 IN NS ns-421.awsdns-52.com.
github.com. 551 IN NS ns4.p16.dynect.net.
github.com. 551 IN NS ns-1283.awsdns-32.org.
github.com. 551 IN NS ns-1707.awsdns-21.co.uk.

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

配置

OctoDNS 能夠讓我們重新打造我們的 DNS 工作流程。我們的區域和記錄儲存在 Git 倉庫的設定檔中。對它們的變更使用 GitHub 流,並像個網站一樣用分支部署。我們甚至可以做個 “空” 部署來預覽哪些記錄會在變更中修改。設定檔是 yaml 字典,每個區域一個,它的頂層的鍵名是記錄名稱,鍵值是 ttl、類型和類型特定的資料。例如,當包含在區域檔案 github.com.yaml 中時,下列配置將建立 octodns.github.com. 的 A 記錄。

octodns:
type: A
values:
- 1.2.3.4
- 1.2.3.5

配置的第二部分將記錄資料的來源對應到 DNS 服務提供者。下面的程式碼片段告訴 OctoDNS 從 config 提供者載入區域 github.com,並將其結果同步到 dyn 和 route53。

zones:
github.com.:
sources:
- config
targets:
- dyn
- route53
同步

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

$ octodns-sync --config-file=./config/production.yaml
...
********************************************************************************
* github.com.
********************************************************************************
* route53 (Route53Provider)
* Create
* Summary: Creates=1, Updates=0, Deletes=0, Existing Records=0
* dyn (DynProvider)
* Create
* Summary: Creates=1, Updates=0, Deletes=0, Existing Records=0
********************************************************************************
...

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

$ octodns-sync --config-file=./config/production.yaml --doit
...

此刻,在兩個 DNS 服務提供者裡我們有了相同的資料記錄,並且可以輕鬆分割我們的 DNS 請求給它們,並知道它們將提供準確的結果。當我們直接執行上面的 OctoDNS 命令時,我們的內部工作流程依賴部署腳本和 chatops。你可以在 README 的工作流程部分中找到更多資訊。

總結

我們認為大多數網站可以從分割權威中受益,並且希望使用 OctoDNS,其中最大的障礙已被掃除。即使對分割權威不感興趣,OctoDNS 仍然值得一看,因為它將基礎設施即程式碼的好處帶給了 DNS。

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

以上是OctoDNS 的使用方法和 DNS 分割權威配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:Linux就该这么学。如有侵權,請聯絡admin@php.cn刪除
Linux實際上有什麼好處?Linux實際上有什麼好處?Apr 12, 2025 am 12:20 AM

Linux適用於服務器、開發環境和嵌入式系統。 1.作為服務器操作系統,Linux穩定高效,常用於部署高並發應用。 2.作為開發環境,Linux提供高效的命令行工具和包管理系統,提升開發效率。 3.在嵌入式系統中,Linux輕量且可定制,適合資源有限的環境。

在Linux上掌握道德黑客的基本工具和框架在Linux上掌握道德黑客的基本工具和框架Apr 11, 2025 am 09:11 AM

簡介:通過基於Linux的道德黑客攻擊數字邊界 在我們越來越相互聯繫的世界中,網絡安全至關重要。 道德黑客入侵和滲透測試對於主動識別和減輕脆弱性至關重要

如何學習Linux基礎知識?如何學習Linux基礎知識?Apr 10, 2025 am 09:32 AM

Linux基礎學習從零開始的方法包括:1.了解文件系統和命令行界面,2.掌握基本命令如ls、cd、mkdir,3.學習文件操作,如創建和編輯文件,4.探索高級用法如管道和grep命令,5.掌握調試技巧和性能優化,6.通過實踐和探索不斷提陞技能。

Linux最有用的是什麼?Linux最有用的是什麼?Apr 09, 2025 am 12:02 AM

Linux在服務器、嵌入式系統和桌面環境中的應用廣泛。 1)在服務器領域,Linux因其穩定性和安全性成為託管網站、數據庫和應用的理想選擇。 2)在嵌入式系統中,Linux因其高度定制性和高效性而受歡迎。 3)在桌面環境中,Linux提供了多種桌面環境,滿足不同用戶需求。

Linux的缺點是什麼?Linux的缺點是什麼?Apr 08, 2025 am 12:01 AM

Linux的缺點包括用戶體驗、軟件兼容性、硬件支持和學習曲線。 1.用戶體驗不如Windows或macOS友好,依賴命令行界面。 2.軟件兼容性不如其他系統,缺乏許多商業軟件的原生版本。 3.硬件支持不如Windows全面,可能需要手動編譯驅動程序。 4.學習曲線較陡峭,掌握命令行操作需要時間和耐心。

Linux難以學習嗎?Linux難以學習嗎?Apr 07, 2025 am 12:01 AM

Linuxisnothardtolearn,butthedifficultydependsonyourbackgroundandgoals.ForthosewithOSexperience,especiallycommand-linefamiliarity,Linuxisaneasytransition.Beginnersmayfaceasteeperlearningcurvebutcanmanagewithproperresources.Linux'sopen-sourcenature,bas

Linux的5個基本組件是什麼?Linux的5個基本組件是什麼?Apr 06, 2025 am 12:05 AM

Linux的五個基本組件是:1.內核,管理硬件資源;2.系統庫,提供函數和服務;3.Shell,用戶與系統交互的接口;4.文件系統,存儲和組織數據;5.應用程序,利用系統資源實現功能。

Ubuntu Home Automation:使用開源工具建立智能的居住空間Ubuntu Home Automation:使用開源工具建立智能的居住空間Apr 05, 2025 am 09:19 AM

開啟智能家居新篇章:基於Ubuntu的開源家庭自動化系統 智能家居技術徹底改變了我們與生活空間的互動方式,為日常生活帶來了便利、安全和能源效率。從遠程控制燈光和電器,到監控安全攝像頭和自動化氣候控制,智能家居技術變得越來越普及。 然而,許多商業智能家居系統存在局限性:高昂的成本、隱私問題以及有限的兼容性。幸運的是,開源軟件解決方案結合Ubuntu的強大功能,提供了一種替代方案——允許用戶創建可定制、經濟高效且安全的智能家居生態系統。 本指南將探討如何使用Ubuntu和開源工具設置家庭自動化系統。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。