Cloud DNS サーバー ポリシーの適用

このページでは、Cloud DNS サーバー ポリシーを構成し、それらを Virtual Private Cloud(VPC)ネットワークで使用する方法について説明します。このページを使用する前に、Cloud DNS のコンセプトを理解しておいてください。

始める前に

Cloud DNS API を使用するには、Google Cloud プロジェクトを作成し、Cloud DNS API を有効にする必要があります。

REST API を使用するアプリケーションを作成する場合は、OAuth 2.0 クライアント ID も作成する必要があります。

  1. Google アカウントをまだお持ちでない場合は、Google アカウントを登録します
  2. Cloud Console で Cloud DNS API を有効にします。既存の Compute Engine または App Engine プロジェクトを選択するか、新しいプロジェクトを作成できます。
  3. REST API にリクエストを行う必要がある場合は、OAuth 2.0 の ID を作成する必要があります。OAuth 2.0 を設定
  4. プロジェクト内の以下の情報は、後の手順で入力するために必要になります。
    • クライアント ID(xxxxxx.apps.googleusercontent.com)。
    • 使用するプロジェクト ID。この ID は、Cloud Console の [概要] ページの上部に表示されます。また、ユーザーがアプリで使用するプロジェクト名を入力するように設定することも可能です。

gcloud コマンドライン ツールをまだ実行していない場合は、プロジェクト名を指定して次のコマンドを実行し、Cloud Console で認証を行う必要があります。

gcloud auth login

以前に選択したプロジェクトとは異なるプロジェクトを選択するには、コマンドラインで --project オプションを指定します。

DNS サーバー ポリシーの作成

各 DNS サーバー ポリシー オブジェクトでは、次のいずれかのサーバー ポリシーを定義できます。

いずれの VPC ネットワークでも、複数の DNS サーバー ポリシーを参照することはできません。VPC ネットワークに対して受信転送と送信転送の両方を定義する必要がある場合は、受信ポリシーと送信ポリシーの両方を定義するポリシーを 1 つ作成します。

DNS サーバー ポリシーについて詳しくは、DNS サーバー ポリシーをご覧ください。

受信サーバー ポリシーの作成

受信サーバー ポリシーを作成するには、次の手順を行います。Cloud DNS が、ポリシーの適用先となる各 VPC ネットワークに受信フォワーダー IP アドレスのセットを作成します。ポリシーを作成した後、Cloud DNS が作成するエントリ ポイントを一覧表示できます。

gcloud

新しい受信サーバー ポリシーを作成するには、dns policies create コマンドを使用します。

gcloud dns policies create name \
    --description=description \
    --networks=vpc-network-list \
    --enable-inbound-forwarding

次のコマンド オプションを置き換えます。

  • name: ポリシーの名前
  • description: ポリシーの説明
  • vpc-network-list: 受信転送アドレスを作成する必要がある VPC ネットワークのカンマ区切りのリスト

送信サーバー ポリシーの作成

送信サーバー ポリシーを作成して VPC ネットワークの名前解決順序を変更するには、すべての DNS クエリを別のネームサーバーに転送します。その手順は次のとおりです。始める前に、標準ルーティングと限定公開ルーティングの違いと、代替ネームサーバーのネットワーク要件を理解しておいてください。

gcloud

新しい送信サーバー ポリシーを作成するには、dns policies create コマンドを使用します。

gcloud dns policies create name \
    --description=description \
    --networks=vpc-network-list \
    --alternative-name-servers=alternative-nameserver-list \
    --private-alternative-name-servers=private-alternative-nameserver-list

次のコマンド オプションを置き換えます。

  • name: ポリシーの名前
  • description: ポリシーの説明
  • vpc-network-list: 代替ネームサーバーにクエリを実行する VPC ネットワークのカンマ区切りのリスト
  • alternative-nameserver-list: 代替ネームサーバーとして使用する IP アドレスのカンマ区切りのリスト。限定公開ルーティングは、RFC 1918 アドレスが設定された代替ネームサーバーにのみ使用されます。
  • private-alternative-nameserver-list: プライベート ルーティングを使用して、代替ネームサーバーとして使用する IP アドレスのカンマ区切りのリスト。詳しくは、代替ネームサーバーとルーティング方法をご覧ください。

両方のサーバー ポリシーの作成

gcloud

受信転送と送信転送の両方に新しい DNS サーバー ポリシーを作成するには、dns policies create コマンドを使用します。

gcloud dns policies create name \
    --description=description \
    --networks=vpc-network-list \
    --alternative-name-servers=alternative-nameserver-list \
    --private-alternative-name-servers=private-alternative-nameserver-list \
    --enable-inbound-forwarding

次のコマンド オプションを置き換えます。

  • name: ポリシーの名前
  • description: ポリシーの説明
  • vpc-network-list: 受信転送アドレスを作成し、代替ネームサーバーに対してクエリを実行する必要がある VPC ネットワークのカンマ区切りのリスト
  • alternative-nameserver-list: 代替ネームサーバーとして使用する IP アドレスのカンマ区切りのリスト。限定公開ルーティングは、RFC 1918 アドレスが設定された代替ネームサーバーにのみ使用されます。
  • private-alternative-nameserver-list: プライベート ルーティングを使用して、代替ネームサーバーとして使用する IP アドレスのカンマ区切りのリスト。詳しくは、代替ネームサーバーとルーティング方法をご覧ください。

受信フォワーダーのエントリ ポイントの一覧表示

受信サーバー ポリシーが VPC ネットワークに適用されると、Cloud DNS はオンプレミス システムまたは名前リゾルバが DNS リクエストを送信できる宛先として一連のリージョン内部 IP アドレスを作成します。これらのアドレスは、VPC ネットワークの名前解決順序へのエントリ ポイントとして機能します。

Google Cloud ファイアウォール ルールは、受信フォワーダーのエントリ ポイントとして機能するリージョン内部アドレスには適用されません。Cloud DNS は、ポート 53 で TCP トラフィックと UDP トラフィックを自動的に受け入れます。

各受信フォワーダーは、リージョン内部 IP アドレスと同じリージョン内の Cloud VPN トンネルまたは Cloud Interconnect アタッチメント(VLAN)からクエリを受け入れます。

gcloud

受信転送のエントリ ポイントとして機能するリージョン内部 IP アドレスのセットを一覧表示するには、compute addresses list コマンドを使用します。

gcloud compute addresses list \
    --filter='purpose = "DNS_RESOLVER"' \
    --format='csv(address, region, subnetwork)'

DNS ポリシーの更新

VPC ネットワークの変更

DNS ポリシーが適用される VPC ネットワークのリストを変更する場合:

  • ポリシーに受信ポリシーを指定している場合、必要に応じて受信フォワーダーのエントリ ポイントが VPC ネットワークに作成されます。
  • ポリシーに送信ポリシーを指定している場合、すべてのリクエストが代替ネームサーバーに転送されるように、各 VPC ネットワークの名前解決順序が更新されます。

gcloud

DNS サーバー ポリシーが適用されるネットワークのリストを変更するには、dns policies update コマンドを使用します。

gcloud dns policies update name \
    --networks=vpc-network-list

次のコマンド オプションを置き換えます。

  • name: ポリシーの名前
  • vpc-network-list: ポリシーを適用する VPC ネットワークのカンマ区切りのリスト。指定した VPC ネットワークのリストで前のリストが置き換えられます。

受信転送を有効または無効にする

送信ポリシーのみを定義する DNS サーバー ポリシー(代替ネームサーバー)の受信転送を有効にできます。既存の DNS ポリシーの受信転送を無効にすることもできます。

gcloud

DNS サーバー ポリシーの受信転送を有効にするには、dns policies update コマンドを使用します。

gcloud dns policies update name \
    --enable-inbound-forwarding

DNS サーバー ポリシーの受信転送を無効にするには、dns policies update コマンドを使用します。

gcloud dns policies update name \
    --no-enable-inbound-forwarding

次のコマンド オプションを置き換えます。

  • name: ポリシーの名前

DNS ポリシーを一覧表示する

gcloud

プロジェクト内の DNS サーバー ポリシーを一覧表示するには、dns policies list コマンドを使用します。

gcloud dns policies list

DNS ポリシーを削除する

gcloud

サーバー ポリシーを削除するには、dns policies delete コマンドを使用します。

gcloud dns policies delete name

次のコマンド オプションを置き換えます。

  • name: 削除するポリシーの名前

代替ネームサーバーのネットワーク要件

Cloud DNS は、代替ネームサーバーにリクエストを送信するときに、次の表に示したソース範囲のパケットを送信します。各種ネームサーバーに関する詳しい背景情報については、代替ネームサーバーとルーティング方法をご覧ください。

代替ネームサーバーのタイプ ソース範囲
  • タイプ 1 のネームサーバー
    (送信ポリシーを使用する VPC ネットワーク内の VM)
  • タイプ 2 のネームサーバー
    (オンプレミス。送信ポリシーを使用する VPC ネットワークに接続されている)
35.199.192.0/19
Cloud DNS は、すべてのお客様に 35.199.192.0/19 ソース範囲を使用します。この範囲には、Google Cloud VPC ネットワーク、または VPC ネットワークに接続されたオンプレミス ネットワークからのみアクセスできます。
  • タイプ 3 のネームサーバー
    (インターネット アクセス可能)
Google Public DNS ソース範囲

タイプ 1 と タイプ 2 の代替ネームサーバー

タイプ 1 またはタイプ 2 の代替ネームサーバーにアクセスするには、Cloud DNS に以下が必要です。これらの要件は、ネームサーバーが RFC 1918 IP アドレスで、標準ルーティングを使用している場合でも、明示的に限定公開ルーティングを選択している場合でも同じです。

  • 35.199.192.0/19 のファイアウォール構成: タイプ 1 のネームサーバーの場合、ネームサーバーを指定する送信ポリシーを使用するように構成された各 VPC ネットワーク内の代替ネームサーバーに適用できる、TCP と UDP ポート 53 に対する上り(内向き)許可ファイアウォール ルールを作成します。タイプ 2 のネームサーバーでは、オンプレミス ネットワークのファイアウォールや同様の機器を構成して、TCP と UDP のポート 53 を許可します。
  • ネームサーバーへのルーティング: タイプ 1 のネームサーバーの場合、Cloud DNS はサブネット ルートを使用して、ネームサーバーを指定する送信ポリシーを使用するように構成された VPC ネットワーク内のネームサーバーにアクセスします。タイプ 2 のネームサーバーの場合、Cloud DNS は、カスタム動的ルートまたはカスタム静的ルート(タグ付けされた静的ルートを除く)を使用して、ネームサーバーにアクセスします。
  • 同じ VPC ネットワークを介する 35.199.192.0/19 へのリターン ルート: タイプ 1 のネームサーバーの場合、Google Cloud では、35.199.192.0/19 転送先への特別なリターン ルートが自動的に追加されます。タイプ 2 のネームサーバーの場合、オンプレミス ネットワークには、ネクストホップがリクエストの送信元と同じ VPC ネットワークとリージョン内にあり、Cloud VPN トンネルまたは Cloud Interconnect のアタッチメント(VLAN)を介する 35.199.192.0/19 転送先へのルートが必要です。この要件を満たす方法については、タイプ 2 のネームサーバーへのリターンルート戦略をご覧ください。

  • 代替ネームサーバーからのダイレクト レスポンス: Cloud DNS では、パケットを受信する代替ネームサーバーが 35.199.192.0/19 に応答を送る必要があります。ネームサーバーが別のネームサーバーにリクエストを送信し、そのネームサーバーが 35.199.192.0/19 に応答した場合、Cloud DNS はそのレスポンスを無視します。セキュリティ上の理由から、Google Cloud では、各代替ネームサーバーの DNS 応答の送信元アドレスが、代替ネームサーバーの IP アドレスと一致することが必要です。

タイプ 2 のネームサーバーのリターンルート戦略

タイプ 2 のネームサーバーからのレスポンスは、インターネット経由で、別の VPC ネットワークを介して、または別のリージョン(同じ VPC ネットワーク内にあっても)へレスポンスを送信できません。レスポンスは、同じリージョンと同じネットワーク内で任意の Cloud VPN トンネルまたは Cloud Interconnect のアタッチメント(VLAN)を使用できますが、同じリージョンと VPC ネットワークへ返す必要があります。

  • 静的ルーティングを使用する Cloud VPN トンネルの場合は、オンプレミス ネットワーク内に、宛先が 35.199.192.0/19 でネクストホップが Cloud VPN トンネルであるルートを手動で作成します。ポリシーベースのルーティングを使用する Cloud VPN トンネルの場合は、35.199.192.0/19 を含めるように、オンプレミスの VPN ゲートウェイのリモート トラフィック セレクタと Cloud VPN のローカル トラフィック セレクタを構成します。
  • 動的ルーティングを使用する Cloud VPN トンネルまたは Cloud Interconnect の場合は、トンネルまたは相互接続のアタッチメント(VLAN)を管理する Cloud Router の BGP セッションの 35.199.192.0/19カスタムルート アドバタイズを構成します。

タイプ 3 の代替ネームサーバー

Cloud DNS が標準ルーティングを使用して RFC 1918 以外の IP アドレスにアクセスするとき、代替ネームサーバーは一般公開されていると想定されます。

次のステップ