Route 53 Resolver 混合 DNS 是整個 ANS-C01 考試指南中最容易讓人混淆的主題。Solutions Architect (助理架構師) 考試將 DNS 視為「Route 53 託管區域,答案就是記錄」。而 Advanced Networking Specialty (進階網路專家) 考試則會問:「給定一個多帳號組織,本地 Active Directory 位於 corp.example.com,一個 AWS 私有託管區域 aws.example.com 關聯到 3 個帳號中的 12 個 VPC,以及一個獨立的檢查 VPC,其出站 Resolver 端點將特定的公司網域轉發至本地,請設計解析器規則、RAM 共用、DHCP 選項集,並解釋帳號 B 中的 Lambda 如何存取本地網域控制站 (DC)」。這就是具備 RAM 共用規則的混合解析器拓撲,ANS-C01 會針對這個特定問題考出三到五種變體。
本主題涵蓋了 Route 53 Resolver 的完整原始元件:位於 VPC+2 的 VPC 預設解析器、AmazonProvidedDNS、用於本地→AWS 解析的入站端點 (inbound endpoints)、用於 AWS→本地解析且具備轉發規則 (forward rules) 的出站端點 (outbound endpoints)、經常令人混淆的方向語義 (從解析器的角度命名)、透過 AWS RAM 共用 Resolver 規則、用於自訂 DNS 伺服器設定的 DHCP 選項集、私有託管區域 (PHZ) 關聯 (包含跨帳號)、用於網域過濾的 Route 53 Resolver DNS Firewall,以及規範性的多帳號集中式解析器模式。對應至任務說明 2.3 (實作複雜的混合與多帳號 DNS 架構)。
為什麼 Route 53 Resolver 是領域 2 中測試頻率最高的主題
領域 2.3 專門安排了一個任務說明來探討「複雜的混合與多帳號 DNS 架構」,這反映了大規模運維 DNS 的難度,以及 AWS 經常看到客戶設定錯誤。ANS-C01 期望你能設計混合 DNS,使其能解析來自本地的 AWS 端名稱、來自 AWS 的本地端名稱,以及整個組織中的多帳號私有名稱,且彼此互不干擾。預計會有 4-6 題關於解析器拓撲、條件轉發、RAM 共用和 DHCP 選項集的題目。
本主題的框架是將 DNS 視為一種路由服務。就像 VPC 路由有路由表、傳播和轉發決策一樣,DNS 解析也有區域、規則和轉發決策。Route 53 Resolver 是編排這一切的 AWS 託管控制平面——它攔截來自 VPC 執行個體、目標為已知 IP VPC 基礎地址 + 2 的 DNS 查詢,套用解析器規則來決定將每個查詢發送到哪裡,然後在本地解析 (私有託管區域、公有 DNS、.internal) 或透過出站端點轉發到本地解析器。
考試會從三個不同的面向測試解析器。方向語義會問:「要從本地解析 AWS 名稱,你需要入站還是出站端點?」(答案是入站——從解析器的角度命名,本地 DNS 正在將流量發送進解析器)。規則設計會問:「要將 corp.example.com 轉發至本地並正常解析其他所有內容,你需要建立什麼規則?」(建立針對 corp.example.com 指向本地 IP 的轉發規則)。多帳號共用會問:「規則必須套用到 3 個帳號中的 12 個 VPC——該如何做?」(在中心帳號建立規則,透過 RAM 共用,成員帳號將其關聯到各自的 VPC)。
白話文解釋 Route 53 Resolver Hybrid DNS
Route 53 Resolver 將幾個原始元件 (預設解析器、入站端點、出站端點、規則、DHCP 選項) 結合成混合 DNS,處理 AWS 端、本地端和共用區域的解析。三個類比可以幫助理解這些移動零件。
類比一 — 具備本地與長途線路的電話交換機
將 Route 53 Resolver 想像成公司園區的電話交換機。位於 VPC+2 的 VPC 預設解析器是接聽每一通內部電話的接待員。當員工撥打號碼時,接待員會:(a) 知道本地號碼 (私有託管區域、.internal) 並直接轉接;(b) 查閱公共電話簿 (公有 DNS);或 (c) 透過出站端點 (園區的出站長途線路) 轉接到長途 (本地公司電話系統)。入站端點則是撥入的長途線路,讓園區外的來電能存取園區通訊錄——接待員接聽撥入電話並查閱本地分機。轉發規則是接待員的指示:「對於撥打以 'corp.' 開頭的分機,請轉接到位於 10.1.0.5 的公司總部交換機」。DHCP 選項集則是分給每位新員工的主電話簿:「你的預設交換機在分機 2;對於任何不認識的區碼,請先撥 9-1」——這會在佈建時覆蓋預設行為。
類比二 — 具備轉寄協議的國際郵件分揀處
VPC 是一個擁有自己郵政系統的國家。預設解析器是處理每封信件的中央郵局。郵局知道:(a) 本地地址 (私有託管區域、.internal——就像國內派送);(b) 透過全球目錄查詢國際地址 (公有 DNS);以及 (c) 與鄰國簽署的特殊轉寄協議——對於寄往特定郵遞區號的信件,發送到另一個國家的合作郵局 (出站端點轉發到本地 DNS)。入站端點則是供外國郵政客戶使用的信箱——來自國外的信件到達此信箱,由解析器處理,然後回傳回覆。轉發規則是郵政協議:「任何寄往 'corp.example.com' 的信件都交給位於 10.1.0.5 的合作郵局」。DHCP 選項集則是每個新家庭收到的預設收發室程序:「使用中央郵局,搜尋網域 example.com」。
類比三 — 具備館際互借服務的圖書館參考諮詢台
VPC 是一間研究圖書館。預設解析器是回答每個圖書查閱請求的參考諮詢台。參考館員知道:(a) 本地書庫中的書 (私有託管區域、.internal);(b) 更廣泛目錄中的書 (公有 DNS);以及 (c) 與其他圖書館的特殊安排——對於某些主題的書,透過館際互借向合作圖書館請求 (出站端點轉發)。入站端點是館際互借櫃檯,合作圖書館在此發送查閱請求——本地館員負責回覆。轉發規則是館際互借協議:「任何書名帶有 'Corporate Standards' 前綴的書都找圖書館 X」。DHCP 選項集是讀者手冊:「你的預設參考諮詢台在分機 2;對於模糊的書名,搜尋前綴 'example.com.'」。
對於 ANS-C01,當問題詢問入站與出站端點的方向時,電話交換機類比是效益最高的心智模型——本地交換機接收撥入長途、撥出長途的對應關係非常完美。對於多帳號 RAM 共用,郵政轉寄協議子類比讓「定義一次,共用至多處」變得很直覺。對於 DHCP 選項集,讀者手冊的形象很有幫助:它是新 VPC 執行個體學習如何尋找解析器的方式。參考資料:https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html
VPC 預設解析器 — VPC+2 與 AmazonProvidedDNS
每個 VPC 在已知 IP VPC CIDR 的基礎地址 + 2 處都有一個預設解析器。對於 VPC 10.0.0.0/16,解析部位於 10.0.0.2。這就是 AmazonProvidedDNS 服務,可從 VPC 中的每個執行個體和 Lambda 函式自動存取。
預設解析器的功能
預設解析器透過以下方式回答來自 VPC 執行個體的 DNS 查詢:
- 私有託管區域 (PHZ) 查閱 — 如果網域與關聯至此 VPC 的 PHZ 匹配,則回傳 PHZ 記錄。
- AWS 內部
.internal解析 — 針對 AWS 內部名稱 (例如ip-10-0-1-5.ec2.internal)。 - 公有 DNS 遞迴查閱 — 針對任何其他網域,查詢公有 DNS 伺服器並快取答案。
enableDnsSupport 與 enableDnsHostnames
兩個 VPC 屬性控制 DNS:
- enableDnsSupport (預設為
true):VPC+2 解析器可正常運作。 - enableDnsHostnames (預設為
false,若透過主控台預設建立;預設 VPC 則為true):在此 VPC 中啟動的執行個體會自動分配 DNS 主機名稱。
兩者都必須為 true,介面端點上的私有 DNS 才能運作。ANS-C01 經常測試這一點。
.internal 區域
AWS 保留了 .internal TLD 用於內部主機名稱。EC2 執行個體會自動分配主機名稱,如 ip-10-0-1-5.ec2.internal (在 us-east-1) 或 ip-10-0-1-5.eu-west-1.compute.internal。私有託管區域不能使用 .internal——該命名空間由 AWS 託管。
預設解析器與 EC2
EC2 執行個體預設的 /etc/resolv.conf 指向 VPC+2 解析器。若要更改此設定,必須透過 DHCP 選項集 (下一節) 覆蓋,或手動編輯每個執行個體上的 /etc/resolv.conf。
- AmazonProvidedDNS:位於 VPC 基礎 IP + 2 的 AWS 託管預設解析器。
- VPC+2:預設解析器的 IP 地址 (例如 10.0.0.0/16 為 10.0.0.2)。
- 入站端點 (Inbound endpoint):接收來自本地到 AWS 的 DNS 查詢的 ENI 叢集。
- 出站端點 (Outbound endpoint):將 DNS 查詢從 AWS 轉發到本地 (或其他解析器) 的 ENI 叢集。
- 解析器規則 (Resolver rule):將網域映射到一個或多個目標 IP 的轉發、系統或自動定義規則。
- 轉發規則 (Forward rule):將特定網域的查詢轉發到目標 IP 清單 (通常是本地 DNS)。
- 系統規則 (System rule):AWS 託管的預設行為規則;無法修改。
- 條件轉發 (Conditional forwarding):將特定網域的查詢轉發到非預設解析器。
- DHCP 選項集 (DHCP option set):覆蓋預設 DNS 伺服器、網域名稱和搜尋清單的 VPC 層級設定。
- 參考資料:https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html
入站端點 — 本地→AWS 解析
入站端點是一組 ENI 叢集 (每個 AZ 一個),接收來自本地系統的 DNS 查詢,並使用 VPC 的解析器規則和 PHZ 關聯來解析它們。它是從本地 DNS 到 AWS 端 DNS 解析的橋樑。
何時需要入站端點
- 本地系統需要解析關聯至 VPC 的私有託管區域 (例如
db.aws.example.com指向 RDS 端點)。 - 本地系統需要解析介面端點私有 DNS 名稱 (例如透過 PrivateLink 存取
secretsmanager.us-east-1.amazonaws.com)。 - 本地系統需要解析任何僅能從 VPC 內部存取的 AWS 內部名稱。
設定步驟
- 在 VPC 中建立入站端點,每個 AZ 選擇一個子網路 (通常至少兩個 AZ)。
- AWS 在每個選定的子網路中佈建一個 ENI,並從子網路 CIDR 中分配私有 IP。
- 關聯安全群組,允許來自本地 CIDR 的入站 TCP 53 + UDP 53。
- 設定本地 DNS 伺服器,將 AWS 端網域的查詢條件轉發到入站端點 IP。
案例實作 — 本地解析 aws.example.com
- AWS 端 PHZ
aws.example.com關聯到 VPC。記錄:db.aws.example.com → 10.0.5.42。 - 入站端點部署在 10.0.1.10 和 10.0.2.10 的 ENI (兩個 AZ)。
- 本地 DNS 伺服器 (例如 BIND) 設定:
forward zone "aws.example.com" { forwarders { 10.0.1.10; 10.0.2.10; }; };。 - 本地用戶端查詢
db.aws.example.com。本地 DNS 轉發到入站端點。入站端點透過 PHZ 解析。回傳10.0.5.42給本地用戶端。
入站端點與 Direct Connect / VPN
本地到入站端點的流量必須透過 Direct Connect 或 Site-to-Site VPN 到達 VPC。入站端點 ENI 擁有 VPC CIDR 中的私有 IP,可透過混合連線存取。這就是為什麼在沒有連線能力的情況下,無法從任意本地位置使用入站端點。
成本
入站端點按 每個 AZ 每小時 收費,以及 每百萬次查詢 收費。對於中等查詢量,成本適中;隨查詢速率線性擴展。
ANS-C01 DNS 中最常考的混淆點:考生認為「入站」代表「從本地入站到 AWS」或「從 AWS 入站到本地」。正確的解釋是:入站和出站是從 AWS 解析器的角度命名的。入站端點 = 流量流進 AWS 解析器 (來自本地查詢者)。出站端點 = 流量從 AWS 解析器流出 (到本地解析器)。因此,「我想從本地解析 AWS 端名稱」= 入站 (本地查詢進入解析器)。「我想從 AWS 解析本地名稱」= 出站 (解析器將查詢發送出去)。請背熟這個二元邏輯;ANS-C01 會透過交換方向的選項來直接測試這一點。參考資料:https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html
出站端點 — AWS→本地 解析
出站端點是一組 ENI 叢集 (每個 AZ 一個),將來自 AWS 解析器的 DNS 查詢轉發到指定的目標 IP——通常是本地 DNS 伺服器。它讓解析器能遞迴回答本地網域的查詢。
何時需要出站端點
- AWS 執行個體或 Lambda 需要解析本地 Active Directory 名稱 (例如
dc1.corp.example.com)。 - AWS 執行個體需要解析僅託管在本地的內部公司網域。
- AWS 工作負載必須針對所有內容使用本地 DNS (水平分割、區域特定轉發)。
設定步驟
- 在 VPC 中建立出站端點,每個 AZ 選擇子網路。
- AWS 在選定的子網路中佈建 ENI。
- 建立一個或多個轉發規則,指定網域 → 目標 IP (例如
corp.example.com → 10.1.0.5, 10.1.0.6)。 - 將規則與應套用這些規則的 VPC 關聯。
- 確保出站端點與本地 DNS 伺服器 IP 具備連線性 (透過 DX/VPN、路由表)。
- 設定出站端點 ENI 上的安全群組,允許出站到本地 DNS 伺服器 IP。
轉發規則 — 路由原始元件
轉發規則指定:
- 規則名稱與規則 ID。
- 要匹配的網域名稱 (例如
corp.example.com)。後綴匹配:corp.example.com匹配dc1.corp.example.com及其任何子網域。 - 目標 IP — 要轉發到的解析器 IP 清單 (通常是本地 DNS 伺服器)。
- 關聯的 VPC — 套用此規則的 VPC。
同一個 VPC 可以關聯多個轉發規則。最精確匹配者勝出 (最長網域後綴),類似於 BGP 最長前綴匹配。
案例實作 — AWS 解析 corp.example.com
- VPC 包含 EC2 執行個體和 Lambda 函式。
- 本地 AD 在 10.1.0.5 和 10.1.0.6 有 DC,託管
corp.example.com。 - 出站端點部署在 VPC 中,ENI 位於 10.0.5.10 和 10.0.6.10。
- 轉發規則:
corp.example.com → 10.1.0.5, 10.1.0.6關聯到 VPC。 - EC2 查詢
dc1.corp.example.com。VPC+2 解析器諮詢規則。轉發規則匹配。解析器透過出站端點發送查詢到 10.1.0.5 (或故障轉移到 10.1.0.6)。回覆傳回給 EC2。
Direct Connect 需求
到本地 DNS 伺服器 IP 的出站端點查詢會穿過混合連線 (DX 或 VPN)。出站端點子網路的路由表必須能到達本地 DNS 伺服器 CIDR。出站端點上的安全群組必須允許到本地 CIDR 的出站 TCP 53 + UDP 53。
考生經常寫錯方向:「建立出站端點讓本地查詢 AWS PHZ」。錯誤——出站端點是將查詢從 AWS 解析器發送出去到本地。要讓本地查詢 AWS,請使用入站端點 (流量流進 AWS 解析器)。背熟:出站 = 從 AWS 到本地;入站 = 從本地到 AWS。考試會在選項中交換這兩者來測試細心度。參考資料:https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html
解析器規則 — 轉發、系統與自動定義
解析器規則是決定如何處理特定網域查詢的設定。存在三種類型。
轉發規則 — 手動編寫
將特定網域的查詢轉發到指定的目標 IP (通常是本地)。由客戶建立與管理。關聯到一個或多個 VPC。
系統規則 — AWS 託管預設值
系統規則由 AWS 託管且無法修改。它們處理:
- 針對未知網域的公有 DNS 遞迴解析。
- 針對 AWS 託管內部名稱的
.internal區域解析。 - 當沒有其他規則匹配時的預設行為。
自動定義規則 — AWS 內部
針對 AWS 內部服務 (如 .amazonaws.com 的 AWS PHZ) 自動建立的規則。客戶不直接管理這些規則。
規則評估優先順序
當查詢到達解析器時,按此順序評估規則:
- 最精確的轉發規則匹配勝出。
- 若無轉發規則匹配,則套用自動定義規則。
- 若兩者皆無匹配,則由針對公有 DNS 遞迴解析的系統規則處理。
案例實作 — 重疊規則
VPC 有兩個轉發規則:
- 規則 A:
example.com → 10.1.0.5(範圍廣) - 規則 B:
prod.example.com → 10.2.0.5(精確)
查詢 db.prod.example.com 匹配規則 B (最長後綴)。查詢 web.example.com 匹配規則 A。最精確者勝出。
解析器規則的行為類似於 DNS 的 BGP 最長前綴匹配。最精確的網域匹配勝出;若不分勝負,則由 ID 最低 (建立順序) 的規則勝出。使用此特性可以透過特定例外來覆蓋通用的轉發。例如,example.com → 本地 加上 internal.example.com → AWS PHZ 代表大多數查詢去本地,但 internal. 子網域留在 AWS 端。ANS-C01 會測試具有重疊規則的情境,並詢問套用哪條規則。參考資料:https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html
DHCP 選項集 — 自訂 VPC DNS 設定
DHCP 選項集是 VPC 層級的設定,指定新執行個體在啟動時接收哪些 DHCP 選項。與 DNS 最相關的選項是 domain-name-servers 和 domain-name。
預設 DHCP 選項集
預設情況下,VPC 使用具備以下內容的 DHCP 選項集:
- domain-name-servers:
AmazonProvidedDNS(即 VPC+2 解析器)。 - domain-name:
<region>.compute.internal(或 us-east-1 中的ec2.internal)。
這代表新 EC2 執行個體會獲得 VPC+2 解析器作為其 DNS 伺服器,並獲得 AWS 內部網域作為其搜尋網域。
自訂 DHCP 選項集使用案例
- 強制將本地 DNS 作為主要:將
domain-name-servers設定為本地 DNS IP。新執行個體將針對所有查詢使用本地 DNS。 - 使用 Route 53 Resolver 入站端點作為主要:將
domain-name-servers設定為入站端點 IP。若解析器本身位於不同的 VPC,此設定很有用。 - 自訂搜尋網域:將
domain-name設定為corp.example.com,使不完整的查詢解析為<host>.corp.example.com。
切換 DHCP 選項集
一個 VPC 一次只能有一個 DHCP 選項集。切換需要建立新的選項集並進行關聯。現有的執行個體不會自動更新——它們會保留目前的 DHCP 租約直到過期 (通常是幾小時或幾天),或直到重啟。
強制使用本地 DNS — 加入 AD 的 VPC 模式
常見的 ANS-C01 場景:AWS 工作負載必須加入本地 Active Directory,以支援加入 AD 的 Windows / Linux SSSD。設定 DHCP 選項集,將 domain-name-servers 設定為 AD DC IP (例如 10.1.0.5, 10.1.0.6,並以 AmazonProvidedDNS 作為後備)。注意:這會改變執行個體所有查詢的解析行為,而不僅僅是 AD 名稱。為了避免破壞 AWS 服務解析,可以將 AmazonProvidedDNS 包含在清單中作為後備。
情境描述操作員更新 DHCP 選項集以指向新的 DNS 伺服器。現有執行個體在接下來的幾小時內繼續使用舊的 DNS。考生認為更新是立即生效的——事實並非如此。現有執行個體會保留目前的 DHCP 租約直到過期或重啟。 若要強制更新:重啟所有執行個體,或等待 DHCP 租約續約 (通常是 1-4 小時)。對於新的 VPC 部署,請在建立時就設定好 DHCP 選項集以避免此問題。參考資料:https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html
透過 AWS RAM 跨帳號共用 Resolver 規則
在多帳號組織中,中央網路團隊通常管理解析器規則並將其共用給工作負載帳號。AWS Resource Access Manager (RAM) 是共用機制。
共用模型
- 中央網路帳號建立出站端點與轉發規則。
- 網路帳號建立一個包含解析器規則的 RAM 資源共用。
- 網路帳號將成員帳號 (或整個 AWS Org) 新增為主體。
- 成員帳號接收共用,並可以將規則與其自身的 VPC 關聯。
為什麼共用規則而非複製
不使用共用:每個帳號建立自己的出站端點和規則。重複勞動、重複成本 (出站端點按 AZ 按小時收費的倍數)、漂移風險。
使用共用:在網路帳號中有一個出站端點,一組規則,套用到跨多個帳號的多個 VPC。維運簡單且具備成本效益。
區域限制
解析器規則是區域性的——在 us-east-1 的規則不能共用給 us-west-2 的 VPC。對於多區域組織,每個區域都有自己的出站端點和規則集,按區域共用。
跨區域解析器規則 — 不直接支援
你不能直接跨區域共用解析器規則。對於多區域混合 DNS,請在每個區域部署出站端點並配備平行的規則。
集中式 DNS 架構 — 多帳號模式
規範性的 ANS-C01 多帳號混合 DNS 模式:
中央網路帳號包含
- 位於「DNS-hub」VPC 的入站端點,供本地查詢 AWS 端名稱。
- 位於同一個「DNS-hub」VPC 的出站端點,供 AWS 查詢本地名稱。
- 轉發規則:
corp.example.com → 本地 DC IP(用於 AD 名稱),以及任何其他本地網域。 - 私有託管區域 (PHZ),用於
aws.example.com等 AWS 端名稱,透過跨帳號 PHZ 關聯與各帳號的所有相關 VPC 關聯。
RAM 共用
- 解析器規則透過 RAM 共用給所有成員帳號。
- PHZ 透過跨帳號 PHZ 關聯 API 與成員帳號 VPC 關聯。
成員帳號
- 工作負載 VPC 使用 VPC+2 解析器 (AmazonProvidedDNS) — 不變更 DHCP 選項集。
- VPC+2 解析器套用共用的解析器規則,透過中央出站端點將
corp.example.com查詢轉發到本地。 - VPC+2 解析器從關聯的 PHZ 回答
aws.example.com查詢。 - 公有 DNS 查詢透過系統規則正常流動。
本地端
- 本地 DNS 伺服器具有針對
aws.example.com→ 入站端點 IP 的條件轉發器。 - 本地查詢
db.aws.example.com→ 轉發到入站端點 → 解析器從 PHZ 回答 → 回傳至本地。
- VPC+2:預設解析器 IP,例如 10.0.0.0/16 為 10.0.0.2。
- 入站端點:本地查詢流進 AWS 解析器。
- 出站端點:AWS 解析器查詢流出到本地。
- 轉發規則:網域 → 目標 IP,後綴匹配,最精確者勝出。
- 解析器規則是區域性的 — 無法跨區域共用。
- 每個 VPC 一個 DHCP 選項集:變更不適用於現有執行個體。
.internal:AWS 保留的 TLD;不能在此命名空間託管 PHZ。- PHZ 關聯:透過 API 跨帳號;每個 PHZ 最多可關聯 ~300 個 VPC (可提高)。
- 解析器端點定價:每個 AZ 每小時 + 每百萬次查詢。
- 參考資料:https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html
Route 53 Resolver DNS Firewall — 出站 DNS 的網域過濾
Route 53 Resolver DNS Firewall 根據網域允許清單或拒絕清單,過濾來自 VPC 執行個體的出站 DNS 查詢。它是 AWS 託管的方案,用以解決「透過 DNS 滲漏阻止 C2 回呼」的問題。
架構
一個規則群組包含一個或多個規則。每個規則包含:
- 網域清單 — 受管理的主機名稱清單 (允許、封鎖、警示)。
- 動作 — ALLOW、BLOCK、ALERT 或 NXDOMAIN 回應。
- 優先順序 — 評估順序。
規則群組與 VPC 關聯。來自 VPC 執行個體的查詢在到達預設解析器之前會先經過防火牆。
使用案例
- 封鎖已知的惡意網域 — 來自 AWS 或第三方 (如 Spamhaus、OpenPhish) 的受管理網域清單。
- 限制出站 DNS 僅限公司核准的網域 (僅允許清單模式)。
- 偵測 DNS 滲漏 — 對可疑 TLD 或新註冊網域的查詢發出警示。
與 Firewall Manager 整合
Route 53 Resolver DNS Firewall 政策可以透過 AWS Firewall Manager 在全組織部署,確保每個 VPC 都具備相同的基準 DNS 安全政策。
成本
每百萬次查詢計費,外加每個規則群組關聯的小時費用。對於典型工作負載,成本適中;隨 DNS 查詢速率擴展。
混合 DNS 模式 — 加入 Active Directory 的 VPC
ANS-C01 上測試最頻繁的特定場景:AWS 工作負載需要加入本地 Active Directory。
需求
- AWS 執行個體必須能解析
corp.example.com以及 AD 內部名稱,如dc1.corp.example.com、_ldap._tcp.corp.example.com(SRV 記錄)。 - AWS 執行個體必須能透過 Direct Connect 或 VPN 存取本地 IP 的 AD DC。
- AWS 執行個體可能需要在 AD DNS 中註冊其主機名稱 (動態 DNS 更新)。
解決方案
選項 1:出站端點 + 轉發規則 (大多數情況推薦)。
- 在網路帳號 VPC 建立出站端點。
- 轉發規則
corp.example.com → 本地 DC IP。 - 透過 RAM 共用給工作負載帳號;規則與工作負載 VPC 關聯。
- AWS 執行個體使用 VPC+2 解析器,該解析器透過出站端點將
corp.example.com查詢轉發到本地 DC。
選項 2:指向本地 DC 的 DHCP 選項集 (舊式,依然有效)。
- 設定 DHCP 選項集
domain-name-servers為本地 DC IP。 - 執行個體針對所有 DNS 使用本地 DC,包含
corp.example.com和公有 DNS。 - 副作用:AWS 服務 DNS (
s3.amazonaws.com等) 也會透過本地解析 — 增加延遲。
選項 3:具備信任關係的 AWS Managed Microsoft AD (較新,AWS 原生)。
- 在 VPC 中部署 AWS Managed Microsoft AD。
- 與本地 AD 建立信任關係。
- AWS 執行個體加入 AWS Managed AD;解析器使用 Managed AD DNS。
對於 ANS-C01,選項 1 (具備轉發規則的出站端點) 是規範性答案。選項 2 是舊式做法。選項 3 更多屬於 SAP-C02 / SAA 的範疇。
常見陷阱複習 — Route 53 Resolver 在 ANS-C01
陷阱 1:入站和出站名稱指的是本地端的方向
錯誤。入站和出站是從 AWS 解析器的角度命名的。入站 = 進入 AWS 解析器的流量;出站 = 從 AWS 解析器流出的流量。
陷阱 2:一個解析器端點服務所有區域
錯誤。解析器端點和規則是區域性的。多區域需要按區域部署。
陷阱 3:DHCP 選項集更新立即生效
錯誤。現有執行個體保留舊的 DHCP 租約直到續約或重啟。
陷阱 4:PHZ 可以託管 .internal 區域
錯誤。.internal 是 AWS 保留的。請使用自訂網域 (例如 aws.example.com)。
陷阱 5:解析器規則是全球性的
錯誤。解析器規則是按區域劃分的。若要共用,僅限在同一區域內使用 RAM。
陷阱 6:出站端點為本地解析 AWS PHZ
錯誤。出站端點是從 AWS 解析器轉發到本地。要讓本地解析 AWS PHZ,請使用入站端點 + 本地條件轉發器。
陷阱 7:每個 VPC 的 VPC+2 解析器 IP 都一樣
錯誤。VPC+2 是一個計算結果 — 基礎 CIDR + 2。對於 10.0.0.0/16,它是 10.0.0.2。對於 172.31.0.0/16,它是 172.31.0.2。
陷阱 8:Resolver DNS Firewall 封鎖所有基於 UDP/TCP 的 DNS
錯誤。Resolver DNS Firewall 是根據網域名稱進行過濾,而非通訊協定。若要封鎖 DNS over HTTPS 或 DNS over TLS,請使用 Network Firewall 或第三方工具。
FAQ — Route 53 Resolver 與混合 DNS
Q1:我何時需要入站端點,何時需要出站端點?
入站端點用於從本地解析 AWS 端名稱。範例:本地伺服器需要解析 db.aws.example.com (關聯到 VPC 的私有託管區域記錄)。本地 DNS 條件轉發到入站端點,後者透過 PHZ 進行解析。出站端點用於從 AWS 解析本地名稱。範例:AWS Lambda 需要解析 dc1.corp.example.com (Active Directory DC)。VPC+2 解析器透過出站端點轉發到本地 DNS。許多混合部署兩者都需要——入站端點用於本地到 AWS,出站端點用於 AWS 到本地。這些名稱之所以混淆,是因為它們是從解析器的角度來看的:入站 = 流量流進解析器;出站 = 流量從解析器流出。
Q2:如何跨多個帳號和 VPC 共用解析器規則?
在中央網路帳號中建立解析器規則。使用 AWS Resource Access Manager (RAM) 建立資源共用並包含該解析器規則。將成員帳號 (或整個 AWS Organization) 新增為主體。成員帳號隨後可以接受共用,並透過 Route 53 Resolver 主控台或 API 將規則與其自身的 VPC 關聯。規則在中央帳號定義一次,但可以套用到多個 VPC。支援該規則的出站端點位於中央帳號,且透過規則隱含地共用使用權。注意:規則是區域性的——僅在同區域內共用。對於多區域,請在每個區域重複此模式。
Q3:條件轉發與水平分割 DNS (split-horizon DNS) 有什麼區別?
條件轉發是 DNS 伺服器上的設定 (或透過轉發規則在 Route 53 Resolver 上設定),意指「對於關於特定網域 X 的查詢,轉發到特定目標 Y」。它是基於名稱模式的查詢路由。水平分割 DNS 是指根據查詢來源,針對同一個查詢提供不同的 DNS 答案。範例:api.example.com 從公用網際網路解析為公有 IP,但從 VPC 解析為私有 IP。水平分割是一種部署模式,在 AWS 上透過私有託管區域 (會覆蓋該 VPC 的公有 DNS) 來實現。條件轉發是機制;水平分割是結果。ANS-C01 題目會同時使用這兩個術語——請辨認出它們相關但並非同義詞。
Q4:與使用我自己的 DNS 伺服器相比,VPC+2 解析器有何優劣?
VPC+2 (AmazonProvidedDNS) 是 AWS 託管的,具備自動擴展、免費的特性,且開箱即用地處理 PHZ 關聯、公有 DNS、.internal 和解析器規則。缺點:除了 Route 53 Resolver 支援的功能外,你無法自訂其行為。自訂 DNS 伺服器 (EC2 上的 BIND、Windows DNS 等) 提供完全控制:任意區域、自訂檢視 (views)、與 AD 整合、進階過濾。缺點:你必須自行管理可用性、擴展、安全和修補。大多數 AWS 工作負載使用 VPC+2 搭配選用的解析器規則和 DNS Firewall——這能覆蓋絕大多數需求。自訂 DNS 適用於與 AD 深度整合的工作負載 (有時)、對 DNS 有特殊硬編碼需求的遺留應用程式,或當 AWS 託管功能不足時。對於 ANS-C01,除非題目明確要求自訂 DNS,否則請預設選擇 VPC+2 + 解析器規則。
Q5:如何設定 VPC 以使 EC2 執行個體使用本地 DNS 作為主要解析器?
有兩種模式。模式 1 (推薦):出站端點 + 轉發規則。保留 VPC+2 作為主要解析器 (預設)。新增轉發規則,將本地網域透過出站端點轉發。AWS 服務 DNS 依然透過 VPC+2 解析 (快速);本地網域轉發到本地 (正確)。模式 2 (舊式):DHCP 選項集。建立自訂 DHCP 選項集,設定 domain-name-servers = <本地 DC IP>, AmazonProvidedDNS。與 VPC 關聯。新執行個體將優先使用本地 DC,失敗後回退到 AmazonProvidedDNS。副作用:所有 DNS (包含 AWS 服務 DNS) 都會先經過本地——增加延遲與本地 DC 的負載。模式 1 是現代最佳實務;模式 2 僅在加入 AD 的 Windows 舊式環境中是標準預期時才需要。
Q6:將私有託管區域 (PHZ) 與 VPC 關聯時會發生什麼事?
該 PHZ 會成為該網域在該 VPC 內的權威答案。來自 VPC 執行個體對於 PHZ 網域 (例如 db.aws.example.com) 的查詢會回傳 PHZ 記錄,繞過公有 DNS。PHZ 記錄僅能從關聯的 VPC 中看見——公用網際網路看不見或會看見不同的記錄。跨帳號 PHZ 關聯:透過 create-vpc-association-authorization (帳號 A) + associate-vpc-with-hosted-zone (帳號 B) API 呼叫,帳號 A 中的 PHZ 可以關聯到帳號 B 中的 VPC。這是規範性的多帳號混合 DNS 模式:PHZ 位於中央帳號,與跨多個帳號的工作負載 VPC 關聯。PHZ 不會透過 VPC 互連或 TGW 傳播——需要顯式的跨帳號關聯。
Q7:如何讓本地系統解析關聯到多個 VPC 的私有託管區域?
步驟 1:在任何一個已關聯該 PHZ 的 VPC 中部署一個入站端點 (入站端點存取解析器,解析器能看見 PHZ)。步驟 2:設定本地 DNS 伺服器,針對 PHZ 的網域設定一個條件轉發器,指向入站端點 IP (通常是跨兩個 AZ 的兩個 ENI 以實現高可用性)。步驟 3:從本地查詢 PHZ 記錄——本地 DNS 轉發到入站端點,入站端點從 PHZ 解析並回傳答案。注意:本地必須具備與入站端點 ENI 的 IP 連線性 (透過 Direct Connect 或 VPN),且入站端點的安全群組必須允許來自本地 CIDR 的入站 TCP/UDP 53。同一個入站端點可以服務許多本地用戶端和許多 PHZ (該端點所在 VPC 所關聯的任何 PHZ 都是可達的)。
Q8:Route 53 Resolver DNS Firewall 與用於 DNS 過濾的 AWS Network Firewall 有什麼不同?
Route 53 Resolver DNS Firewall 在 DNS 查詢層根據查詢的網域名稱進行過濾。它可以 ALLOW、BLOCK、ALERT 或回傳 NXDOMAIN。它是專為 DNS 打造的——高效、AWS 託管,並具備受管理的網域清單。AWS Network Firewall 在封包層使用相容 Suricata 的狀態規則進行過濾。它可以檢查 DNS 協定封包,但更為通用。對於純粹的 DNS 過濾 (封鎖已知惡意網域、限制為允許清單網域),請使用 Resolver DNS Firewall——它更便宜、更簡單且具備 DNS 感知能力。對於包含 DNS-over-HTTPS 和 DNS-over-TLS (Resolver DNS Firewall 無法處理) 在內的所有協定的深層封包檢查,請使用具備適當規則的 Network Firewall。許多部署同時使用兩者:Resolver DNS Firewall 用於預設 DNS 過濾,Network Firewall 用於可疑流量的協定層級檢查。
Q9:如何架構解析器規則以在同一個命名空間中支援公司 AD 網域和 AWS 內部子網域?
假設公司使用 example.com 且 AD 位於 corp.example.com,而 AWS 工作負載針對 AWS 資源使用 aws.example.com。架構方案:在網路帳號建立 aws.example.com 的 PHZ,並與所有相關工作負載 VPC 關聯。針對 AWS 資源建立記錄 (db.aws.example.com → 10.0.5.42)。在網路帳號建立 corp.example.com → 本地 DC IP 的轉發規則,透過 RAM 共用,並與工作負載 VPC 關聯。針對 example.com 本身 (父區域) 的公有 DNS 處理其餘部分。解析器評估過程:查詢 db.aws.example.com → PHZ 勝出 (最精確)。查詢 dc1.corp.example.com → 轉發規則勝出。查詢 www.example.com (父區域) → 透過系統規則落入公有 DNS。結果:每個子網域都由正確的權威機構解析,互不衝突。
Q10:如何確保混合解析的跨 AZ DNS 高可用性 (HA)?
對於入站和出站端點,請在至少兩個 AZ 中部署 ENI (通常與工作負載所在的 AZ 相同)。每個端點在選定的子網路中佈建一個 ENI;查詢由本地 DNS 或 AWS 解析器在 ENI 之間進行負載平衡。如果一個 AZ 故障,另一個 AZ 的 ENI 會繼續提供服務。對於到 AWS 入站端點的本地條件轉發,請在本地 DNS 中將兩個入站端點 IP 都設定為轉發器 (通常為兩個 AZ 中的兩個 IP);本地 DNS 將在它們之間進行故障轉移。對於到本地的出站端點轉發,轉發規則的目標 IP 應包含多個本地 DC IP 以實現故障轉移。Route 53 Resolver 本身 (VPC+2) 是區域性的且具備 AZ 冗餘——無需擔心特定 AZ 的可用性。端對端 HA 路徑:VPC+2 (區域性) → 出站端點 (多 AZ ENI) → 本地 DC IP (多個 DC)。每一層都有冗餘,系統能容忍任何單一 AZ 或 DC 故障。
延伸閱讀
- Resolving DNS Queries Between VPCs and Your Network
- Route 53 Resolver Getting Started
- Managing Resolver Rules
- Route 53 Resolver DNS Firewall
- DHCP Option Sets
- Working with Private Hosted Zones
- AWS ANS-C01 Exam Guide
Route 53 Resolver 是混合 DNS 平面;在 ANS-C01 上的下一層是 Route 53 公有、私有與流量政策,涵蓋更廣泛的 DNS 功能集;VPC 架構與子網路劃分,因為解析器 IP 的放置取決於子網路設計;Transit Gateway 路由,用於連接混合 DNS 端點的底層網路;以及用於宣告式定義解析器規則和端點共用的 IaC 模式。