Cloud DNS 入門:公開、私有網域與解析路徑
前言
網站網域要指向服務,或內部系統要用私有名稱互相找到,背後都需要 DNS。Cloud DNS 讓你管理這些解析紀錄;公開與私有 Zone 的差別,會直接影響誰查得到。這篇就從一次查詢會走到哪裡開始說。
如果還不熟 VPC,建議先看 GCP 網路基礎;後面談 Private Zone 和 Split-Horizon DNS 時會用到。

Cloud DNS 儲存並回答 Zone 的權威紀錄,使用者實際先問的是遞迴解析器。相同名稱可在 Public 與 Private zone 回傳不同位址形成 split-horizon;私有 Zone 只對授權 VPC 可見。DNSSEC 用於公開 Zone 的簽章驗證,Routing policy 選擇健康端點,Response policy 則在內部解析路徑覆寫或封鎖名稱。
什麼是 Cloud DNS?
Cloud DNS 是 GCP 的全託管權威 DNS 服務,負責將域名(如 example.com)解析為 IP 位址:
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart LR
subgraph CLIENT["1. 用戶端與遞迴解析"]
direction TB
USER["瀏覽器/應用查詢<br/>www.example.com"] --> RESOLVER["遞迴 Resolver<br/>ISP、企業或 Public DNS"]
RESOLVER --> CACHE{"TTL 快取中已有<br/>有效答案?"}
CACHE -->|"是"| CACHED["直接回傳快取結果"]
end
subgraph DELEGATION["2. 尋找權威名稱伺服器"]
direction TB
ROOT["Root 與 TLD 委派"] --> NS["取得 example.com 的<br/>Cloud DNS NS 記錄"]
end
subgraph AUTHORITATIVE["3. 權威回答"]
direction TB
ANYCAST["Google 全球 Anycast<br/>就近到達 Cloud DNS"] --> ZONE["查詢 Managed Zone<br/>中的 Resource Record Set"]
ZONE --> ANSWER["回傳權威答案與 TTL<br/>例如 203.0.113.1"]
end
CACHE -->|"否"| ROOT
NS --> ANYCAST
ANSWER --> RESOLVER Cloud DNS 是權威 DNS,不是一般使用者直接查詢的遞迴 Resolver。Resolver 先利用快取;沒有答案時沿 DNS 委派找到 Cloud DNS,取得權威記錄後依 TTL 快取再回給用戶端。
核心特性
- 100% SLA 目標——適用於官方條款定義的權威 DNS 查詢服務,不等於整條網站連線都保證不中斷
- 全球 Anycast 網路——自動路由到最近的節點以降低查詢延遲。對你的意義是:不管使用者在台北還是巴黎,查你的域名都是就近回應,不用自己架一堆海外 DNS 伺服器
- 自動擴展——支援數百萬 DNS Zone 和記錄
- 完整 API——Console、gcloud CLI、REST API、Terraform 全支援
Zone 類型
Cloud DNS 有好幾種 Zone 類型,各自對應不同的使用情境:
| Zone 類型 | 說明 | 適用場景 |
|---|---|---|
| Public Zone | 對外公開的 DNS 記錄 | 網站、API 對外服務 |
| Private Zone | 僅限指定 VPC 內部存取 | 內部服務、微服務 |
| Forwarding Zone | 將查詢轉發到指定 DNS 伺服器 | 混合雲連接地端 DNS |
| Peering Zone | 跨 VPC 的 DNS 解析 | Shared VPC、跨專案 |
| Managed Reverse Lookup | PTR 記錄(IP → 域名) | 反向 DNS 查詢 |
表格超出欄寬時,可左右捲動;鍵盤可聚焦表格後用左右方向鍵查看。
建立 Zone
# 建立 Public Zone
gcloud dns managed-zones create my-zone \
--dns-name="example.com." \
--description="Production zone" \
--visibility=public
# 建立 Private Zone(綁定到 VPC)
gcloud dns managed-zones create my-private-zone \
--dns-name="internal.example.com." \
--description="Internal services" \
--visibility=private \
--networks=my-vpc-network
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
subgraph SCOPE["1. 判斷可見範圍"]
direction TB
START["要提供哪一段 DNS Namespace?"] --> INTERNET{"公開網際網路<br/>必須能查詢?"}
INTERNET -->|"是"| PUBLIC["Public Zone<br/>公開權威記錄"]
end
subgraph PRIVATE_TYPE["2. 選擇私有 Zone 類型"]
direction TB
SOURCE{"答案由 Cloud DNS<br/>直接管理?"}
SOURCE -->|"是"| PRIVATE["Private Zone<br/>綁定 VPC/GKE"]
SOURCE -->|"否"| OTHER_VPC{"要沿用另一個 VPC<br/>的解析順序?"}
OTHER_VPC -->|"是"| PEERING["Peering Zone<br/>指向 Producer VPC"]
OTHER_VPC -->|"否"| REVERSE_Q{"用途是內部 IP<br/>到主機名稱反查?"}
REVERSE_Q -->|"是"| REVERSE["Managed<br/>Reverse Lookup<br/>提供 PTR 反解"]
REVERSE_Q -->|"否,送往指定 DNS"| FORWARD["Forwarding Zone<br/>轉送特定 DNS 尾碼"]
end
INTERNET -->|"否,只限內部"| SOURCE Forwarding、Peering 與 Managed Reverse Lookup 都是私有 Zone 的特殊形式。Forwarding 把特定 DNS 尾碼送到目標伺服器;Peering 則讓 Consumer VPC 依 Producer VPC 的名稱解析順序查詢。

建 Zone 的表單長這樣。最上面可用區類型「公開 vs 私人」就是上面 Zone
類型表的分水嶺——公開對外、私人綁 VPC 對內。中間填區域名稱(Console 內部識別)跟真正的 DNS 名稱(
example.com.)。順帶一提,DNSSEC
在這裡就是一個下拉,預設停用、要防 DNS 欺騙就切成啟用——後面 DNSSEC 那節會細講,Google
全託管、還不加錢。

選了「私人」之後,這個選項下拉才是上面 Zone 類型表的完整版:將查詢轉送至其他伺服器=Forwarding Zone(混合雲接地端 DNS)、 DNS 對等互連=Peering Zone(跨 VPC)、代管反向查詢區=PTR 反解。原來 Forwarding、Peering、Reverse 都是私人 Zone 底下的變體,不是各自獨立的東西。
DNS 記錄管理
支援的記錄類型
| 記錄類型 | 說明 | 範例 |
|---|---|---|
| A | IPv4 位址 | 203.0.113.1 |
| AAAA | IPv6 位址 | 2001:db8::1 |
| CNAME | DNS 別名 | www → example.com |
| MX | 郵件伺服器 | 10 mail.example.com |
| TXT | 文字記錄 | SPF、DKIM 驗證 |
| SRV | 服務位置 | 主機 + 埠號 |
| CAA | CA 授權 | 限制發行 SSL 的 CA |
| NS | 名稱伺服器 | 委派子域名 |
| PTR | 反向解析 | IP → 域名 |
表格超出欄寬時,可左右捲動;鍵盤可聚焦表格後用左右方向鍵查看。
使用 Transaction 管理記錄
Cloud DNS 使用 Transaction 確保記錄變更的原子性:
# 新增 A 記錄
gcloud dns record-sets transaction start --zone=my-zone
gcloud dns record-sets transaction add "203.0.113.1" \
--name="www.example.com." \
--ttl=300 \
--type=A \
--zone=my-zone
gcloud dns record-sets transaction execute --zone=my-zone
# 新增 MX 記錄
gcloud dns record-sets transaction start --zone=my-zone
gcloud dns record-sets transaction add "10 mail.example.com." \
--name="example.com." \
--ttl=300 \
--type=MX \
--zone=my-zone
gcloud dns record-sets transaction execute --zone=my-zone
# 列出所有記錄
gcloud dns record-sets list --zone=my-zone
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart LR
subgraph PREPARE["1. 準備變更"]
direction TB
START["transaction start"] --> STAGE["暫存一或多筆 add/remove<br/>尚未影響權威答案"]
STAGE --> REVIEW["檢查名稱、類型、TTL<br/>與完整 RRset"]
end
subgraph COMMIT["2. 原子提交"]
direction TB
EXECUTE["transaction execute"] --> RESULT{"整批變更<br/>通過驗證?"}
RESULT -->|"否"| REJECT["整批拒絕<br/>修正後重建 Transaction"]
end
subgraph OBSERVE["3. 等待快取更新"]
direction TB
PUBLISH["原子發布新版本<br/>不會看到半套記錄"] --> CACHE["Resolver 仍可能依舊 TTL<br/>暫時回傳快取答案"]
end
REVIEW --> EXECUTE
RESULT -->|"是"| PUBLISH Transaction 保證 Cloud DNS 端的變更一起成功或失敗,但不會清除全球 Resolver 已快取的舊答案。切換前要先規劃 TTL,不能把「權威端已發布」誤認成「所有用戶立即看到」。
DNSSEC
DNSSEC(DNS Security Extensions)防止 DNS 欺騙和快取中毒攻擊。Cloud DNS 提供全託管 DNSSEC:
# 建立時啟用 DNSSEC
gcloud dns managed-zones create secure-zone \
--dns-name="secure.example.com." \
--description="DNSSEC-enabled zone" \
--dnssec-state=on
# 對既有 Zone 啟用 DNSSEC
gcloud dns managed-zones update my-zone --dnssec-state=on
# 取得 DS 記錄(需在域名註冊商設定)
gcloud dns dns-keys list \
--filter='type=keySigning' \
--format='value(ds_record())' \
--zone=my-zone
DNSSEC 金鑰管理
- ZSK(Zone Signing Key):自動建立和輪換
- KSK(Key Signing Key):自動建立,但輪換需手動更新域名註冊商的 DS 記錄
- 支援 RSASHA256(預設)、ECDSAP256SHA256 等演算法
- 支援 NSEC 和 NSEC3 否定存在證明
- 啟用 DNSSEC 不額外收費
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
subgraph SIGN["1. Cloud DNS 簽署 Zone"]
direction TB
RRSET["A/AAAA 等<br/>Resource Record Set"] --> RRSIG["ZSK 產生 RRSIG"]
DNSKEY["KSK 簽署 DNSKEY 集合"]
end
subgraph DELEGATE["2. 在父 Zone 建立信任"]
direction TB
DS["從 Cloud DNS 取得 DS"] --> REGISTRAR["到 Registrar/父 Zone<br/>發布 DS 記錄"]
end
subgraph VALIDATE["3. Resolver 驗證"]
direction TB
ROOT["Root/TLD 信任鏈"] --> CHECK["驗證 DS →<br/>DNSKEY → RRSIG"]
CHECK --> RESULT{"簽章與資料一致?"}
RESULT -->|"是"| ACCEPT["回傳已驗證答案"]
RESULT -->|"否"| SERVFAIL["驗證失敗<br/>不接受遭竄改答案"]
end
DNSKEY --> DS
REGISTRAR --> ROOT
RRSIG --> CHECK 在 Cloud DNS 打開 DNSSEC 只是第一步;還必須把 DS 記錄發布到 Registrar/父 Zone,驗證 Resolver 才能建立完整信任鏈。移除或變更金鑰時也要按官方順序協調父子兩端,避免整個網域回傳 SERVFAIL。
Split-Horizon DNS
Split-Horizon DNS(也叫分割視野 DNS)讓同一個域名在內部和外部回傳不同 IP——白話講就是「同一個門牌,公司內部的人走的是內網捷徑,外面的人走的是大馬路」:
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart TB
subgraph SOURCE["1. 判斷查詢來源"]
direction TB
QUERY["查詢 api.example.com"] --> ORIGIN{"查詢來自哪裡?"}
end
subgraph PUBLIC_PATH["2A. 公開解析"]
direction TB
PUBLIC["沿公開 DNS 委派<br/>查詢 Public Zone"] --> EXTERNAL["回傳外部 Load Balancer<br/>203.0.113.1"]
end
subgraph PRIVATE_PATH["2B. VPC 私有解析"]
direction TB
PRIVATE["用最長尾碼匹配<br/>Private、Forwarding<br/>或 Peering Zone"] --> MATCH{"最相符的 Zone<br/>包含該記錄?"}
MATCH -->|"是"| INTERNAL["回傳內部 Load Balancer<br/>10.128.0.5"]
MATCH -->|"否,但 Zone 已匹配"| NXDOMAIN["回傳 NXDOMAIN<br/>不退回同名 Public Zone"]
end
ORIGIN -->|"公開網路"| PUBLIC
ORIGIN -->|"授權 VPC 內的 VM/GKE"| PRIVATE
PRIVATE -->|"沒有任何私有 Zone 匹配"| PUBLIC Split-Horizon 的關鍵不只是「Private 優先」,而是先用最長尾碼選出最相符的私有、轉送或對等 Zone。若 Zone 已匹配但記錄不存在,解析會得到 NXDOMAIN,不會再拿 Public Zone 的同名記錄補上。
設定方式
- 建立
example.com的 Public Zone,指向外部 IP - 建立
example.com的 Private Zone,綁定 VPC,指向內部 IP - VPC 內的查詢自動走 Private Zone(Private Zone 優先於 Public Zone)
💡 重點提點
Split-Horizon 的重點是:同一個網域名稱,VPC 內外可以得到不同的回應。若 VM 查到的仍是公開 IP,先確認 Private Zone 是否綁定了該 VM 所在的 VPC,以及記錄名稱是否正確,再檢查其他解析路徑。不要只看 Public Zone 的記錄就判斷內部查詢結果。
# Public Zone(對外)
gcloud dns managed-zones create example-public \
--dns-name="example.com." \
--visibility=public
# Private Zone(對內)
gcloud dns managed-zones create example-private \
--dns-name="example.com." \
--visibility=private \
--networks=my-vpc
DNS 路由策略
Cloud DNS 可以直接在 DNS 層級做流量導引:
| 策略 | 說明 | 適用場景 |
|---|---|---|
| 加權輪詢(WRR) | 按權重分配流量 | 金絲雀部署、A/B 測試 |
| 地理位置(Geolocation) | 按來源地理位置路由 | 多區域服務、就近存取 |
| 故障轉移(Failover) | 主要/備用自動切換 | 高可用架構 |
表格超出欄寬時,可左右捲動;鍵盤可聚焦表格後用左右方向鍵查看。
加權輪詢範例
# 90% 流量到 v1(203.0.113.1),10% 到 v2(203.0.113.2)(金絲雀部署)
gcloud dns record-sets create www.example.com. \
--zone=my-zone \
--type=A \
--ttl=300 \
--routing-policy-type=WRR \
--routing-policy-data="0.9=203.0.113.1;0.1=203.0.113.2"
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
flowchart LR
subgraph GOAL["1. 判斷分流目標"]
direction TB
START["同一 DNS<br/>名稱有多個端點"] --> PERCENT{"要依比例做<br/>Canary、A/B<br/>或漸進切換?"}
PERCENT -->|"否"| LOCATION{"要依查詢來源地區<br/>回傳就近端點?"}
LOCATION -->|"否"| RECOVERY{"要在主要<br/>端點失效時<br/>自動改用備援?"}
end
subgraph POLICY["2. 選擇 Routing Policy"]
WRR["Weighted<br/>Round Robin<br/>為每組端點<br/>設定權重"]
GEO["Geolocation<br/>依來源<br/>地理位置回應"]
FAILOVER["Failover<br/>搭配 Health<br/>Check"]
RECHECK["若需逐連線<br/>精準分流<br/>改由 Load<br/>Balancer 處理"]
end
PERCENT -->|"是"| WRR
LOCATION -->|"是"| GEO
RECOVERY -->|"是"| FAILOVER
RECOVERY -->|"否"| RECHECK
WRR --> VERIFY["設定 TTL,<br/>並用多個<br/>Resolver<br/>與地區驗證"]
GEO --> VERIFY
FAILOVER --> VERIFY DNS 路由控制的是 Resolver 取得哪組答案,不是逐一 HTTP Request 的精準負載平衡。快取與 TTL 會讓 WRR 比例在短時間內不完全等於權重;需要連線級健康與精細分流時,仍應搭配 Load Balancer。
Response Policy
Response Policy 可以在 DNS 層級覆寫解析結果:
# 建立 Response Policy
gcloud dns response-policies create security-policy \
--networks=my-vpc \
--description="Block malicious domains"
# 封鎖惡意域名(回傳 0.0.0.0)
gcloud dns response-policies rules create block-malware \
--response-policy=security-policy \
--dns-name="malicious-site.com." \
--local-data='name=malicious-site.com.,type=A,ttl=300,rrdatas=0.0.0.0'
# 豁免特定域名(passthru)
gcloud dns response-policies rules create allow-safe \
--response-policy=security-policy \
--dns-name="safe-site.com." \
--behavior=bypassResponsePolicy
常見用途
- 安全封鎖:阻擋已知惡意域名
- VPC Service Controls:重導
*.googleapis.com到受限 VIP - 內部服務覆寫:自訂特定服務的 DNS 解析
💡 重點提點
每個 VPC 只能綁定一個 Response Policy——這個限制很容易在實作時踩雷。新手常見的卡關情境是:已經有一條 Response Policy 在跑,又想加第二條規則集,結果建立時報錯。解法不是再建一個 Response Policy,而是把新規則加進現有的那一條裡(一個 Response Policy 底下可以放很多條 rule)。備考時留意這個一對一關係:看到「想在同一個 VPC 套用兩個 Response Policy」這種選項,直接刷掉。
DNS Server Policy
Server Policy 控制 VPC 內的 DNS 行為:
# 啟用 Inbound Forwarding + 查詢日誌
gcloud dns policies create my-policy \
--description="Inbound forwarding and query logging" \
--networks=my-vpc \
--enable-inbound-forwarding \
--enable-logging
# 設定 Alternative Name Servers(轉發到地端 DNS;一個 VPC 只能綁一個 Server Policy,這裡換另一個 VPC 示範)
gcloud dns policies create outbound-policy \
--description="Forward queries to on-prem DNS" \
--networks=my-other-vpc \
--alternative-name-servers="10.0.0.53,10.0.0.54"
| 功能 | 說明 |
|---|---|
| Inbound Forwarding | 讓地端 DNS 可以查詢 Cloud DNS(建立進入點 IP) |
| Outbound Forwarding | 將所有 DNS 查詢轉發到指定的名稱伺服器 |
| Query Logging | 記錄每一筆 DNS 查詢到 Cloud Logging |
表格超出欄寬時,可左右捲動;鍵盤可聚焦表格後用左右方向鍵查看。
流程圖暫時無法顯示。可先查看下方的流程與節點文字,或重新整理頁面後再試。
查看流程與節點文字
箭頭表示流程方向;方括號與引號內是節點名稱,可搭配下方圖解閱讀。
%%{init: {"flowchart": {"rankSpacing": 34}}}%%
flowchart TB
START["VPC/地端 DNS 整合需求"] --> PURPOSE{"主要要改哪一段<br/>名稱解析行為?"}
PURPOSE -->|"依名稱覆寫、封鎖或放行"| RESPONSE["Response Policy<br/>命中規則時覆寫私有解析"]
PURPOSE -->|"地端與 Google Cloud 互查"| DIRECTION{"查詢方向"}
PURPOSE -->|"跨 VPC 共用 Namespace"| PEERING["Peering Zone<br/>使用 Producer VPC 的解析順序"]
PURPOSE -->|"一般 Cloud DNS 解析"| DEFAULT["維持 Private/Public<br/>名稱解析順序"]
DIRECTION -->|"地端查 Cloud 私有名稱"| INBOUND["Inbound Server Policy<br/>提供地端查詢入口 IP"]
DIRECTION -->|"VPC 查地端/自管 DNS"| SCOPE{"轉送範圍"}
SCOPE -->|"只有特定 DNS 尾碼"| FORWARDZONE["Forwarding Zone<br/>轉送特定 Namespace"]
SCOPE -->|"整個 VPC 使用替代 DNS"| OUTBOUND["Outbound Server Policy<br/>設定 Alternative Name Servers"] Server Policy、Response Policy 與 Routing Policy 可以同時存在,但解決的層次不同。Forwarding Zone 適合特定 Namespace;Outbound Server Policy 影響整個 VPC 的替代名稱伺服器;Inbound 則提供地端進入 Google Cloud 私有解析的入口。
與其他 GCP 服務整合
| 服務 | 整合方式 |
|---|---|
| GKE | Cloud DNS 可取代 kube-dns 作為叢集 DNS |
| Cloud Run | 自訂域名映射到 Cloud Run 服務(domain mapping 仍是 Preview,正式環境官方建議走全域外部 Application Load Balancer) |
| Load Balancer | 路由策略搭配健康檢查做故障轉移 |
| Shared VPC | Cross-Project Binding Zone 支援跨專案 |
| Service Directory | 服務探索,統一微服務端點註冊 |
表格超出欄寬時,可左右捲動;鍵盤可聚焦表格後用左右方向鍵查看。
定價
Zone 費用
| 層級 | 費用(每 Zone / 月) |
|---|---|
| 前 25 個 Zone | $0.20 |
| 第 26~10,000 個 | $0.10 |
| 超過 10,000 個 | $0.03 |
表格超出欄寬時,可左右捲動;鍵盤可聚焦表格後用左右方向鍵查看。
查詢費用
| 類型 | 層級 | 費用(每百萬次查詢) |
|---|---|---|
| 標準查詢 | 前 10 億次 / 月 | $0.40 |
| 標準查詢 | 超過 10 億次 / 月 | $0.20 |
| 路由策略查詢 | 前 10 億次 / 月 | $0.70 |
| 路由策略查詢 | 超過 10 億次 / 月 | $0.35 |
表格超出欄寬時,可左右捲動;鍵盤可聚焦表格後用左右方向鍵查看。
使用 WRR、Geolocation 或 Failover 路由策略的查詢,費用較標準查詢高。
成本估算
10 個 Zone + 1 億次查詢 / 月:
- Zone:10 × $0.20 = $2.00
- 查詢:100 × $0.40 = $40.00
- 合計:~$42 / 月
Cloud DNS 沒有免費層,但 GCP 新帳號有 $300 免費試用額度可折抵。
配額與限制
| 資源 | 預設限制 |
|---|---|
| 每個專案的 Zone 數量 | 10,000 |
| 每個 Zone 的記錄數量 | 10,000 |
| 每個網路的 Peering Zone | 1,000 |
| 每個 VPC 的 Response Policy | 1 |
| 每個 Forwarding Zone 的轉發目標 | 50 |
表格超出欄寬時,可左右捲動;鍵盤可聚焦表格後用左右方向鍵查看。
ACE 考試重點整理
必背知識點
- Cloud DNS 是全託管權威 DNS 服務,跑在 Google Anycast 網路上
- Cloud DNS 的 SLA 目標為 100%——範圍以官方條款定義的權威 DNS 查詢服務為準
- Private Zone 優先於 Public Zone(VPC 內查詢)
- Split-Horizon DNS:同一域名內外回傳不同 IP
- DNSSEC:全自動管理 KSK/ZSK 輪換
- Response Policy:DNS 層級封鎖惡意域名
- DNS 路由策略:WRR(加權)、Geolocation(地理)、Failover(故障轉移)
常見陷阱題
Q:需要讓同一域名在公司內部和外部解析到不同 IP,怎麼做? A:Split-Horizon DNS。建立同名的 Public Zone 和 Private Zone,VPC 內查詢自動走 Private Zone。
Q:Cloud DNS 的 SLA 是多少? A:官方 SLA 目標是 100%,涵蓋條款定義的權威 DNS 查詢服務。回答時也要說清楚適用範圍與排除條件,不能把它當成整個網站的可用性保證。
Q:如何在 DNS 層級阻擋員工存取惡意網站? A:使用 Response Policy,建立規則將惡意域名導向 0.0.0.0。
Q:地端伺服器需要查詢 Cloud DNS 的 Private Zone,怎麼設定? A:建立 DNS Server Policy 並啟用 Inbound Forwarding,建立進入點 IP 供地端 DNS 轉發查詢。
Q:Cloud DNS 和 Cloud Domains 有什麼不同? A:Cloud DNS 是 DNS 代管服務(管理 DNS 記錄)。Cloud Domains 是域名註冊服務(購買和管理域名)。兩者是獨立的服務,通常搭配使用。
總結
Cloud DNS 負責託管權威 DNS 記錄。規劃時可以從下面幾點檢查:
- 定位:全託管權威 DNS,透過全球 Anycast 網路提供查詢服務
- Zone 類型:Public(對外)、Private(對內)、Forwarding(混合雲)、Peering(跨 VPC)
- 安全:DNSSEC 自動管理、Response Policy 封鎖惡意域名
- 路由:WRR、Geolocation、Failover 三種策略
- Split-Horizon:同一域名內外不同解析
- 定價:$0.20 / Zone / 月 + $0.40 / 百萬查詢
設定 Private Zone 後,最好從實際會發出查詢的 VM 或服務測一次解析結果。如果得到公開 IP,先檢查 Zone 綁定的 VPC、記錄名稱與查詢路徑;這比只看 Console 裡的記錄更能確認設定是否生效。
下一課 ACE-215:GCP 基礎架構即代碼(IaC)策略,學習 Terraform、Infrastructure Manager 和 Config Connector 的實戰應用。
讀完後,留一個學習紀錄
試著用自己的話說出一個重點,以及你會如何運用。實作文章請先核對結果與清理資源,再標記為讀完。
文章進度以你確認讀完的標記為準,可隨時取消。舊版造訪紀錄保留,但不計入讀完;這份自評不代表已掌握內容。