DNS 轉送政策和健康狀態檢查

您可以在私人或公開區域中,為資源記錄集設定 DNS 轉送政策,以便根據特定條件引導流量。請使用特定轉送政策值建立資源記錄集,以設定這些政策。這些值會決定 Cloud DNS 如何將查詢流量轉送至目的地。

Cloud DNS 支援下列轉送政策:

  • 加權輪流 (WRR) 轉送政策:使用 WRR 轉送政策,為 DNS 名稱的每個資源記錄組指定不同的權重。WRR 轉送政策有助於確保流量會依據設定的權重分配。不支援結合 WRR 和地理位置路由政策。

  • 地理位置轉送政策:使用地理位置轉送政策指定來源地理位置,並為這些地理區域提供相應的回應。如果沒有任何政策項目與流量來源完全相符,地理位置轉送政策就會套用最接近的來源地點。

    • 含地理圍欄的地理位置轉送政策:使用含地理圍欄的地理位置轉送政策,將流量限制在特定地理位置,即使該地理位置中的所有端點都處於不良的健康狀態,也是如此。

無法為下列私人區域設定 DNS 轉送政策:

  • 轉送區域
  • DNS 對等互連區域
  • 代管反向查詢區
  • Service Directory 區域

WRR 路由政策

您可以使用 WRR 轉送政策為每個 DNS 目標指定不同的權重,Cloud DNS 會確保流量依權重分配。您可以使用這項政策支援手動 active-activeactive-passive 設定。您也可以將流量拆分給服務的正式版和實驗版。

Cloud DNS 支援內部負載平衡器和外部端點的轉送政策內的健康狀態檢查和故障移轉功能。當 Endpoints 未通過健康狀態檢查時,Cloud DNS 會啟用自動容錯功能。在容錯期間,Cloud DNS 會自動調整剩餘健康端點之間的流量分配。詳情請參閱「健康狀態檢查」。

地理位置轉送政策

地理位置轉送政策可讓您將來自來源地理區域 (Google Cloud regions) 的流量對應至特定 DNS 目標。您可以使用這項政策,根據流量的來源,將傳入要求分散至不同的服務執行個體。您可以將這項功能用於來自Google Cloud 外部或 Google Cloud 內部,並連往內部直通式網路負載平衡器的流量。Cloud DNS 會將查詢進入的區域 Google Cloud 做為來源地理位置。

地理位置轉送政策會以以下方式為公開和私人 DNS 對應來源:

  • 對於公開 DNS,系統會使用查詢的來源 IP 位址或 DNS 擴充機制 (EDNS) 用戶端子網路。
  • 私人 DNS 不會使用 EDNS 用戶端子網路。相反地,查詢的位置是指傳送查詢封包的系統位置:
    • 如果查詢來自 Compute Engine 虛擬機器 (VM) 執行個體,且該執行個體在 VPC 網路中設有網路介面,查詢的位置就是包含 VM 執行個體的地區。
    • 對於 inbound server policy entry point 收到的查詢,查詢的位置是收到查詢封包的 Cloud VPN 通道、Cloud Interconnect VLAN 連結或路由器裝置的區域。進入點的 IP 位址所在區域無關緊要。詳情請參閱「處理入站查詢的網路和區域」。

Cloud DNS 支援內部負載平衡器和外部端點的轉送政策內的健康狀態檢查和故障移轉功能。當 Endpoints 未通過健康狀態檢查時,Cloud DNS 會啟用自動容錯功能。使用地理位置轉送政策時,系統無法將流量轉送至與來源流量最接近的下一個地理位置。

含有地理區域的 Geolocation 轉送政策

地理圍欄可確保流量會導向特定區域,即使該區域內的所有端點都無法通過健康狀態檢查,也是如此。

當您停用地理柵欄功能,且特定地理位置發生健康狀態檢查失敗時,系統會自動將流量移轉至最近的下一個地理位置。不過,如果啟用地理圍欄,系統就不會自動切換。做為權威伺服器,Cloud DNS 必須傳回值,在這種情況下,當端點無法通過健康狀態檢查時,Cloud DNS 會傳回所有 IP 位址,且不會進行任何變更。

容錯轉送政策

容錯轉移路由政策可讓您設定有效的備份設定,為虛擬私有雲網路中的內部資源提供高可用性。

在正常運作情況下,Cloud DNS 一律會從 active 集合中傳回 IP 位址。如果 active 組合中的所有 IP 位址都處於不良狀態,Cloud DNS 就會提供 backup 組合中的 IP 位址。 如果您將 backup 組合設為地理位置轉送政策,則會按照「地理位置轉送政策」一節所述運作。如果您為內部負載平衡器設定 backup 組合,Cloud DNS 會檢查所有備用虛擬 IP (VIP) 位址的健康狀態。

您可以使用 Cloud DNS 將流量逐步逐漸轉送至備用 VIP 位址,以便驗證備用 VIP 位址是否正常運作。您可以將傳送至備份的流量百分比設為介於 0 到 1 之間的小數。您可以將 100% 的流量傳送至備用 VIP 位址,手動觸發容錯移轉。一般值為 0.1。健康狀態檢查只能套用至內部負載平衡器和外部端點。

健康狀態檢查

Cloud DNS 支援下列內部負載平衡器和外部端點的轉送政策內的健康狀態檢查和故障移轉:

如果您想使用代管區域的健康檢查功能,且已啟用 DNS 安全性擴充功能 (DNSSEC),則每個政策項目(WRR 或地理位置)只能使用單一 IP 位址。您無法在特定政策中混合使用經過健康狀態檢查的 IP 位址和未經健康狀態檢查的 IP 位址。

如要瞭解設定 Cloud DNS 記錄和健康狀態檢查時應留意的最佳做法,請參閱「最佳做法」。

內部負載平衡器的健康狀態檢查

內部負載平衡器的健康狀態檢查功能僅適用於私人區域。

對於內部應用程式負載平衡器和內部 Proxy 網路負載平衡器,Cloud DNS 會在路由決策期間考量負載平衡器本身的健康狀態。負載平衡器收到查詢時,只會將流量分散到健康的後端服務。為確保後端運作正常,您可以使用代管執行個體群組 (MIG) 等服務來管理後端的生命週期。Cloud DNS 不需要瞭解個別後端的健康狀態,負載平衡器會處理這項工作。

對於內部直通式網路負載平衡器,Cloud DNS 會檢查負載平衡器個別後端執行個體的健康狀態資訊。Cloud DNS 會套用預設的 20% 門檻,如果至少有 20% 的後端執行個體處於健康狀態,系統就會將負載平衡器端點視為健康。DNS 轉送政策會根據這個門檻將端點標示為健康或不健康,並據此轉送流量。

單一內部直通式網路負載平衡器虛擬 IP 位址 (VIP) 可有多個後端執行個體。如果內部直通式網路負載平衡器沒有任何後端執行個體,Cloud DNS 仍會認為它是健康的。如要讓健康狀態檢查正常運作,請在負載平衡器設定中指定至少一個後端執行個體。

當端點標示為不健康時,可能會發生下列情況:

  • 如果政策設定了多個 VIP 位址,系統只會傳回健康的 VIP 位址。
  • 如果針對政策值區設定的所有 VIP 位址都處於不健康狀態,則該政策行就會失敗。適用的行為如下:

    • 針對 WRR 政策,Cloud DNS 會將流量按比例分配至政策中定義的其他健康端點。
    • 如果地理區域政策未啟用圍欄功能,流量就會切換至與政策中定義的來源 Google Cloud 區域最接近的下一個地理區域中的端點。
    • 如果地理區域政策已啟用地理邊界,Cloud DNS 會將流量分配至最接近政策中定義的來源 Google Cloud 區域的 VIP 位址。
    • 對於容錯移轉政策,Cloud DNS 會將流量切換至政策中定義的備用端點。
    • 如果所有政策區塊都處於不健康狀態,Cloud DNS 的運作方式會視為所有端點都處於健康狀態。這種情況可能會導致流量分發至無回應的端點。

如要進一步瞭解內部負載平衡器的健康狀態檢查,請參閱「健康狀態檢查總覽」。

外部端點的健康狀態檢查

外部端點的健康狀態檢查僅適用於公開區域。您要檢查健康狀態的端點必須能夠透過公用網際網路存取。指定的端點可以是任何外部 IP 位址和連接埠,包括全域外部應用程式負載平衡器 VIP、區域外部應用程式負載平衡器 VIP、全球外部 Proxy 網路負載平衡器 VIP、內部端點,或透過公開網際網路存取的任何其他端點。

在下列情況下,請為外部端點執行健康狀態檢查:

  • 如要將流量重新導向至區域外部應用程式負載平衡器,如果全域外部應用程式負載平衡器後端或全域外部 Proxy 網路負載平衡器後端發生異常。
  • 如要將流量重新導向至其他區域性外部應用程式負載平衡器,如果特定區域性外部應用程式負載平衡器的後端發生異常。
  • 監控內部部署端點或可透過公開網際網路存取的其他端點的健康狀態。

當您為外部端點建立 DNS 轉送政策,並設定健康狀態檢查時,Cloud DNS 會將健康狀態檢查探測器傳送至端點。這些健康檢查探針來自您指定的三個 Google Cloud 來源區域。每個區域的健康狀態檢查探針會獨立執行,Cloud DNS 會匯總這些結果,判斷端點的整體健康狀態。在每個區域中,有三個健康狀態檢查探測器例項會探測每個端點。如果一個探針失敗,Cloud DNS 仍可使用其餘探針判斷端點的健康狀態。這表示每個端點共有九個探測器,且每個探測器都會依據您在健康狀態檢查的檢查時間間隔指定的頻率執行。Cloud DNS 會根據轉送政策的參數和健康狀態資訊,選取端點並將流量轉送至所選端點。

Cloud DNS 支援 TCP、HTTP 和 HTTPS 通訊協定,但有以下限制:

  • 不支援 TCP 要求欄位。
  • 系統不支援 HTTP、HTTPS 和 TCP 的 proxyHeader 欄位。

不支援 SSL、HTTP/2 和 gRPC 通訊協定。

對於 TCP 通訊協定,Cloud DNS 會嘗試連線至端點。針對 HTTP 和 HTTPS 通訊協定,Cloud DNS 會驗證端點是否傳回 HTTP 回應代碼 200。您也可以設定依據內容的健康狀態檢查,讓 Cloud DNS 檢查回應是否包含特定字串。

與內部負載平衡器的健康狀態檢查不同,Cloud DNS 針對外部端點執行的健康狀態檢查並非來自固定 IP 位址範圍。探針來源 IP 位址範圍可能會隨時間變動。

您在建立健康狀態檢查時指定的通訊協定和通訊埠,會決定健康狀態檢查探測器的執行方式。如果您未指定通訊埠,Cloud DNS 會使用通訊埠 80。為確保健康狀態檢查能正常運作,請設定防火牆規則,允許來自任何來源 IP 位址的健康狀態檢查探測器,以及在健康狀態檢查中設定的特定通訊埠。

如果您尚未設定防火牆允許健康狀態檢查探測器,則探測器會失敗,因此 Cloud DNS 會將遭封鎖的端點視為健康狀態不良。如果每個端點都傳回為不健康,Cloud DNS 仍會提供所有端點,即使這些端點不健康也一樣。

健康狀態檢查時間間隔

Cloud DNS 會根據健康狀態檢查間隔,定期傳送健康狀態檢查探測要求。舉例來說,如果健康狀態檢查間隔為 30 秒,Cloud DNS 就會每 30 秒傳送一次健康狀態檢查探針。

針對 Cloud DNS 外部端點健康狀態檢查,健康狀態檢查間隔必須介於 30 到 300 秒之間。

加權循環制轉送政策和健康狀態檢查

Cloud DNS 支援 0 到 1000 的權重 (含兩者)。加入健康檢查後,系統會執行下列操作:

  • 如果您設定多個目標,且所有目標的重量都為 0,流量會平均分配給各個目標。
  • 如果您設定新的非零權重目標,該目標就會成為主要目標,所有流量都會轉移至該目標。
  • 隨著您新增更多具有非零權重的目標,Cloud DNS 會動態計算目標 (與每個要求) 之間的流量分配,並適當分配流量。舉例來說,如果您設定了三個權重分別為 0、25 和 75 的目標,權重為 0 的目標不會獲得任何流量,權重為 25 的目標會獲得四分之一的流量,而剩下的目標會獲得四分之三的流量。
  • 如果健康狀態檢查與非零權重目標相關聯,但與零權重目標無關,則系統一律會將零權重目標視為健康。如果所有非零值記錄都處於不健康狀態,Cloud DNS 會傳回零權重記錄。
  • 如果健康狀態檢查與非零和零權重記錄皆相關聯,且所有記錄都未通過健康狀態檢查,Cloud DNS 會傳回任何非零權重目標,並忽略零權重目標。
  • 當 Cloud DNS 選擇要傳回給要求者的權重值區塊 (單一政策項目) 時,只會傳回該權重值區塊中的 IP 位址。如果您在權重值區塊中只指定一個 IP 位址,回應中就只會顯示該 IP 位址。如果權重值區塊中有多個 IP 位址,Cloud DNS 會以隨機順序傳回所有 IP 位址。

地理位置轉送政策和健康狀態檢查

對於已啟用健康狀態檢查的地理位置轉送政策,系統會執行以下操作:

  • 如果政策已設定多個 IP 位址,且所有 IP 位址都已進行健康狀態檢查,系統只會傳回健康的 IP 位址。
  • 如果有經過健康狀態檢查和未經檢查的 IP 位址,且所有經過健康狀態檢查的 IP 位址都失敗,Cloud DNS 會傳回所有未設定健康狀態檢查的 IP 位址。在這種情況下,系統不會自動切換至下一個最近的地理區域。

健康狀態檢查記錄

Cloud DNS 支援健康狀態檢查記錄功能,當您查詢參照這些 IP 位址的 DNS 名稱時,系統會記錄啟用健康狀態檢查的 IP 位址健康狀態。

健康狀態檢查記錄可讓您執行下列操作:

  • 驗證轉送政策是否如預期運作。例如:
    • 針對地理位置政策,您可以驗證政策是否偵測到正確的地理位置,並傳回正確的資源記錄資料集。
    • 針對 WRR 政策,您可以驗證政策是否以正確的權重傳回 IP 位址。
  • 找出特定後端和 IP 位址的基礎架構問題,並解決這些問題。
  • 排解為何系統從未納入特定後端,或為唯一傳回的後端。

詳情請參閱健康狀態檢查記錄資訊

DNS 轉送政策支援的記錄類型

DNS 轉送政策不支援 Cloud DNS 支援的所有記錄類型

支援的記錄類型如下:

記錄類型 說明
A 內部 (私人區) 和外部 (公開區) 健康檢查的 IPv4 位址。
AAAA 用於外部 (公開區) 健康檢查的 IPv6 位址。
CNAME 正規名稱。不支援健康狀態檢查。
MX 郵件交換記錄。不支援健康狀態檢查。
SRV 主機/連接埠 (RFC 2782)。不支援健康狀態檢查。
TXT 文字資料。不支援健康狀態檢查。

後續步驟