附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
在 Oracle Cloud Infrastructure 中設定 BIND9 網域名稱系統
簡介
OraStage 是能源部門的領導公司,專精於可再生能源解決方案和創新的電力技術,該公司宣布將工作負載移轉至 Oracle Cloud Infrastructure (OCI) 以提升效能、擴展性及安全性。
考慮到 OraStage 概述的特定需求和條件,公司需要雲端的混合網域名稱系統 (DNS) 解決方案,而在此混合方式則代表除了 OCI DNS 服務之外,還使用自己的 Berkeley 網際網路名稱網域版本 9 (BIND9) DNS 系統,其中的最終架構會顯示在下列映像檔中。
OraStage DNS 需求:
-
該公司有數個內部網域和子網域,所有這些網域都應由其在 OCI 中的 BIND9 DNS 解析,其中 OraStage 將管理所有相關區域和記錄。其中一個網域是
orastage.com
,我們將在此教學課程中使用。因此,任何orastage.com
查詢都必須轉寄至其 BIND9。 -
在某些情況下,他們仍需要解析 OCI 原生網域 (
oraclevcn.com
、oraclecloud.com
等),而這會透過使用 OCI 專用 DNS 元件來完成:專用檢視、轉送端點和規則,以及監聽端點。 -
所有查詢都必須經過 pfSense 防火牆執行處理檢查。
-
為了避免單一故障點,OraStage 計畫使用另一個 DNS 伺服器,並利用 OCI Load Balancer 在主要和次要 DNS 之間分配查詢。
本教學課程系列將引導您逐步達成上述概述的需求,從頭開始建立整個解決方案。您可以從下列清單輕鬆導覽至每個教學課程:
-
教學課程 1:在 OCI 中設定 BIND9 DNS 。瞭解如何在運算執行處理上安裝並設定 BIND9,讓它成為 OCI 中兩個測試環境的本機 DNS 伺服器。這些環境將由「前端」和「後端」伺服器組成,每個伺服器都由個別網輻網路代管。BIND9 伺服器將處理所有導向至
orastage.com
的 DNS 查詢。 -
教學課程 2:在 OCI 的 BIND9 DNS 案例上導入高可用性。本教學課程著重於新增次要 BIND9 伺服器,以及設定網路負載平衡器 (NLB),以便在兩部伺服器之間分配 DNS 流量。
orastage.com
的 DNS 查詢將會導向 NLB IP,以平衡主要和次要 BIND9 伺服器之間的負載。如果一個伺服器無法使用,DNS 解析將繼續而不會中斷服務。 -
教學課程 3:使用 OCI DNS 解析原生網域。只著重於特定使用案例,如果需要解析原生網域 (例如
oraclevcn.com
和oraclecloud.com
),我們會在 OCI 中使用原生 DNS 元件。本教學課程中未使用 BIND9 DNS。 -
教學課程 4: 使用 pfSense 防火牆新增 DNS 架構安全。著重於在 OCI 中心 VCN 中安裝 pfSense 防火牆,並執行必要的網路組態,以透過防火牆遞送所有東西方流量,包括 DNS 查詢 (在過去的教學課程中完成) 以進行檢查。
BIND9 總覽
BIND9 (Berkeley Internet Name Domain 9 版) 是全球最廣泛使用且成熟的 DNS (網域名稱系統) 伺服器套裝軟體之一。它是由 Internet Systems Consortium (ISC) 所開發和維護。BIND9 可作為大部分網際網路 DNS 基礎架構的骨幹,為小型和大規模部署提供強大且可靠的 DNS 服務。
BIND9 彈性、健全性及廣泛的功能集,適用於各種 DNS 應用系統,從小型內部網路到網際網路上最大的公用 DNS 服務。
BIND9 的主要功能
-
DNS 通訊協定支援:支援所有主要的 DNS 功能和通訊協定,包括 IPv4 和 IPv6、DNSSEC (DNS 安全性擴充功能) 以及 TSIG (交易 SIGnature)。
-
DNSSEC (DNS 安全擴充功能):提供進階安全功能來保護 DNS 資料完整性與真實性,以防止快取中毒和詐騙等攻擊。
-
擴展性和效能:適用於小型到大型 DNS 部署,具備有效處理高查詢負載和大型區域的功能。
-
彈性和客製化:
- 高度可配置,具有微調 DNS 行為、區域管理和查詢處理的廣泛選項。
- 支援各種類型的區域,包括主區域 (主區域)、從屬區域 (次要區域) 和從屬區域。
-
動態 DNS:支援動態 DNS (DDNS),無須重新啟動伺服器,即可即時更新 DNS 記錄。
-
存取控制與安全性:
- 實作存取控制清單 (ACL),以限制對 DNS 服務的存取,並管理可以查詢或更新區域的人員。
- 支援檢視以根據查詢來源提供不同的 DNS 查詢答案。
-
日誌記錄和監控:
- 追蹤查詢、更新和伺服器效能的各種記錄功能。
- 與監控工具整合,以確保高可用性和快速疑難排解。
-
快取:提供強大的快取機制,透過快取 DNS 回應來改善效能並減少授權 DNS 伺服器的負載。
-
區域傳輸:支援使用 AXFR (完整區域傳輸) 和 IXFR (增量區域傳輸) 在 DNS 伺服器之間進行安全區域傳輸。
BIND9 的常見使用案例
-
授權 DNS 伺服器:代管網域的 DNS 記錄,提供對 DNS 查詢的授權回應。
-
遞迴 DNS 伺服器:透過遞迴查詢其他 DNS 伺服器來解析從屬端的 DNS 查詢。
-
轉寄 DNS 伺服器:將 DNS 查詢轉送至其他 DNS 伺服器,通常與快取一起使用。
-
次要 (從屬) DNS 伺服器:維護主要伺服器的區域資料複本,提供備援和負載平衡。
BIND9 的安裝和組態
-
安裝:BIND9 可安裝在各種作業系統上,包括 Linux、UNIX 和 Windows。它可以透過大多數 Linux 發行套件上的套裝程式管理程式使用,也可以從來源編譯。
-
組態:主要組態檔是
named.conf
,管理員可以在其中定義區域、存取控制、記錄日誌選項以及其他設定值。區域檔案包含每個網域的實際 DNS 記錄。
在 OCI 上使用 BIND9
有幾個原因可以讓部分客戶選擇使用和管理自己的 DNS (例如 BIND9),而不使用 Oracle Cloud Infrastructure (OCI) 管理的 DNS 服務:
-
自訂與彈性:
-
進階組態:自訂 DNS 解決方案 (例如 BIND9) 提供廣泛的可設定性,讓客戶能夠根據受管理服務可能不支援的特定需求,量身打造其 DNS 設定。
-
專業化功能:有些組織需要進階功能,例如託管服務可能未提供的特定查詢記錄日誌、詳細存取控制或自訂 DNS 記錄。
-
-
成本考量:
-
成本管理:自我管理的 DNS 可以更具成本效益,尤其是具有大量 DNS 流量的組織,因為它們可以避免與託管服務相關的變動成本。
-
可預測費用:使用自己的 DNS 伺服器可能會產生更可預測的成本,因為它們只需要管理基礎架構成本,而不需要為受管理的 DNS 使用量付費。
-
-
控制與安全性:
-
完全控制:組織可能偏好完全控制其 DNS 基礎架構,包括導入自訂安全原則、詳細記錄日誌及微點存取控制的能力。
-
資料隱私權:對於高度敏感或受規範的環境,將 DNS 流量保留在自己的網路中可能是確保資料隱私權和法規遵循的安全要求。
-
-
效能和可靠性:
-
效能最佳化:自我管理的 DNS 可讓組織根據需求設定專屬的快取、負載平衡及地理位置特定 DNS 回應,以將效能最佳化。
-
可靠性:組織可以透過管理自己的 DNS 伺服器,導入符合特定可靠性需求的高可用性組態和備援措施。
-
-
與現有基礎架構整合:
-
舊版系統:具有舊版系統的組織可能會有與其其他系統和流程深度整合的現有 DNS 基礎架構,因此您可以更輕鬆地繼續管理自己的 DNS。
-
自訂整合:自行管理 DNS 可與其他需要特定 DNS 組態或互動的自訂或第三方應用程式緊密整合。
-
-
法規與法規遵循要求:
- 法規遵循需求:有些產業具有嚴格的法規要求,必須對 IT 基礎架構 (包括 DNS) 的所有層面進行控制,才能符合法律與法規遵循標準。
-
學習和專長:
- 技能開發:有些組織偏好維護有關 DNS 管理的內部專業知識和知識,這對於疑難排解和最佳化其整體 IT 基礎架構非常有價值。
-
避免供應商鎖定:
- 避免被鎖定:透過管理自己的 DNS,組織可以避免被鎖在特定供應商的生態系統中,從而更靈活地切換供應商或移轉工作負載,而無需進行重大重新配置。
雖然 OCI 管理的 DNS 服務提供易用性、可擴展性和減少管理負荷,但這些因素強調了某些組織為何會選擇管理自己的 DNS 基礎架構。
在 OCI 中設定 BIND9 的目標
-
BIND9 和 OCI 簡介
- 瞭解 BIND9 是什麼以及它在 DNS 管理中的作用。
- 簡要說明 Oracle Cloud Infrastructure (OCI) 及其與此設定相關的主要元件。
-
先決條件與初始設定
- 識別並收集設定的必要先決條件。
- 設定用於代管 BIND9 伺服器的 OCI 執行處理 (虛擬機器)。
-
設定 OCI 環境
- 設定 OCI 中的基本網路設定值,並使用路由規則和閘道,在所有相關伺服器與從屬端之間建立適當的通訊,以及使用安全清單允許 DNS 流量。
-
在 OCI 執行處理上安裝 BIND9
- 透過 SSH 存取 OCI 執行處理。
- 安裝 BIND9 的必要套裝軟體和相依性。
-
設定 BIND9
- 設定主要 BIND9 組態檔 (
named.conf
)。 - 設定區域檔案以進行轉寄 DNS 查詢。
- 設定主要 BIND9 組態檔 (
-
啟動及管理 BIND9 服務
- 啟動 BIND9 服務,並將其配置為在啟動時啟動。
- 確認 BIND9 服務是否正確執行。
-
測試 DNS 伺服器
- 使用命令行工具 (例如 dig、host) 測試 DNS 解析。
- 確定轉寄查尋已正確設定且正常運作。
-
保護 BIND9 伺服器的安全
- 實行保護 BIND9 伺服器 (包括存取控制) 的最佳實務。
-
結論和其他資源
- 概述完成的工作。
- 提供其他資源與參考以進一步學習。
目標
-
本教學課程結束後,您將在 Oracle Cloud Infrastructure (OCI) 上執行功能性 BIND9 DNS 伺服器。您將瞭解 DNS 的基本知識以及 BIND9 的運作方式,以便在雲端環境中設定、管理及保護 BIND9 伺服器。此外,您將具備在 OCI 中進行疑難排解和維護 BIND9 DNS 設定的知識。本教學課程也可協助您提升在網路和運算服務內運作各種 OCI 元件的技能。
-
本教學課程的主要目標是讓 FE-VM (
fe.orastage.com
) 能夠查詢 BE-VM (be.orastage.com
),反之亦然,主要 DNS (primary-dns.orastage.com
) 也可以作為授權 DNS 伺服器。
最終架構
必要條件
-
存取 OCI 租用戶和管理所需網路和運算服務的權限。
-
對 OCI 網路路由和安全及其功能的基本瞭解:虛擬雲端網路 (VCN)、路由表、動態路由閘道 (DRG)、安全清單及堡壘主機。
-
對一般 Ubuntu Linux 和 DNS 的基本瞭解。
-
需有三個虛擬雲端網路 (VCN),每個虛擬雲端網路都有一個專用子網路。
- DNS-VCN:這將會代管主要 DNS 伺服器。除了次要 DNS 和網路負載平衡器之外。
- Frontend-VCN:這會代管其中一個從屬端。除了 OCI DNS 轉送器之外。
- 後端 VCN:這會代管其他從屬端。除了 OCI DNS 轉送器之外。
作業 1:設定路由與安全網路元件
工作 1.1:建立 VCN
-
請確定您已建立下列 VCN。
- DNS-VCN (
10.0.0.0/16
),包含 DNS 專用子網路 (10.0.0.0/24
)。 - Frontend-VCN (
10.1.0.0/16
),包含 FE-Private-Subnet (10.1.0.0/24
)。 - 包含 BE-Private-Subnet (
10.2.0.0/24
) 的後端 VCN (10.2.0.0/16
)。
- DNS-VCN (
-
按一下左上角的漢堡功能表 ()。
- 按一下網路。
- 按一下虛擬雲端網路。
-
我們就地可以看到 VCN,每個 VCN 只有一個私有子網路,以及附加到它的預設路由表和安全列表。
作業 1.2:建立動態路由閘道 (DRG)
DRG 是一個虛擬路由器,提供從一個 VCN 到另一個 VCN、VCN 與內部部署網路之間的專用流量路徑,甚至是具有其他雲端環境網路的 VCN。因此,它是每個 OCI 網路環境的強大關鍵元件。在本自學課程中,我們將使用它來建立同一區域中多個 VCN 之間的連接性。
-
按一下左上角的漢堡功能表 ()。
- 按一下網路。
- 按一下動態路由閘道。
-
按一下建立動態路由閘道。
- 輸入 DRG 的名稱。
- 按一下建立動態路由閘道。
-
已順利建立 DRG。
任務 1.3:將 VCN 附加至 DRG
-
在 DRG 詳細資訊頁面中,建立虛擬雲端網路連附項。若要建立,請按一下建立虛擬雲端網路附件。
-
DNS-VCN 連附項:
-
Frontend-VCN 連附項:
-
後端 VCN 連附項:
-
-
已順利附加所有 VCN。依照預設,這些附件將使用自動產生的 DRG 路由表,讓每個附件動態學習到其他 VCN 的路由。
-
所有 VCN 都應該可以相互連接。因此,我們必須使用一些路由和安全規則促進它們之間的通訊。在任務 1.4、任務 1.5 和任務 1.6 中,我們將:
- 允許 SSH 存取,因此我們可以登入執行處理。
- 在需要的地方允許 DNS 流量。
- 需要時所允許的偵測流量。
- 在需要的位置提供傳出網際網路存取。
- 確保每個運算執行處理都應該能夠透過 DRG 互相連線。
作業 1.4:設定 DNS-VCN 的路由與安全
-
這必須在子網路層次完成。瀏覽至 VCN 頁面,然後按一下 DNS-VCN 。
-
按一下專用子網路。
-
按一下指派的路由表的路由表。
-
請務必新增下列規則。
0.0.0.0/0
- NAT 閘道:若要以單向方式存取網際網路,請視需要安裝套裝軟體 / 修補程式。在本教學課程中,我們需要此存取權才能在 Primary-DNS 伺服器上安裝 BIND9 套裝軟體。10.1.0.0/16
- DRG:將目的地為 Frontend-VCN 的流量遞送至 DRG。10.2.0.0/16
- DRG:將傳送至 Backend-VCN 的流量遞送至 DRG。
-
若未建立 NAT 閘道,請先依照步驟建立一個路由閘道,再於上述步驟中新增路由規則。
- 前往 DNS-VCN 詳細資訊頁面,然後按一下 NAT 閘道。
- 按一下建立 NAT 閘道。
-
請輸入下列資訊。
- 輸入 NAT 閘道的名稱。
- 選取臨時公用 IP 位址。
- 按一下建立 NAT 閘道。
已順利建立 NAT 閘道。
-
我們已完成 DNS-VCN 子網路的路由部分,因此請立即進行安全保護。移至子網路詳細資訊頁面,然後按一下指定的安全清單。
-
請務必允許傳入流量。
- 任意位置的 SSH 流量 (連接埠 22)。
- 來自 Frontend-VCN 和 Backend-VCN (TCP/port 53 和 UDP/port 53) 的 DNS 流量。
-
請務必允許所有輸出流量。
作業 1.5:設定前端 VCN 的路由與安全性
-
這必須在子網路層次完成。瀏覽至 VCN 頁面,然後按一下 Frontend-VCN 。
-
按一下專用子網路。
-
按一下指派的路由表的路由表。
-
請務必新增下列規則。
0.0.0.0/0
- NAT 閘道:若要單向存取網際網路,我們需要在此處存取 FE-VM **,才能使用 OCI 堡壘主機服務,而改用服務閘道也可以執行工作。10.0.0.0/16
- DRG:將傳送至 DNS-VCN 的流量遞送至 DRG。10.2.0.0/16
- DRG:將傳送至 Backend-VCN 的流量遞送至 DRG。
-
若未建立 NAT 閘道,請先依照「作業 1.4」的步驟建立 NAT 閘道,再於上述步驟中新增路由規則。
-
隨著我們完成了 Frontend-VCN 的路由部分,請立即進行安全保護。移至子網路詳細資訊頁面,然後按一下指定的安全清單。
-
請務必允許傳入流量。
- 任意位置的 SSH 流量 (連接埠 22)。
- 後端 VCN (ICMP,類型 8) 的偵測流量,測試階段需要有此規則。
-
請務必允許所有輸出流量。
作業 1.6:設定後端 VCN 的路由與安全
-
這必須在子網路層次完成。瀏覽至 VCN 頁面,然後按一下後端 VCN 。
-
按一下專用子網路。
-
按一下指派的路由表的路由表。
-
請務必新增下列規則。
0.0.0.0/0
- NAT 閘道:若要單向存取網際網路, BE-VM 必須在此處取得,才能使用 OCI 堡壘主機服務,而改用服務閘道也可以執行工作。10.0.0.0/16
- DRG:將傳送至 DNS-VCN 的流量遞送至 DRG。10.1.0.0/16
- DRG:將目的地為 Frontend-VCN 的流量遞送至 DRG。
-
若未建立 NAT 閘道,請先依照「作業 1.4」的步驟建立 NAT 閘道,再於上述步驟中新增路由規則。
-
我們已完成後端 VCN 的路由部分,因此現在提供安全保護。移至子網路詳細資訊頁面,然後按一下指定的安全清單。
-
請務必允許傳入流量。
- 任意位置的 SSH 流量 (連接埠 22)。
- 從 Frontend-VCN (ICMP,類型 8) 偵測流量,測試階段需要有此規則。
-
請務必允許所有輸出流量。
-
基本網路元件現已可供使用 (VCN、子網路、路由表、DRG 以及安全清單)。現在,架構應如下圖所示。
作業 2:佈建 OCI Compute 執行處理
佈建將設定 BIND9 的運算執行處理。
作業 2.1:產生 SSH 金鑰組
這必須在建立執行處理之前完成。SSH 金鑰將用於認證 Linux 運算執行處理。您可以使用 Windows 機器上的 PuTTYgen 工具或任何機器上的 ssh-keygen 公用程式來產生金鑰。在本教學課程中,我們將在 OCI Cloud Shell 中使用 ssh-keygen 。
-
按一下 Cloud Shell 。
-
執行
ssh-keygen
命令以產生金鑰組。 -
使用
cd .ssh
命令瀏覽至預設的.ssh
目錄,並複製公開金鑰檔案id_rsa.pub
的內容,我們將在 Task 2.2 中使用此目錄。
作業 2.2:佈建主要 DNS 運算執行處理
-
按一下左上角的漢堡功能表 ()。
- 按一下計算。
- 按一下執行處理。
-
按一下建立執行處理。
-
輸入執行處理的名稱。
-
選取 Ubuntu 20.04 作為執行處理的作業系統。
-
在主要網路中,輸入下列資訊。
- 選取 DNS-VCN 。
- 選取專用子網路。
-
將專用 IP 位址指定給執行處理
10.0.0.10
。 -
貼上在任務 2.1 中產生的公開金鑰。
-
向下捲動至頁面結尾,然後按一下顯示進階選項。
-
按一下 Oracle Cloud 代理程式。
- 選取堡壘主機 Plugin,因為我們稍後將會使用堡壘主機存取執行處理。
- 按一下建立。
-
主要 DNS 運算執行處理已順利建立。
-
架構應如下圖所示。
在稍後的作業中,我們將在主要 DNS 執行處理中安裝並設定 BIND9。
作業 3:安裝並設定 BIND9
作業 3.1:使用堡壘主機存取主要 DNS 運算執行處理
-
首先,我們必須透過 SSH 建立運算執行處理的存取權,才能安裝並設定 BIND9。不過,由於我們在專用子網路中建立執行處理,因此我們無法從沒有任何位置直接存取該執行處理,因為它沒有公用 IP,因此我們將使用其他 OCI 服務。
OCI 堡壘主機是作為中介的受管理服務,可對專用網路內的資源進行安全存取。對於需要存取公用網際網路未公開之資源的管理用途而言,特別有用,您可以將它視為跳躍伺服器即服務。
- 按一下識別與安全性。
- 按一下堡壘主機。
-
按一下建立堡壘主機。
-
請輸入下列資訊。
- 輸入堡壘主機名稱。
- 選取 VCN (DNS-VCN) 及其子網路。
- CIDR 區塊允許清單是我們應該連線至堡壘主機的允許 IP 範圍,我們在此使用
0.0.0.0/0
進行此實行,如果您想要透過選擇連線的公用 IP 位址,我們可以更具體地進行。 - 按一下建立堡壘主機。
-
堡壘主機已建立。我們必須建立階段作業,以便在特定時間內 (預設值為 3 小時) 連線至目標資源 ( 主要 DNS)。
-
請輸入下列資訊。
- 階段作業類型:選取受管理的 SSH 階段作業。
- 階段作業名稱:輸入階段作業的名稱。
- 使用者名稱:輸入使用者名稱。若為 Ubuntu Linux 執行處理,預設使用者名稱為 ubuntu 。
- 運算執行處理: 選取在作業 2.2 中建立的 Primary-DNS 執行處理。
- 貼上我們在任務 2.1 中產生的相同公開金鑰。
- 按一下建立階段作業 (Create session) 。
-
階段作業建立之後,請按一下三個點並複製 SSH 命令。
指令應該如下所示:
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-milan-1.amaaaaaaldij5aiaa6buxxxxxxxxxxxxxxxxxxrlnywmo3n2pty5wpf7fq@host.bastion.eu-milan-1.oci.oraclecloud.com" -p 22 ubuntu@10.0.0.10
-
開啟 OCI Cloud Shell。
- 使用
cd .ssh
命令瀏覽至.ssh
目錄。 - 貼上 SSH 命令。請務必將
<privateKey>
取代為私密金鑰檔案名稱id_rsa
。
- 使用
-
已順利登入。
作業 3.2:安裝 BIND9
存取執行處理之後,我們會安裝 BIND9,並確定執行處理已啟動並在執行中。
-
執行下列命令。
sudo apt update sudo apt install bind9 bind9utils bind9-doc bind9-host
-
執行
sudo systemctl status named
命令以檢查 BIND9 服務狀態。它是作用中 (執行中) 。 -
執行
sudo systemctl enable named
命令以啟用服務,讓服務在重新啟動後自動啟動。
作業 3.3:變更執行處理的完整網域名稱 (FQDN)
-
若要變更執行處理的 FQDN,請使用
sudo vi /etc/hosts
命令存取主機檔案,然後新增下列行。10.0.0.10 primary-dns.orastage.com primary-dns
-
若要驗證變更,請執行
hostname -f
命令以查看新的 FQDN。
工作 3.4:設定 named.conf.options
檔案
-
新增組態。
-
在
/etc/bind/named.conf.options
檔案的結尾處新增下列行並儲存檔案。recursion yes; notify yes; allow-query { any; }; allow-query-cache { any; }; allow-recursion { any; }; forwarders { 8.8.8.8; }; auth-nxdomain no; # conform to RFC1035 listen-on { localhost; any; }; allow-transfer { any; };
-
重新啟動 BIND9 服務。
-
檢查服務狀態。
-
工作 3. 5:使用 netstat
顯示 TCP/UDP 連接埠狀態
net-tools 是指令行公用程式的套裝軟體,提供一組適用於 Linux 作業系統的必要網路工具。
-
執行
sudo apt install net-tools
指令以安裝網路工具。必須要能使用netstat
指令。 -
執行
sudo netstat -antu
命令,檢查執行處理所監聽的連接埠 / 協定。如下圖所示,應開啟 IP10.0.0.10
、TCP/port 53 和 UDP/port 53 的影像。
工作 3.6:設定 named.conf.local
檔案
-
在
/etc/bind/named.conf.local
檔案的結尾新增下列行。zone "orastage.com" { type master; allow-transfer { any; }; file "/var/lib/bind/db.orastage.com"; };
工作 3.7:設定 db.orastage.com
檔案
-
db.orastage.com
檔案尚不存在。若要建立,請執行sudo vi /var/lib/bind/db.orastage.com
命令並將下列內容新增至檔案。$TTL 1D @ IN SOA primary-dns.orastage.com. admin.orastage.com. ( 329 ; serial 604800 ; refresh (1 week) 86400 ; retry (1 day) 2419200 ; expire (4 weeks) 604800 ; minimum (1 week) ) IN NS primary-dns.orastage.com. primary-dns IN A 10.0.0.10 fe IN A 10.1.0.5 be IN A 10.2.0.5
工作 3.8:設定 50-cloud-init.yaml
檔案
-
存取
/etc/netplan/50-cloud-init.yaml
檔案並新增下列行。nameservers: addresses: [10.0.0.10] search: [orastage.com]
-
執行
sudo netplan apply
命令,讓變更生效。
作業 3.9:停用 iptables 防火牆
-
我們將在本教學課程中暫時停用 iptables,以避免在測試階段發生任何類型的連線問題。
-
執行
sudo su
指令以切換至 root 使用者。 -
若要儲存現有防火牆規則的備份,請執行
iptables-save > /root/firewall_rules.backup
指令。 -
執行下列命令以消除所有規則,並允許所有流量通過防火牆。
iptables -F iptables -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
-
完成 Task 6 後,請執行
iptables-restore < /root/firewall_rules.backup
指令以恢復防火牆規則。 -
清除規則後,我們應該確定此變更在重新開機後會是永久的。因此,請執行
apt install iptables-persistent
指令來安裝套裝軟體。 -
執行
iptables-save > /etc/iptables/rules.v4
指令。 -
若要查看 iptables 規則,請執行
iptables -L
指令,它應該是空的。
-
工作 3.10:重新啟動 BIND9
-
執行下列指令以重新啟動服務。
sudo systemctl restart named
作業 3.11:測試
-
執行多個測試來查詢我們新增至
db.orastage.com
檔案的網域名稱,並查看是否在本機回答查詢。-
orastage.com
網域:host -a orastage.com
。 -
Primary-DNS
網域:host -a primary-dns.orastage.com
。 -
FE-VM
網域:host -a fe.orastage.com
。 -
BE-VM
網域:host -a be.orastage.com
。
-
作業 4:設定 OCI 轉送端點和規則
每個 OCI VCN 都有一個預設解析器,可用來解析相同 VCN 中的主機名稱、不同的 VCN、內部部署網路,甚至是網際網路上公開發布的主機名稱。在這項任務中,我們將使用解析器中的兩個元件來達成將查詢轉送至 BIND9 執行處理 Primary-DNS 的需求,亦即:
- 轉送端點:允許 DNS 解析器查詢轉送規則中定義的遠端 DNS。
- 轉寄規則:用來控制當解析器的專用檢視未回答查詢時,如何處理 DNS 查詢。查詢
orastage.com
將轉送至哪一個遠端 DNS 伺服器,並使用哪一個轉送端點?
作業 4.1:設定前端 VCN 的轉送端點和規則
在 Frontend-VCN 中建立轉送端點和規則,以將 orastage.com
查詢從 FE-VM 指向 Primary-DNS 執行處理。
-
瀏覽至 Frontend-VCN ,然後按一下 DNS 解析器。
-
按一下建立端點。
-
請輸入下列資訊。
- 名稱:輸入端點的名稱。
- 子網路: 選取 VCN 的專用子網路。
- 端點類型:選取轉寄。
- 轉寄 IP 位址:輸入
10.1.0.6
。 - 按一下建立端點。
-
已順利建立轉送端點 ( FWD)。
-
按一下規則與管理規則。
-
請輸入下列資訊。
- 規則條件:選取網域。
- 網域:輸入
orastage.com
網域。 - 來源端點:選取轉送端點。
- 目的地 IP 位址:輸入 BIND9 執行處理
10.0.0.10
的 IP。
-
已順利建立轉寄規則。
作業 4.2:設定後端 VCN 的轉送端點和規則
在後端 VCN 中建立轉送端點和規則,以將 orastage.com
查詢從 BE-VM 指向主要 DNS 執行處理。
- 瀏覽至後端 VCN ,然後按一下 DNS 解析器。
-
按一下建立端點。
-
請輸入下列資訊。
- 名稱:輸入端點的名稱。
- 子網路: 選取 VCN 的專用子網路。
- 端點類型:選取轉寄。
- 轉寄 IP 位址:輸入
10.2.0.6
。 - 按一下建立端點。
-
已順利建立轉送端點 ( FWD)。
-
按一下規則與管理規則。
-
請輸入下列資訊。
- 規則條件:選取網域。
- 網域:輸入
orastage.com
網域。 - 來源端點:選取轉送端點。
- 目的地 IP 位址:輸入 BIND9 執行處理
10.0.0.10
的 IP。
-
已順利建立轉寄規則。
-
架構應如下圖所示。
作業 5:佈建從屬端執行處理以執行 DNS 查詢
作業 5.1:建立 FE-VM
運算執行處理
-
按一下左上角的漢堡功能表 ()。
- 按一下計算。
- 按一下執行處理。
-
按一下建立執行處理。
-
輸入例項的名稱。
-
選取 Oracle Linux 8 作為執行處理的作業系統。
-
在主要網路中,輸入下列資訊。
- 選取 Frontend-VCN 。
- 選取專用子網路。
-
將專用 IP 位址指定給執行處理
10.1.0.5
。 -
貼上在任務 2.1 中產生的公開金鑰。
-
向下捲動至頁面結尾,然後按一下顯示進階選項。
-
按一下 Oracle Cloud 代理程式。
-
選取堡壘主機 Plugin,因為我們將使用堡壘主機存取執行處理,然後按一下建立。
-
FE-VM 運算執行處理已順利建立。
作業 5.2:建立 BE-VM
運算執行處理
-
按一下執行處理和建立執行處理。
-
輸入執行處理的名稱。
-
選取 Oracle Linux 8 作為執行處理的作業系統。
-
在主要網路中,輸入下列資訊。
- 選取後端 VCN 。
- 選取專用子網路。
-
將專用 IP 位址指定給執行處理
10.2.0.5
。 -
貼上在任務 2.1 中產生的公開金鑰。
-
向下捲動至頁面結尾,然後按一下顯示進階選項。
-
按一下 Oracle Cloud 代理程式。
-
選取堡壘主機 Plugin,因為我們將使用堡壘主機存取執行處理,然後按一下建立。
-
BE-VM 運算實例已成功建立。
-
架構已完成。
備註:在稍後的工作中,我們會測試多個案例,並驗證設定是否如預期般運作。
作業 6:測試並驗證
作業 6.1:使用堡壘主機和測試存取 FE-VM 運算執行處理
-
FE-VM 用戶端機器應該可以解析
be.orastage.com
。- 按一下識別與安全性。
- 按一下堡壘主機。
-
按一下建立堡壘主機。
-
請輸入下列資訊。
- 堡壘主機名稱:輸入堡壘主機的名稱。
- 設定網路: 選取 VCN ( Frontend-VCN) 及其子網路。
- CIDR 區塊允許清單是我們應該連線至堡壘主機的允許 IP 範圍,我們在此使用
0.0.0.0/0
進行此實行,如果想要透過選擇連線的公用 IP 位址,我們可以更具體地進行。 - 按一下建立堡壘主機。
-
堡壘主機已建立。我們必須建立階段作業,以針對特定時間 (預設值為 3 小時) 連線至目標資源 ( FE-VM)。
-
請輸入下列資訊。
- 階段作業類型:選取受管理的 SSH 階段作業。
- 階段作業名稱:輸入名稱。
- 使用者名稱:輸入使用者名稱。若為 Oracle Linux 執行處理,預設使用者為
opc
。 - 運算執行處理: 選取在「工作 5」中建立的 FE-VM 執行處理。
- 貼上在任務 2.1 中產生的相同公開金鑰。
- 按一下建立階段作業 (Create session) 。
-
階段作業建立之後,請按一下三個點並複製 SSH 命令。
指令應該如下所示:
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-milan-1.amaaaaaaldij5aiaskfyan4yj7yx3bmm57rckmvvawikppba5mxxzo2q7dka@host.bastion.eu-milan-1.oci.oraclecloud.com" -p 22 opc@10.1.0.5
- 開啟 Cloud Shell,然後使用
cd .ssh
命令瀏覽至.ssh
目錄。 - 貼上 SSH 命令,並確定將
<privateKey>
取代為私密金鑰檔案名稱id_rsa
。 - 輸入是,然後按一下 Enter 。
- 開啟 Cloud Shell,然後使用
-
將
orastage.com
查詢從 FE-VM 測試為be.orastage.com
。您可以使用不同的方法來驗證設定。- 執行
host
指令。 - 執行
ping
指令。 - 執行
dig
指令。
- 執行
如上面的測試所示,我們可以擷取 BE-VM 網域的 IP 位址,而 ping 正在使用主機名稱運作,這表示測試成功。
作業 6.2:使用堡壘主機和測試存取 BE-VM 運算執行處理
-
BE-VM 用戶端機器應該可以解析
fe.orastage.com
。- 按一下識別與安全性。
- 按一下堡壘主機。
-
按一下建立堡壘主機。
-
請輸入下列資訊。
- 堡壘主機名稱:輸入堡壘主機的名稱。
- 設定網路: 選取 VCN ( 後端 VCN) 及其子網路。
- CIDR 區塊允許清單是我們應該連線至堡壘主機的允許 IP 範圍,我們在此使用
0.0.0.0/0
進行此實行,如果想要透過選擇連線的公用 IP 位址,我們可以更具體地進行。 - 按一下建立堡壘主機。
-
堡壘主機已建立。我們必須建立階段作業,以連線到特定時間 (預設值為 3 小時) 的目標資源 ( BE-VM)。
-
請輸入下列資訊。
- 階段作業類型:選取受管理的 SSH 階段作業。
- 階段作業名稱:輸入名稱。
- 使用者名稱:輸入使用者名稱。若為 Oracle Linux 執行處理,預設使用者為
opc
。 - 運算執行處理:選取在 STEP 06 中建立的 BE-VM 執行處理。
- 貼上在任務 2.1 中產生的相同公開金鑰。
- 按一下建立階段作業 (Create session) 。
-
階段作業建立之後,請按一下三個點並複製 SSH 命令。
指令應該如下所示:
ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.eu-milan-1.amaaaaaaldij5aia73xclnp6h6i2mjnpsuer2bnz4cblejfemnr6uk7pafla@host.bastion.eu-milan-1.oci.oraclecloud.com" -p 22 opc@10.2.0.5
- 開啟 cloud shell,然後使用
cd .ssh
命令瀏覽至.ssh
目錄。 - 貼上 SSH 命令,並確定將
<privateKey>
取代為私密金鑰檔案名稱id_rsa
。 - 輸入是,然後按一下 Enter 。
- 開啟 cloud shell,然後使用
-
將
orastage.com
查詢從 BE-VM 測試為fe.orastage.com
。您可以使用不同的方法來驗證設定。- 執行
host
指令。 - 執行
ping
指令。 - 執行
dig
指令。
- 執行
如上面的測試所示,我們可以擷取 FE-VM 網域的 IP 位址,而 ping 正在使用主機名稱工作,這表示測試成功。
接下來的步驟
在本教學課程中,我們建置了包含基本元件的小型 BIND9 DNS 架構;Oracle Cloud Infrastructure 中的伺服器和用戶端設定。在此區段中,您可以透過處理路由表、DRG、安全清單、堡壘主機等不同元件,深入瞭解 OCI 網路路由和安全性。您也會瞭解如何在 OCI 環境中安裝和設定功能性 BIND9 DNS。
在下一個教學課程中:教學課程 2:在 Oracle Cloud Infrastructure 的 BIND9 網域名稱系統上導入高可用性,我們將透過將高可用性層整合到我們的架構中來增強此設定,這對於減少停機時間和改善使用者體驗至關重要。
認可
- 作者 - Anas abdallah (雲端網路專家)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Configure BIND9 Domain Name System in Oracle Cloud Infrastructure
G13024-03
Copyright ©2025, Oracle and/or its affiliates.