アウトバウンド エンドポイントの概要

このドキュメントでは、Cloud DNS アウトバウンド エンドポイントの概要について説明します。アウトバウンド エンドポイントを転送ゾーンまたはサーバー ポリシーに接続すると、プライベート IP アドレスを使用して VPC ネットワークから外部およびオンプレミスの DNS リゾルバに DNS クエリを直接転送できます。アウトバウンド エンドポイントを使用すると、アウトバウンド DNS トラフィックをきめ細かく制御でき、ハイブリッド DNS 解決とマルチクラウド DNS 解決のユースケースのブロックを解除する機能が強化されます。

アウトバウンド エンドポイントを作成、更新し、転送ゾーンまたはサーバー ポリシーに関連付ける方法については、アウトバウンド エンドポイントを作成して更新するをご覧ください。

アウトバウンド エンドポイントの機能

アウトバウンド エンドポイントを使用すると、アウトバウンド DNS トラフィックの送信元 IP アドレスを制御できます。ネットワークごとに一意の下り(外向き)範囲を割り当てることで、VPC ネットワーク固有の動作を有効にできます。一意の下り(外向き)範囲により、既存の固定転送プロキシ範囲のルーティング制限が解消されます。

GKE クラスタは、ホスト VPC ネットワークを使用して外部宛先をクエリするときに、アウトバウンド エンドポイントを自動的に継承します。ホスト VPC ネットワークが、アウトバウンド エンドポイントで構成された標準のグローバル Cloud DNS 転送ゾーンまたはサーバー ポリシーに対して認可されている場合、VPC DNS の解決を使用する Pod は、クラスタレベルの変更やゾーン転送ゾーンを必要とせずに、リージョン アウトバウンド エンドポイントを介してアウトバウンド クエリを自動的にルーティングします。

既存の DNS 転送設定をアウトバウンド エンドポイントに移行する方法については、既存の Cloud DNS 転送設定をアウトバウンド エンドポイントに移行するをご覧ください。

アウトバウンド エンドポイントのアーキテクチャとクエリ ルーティング

アウトバウンド エンドポイントは、特定の VPC ネットワーク内に作成され(エンドポイントの内部 IP アドレスにターゲット リージョンの通常のサブネットを使用)、そのネットワークのリージョン プロキシ専用サブネットを送信元 IP アドレスに使用します。

転送ゾーンまたはサーバー ポリシーにアウトバウンド エンドポイントを接続すると、Cloud DNS はまず、既存のターゲット ランキング アルゴリズムを使用して、ランクが最も高いアウトバウンド エンドポイントを介して DNS クエリをルーティングしようとします。そのエンドポイントが異常な場合、Cloud DNS は次にランクの高いエンドポイントを試します。地理的に最も近いアウトバウンド エンドポイントが優先されますが、保証されるものではありません。

宛先サーバーのランキング アルゴリズムは自動的に実行され、既存の転送ゾーンのフェイルオーバー パターン(レイテンシとエラー率が最も低い IP の選択)に基づいています。転送ターゲットのランキングは、次の要因によって上がります。

  • 転送先で処理された成功した DNS レスポンスの数が多い。成功した DNS レスポンスには NXDOMAIN レスポンスも含まれます。
  • 転送ターゲットとの通信のレイテンシが短縮されます。
  • アウトバウンド エンドポイントまでの地理的距離が短い。成功データとレイテンシ データが利用できない場合は、最も近いターゲットが優先されます。

リージョンの停止から保護するには、コンピューティング ワークロードを実行する少なくとも 2 つのリージョンにアウトバウンド エンドポイントを構成します。このアプローチにより、Cloud DNS にリージョン フェイルオーバー ターゲットが提供され、クエリ レイテンシが最小限に抑えられます。ハイブリッド接続が特定のリージョンでのみプロビジョニングされている場合でも、他のコンピュート リージョンのエンドポイントは、これらの接続を介してオンプレミス リゾルバに到達できます。

最もランクの高いエンドポイントが別のリージョンにある場合でも、Cloud DNS はそのエンドポイントにクエリをルーティングし続けます。たとえば、リージョン A のエンドポイントが利用できなくなると、トラフィックはリージョン B の正常なエンドポイントに自動的にルーティングされます。リージョン A のエンドポイントが正常に戻ると、ランキング アルゴリズムによってパフォーマンスの向上が検出され、今後のクエリで再び優先されるようになります。

プロジェクトごと、リージョンごとに最大 10 個のアウトバウンド エンドポイントを設定できます。また、転送ゾーンまたはサーバー ポリシーに最大 100 個のアウトバウンド エンドポイントを接続できます。

クエリをリージョンのオンプレミス リゾルバにルーティングする

Cloud DNS では、トラフィックが送信元 VM と同じリージョンのエンドポイントに送信されることは保証されませんが、位置情報ルーティング ポリシーを使用して、最も近いターゲット ネームサーバーにトラフィックをルーティングできます。Cloud DNS は、送信元のクエリとターゲット ネームサーバーに最も近いリージョンのアウトバウンド エンドポイントにトラフィックを優先的にルーティングしますが、ターゲット ネームサーバーのリージョンとアウトバウンド エンドポイントのリージョンは密結合されていません。ロケーションに関係なく、Cloud DNS は、過去に最も低いレイテンシを提供したエンドポイントを選択します。

クエリをリージョンのオンプレミス リゾルバにルーティングするために必要なことの概要は次のとおりです。

  • 位置情報ポリシーを使用してゾーンを作成する: 制御する FQDN(onprem-resolvers.example.com など)に対して、VPC ネットワークで承認された新しい Cloud DNS 限定公開ゾーンを作成します。このゾーンで、オンプレミス DNS サーバーの IP の A レコードを作成し、位置情報ルーティング ポリシーを適用します。特定のリージョンから送信されたクエリに対してリゾルバ IP を返すようにポリシーを構成します。たとえば、ヨーロッパの Google Cloud リージョンから送信されたクエリに対して、ヨーロッパのリゾルバ IP を返します。
  • FQDN を転送ターゲットとして使用する: 転送ゾーンで、作成した FQDN(onprem-resolvers.example.com)を宛先 DNS サーバーとして使用します。
  • アウトバウンド エンドポイントを構成する: リージョン アウトバウンド エンドポイント(米国リージョンに 1 つ、ヨーロッパ リージョンに 1 つなど)をこの転送ゾーンに関連付けます。

あるリージョンの VM がクエリを実行すると、システムは 2 段階のルーティング プロセスに従います。

  • エンドポイントの選択: Cloud DNS は、転送ゾーンに関連付けられているアウトバウンド エンドポイントのリストを評価し、最適なエンドポイントを選択します(たとえば、ヨーロッパの VM からのクエリには、ヨーロッパのエンドポイントが選択される可能性が高くなります)。
  • 宛先の DNS の解決: Cloud DNS は、クエリの送信元のリージョンの宛先 FQDN(onprem-resolvers.example.com)を解決します。Cloud DNS は、選択したアウトバウンド エンドポイントを介して、解決された DNS サーバー IP に元のクエリを転送します。位置情報ポリシーは、クエリの送信元をそのリージョンとして識別し、そのリージョン用に構成した特定の IP アドレスを返します。

詳細については、Cloud DNS FQDN の送信 DNS 転送のチュートリアルをご覧ください。

単一の VPC ネットワーク内のローカル エンドポイントのないリージョンからの転送

Google Cloud VPC ネットワークは、複数のリージョンにサブネットを含めることができるグローバル リソースです。アウトバウンド エンドポイントを構成していないリージョンから VM がクエリを実行しても、転送は成功します。クエリは、同じ VPC ネットワーク内に存在し、転送ゾーンまたはサーバー ポリシーで構成されている、最もランクの高い使用可能なアウトバウンド エンドポイントにリージョンをまたいでルーティングされます。

送信元 IP の分離を使用した、同じリージョン内の複数の VPC ネットワークからの転送

同じリージョン内の複数の VPC ネットワークからクエリを転送する必要があり、オンプレミス リゾルバが VPC ネットワークごとに異なる送信元 IP アドレスを認識する必要がある場合は、次の手順を行います。

  1. 各 VPC ネットワークにアウトバウンド エンドポイントを作成する: 詳細については、アウトバウンド エンドポイントを作成するをご覧ください。
  2. 各 VPC ネットワークに転送ゾーンまたはサーバー ポリシーを作成する: その VPC ネットワークのみに転送ゾーンまたはサーバー ポリシーを承認し、その VPC ネットワークのアウトバウンド エンドポイントのみを使用します。

このアクションにより、各 VPC ネットワーク内の VM は、VPC ネットワークのアウトバウンド エンドポイントを介してクエリを送信します。各エンドポイントは、クエリをオンプレミス リゾルバに転送します。オンプレミス ネットワークは、各 VPC ネットワークのプロキシ専用サブネットの送信元 IP アドレスを認識し、各ネットワークのトラフィックに異なる構成を適用できます。

異なる VPC ネットワーク間での統合転送(ハブアンドスポーク)

別の、一元化された VPC ネットワーク(ハブ)のアウトバウンド エンドポイントを使用するように、転送ゾーンまたはサーバー ポリシーを構成できます。Cloud DNS はクエリ転送を内部で処理するため、ハブ ネットワークとクエリの送信元である VPC ネットワーク(スポーク)間のネットワーク接続は必要ありません。

アウトバウンド エンドポイントと、転送ゾーンまたはサーバー ポリシーの転送ターゲット間のネットワーク接続を構成する必要があります。Cloud Interconnect または Cloud VPN を使用して接続を確立し、オンプレミス リゾルバにアクセスできます。VPC ネットワーク ピアリングを使用すると、別の VPC ネットワークの転送ターゲットにアクセスできます。

  1. ハブ VPC ネットワークにアウトバウンド エンドポイントを作成します。
  2. スポーク VPC ネットワークに転送ゾーンまたはサーバー ポリシーを作成し、ハブ ネットワークのアウトバウンド エンドポイントを使用するように構成します。

スポーク VPC ネットワーク内の VM は、ハブ VPC ネットワークのアウトバウンド エンドポイントを介してクエリを送信します。エンドポイントは、クエリをオンプレミス リゾルバに転送します。

共有 VPC のサポート

アウトバウンド エンドポイントは、共有 VPC デプロイをサポートしています。エンドポイント、その通常のサブネット、関連付けられたプロキシ専用サブネットは、ホスト プロジェクトで一元的に作成されます。サービス プロジェクトは、ホスト プロジェクトで作成された転送ゾーンまたはサーバー ポリシーを継承できます。また、独自のプライベート転送ゾーンまたはサーバー ポリシーを作成し、ホスト プロジェクトの一元化されたアウトバウンド エンドポイントにプロジェクト間でバインドすることもできます(ホスト プロジェクトに dns.outboundEndpoints.bindPrivateDNSZone または dns.outboundEndpoints.bindPrivateDNSPolicy が必要です)。

アウトバウンド エンドポイントに関連付けられたネットワーク リソースを管理する

Cloud DNS アウトバウンド エンドポイントは、基盤となる VPC ネットワークとサブネットとの厳格なライフサイクル依存関係を適用して、削除や変更などの偶発的なインフラストラクチャの変更から本番環境の DNS トラフィックを保護します。

アウトバウンド エンドポイントで使用されているプロキシ専用サブネットまたは VPC ネットワークを削除する

アウトバウンド エンドポイントによってアクティブに使用されている通常のサブネット、プロキシ専用サブネット、または VPC ネットワークは、サービス停止を防ぐために削除から保護されます。これらのリソースを削除しようとすると、エラーが発生します。これらのリソースを削除する場合は、次の手順を正確に実行する必要があります。

  1. Cloud DNS 構成を更新する: アウトバウンド エンドポイントを使用する転送ゾーンまたはサーバー ポリシーを編集し、構成から削除して、使用されないようにします。
  2. アウトバウンド エンドポイントを削除する: エンドポイントが使用されなくなったら、削除できます。この操作により、通常のサブネットとプロキシ専用サブネットへの依存関係が解放されます。
  3. サブネットを削除する: 他のリソースが使用していないことを確認したら、プロキシ専用サブネットと通常のサブネットを削除します。
  4. VPC ネットワークを削除する: 他のすべての VPC 依存関係が削除されたら、VPC ネットワークを削除できます。

サブネットの変更

アウトバウンド エンドポイントがプロキシ専用サブネットをアクティブに使用している場合、プロキシ専用サブネットを直接変更することはできません。この制限により、IP アドレス範囲などの主要なプロパティを編集できなくなり、サービス停止を回避できます。サブネットを変更するには、既存のガイドラインに従って、まず新しいサブネットに移行する必要があります。

アウトバウンド エンドポイントで使用されているサブネットを変更するには、次の操作を行います。

  1. バックアップ サブネットを作成する: 同じ VPC ネットワークとリージョンに新しいプロキシ専用サブネットを作成します。作成時に、このサブネットのロールを BACKUP に設定する必要があります。
  2. 新しいサブネットを有効にする: 新しいサブネットのロールを ACTIVE に更新します。これにより、元のサブネットが BACKUP ロールに自動的に設定され、アクティブな接続のドレインが開始されます。
  3. ドレインを待機する: コネクション ドレイン プロセスが完了するまで待ちます。
  4. 古いサブネットを削除する: 元のサブネットが BACKUP ロールになり、アクティブな接続がなくなったら、削除できます。

オンプレミス ファイアウォール用の専用の送信元 IP の予測可能性

オンプレミスの DNS ファイアウォールで、DNS トラフィックに分離された専用の予測可能な送信元 IP アドレス範囲が必要な場合は、次のアーキテクチャを適用することをおすすめします。

  • 専用の下り(外向き)VPC ネットワークにデプロイする: 通常のサブネット(アウトバウンド エンドポイント IP アドレス用)と、Cloud DNS 専用に予約されたリージョン プロキシ専用サブネット(--purpose=REGIONAL_MANAGED_PROXY と --role=ACTIVE)を含む専用 VPC ネットワークを作成します。
  • アプリケーション VPC ネットワークを分離する: アプリケーション VPC ネットワークをこの専用の下り(外向き)ネットワークにピアリングまたはルーティングしないでください。Cloud DNS は Google Cloudインフラストラクチャ内でクエリを内部的にルーティングするため、これらの VPC ネットワーク間の直接ネットワーク接続は必要ありません。
  • 専用の下り(外向き)VPC ネットワークを外部転送ターゲットに接続する: 専用の下り(外向き)VPC ネットワークと外部またはオンプレミスのターゲット ネームサーバー間の接続のみを構成します。このパスを確立するには、次のコマンドを使用します。
    • 既存のトランジット VPC への VPC ネットワーク ピアリング: これは推奨されるアプローチであり、最も費用対効果に優れています。組織に、オンプレミスへの Cloud Interconnect または Cloud VPN を備えた中央トランジット VPC ネットワークがすでに存在する場合は、専用の DNS VPC ネットワークをそのトランジット ハブにピアリングします。このアプローチにより、冗長なハイブリッド回線のプロビジョニングを回避し、費用を最小限に抑えることができます。
    • 直接ハイブリッド接続: 専用 DNS VPC ネットワークで直接終端する Dedicated Interconnect、Cross-Cloud Interconnect、または Cloud VPN。

制限事項

アウトバウンド エンドポイントには次の制限があります。

  • 送信元 IP とサブネットの共有が同じリージョン内のリソースに限定される: アウトバウンド エンドポイントは、接続されている VPC ネットワークのリージョン プロキシ専用サブネットから送信元 IP 範囲を割り当てます。標準デプロイでは、このプロキシ専用サブネットを、リージョン アプリケーション ロードバランサなどの他のリージョン リソースと共有できます。

  • プロキシ専用サブネットへのダイレクト ピアリングはサポートされていません。プロキシ専用サブネットと直接ピアリングすることはできません。外部ネームサーバーへのネットワーク接続は、Cloud Interconnect、Cloud VPN、VPC ネットワーク ピアリングなどの標準の VPC ルーティングを介して確立する必要があります。

  • IPv4 のみのサポート: アウトバウンド エンドポイントの送信元 IP アドレスは IPv4 のみです。クエリは、IPv4 ターゲットまたは IPv4 アドレスに解決される転送ゾーンの FQDN 転送ターゲットにのみ転送できます。

  • プロジェクト間でアウトバウンド エンドポイントをネットワークにバインドすることはサポートされていません。ホスト プロジェクトの共有 VPC ネットワークに接続されたサービス プロジェクトにアウトバウンド エンドポイントを作成することはサポートされていません。アウトバウンド エンドポイントは、接続先の VPC ネットワークおよびサブネットと同じプロジェクトに存在する必要があります。

  • プライベート ターゲットに限定: アウトバウンド エンドポイントは、プライベート ターゲット(RFC 1918、RFC 6598、--private-forward-targets または forwardingPath: "private" で構成されたプライベート ルーティングの RFC 1918 以外のアドレスを含む)への転送のみをサポートします。パブリック インターネット DNS トラフィックの Egress プロキシまたは静的ソース IP アンカーとして使用することはできません。パブリック インターネット ターゲットへのクエリは、Google の分散エニーキャスト エッジを介して直接解決されるため、レイテンシが最小限に抑えられ、Cloud NAT への依存を回避できます。

  • リージョン スコープ: アウトバウンド エンドポイントはリージョン リソースです。エンドポイントは、使用するリージョンごとに作成する必要があります。

  • 単一の転送メカニズムのみ: 転送メカニズム(デフォルトの 35.199.192.0/19 範囲またはアウトバウンド エンドポイント)は、転送ゾーンまたはサーバー ポリシー レベルで構成されます。ただし、同じゾーンまたはポリシーに両方の方法を同時に使用することはできません。

次のステップ