本文概略介紹 Cloud DNS 傳出端點。傳出端點可附加至轉送區域或伺服器政策,以便使用私人 IP 位址,直接將 DNS 查詢從虛擬私有雲網路轉送至外部和地端部署 DNS 解析器。使用傳出端點,即可精細控管傳出 DNS 流量,並更有效地解除封鎖混合雲和多雲端 DNS 解析用途。
如要瞭解如何建立、更新傳出端點,以及將傳出端點與轉送區域或伺服器政策建立關聯,請參閱「建立及更新傳出端點」。
傳出端點功能
傳出端點可讓您控管傳出 DNS 流量的來源 IP 位址,為每個網路指派專屬的輸出範圍,啟用虛擬私有雲網路特定行為。不重複的輸出範圍可克服現有固定轉送 Proxy 範圍的轉送限制。
使用主機虛擬私有雲網路查詢外部目的地時,GKE 叢集會自動沿用傳出端點。如果主機虛擬私有雲網路已獲授權,可使用標準全域 Cloud DNS 轉送區域或設定傳出端點的伺服器政策,使用虛擬私有雲 DNS 解析的 Pod 會自動透過區域性傳出端點轉送傳出查詢,不需修改叢集層級或區域性轉送區域。
如要進一步瞭解如何將現有的 DNS 轉送設定遷移至傳出端點,請參閱「將現有的 Cloud DNS 轉送設定遷移至傳出端點」。
傳出端點架構和查詢轉送
傳出端點是在特定虛擬私有雲網路中建立 (使用目標區域中的一般子網路,做為端點的內部 IP 位址),並使用該網路的區域僅限 Proxy 子網路做為來源 IP 位址。
將傳出端點附加至轉送區域或伺服器政策時,Cloud DNS 會先嘗試使用現有的目標排名演算法,透過排名最高的傳出端點轉送 DNS 查詢。如果該端點健康狀態不佳,Cloud DNS 會嘗試下一個排名最高的端點。系統會優先選擇地理位置最接近的傳出端點,但不保證一定會選用。
系統會根據現有的轉送區域容錯移轉模式 (延遲時間和錯誤率最低的 IP 選取),自動執行目的地伺服器的排名演算法。下列因素可提高轉送目標的排名:
- 轉送目標處理的成功 DNS 回應數量,數量越多排名越高。成功的 DNS 回應也包括
NXDOMAIN回應。 - 與轉送目標通訊的延遲時間,時間越短排名越好。
- 與傳出端點的地理距離較短。如果無法取得成功率和延遲時間資料,則會優先選擇最接近的目標。
為防範區域性服務中斷,您可以在至少兩個執行運算工作負載的區域中,設定傳出端點。這種做法可為 Cloud DNS 提供區域性容錯移轉目標,並將查詢延遲時間降到最低。如果混合式連線能力僅在特定區域佈建,其他運算區域中的端點仍可透過這些連線,連至地端部署解析器。
即使排名最高的端點位於其他區域,Cloud DNS 仍會繼續將查詢轉送至該端點。舉例來說,如果區域 A 的端點無法使用,流量會自動轉送至區域 B 的健康端點。當 A 區域的端點恢復正常運作時,排名演算法會偵測到效能提升,並再次優先將後續查詢導向該端點。
每項專案在每個區域最多可有 10 個傳出端點,且最多可將 100 個傳出端點附加至轉送區域或伺服器政策。
將查詢轉送至區域性地端部署解析器
Cloud DNS 不保證流量會傳送至與來源 VM 位於相同區域的端點,但您可以使用地理位置路由政策,將流量轉送至最近的目標名稱伺服器。雖然 Cloud DNS 會優先將流量轉送至最接近原始查詢和目標名稱伺服器的傳出端點,但目標名稱伺服器的區域和傳出端點區域並非緊密耦合。無論位置為何,Cloud DNS 都會選擇歷來延遲時間最短的端點。
以下概略說明如何將查詢轉送至區域性地端部署解析器:
- 建立具有地理位置政策的區域:為您控管的 FQDN (例如
onprem-resolvers.example.com) 建立新的 Cloud DNS 私人區域,並授權給虛擬私有雲網路。在這個區域中,為地端部署 DNS 伺服器 IP 建立A記錄,並套用地理位置路由政策。設定政策,針對來自特定區域的查詢傳回解析器 IP。例如,針對來自歐洲 Google Cloud 區域的查詢,傳回歐洲解析器 IP。 - 使用 FQDN 做為轉送目標:在轉送區域中,使用剛建立的 FQDN (
onprem-resolvers.example.com) 做為目的地 DNS 伺服器。 - 設定傳出端點:將區域傳出端點 (例如美國區域和歐洲區域各一個) 與這個轉送區域建立關聯。
當某個區域中的 VM 提出查詢時,系統會按照下列兩步驟轉送程序:
- 選取端點:Cloud DNS 會評估與轉送區域相關聯的傳出端點清單,並選取最佳端點 (例如,歐洲 VM 的查詢可能會選擇歐洲端點)。
- 目的地解析:Cloud DNS 會解析查詢來源區域的目的地 FQDN (
onprem-resolvers.example.com)。接著,Cloud DNS 會透過所選傳出端點,將原始查詢轉送至解析的 DNS 伺服器 IP。地理位置政策會將查詢來源識別為該區域,並傳回您為該區域設定的特定 IP 位址。
詳情請參閱「Cloud DNS FQDN 傳出 DNS 轉送教學課程」。
從單一虛擬私有雲網路中沒有本機端點的區域轉送
Google Cloud 虛擬私有雲網路是全域資源,可包含多個區域的子網路。如果 VM 從您未設定傳出端點的區域發出查詢,轉送作業仍會成功。查詢會跨區域轉送至排名最高的可用傳出端點,該端點位於相同虛擬私有雲網路,且已在轉送區域或伺服器政策中設定。
從相同區域的多個虛擬私有雲網路轉送,並隔離來源 IP
如要從同一區域的多個虛擬私有雲網路轉送查詢,且需要地端部署解析器為每個虛擬私有雲網路查看不同的來源 IP 位址,請按照下列步驟操作:
- 在每個虛擬私有雲網路中建立傳出端點:詳情請參閱「建立傳出端點」。
- 在每個虛擬私有雲網路中建立轉送區域或伺服器政策:僅為該虛擬私有雲網路授權轉送區域或伺服器政策,且僅使用該虛擬私有雲網路的傳出端點。
這項操作會導致各虛擬私有雲網路中的 VM 透過其虛擬私有雲網路中的傳出端點傳送查詢。每個端點都會將查詢轉送至地端部署解析器。地端部署網路會看到每個虛擬私有雲網路的 Proxy 專用子網路來源 IP 位址,因此可為每個網路的流量套用不同設定。
跨不同虛擬私有雲網路統一轉送 (軸輻式)
您可以設定轉送區域或伺服器政策,使用不同集中式虛擬私有雲網路 (中樞) 中的傳出端點。中樞網路和查詢來源的虛擬私有雲網路 (輪輻) 之間不需要網路連線,因為 Cloud DNS 會在內部處理查詢轉送。
您必須設定傳出端點與轉送區域或伺服器政策中轉送目標之間的網路連線。您可以使用 Cloud Interconnect 或 Cloud VPN 建立連線,連至地端部署解析器。虛擬私有雲網路對接可用於連線至其他虛擬私有雲網路中的轉送目標。
- 在中樞虛擬私有雲網路建立傳出端點。
- 在輪輻 VPC 網路中建立轉送區域或伺服器政策,並設定使用中樞網路的傳出端點。
輪輻虛擬私有雲網路中的 VM 會透過中樞虛擬私有雲網路中的傳出端點傳送查詢。端點會將查詢轉送至地端部署解析器。
Shared VPC 支援
傳出端點支援 Shared VPC 部署作業。端點、一般子網路和相關聯的僅限 Proxy 子網路,都會在主專案中集中建立。服務專案可以沿用主專案中建立的轉送區域或伺服器政策,也可以建立自己的私人轉送區域或伺服器政策,並跨專案繫結至主專案中的集中式傳出端點 (主專案須具備 dns.outboundEndpoints.bindPrivateDNSZone 或 dns.outboundEndpoints.bindPrivateDNSPolicy)。
管理與傳出端點相關聯的網路資源
Cloud DNS 傳出端點會對基礎虛擬私有雲網路和子網路強制執行嚴格的生命週期依附元件,協助保護正式環境 DNS 流量,避免因刪除或修改等意外基礎架構變更而受到影響。
刪除傳出端點使用的僅限 Proxy 子網路或虛擬私有雲網路
為避免服務中斷,傳出端點正在使用的一般子網路、僅限 Proxy 子網路或虛擬私有雲網路,都無法刪除。如果嘗試刪除這些資源,會發生錯誤。如要刪除這些資源,請務必按照下列步驟操作:
- 更新 Cloud DNS 設定:編輯使用傳出端點的任何轉送區域或伺服器政策,並從設定中移除,使其不再使用。
- 刪除傳出端點:端點不再使用後,即可刪除。這項操作會解除對一般子網路和僅限 Proxy 子網路的依附關係。
- 刪除子網路:確認沒有其他資源使用子網路後,刪除僅限 Proxy 和一般子網路。
- 刪除虛擬私有雲網路:移除所有其他虛擬私有雲依附元件後,即可刪除虛擬私有雲網路。
修改子網路
如果傳出端點正在使用 Proxy 專用子網路,您就無法直接修改該子網路。這項限制可防止您編輯 IP 位址範圍等重要屬性,有助於避免服務中斷。如要修改子網路,請按照現有指南操作,先遷移至新的子網路。
如要修改傳出端點使用的子網路,請按照下列步驟操作:
- 建立備份子網路:在相同的虛擬私有雲網路和區域中,建立新的僅限 Proxy 子網路。建立時,您必須將這個子網路的角色設為
BACKUP。 - 啟用新子網路:將新子網路的角色更新為
ACTIVE。這樣做會自動將原始子網路設為BACKUP角色,並開始從中排除有效連線。 - 等待排除:等待連線排除程序完成。
- 刪除舊子網路:原始子網路現在處於
BACKUP角色,且沒有任何有效連線,因此可以刪除。
地端部署防火牆的專屬來源 IP 可預測性
如果地端部署 DNS 防火牆需要專用且可預測的來源 IP 位址範圍,並與 DNS 流量隔離,建議您採用下列架構:
- 在專屬 egress 虛擬私有雲網路中部署:建立專屬虛擬私有雲網路,其中包含一般子網路 (用於傳出端點 IP 位址),以及專為 Cloud DNS 保留的區域 Proxy 專用子網路 (
--purpose=REGIONAL_MANAGED_PROXY和--role=ACTIVE)。 - 隔離應用程式虛擬私有雲網路:請勿將應用程式虛擬私有雲網路對接或轉送至這個專屬輸出網路。Cloud DNS 會在 Google Cloud基礎架構內部轉送查詢,因此這些虛擬私有雲網路之間不需要直接網路連線。
- 將專用輸出虛擬私有雲網路連線至外部轉送目標:僅設定專用輸出虛擬私有雲網路與外部或地端部署目標名稱伺服器之間的連線能力。請使用下列項目建立這項路徑:
- 與現有傳輸虛擬私有雲建立虛擬私有雲網路對接:這是建議做法,也是最符合成本效益的做法。如果貴組織已有中央傳輸虛擬私有雲網路,且透過 Cloud Interconnect 或 Cloud VPN 連線至地端部署,請將專用 DNS 虛擬私有雲網路對接到該傳輸中樞。這種做法可避免佈建多餘的混合線路,並盡可能降低成本。
- 直接混合型連線能力:Dedicated Interconnect、Cross-Cloud Interconnect 或 Cloud VPN,直接終止於專用 DNS 虛擬私有雲網路。
限制
傳出端點有下列限制:
來源 IP 和子網路共用僅限於同一區域的資源:傳出端點會從所屬虛擬私有雲網路的區域性僅限 Proxy 子網路,分配來源 IP 範圍。在標準部署作業中,這個僅限 Proxy 的子網路可與其他區域性資源共用,例如區域性應用程式負載平衡器。
不支援直接對接至僅限 Proxy 的子網路:您無法直接對接至僅限 Proxy 的子網路。您必須透過 Cloud Interconnect、Cloud VPN 或虛擬私有雲網路對接等標準虛擬私有雲轉送,建立與外部名稱伺服器的網路連線。
僅支援 IPv4:傳出端點的來源 IP 位址僅限 IPv4,且查詢只能轉送至 IPv4 目標,或轉送區域中解析為 IPv4 位址的 FQDN 轉送目標。
不支援將傳出端點繫結至跨專案的網路:不支援在附加至主專案共用虛擬私有雲網路的服務專案中,建立傳出端點。傳出端點必須與其附加的虛擬私有雲網路和子網路位於相同專案。
僅限私人目標:傳出端點僅支援轉送至私人目標 (包括 RFC 1918、RFC 6598,以及使用
--private-forward-targets或forwardingPath: "private"設定的私人轉送非 RFC 1918 位址),無法做為公開網際網路 DNS 流量的輸出 Proxy 或靜態來源 IP 錨點。傳送至公開網際網路目標的查詢會直接透過 Google 的分散式任意傳播邊緣解析,盡可能縮短延遲時間,並避免依賴 Cloud NAT。區域範圍:傳出端點屬於區域性資源。您必須在要使用端點的每個區域中建立端點。
僅限單一轉送機制:轉送機制 (預設
35.199.192.0/19範圍或傳出端點) 是在轉送區域或伺服器政策層級設定。不過,您無法同時對同一個區域或政策使用這兩種方法。
後續步驟
- 如要進一步瞭解 Cloud DNS,請參閱「Cloud DNS 總覽」。
- 如要瞭解如何建立或更新傳出端點,請參閱「建立或更新傳出端點」。
- 如需疑難排解資訊,請參閱「排解 Cloud DNS 傳出端點問題」。