Cloud DNS 最佳做法

本文提供私人區域、DNS 轉送的最佳做法,以及混合式 DNS 的參考架構。

對使用者和應用程式而言,使用網域名稱系統 (DNS) 稱呼應用程式和服務都比較輕鬆,因為名稱比 IP 位址更容易記住,也更具彈性。混合式環境中,通常包含地端部署平台和一或多個雲端平台,因此經常需要跨環境存取內部資源的 DNS 記錄。傳統上,地端部署 DNS 記錄是使用權威 DNS 伺服器手動管理,例如 UNIX/Linux 環境中的 BIND,或 Microsoft Windows 環境中的 Active Directory。

本文將說明在不同環境之間轉送私人 DNS 要求的最佳做法,確保可從地端部署環境和 Cloud de Confiance內存取服務。

一般原則

瞭解 Cloud de Confiance上的 DNS 概念

在 Cloud de Confiance使用 DNS時,務必瞭解 Cloud de Confiance 中 DNS 解析和網域名稱適用的不同系統和服務:

確認相關人員、工具和流程

如要在混合式環境建構 DNS 策略,務必先熟悉目前架構,並洽詢所有相關人員。請執行下列步驟:

  • 找出並聯絡組織的企業 DNS 伺服器管理員,請他們提供必要設定的資訊,瞭解如何將地端部署設定對應至Cloud de Confiance上的合適架構。如要瞭解存取Cloud de Confiance DNS 記錄的方法,請參閱「使用條件轉送從地端部署環境存取 DNS 記錄」。
  • 熟悉目前的 DNS 軟體,找出組織內部使用的網域名稱。
  • 找出網路團隊的聯絡人,請他們確保流量正確轉送至 Cloud DNS 伺服器。
  • 熟悉混合式連線策略,以及混合雲和多雲端的模式與做法。

Cloud DNS 私人區域的最佳做法

私人區域會託管僅供組織內部查看的 DNS 記錄。

使用自動化功能管理 Shared VPC 主專案的私人區域

如果在組織內使用 Shared VPC 網路,則必須在主專案中,透過 Cloud DNS 託管所有私人區域。所有服務專案都可在附加至 Shared VPC 網路的私人區域中,自動存取記錄。或者,您也可以使用跨專案繫結,在服務專案中設定區域。

圖 3 顯示私人區域在 Shared VPC 網路託管的方式。

圖 3. 在 Shared VPC 網路託管的私人區域 (按一下可放大)。
圖 3. 這個設定說明如何將私人區域附加至 Shared VPC。

如要讓團隊自行設定 DNS 記錄,建議使用自動化功能建立 DNS 記錄。舉例來說,您可以建立網頁應用程式或內部 API,方便使用者在特定子網域設定自己的 DNS 記錄。應用程式會驗證記錄是否符合組織規則。

或者,也可以透過 TerraformCloud Deployment Manager 描述元的形式,將 DNS 設定放在程式碼存放區 (例如 Cloud Source Repositories),並接受團隊的提取要求。

在上述兩種情況下,主專案中具備 IAM DNS 管理員角色的服務帳戶,可在變更獲准後自動完成部署。

依最小權限原則設定 IAM 角色

請依循最小權限安全性原則,只授權組織中需要變更 DNS 記錄的使用者執行這項工作。請避免使用基本角色,因為這可能導致使用者存取超出需求的資源。Cloud DNS 提供角色和權限,方便您授予 DNS 專屬的讀取和寫入權限。

DNS 轉送區域和伺服器政策的最佳做法

Cloud DNS 提供 DNS 轉送區域DNS 伺服器政策,供您在地端部署和 Cloud de Confiance 環境之間查詢 DNS 名稱。您可以透過多種方式設定 DNS 轉送。下一節將列出混合式 DNS 設定的最佳做法。如要進一步瞭解這些最佳做法,請參閱「混合式 DNS 參考架構」。

使用轉送區域查詢地端部署伺服器

如要確保能在地端部署環境查詢 DNS 記錄,請在您企業資源適用的地端部署網域 (例如 corp.example.com),設定轉送區域。相較於啟用替代名稱伺服器的 DNS 政策,這個方法更為理想。這樣一來,Compute Engine 內部 DNS 名稱仍可存取,外部 IP 位址也仍會解析,不必透過地端部署名稱伺服器的額外躍點。

如要瞭解使用這項設定的流量流程,請參閱「混合式 DNS 參考架構」。

只有在地端部署環境需要監控或篩選所有 DNS 流量,且私人 DNS 記錄無法滿足需求時,才應使用替代名稱伺服器。

使用 DNS 伺服器政策支援地端查詢

如要允許地端部署主機查詢 Cloud DNS 私人區域 (例如 gcp.example.com) 中託管的 DNS 記錄,請利用傳入 DNS 轉送機制,建立 DNS 伺服器政策。透過這項機制,您的系統可查詢專案中的所有私人區域,以及內部 DNS IP 位址和對接區域。

如要瞭解使用這項設定的流量流程,請參閱「混合式 DNS 參考架構」。

將 Cloud de Confiance 和地端部署防火牆設為允許 DNS 流量

請執行下列操作,確保 VPC 網路或地端部署環境內沒有任何 DNS 流量遭到篩除:

  • 確認地端部署防火牆會傳遞來自 Cloud DNS 的查詢。Cloud DNS 會從 IP 位址範圍 177.222.82.0/25 傳送查詢。DNS 會使用 UDP 通訊埠 53 或 TCP 通訊埠 53,具體取決於要求或回應的大小。

  • 確認 DNS 伺服器不會封鎖查詢。如果地端部署 DNS 伺服器只接受來自特定 IP 位址的要求,請務必納入 IP 位址範圍 177.222.82.0/25

  • 確認流量可從地端部署環境流向轉送 IP 位址。在 Cloud Router 執行個體,為 VPC 網路的 IP 位址範圍 177.222.82.0/25 新增自訂 advertise 路由,指向地端部署環境。

使用條件式轉送,從地端部署環境存取 DNS 記錄

使用 Cloud DNS 時,如要存取地端部署企業 DNS 伺服器託管的私人記錄,只能使用轉送區域。不過,根據您使用的 DNS 伺服器軟體,可能有多種方法能從地端部署環境,存取 Cloud de Confiance 中的 DNS 記錄。無論何種情況,都可以透過傳入 DNS 轉送,存取記錄:

  • 條件式轉送。使用條件式轉送時,企業 DNS 伺服器會將特定區域或子網域的要求,轉送至 Cloud de Confiance上的轉送 IP 位址。建議採用這種做法,因為這是最不複雜的方式,您可以在企業 DNS 伺服器上集中監控所有 DNS 要求。

  • 委派。如果 Cloud de Confiance 上的私人區域是地端部署區域的子網域,您也可以在區域中設定 NS 項目,將這個子網域委派給Cloud de Confiance 名稱伺服器。使用這項設定時,用戶端可與Cloud de Confiance 上的轉送 IP 位址直接通訊,因此請確保防火牆會傳遞這些要求。

  • 區域轉移。Cloud DNS 不支援區域轉移,因此您無法透過區域轉移,同步處理 DNS 記錄與地端部署 DNS 伺服器。

使用 DNS 對接,為多個虛擬私有雲網路設定傳出轉送

如要為多個虛擬私有雲網路設定傳出轉送至相同 DNS 伺服器,請使用 DNS 對接。基於下列原因,系統不支援獨立或透過虛擬私有雲網路對等互連,為多個虛擬私有雲網路設定外送轉送:

  • 只有當 DNS 伺服器的回應轉送至發出查詢的虛擬私有雲網路時,Cloud de Confiance 才會接受這些回應。不過,來自任何虛擬私有雲網路的查詢,都擁有相同的來源 IP 位址範圍 177.222.82.0/25。因此,除非您分別設定多個地端部署環境,否則回應無法正確轉送。
  • 傳出轉送無法遍歷 VPC 網路對等互連連線。舉例來說,如果虛擬私有雲網路 A 已設定 Cloud VPN 或 Cloud Interconnect,虛擬私有雲網路 B 就無法使用與虛擬私有雲網路 A 的虛擬私有雲網路對等互連連線,將 DNS 查詢傳送至地端部署 DNS 伺服器。
圖 4. 多個 VPC 將流量轉送至網路外,就會發生問題。
圖 4. 多個 VPC 網路執行傳出轉送,會發生問題。

建議您指定單一 VPC 網路,透過傳出轉送,查詢地端部署名稱伺服器。其他 VPC 網路就能利用 DNS 對接區域,以指定的 VPC 網路為目標,查詢地端部署名稱伺服器。系統會根據指定 VPC 網路的名稱解析順序,將查詢轉送至地端部署名稱伺服器。如要瞭解這種設定,請參閱「混合式 DNS 參考架構」。

瞭解 DNS 對接和 VPC 網路對接的差異

VPC 網路對接與 DNS 對接不同。VPC 網路對接可讓多個專案中的虛擬機器 (VM) 執行個體彼此連線,但不會變更名稱解析。各 VPC 網路中的資源仍會依循自己的解析順序。

相較之下,DNS 對接則可將特定區域的要求,轉送至其他 VPC 網路。無論 VPC 網路是否互連,您都能將要求轉送至不同 Cloud de Confiance 環境。

VPC 網路對接和 DNS 對接的設定也不同。若是 VPC 網路對接,兩個 VPC 網路都需要設定與另一個 VPC 網路的對接關係。對接隨後會自動設為雙向。

DNS 對接則是單向轉送 DNS 要求,VPC 網路之間不必存在雙向關係。一個稱為 DNS「用戶」網路的 VPC 網路,會在另一個稱為 DNS「供應商」網路的 VPC 網路中,查詢 Cloud DNS 對接區域。供應商網路專案中具備 IAM 權限 dns.networks.targetWithPeeringZone 的使用者,可以在用戶網路和供應商網路之間建立 DNS 對接。如要從用戶 VPC 網路設定 DNS 對接,您必須擁有供應商 VPC 網路主專案的 DNS 對接角色。

若使用自動產生的名稱,請在內部區域使用 DNS 對接

如果內部 DNS 服務建立的 VM 採用自動產生名稱,您可以透過 DNS 對接,將 projectname.internal 區域轉送至其他專案。如圖 5 所示,您可以將中樞專案的所有 .internal 區域分組,設為可從地端部署網路存取這些區域。

圖 5. DNS 對接可用來將所有 .internal 區域整理到中樞。
圖 5. DNS 對接可用來將所有 .internal 區域整理到中樞。

若遇到問題,請參閱疑難排解指南

Cloud DNS 疑難排解指南提供操作說明,協助您解決設定 Cloud DNS 時可能遇到的常見錯誤。

混合式 DNS 參考架構

本節提供一些參考架構,適用於在混合式環境使用 Cloud DNS 私人區域的常見情境。無論何種情境,地端部署資源、 Cloud de Confiance 資源記錄和區域都會在環境中代管。所有記錄都可從地端部署和 Cloud de Confiance 主機查詢。

請使用與您的 VPC 網路設計相對應的參考架構:

  • 使用單一 Shared VPC 網路的混合架構:使用單一 VPC 網路,連線至地端部署環境,或從地端部署環境連線。

  • 使用多個獨立 VPC 網路的混合架構:透過不同的 VPN 通道或 VLAN 連結,將多個 VPC 網路連線至地端部署環境,並共用相同的地端部署 DNS 基礎架構。

  • 使用從中樞 VPC 網路連線至輪輻 VPC 網路的混合架構:使用 VPC 網路對接,讓中樞 VPC 網路連線至多個獨立的輪輻 VPC 網路。

在上述各種情況下,地端部署環境都會連線至 Cloud de ConfianceVPC 網路,無論是透過一或多個 Cloud VPN 通道,或 Dedicated Interconnect/Partner Interconnect 連線都一樣。各 VPC 網路使用何種連線方式並不重要。

使用單一 Shared VPC 網路的混合架構

最常見的用途是將單一 Shared VPC 網路連線至地端部署環境,如圖 6 所示。

圖 6. 使用單一 Shared VPC 網路連線至地端部署網路的混合架構。
圖 6. 使用單一 Shared VPC 網路連線至地端部署網路的混合架構。

如要設定此架構,請按照下列步驟操作:

  1. 將地端部署 DNS 伺服器設為 corp.example.com 的權威伺服器。
  2. 在 Shared VPC 網路的主專案,設定 Cloud DNS 權威私人區域 (例如 gcp.example.com),並為該區域的資源設定所有記錄。
  3. 在 Shared VPC 網路的主專案設定 DNS 伺服器政策,允許傳入 DNS 轉送。
  4. 設定 DNS 轉送區域,將 corp.example.com 轉送至地端部署 DNS 伺服器。Shared VPC 網路必須獲得授權,才能查詢轉送區域。
  5. 在地端部署 DNS 伺服器上,為 gcp.example.com 設定轉送,指向 Shared VPC 網路的傳入轉送站 IP 位址。
  6. 確認地端部署防火牆允許 DNS 流量。
  7. 在 Cloud Router 執行個體,新增範圍 177.222.82.0/25 的自訂 advertise 路由,指向地端部署環境。

使用多個獨立 VPC 網路的混合架構

混合架構的另一個選項是使用多個獨立的 VPC 網路。您Cloud de Confiance 環境中的這些 VPC 網路,並未透過 VPC 網路對接相互連線。所有 VPC 網路都會使用獨立的 Cloud VPN 通道或 VLAN 連結,連線至地端部署環境。

如圖 7 所示,這種架構的典型用途,是使用獨立的正式環境和開發環境,兩者不會互相通訊,但共用 DNS 伺服器。

圖 7. 混合架構可使用多個獨立 VPC 網路。
圖 7. 混合架構可使用多個獨立的 VPC 網路。

如要設定此架構,請按照下列步驟操作:

  1. 將地端部署 DNS 伺服器設為 corp.example.com 的權威伺服器。
  2. 在正式版 Shared VPC 網路的主專案,設定 Cloud DNS 私人區域 (例如 prod.gcp.example.com),並為該區域的資源設定所有記錄。
  3. 在開發版 Shared VPC 網路的主專案,設定 Cloud DNS 設定私人區域 (例如 dev.gcp.example.com),並為該區域的所有資源設定記錄。
  4. 在正式版 Shared VPC 網路的主專案,設定 DNS 伺服器政策,允許傳入 DNS 轉送。
  5. 在正式版 Shared VPC 網路,將 DNS 區域設為將 corp.example.com 轉送至地端部署 DNS 伺服器。
  6. 從開發版 Shared VPC 網路到正式版 Shared VPC 網路,為 prod.gcp.example.com 設定 DNS 對接區域。
  7. 從正式版 Shared VPC 網路到開發版 Shared VPC 網路,為 dev.gcp.example.com 設定 DNS 對接區域。
  8. 在地端部署名稱伺服器,將 gcp.example.com. 解析作業委派給 Cloud DNS 傳入轉送虛擬 IP 位址,藉此設定傳入轉送。
  9. 確認防火牆允許地端部署和Cloud de Confiance 防火牆的 DNS 流量。
  10. 在 Cloud Router 執行個體,為正式版 Shared VPC 網路的 IP 位址範圍 177.222.82.0/25,新增自訂 advertise 路由,指向地端部署環境。

使用連接中樞與輪輻 VPC 網路的混合架構

另一種做法是使用 Cloud Interconnect 或 Cloud VPN,將地端部署基礎架構連線至中樞 VPC 網路。如圖 8 所示,您可以使用 VPC 網路對接,將一個 VPC 網路與多個輪輻 VPC 網路對接。每個輪輻 VPC 網路都會在 Cloud DNS 上託管自己的私人區域。每當 VPC 網路對接的自訂路由,搭配 Cloud Router 上的自訂路由 advertisement,就可以在地端部署網路與所有輪輻 VPC 網路之間,達成完整路由交換及連線。為了在環境之間執行名稱解析,DNS 對接會與 VPC 網路對接連線平行運作。

下圖呈現了這個架構。

圖 8. 混合架構可透過 VPC 網路對接,使用連線至輪輻 VPC 網路的中樞 VPC 網路。
圖 8. 混合架構可使用連線至輪輻 VPC 網路的中樞 VPC 網路。

如要設定此架構,請按照下列步驟操作:

  1. 將地端部署 DNS 伺服器設為 corp.example.com 的權威伺服器。
  2. 在 Cloud DNS 設定每個輪輻 VPC 網路的私人區域 (例如 projectX.gcp.example.com),並為該區域的資源設定所有記錄。
  3. 在中樞專案設定中樞 VPC 網路的 DNS 伺服器政策,允許傳入 DNS 轉送。
  4. 在中樞 VPC 網路,建立 corp.example.com 的私人 DNS 區域,並設定傳出轉送至地端部署 DNS 伺服器。
  5. 從中樞 VPC 網路到各個輪輻 VPC 網路,設定 projectX.gcp.example.com 的 DNS 對接區域。
  6. 從各個輪輻 VPC 網路到中樞 VPC 網路,設定 example.com 的 DNS 對接區域。
  7. 在地端部署 DNS 伺服器上,為 gcp.example.com 設定轉送,指向中樞 VPC 網路的傳入轉送站 IP 位址。
  8. 確認防火牆允許地端部署和Cloud de Confiance 防火牆的 DNS 流量。
  9. 在 Cloud Router 執行個體,為中樞 VPC 網路的 IP 位址範圍 177.222.82.0/25 新增自訂 advertise 路由,指向地端部署環境。
  10. (選用) 如果您也使用自動產生的內部 DNS 名稱,請將各輪輻專案區域 (例如 spoke-project-x.internal) 與中樞專案對接,並從地端部署環境轉送所有對 .internal 的查詢。

後續步驟