Cloud DNS 的最佳做法

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

無論是人類還是應用程式,使用網域名稱系統 (DNS) 來尋找應用程式和服務都更容易,因為使用名稱比使用 IP 位址更容易記住,也更具彈性。在混合式環境中,內部資源的 DNS 記錄通常需要跨環境存取。傳統上,地端部署 DNS 記錄會透過權威 DNS 伺服器手動管理,例如 UNIX/Linux 環境中的 BIND,或是 Microsoft Windows 環境中的 Active Directory。

本文將說明在環境之間轉送私人 DNS 要求的最佳做法,確保服務可從內部部署環境和 Trusted Cloud內部解決。

一般原則

瞭解 Trusted Cloud上的 DNS 概念

在 Trusted Cloud上使用 DNS 時,請務必瞭解 Trusted Cloud 提供的 DNS 解析和網域名稱的不同系統和服務:

  • 內部 DNS 是一種服務,可自動為 Compute Engine 中的虛擬機器和內部負載平衡器建立 DNS 名稱。
  • Cloud DNS 是一項提供低延遲和高可用性 DNS 區域服務的服務。它可做為僅在貴機構網路內顯示的不公開區域的權威 DNS 伺服器。
  • Managed Service for Microsoft Active Directory 是可用性高且強化的服務,可執行 Microsoft Active Directory,包括網域控制器。

找出利害關係人、工具和程序

在混合環境中擬定 DNS 策略時,請務必熟悉目前的架構,並與所有利害關係人聯絡。請執行下列步驟:

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

Cloud DNS 私人區域的最佳做法

私人區域會託管 DNS 記錄,這些記錄僅供貴機構內部人員查看。

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

如果您在機構內使用共用虛擬私有雲網路,則必須在主專案中託管 Cloud DNS 上的所有私人區域。所有服務專案都能自動存取附加至共用虛擬私有雲網路的不公開區域中的記錄。或者,您也可以使用跨專案繫結,在服務專案中設定區域。

圖 3 顯示私人區域如何在共用虛擬私有雲網路中代管。

圖 3. 在共用虛擬私人雲端網路中代管的不公開區域 (按一下可放大)。
圖 3. 這項設定會顯示不公開區域如何連結至共用虛擬私人雲端。

如果您希望團隊自行設定 DNS 記錄,建議您自動化 DNS 記錄建立作業。舉例來說,您可以建立網頁應用程式或內部 API,讓使用者在特定子網域下設定自己的 DNS 記錄。應用程式會驗證記錄是否符合貴機構的規則。

或者,您也可以將 DNS 設定放入 Cloud Source Repositories 等程式碼存放區,並以 TerraformCloud Deployment Manager 描述項的形式接受團隊的提取要求。

無論是哪種情況,主機專案中具備 IAM DNS 管理員角色的服務帳戶,都能在變更獲得核准後自動部署變更。

根據最低權限原則設定 IAM 角色

請遵循最低權限的安全原則,只將變更 DNS 記錄的權限授予機構中需要執行此項工作的人員。請避免使用基本角色,因為這類角色可能會提供使用者不需要的資源存取權。Cloud DNS 提供角色和權限,可讓您授予 DNS 專屬的讀取和寫入存取權。

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

Cloud DNS 提供DNS 轉送區域DNS 伺服器政策,可在內部部署和 Trusted Cloud 環境之間查詢 DNS 名稱。您可以透過多種方式設定 DNS 轉送。下一個章節將列出混合 DNS 設定的最佳做法。這些最佳做法已在混合式 DNS 適用的參考架構中說明。

使用轉送可用區查詢內部部署伺服器

為確保您可以在內部部署環境中查詢 DNS 記錄,請為您在內部部署環境中用於公司資源的網域 (例如 corp.example.com) 設定轉送區。建議您使用這種方法,而非使用啟用替代名稱伺服器的 DNS 政策。這麼做可保留對 Compute Engine 內部 DNS 名稱的存取權,且外部 IP 位址仍可解析,而不需要透過內部名稱伺服器額外跳轉。

混合式 DNS 適用的參考架構中顯示了使用這項設定的流量流程。

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

使用 DNS 伺服器政策允許內部部署環境的查詢

如要讓內部部署主機查詢在 Cloud DNS 私人區域中代管的 DNS 記錄 (例如 gcp.example.com),請使用傳入 DNS 轉送功能建立 DNS 伺服器政策。傳入 DNS 轉送功能可讓系統查詢專案中的所有私人區域,以及內部 DNS IP 位址和對等區域。

混合式 DNS 適用的參考架構中顯示了使用這項設定的流量流程。

開啟 Trusted Cloud 和內部部署防火牆,允許 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 執行個體中,為虛擬私人雲端網路中的 IP 位址範圍 177.222.82.0/25 新增自訂宣傳路徑,以便將該範圍通報至內部部署環境。

使用條件式轉送功能,從內部部署環境存取 DNS 記錄

如要透過 Cloud DNS 存取在企業內部 DNS 伺服器上代管的私人記錄,您只能使用轉送區域。不過,視您使用的 DNS 伺服器軟體而定,您可能有多種方法可以從內部存取 Trusted Cloud 中的 DNS 記錄。在每個情況下,您都可以使用傳入 DNS 轉送功能存取記錄:

  • 條件式轉送。使用條件式轉送功能,表示您的公司 DNS 伺服器會將特定區域或子網域的要求轉送至 Trusted Cloud上的轉送 IP 位址。我們建議採用這種做法,因為它最簡單,而且可讓您集中監控公司 DNS 伺服器上的所有 DNS 要求。

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

  • 區域轉移。Cloud DNS 不支援區域轉移,因此您無法使用區域轉移功能,將 DNS 記錄與內部 DNS 伺服器同步。

使用 DNS 對等互連功能,避免從多個虛擬私有雲網路進行傳出轉送

請勿使用從多個 VPC 網路傳送至內部部署 DNS 伺服器的傳出轉送,因為這會導致傳回流量發生問題。 Trusted Cloud 只會接受從 DNS 伺服器傳送的回應,前提是這些回應已轉送至查詢來源的 VPC 網路。不過,來自任何虛擬私有雲網路的查詢都會使用相同的 IP 位址範圍 177.222.82.0/25 做為來源。因此,除非您在內部安裝不同的環境,否則無法正確轉送回覆。

圖 4. 當多個 VPC 將流量轉送至其網路外部時,就會發生問題。
圖 4. 有多個 VPC 網路進行傳出轉送的問題。

建議您指定單一 VPC 網路,透過傳出轉送功能查詢內部部署名稱伺服器。接著,其他 VPC 網路可以透過 DNS 對等互連區域指定 VPC 網路,查詢內部部署名稱伺服器。系統會根據指定虛擬私有雲網路的名稱解析順序,將查詢轉送至內部部署名稱伺服器。這項設定如混合式 DNS 適用的參考架構所示。

瞭解 DNS 對等互連和虛擬私有雲網路對等互連的差異

虛擬私人雲端網路對等互連與 DNS 對等互連不同。虛擬私有雲網路對等互連可讓多個專案中的虛擬機器 (VM) 執行個體相互連線,但不會變更名稱解析。每個 VPC 網路中的資源仍會依照各自的解析順序。

相反地,您可以透過 DNS 對等互連功能,將特定區域的要求轉送至其他 VPC 網路。這樣一來,無論虛擬私有雲網路是否互相連結,您都能將要求轉送至不同的 Trusted Cloud 環境。

虛擬私有雲網路對等互連和 DNS 對等互連的設定方式也不同。如要進行 VPC 網路對等互連,兩個 VPC 網路都必須與其他 VPC 網路建立對等互連關係。之後,對等連線會自動變成雙向。

DNS 對等互連功能會單向轉送 DNS 要求,且不需要在 VPC 網路之間建立雙向關係。虛擬私人雲端網路 (稱為 DNS 消費者網路) 會針對另一個虛擬私人雲端網路 (稱為 DNS 供應商網路) 中的 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 私人區域的常見情境參考架構。在每個情況中,內部部署資源和 Trusted Cloud 資源記錄和區域都會在環境中管理。所有記錄都可從內部部署和 Trusted Cloud 主機查詢。

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

  • 使用單一共用虛擬私有雲網路的混合式架構:使用單一虛擬私有雲網路連線至或從內部部署環境連線。

  • 使用多個獨立虛擬私人雲端網路的混合式架構:透過不同的 VPN 通道或 VLAN 連結,將多個虛擬私人雲端網路連線至內部部署環境,並在內部部署環境中共用相同的 DNS 基礎架構。

  • 混合式架構,使用連線至輻輳虛擬私人雲端網路的樞紐虛擬私人雲端網路:使用 VPC 網路對等互連功能,讓樞紐虛擬私人雲端網路連線至多個獨立的輻輳虛擬私人雲端網路。

在每個情況中,內部部署環境都會透過一或多個 Cloud VPN 通道,或專屬互連網路或合作夥伴互連網路連線,連線至 Trusted CloudVPC 網路。每個虛擬私有雲網路使用的連線方式無關緊要。

使用單一共用虛擬私有雲網路的混合式架構

最常見的用途是將單一共用虛擬私有雲網路連線至內部部署環境,如圖 6 所示。

圖 6. 混合式架構會使用單一共用虛擬私有雲網路連線至地端部署網路。
圖 6. 混合式架構會使用單一共用虛擬私有雲網路連線至內部部署網路。

如何設定此架構:

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

使用多個獨立虛擬私有雲網路的混合式架構

混合式架構的另一個選項是擁有多個獨立的 VPC 網路。Trusted Cloud 環境中的這些 VPC 網路並未透過 VPC 網路對等互連連線。所有虛擬私有雲網路都會使用個別的 Cloud VPN 通道或VLAN 連結連線至內部部署環境。

如圖 7 所示,這種架構的典型用途是當您有個別的實際工作環境和開發環境,且兩者不會彼此通訊,但共用 DNS 伺服器時。

圖 7:混合式架構可使用多個獨立的虛擬私有雲網路。
圖 7. 混合式架構可使用多個獨立的虛擬私有雲網路。

如何設定此架構:

  1. 將地端 DNS 伺服器設為 corp.example.com 的權威伺服器。
  2. 在實際工作環境共用虛擬私有雲網路的主專案中,在 Cloud DNS 上設定不公開區域 (例如 prod.gcp.example.com),並設定該區域中資源的所有記錄。
  3. 在開發共用虛擬私人雲端網路的主機專案中,在 Cloud DNS 上設定私人區域 (例如 dev.gcp.example.com),並設定該區域中資源的所有記錄。
  4. 在正式環境共用虛擬私有雲網路的主機專案上設定 DNS 伺服器政策,並允許傳入 DNS 轉送。
  5. 在實際工作環境的共用虛擬私有雲網路中,設定 DNS 區域,將 corp.example.com 轉送至內部部署 DNS 伺服器。
  6. 將 DNS 對等互連區域從 prod.gcp.example.com 的開發共用虛擬私有雲網路設定為實際用途共用虛擬私有雲網路。
  7. 將 DNS 對等互連區域從實際工作環境的共用虛擬私有雲網路,設為 dev.gcp.example.com 的開發工作環境共用虛擬私有雲網路。
  8. gcp.example.com. 的解析權委派給內部部署名稱伺服器上的 Cloud DNS 傳入轉送虛擬 IP 位址,即可設定傳入轉送。
  9. 請確認防火牆允許在內部部署和Trusted Cloud 防火牆上允許 DNS 流量。
  10. 在 Cloud Router 執行個體中,為實際用途共用虛擬私人雲端網路中的 IP 位址範圍 177.222.82.0/25 新增自訂宣傳路徑,以便將其傳送至內部部署環境。

混合式架構,使用中樞虛擬私有雲網路連結輻輳虛擬私有雲網路

另一個做法是使用 Cloud Interconnect 或 Cloud VPN,將內部部署基礎架構連線至中樞虛擬私有雲網路。如圖 8 所示,您可以使用 VPC 網路對等互連功能,將 VPC 網路與多個輻射狀 VPC 網路對等互連。每個輻射狀 VPC 網路都會在 Cloud DNS 上代管自己的私人區域。在 VPC 網路對等互連中使用自訂路徑,搭配 Cloud Router 的自訂路徑廣告,即可在內部部署網路和所有輻射狀 VPC 網路之間進行完整路徑交換和連線。DNS 對等互連會與 VPC 網路對等互連連線並行執行,以便在環境之間進行名稱解析。

下圖顯示這個架構。

圖 8:混合式架構可使用中樞虛擬私有雲網路,透過虛擬私有雲網路對等互連連線至輻輳虛擬私有雲網路。
圖 8. 混合式架構可使用連線至輻輳虛擬私有雲網路的軸心虛擬私有雲網路。

如何設定此架構:

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

後續步驟