DNS サーバー ポリシーを構成する

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

始める前に

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

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

  1. Google アカウントをまだお持ちでない場合は、Google アカウントを登録します。
  2. Google Cloud コンソールで 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 は、 Google Cloud コンソールの [概要] ページの上部に表示されます。また、アプリで使用するプロジェクト名を提供するようユーザーに求めることもできます。

Google Cloud CLI を実行したことがない場合は、次のコマンドを実行してプロジェクト名を指定し、 Google Cloud コンソールで認証する必要があります。

gcloud auth login

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

DNS サーバー ポリシーを作成する

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

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

受信 DNS サーバー ポリシーを作成する

受信 DNS サーバー ポリシーを作成するには、次の手順を行います。Cloud DNS により、ポリシーの適用先となる各 VPC ネットワーク内のサブネットのプライマリ IPv4 アドレス範囲から一連の受信フォワーダー IP アドレスが作成されます。ポリシーを作成した後、Cloud DNS によって作成されたエントリ ポイントを一覧表示できます。

コンソール

  1. Google Cloud コンソールで、[Cloud DNS サーバー ポリシー] ページを開きます。

    [Cloud DNS サーバー ポリシー] に移動

  2. [ポリシーを作成] をクリックします。

  3. [名前] フィールドに、作成するインバウンド DNS サーバー ポリシーの名前(inbound-dns-server-policy など)を入力します。

  4. [受信クエリ転送] セクションで、[オン] を選択します。

  5. 必要に応じて DNS64 を有効にして、IPv6 専用ワークロードと IPv4 専用の宛先の間の通信を有効にできます。詳細については、DNS64 を構成するをご覧ください。

  6. 必要に応じて、[ログ] セクションで限定公開 DNS ログを有効にできますが、これにより Cloud Logging の費用が増加する可能性があります。

  7. [ネットワーク] リストで、この DNS サーバー ポリシーにバインドする VPC ネットワークを選択します。

    ネットワークをバインドできるポリシーは 1 つだけです。リストからネットワークを選択できない場合は、別のポリシーで使用されています。ポリシーで使用されているネットワークを確認するには、[DNS サーバー ポリシー] ページの [使用中] 列を確認します。

  8. [作成] をクリックします。

gcloud

受信 DNS サーバー ポリシーを作成するには、dns policies create コマンドを実行します。

gcloud dns policies create NAME \
    --description="DESCRIPTION" \
    --networks="VPC_NETWORK_LIST" \
    --enable-inbound-forwarding

次のように置き換えます。

  • NAME: ポリシーの名前
  • DESCRIPTION: ポリシーの説明
  • VPC_NETWORK_LIST: DNS サーバー ポリシーがバインドされる VPC ネットワークのカンマ区切りリスト

Terraform

resource "google_dns_policy" "default" {
  name                      = "example-inbound-policy"
  enable_inbound_forwarding = true

  networks {
    network_url = google_compute_network.default.id
  }
}

resource "google_compute_network" "default" {
  name                    = "network"
  auto_create_subnetworks = false
}

送信 DNS サーバー ポリシーを作成する

VPC ネットワークの代替ネームサーバーのリストを指定するため、送信 DNS サーバー ポリシーを作成できます。

コンソール

  1. Google Cloud コンソールで、[Cloud DNS サーバー ポリシー] ページを開きます。

    [Cloud DNS サーバー ポリシー] に移動

  2. [ポリシーを作成] をクリックします。

  3. [名前] フィールドに、作成するアウトバウンド DNS サーバー ポリシーの名前(outbound-dns-server-policy など)を入力します。

  4. [受信クエリ転送] セクションで、[オフ] を選択します。

  5. 必要に応じて、[ログ] セクションで限定公開 DNS ログを有効にできますが、これにより Cloud Logging の費用が増加する可能性があります。

  6. [代替 DNS サーバー(省略可)] セクションで、[アイテムを追加] をクリックし、[IP アドレス] フィールドにアウトバウンド DNS サーバーの IP アドレスを入力します。

    • アウトバウンド DNS サーバーへのプライベート ルーティングを適用する場合は、[プライベート転送] チェックボックスをオンにします。
  7. [ネットワーク] リストで、この DNS サーバー ポリシーにバインドする VPC ネットワークを選択します。

  8. [作成] をクリックします。

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"

次のように置き換えます。

  • NAME: ポリシーの名前
  • DESCRIPTION: ポリシーの説明
  • VPC_NETWORK_LIST: 代替ネームサーバーにクエリを実行する VPC ネットワークのカンマ区切りのリスト
  • ALTERNATIVE_NAMESERVER_LIST: 代替ネームサーバーとして使用できる IP アドレスのカンマ区切りのリスト
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST: 代替ネームサーバーとして使用できる IP アドレスのカンマ区切りのリスト。プライベート ルーティングを使用してアクセスされます。

Terraform

resource "google_dns_policy" "default" {
  name = "example-outbound-policy"

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "172.16.1.10"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }

  networks {
    network_url = google_compute_network.default.id
  }
}

resource "google_compute_network" "default" {
  name                    = "network"
  auto_create_subnetworks = false
}

受信転送と送信転送の両方に対応する DNS サーバー ポリシーを作成する

コンソール

  1. Google Cloud コンソールで、[Cloud DNS サーバー ポリシー] ページを開きます。

    [Cloud DNS サーバー ポリシー] に移動

  2. [ポリシーを作成] をクリックします。

  3. [名前] フィールドに、作成するインバウンド DNS サーバー ポリシーの名前(inbound-outbound-dns-server-policy など)を入力します。

  4. [受信クエリ転送] セクションで、[オン] を選択します。

  5. 必要に応じて、[ログ] セクションで限定公開 DNS ログを有効にできますが、これにより Cloud Logging の費用が増加する可能性があります。

  6. [代替 DNS サーバー(省略可)] セクションで、[アイテムを追加] をクリックし、[IP アドレス] フィールドにアウトバウンド DNS サーバーの IP アドレスを入力します。

    • プライベート ルーティングをアウトバウンド DNS サーバーに適用する場合は、[プライベート転送] を選択します。
  7. [ネットワーク] リストで、この DNS サーバー ポリシーにバインドする VPC ネットワークを選択します。

  8. [作成] をクリックします。

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 アドレスのカンマ区切りのリスト
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST: 代替ネームサーバーとして使用できる IP アドレスのカンマ区切りのリスト。プライベート ルーティングを使用してアクセスされます。

Terraform

resource "google_dns_policy" "example_policy" {
  name                      = "example-policy"
  enable_inbound_forwarding = true

  enable_logging = true

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "172.16.1.10"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }

  networks {
    network_url = google_compute_network.network_1.id
  }
  networks {
    network_url = google_compute_network.network_2.id
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

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

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

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

各受信フォワーダーは、リージョン内部 IP アドレスと同じリージョン内の Cloud VPN トンネルまたは Cloud Interconnect アタッチメント(VLAN)からクエリを受け入れます。VM インスタンスは、同じ VPC ネットワークの内部 IP アドレスを使用して受信フォワーダーにアクセスできます。受信転送にアクセスするには、ネットワーク インターフェースに外部 IP アドレスがあるか、NIC のサブネットでプライベート Google アクセスが有効になっている必要があります。

コンソール

ポリシーのインバウンド フォワーダー エントリ ポイントのリストを表示します。

  1. Google Cloud コンソールで、[Cloud DNS サーバー ポリシー] ページを開きます。

    [Cloud DNS サーバー ポリシー] に移動

  2. ポリシーの名前をクリックします。

  3. [ポリシーの詳細] ページで、[使用中] タブをクリックします。

ポリシーにバインドされている各ネットワークには、インバウンド クエリ転送 IP アドレスが一覧表示されます。

gcloud

すべてのインバウンド転送ポリシーのエントリ ポイントとして機能する一連のリージョン内部 IP アドレスを一覧表示するには、compute addresses list コマンドを実行します。

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

DNS ポリシーを更新する

以下のセクションでは、VPC ネットワークの変更と、受信転送の有効化と無効化について説明します。

VPC ネットワークを変更する

DNS ポリシーが適用される VPC ネットワークのリストを変更したときの動作を次に示します。

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

コンソール

  1. Google Cloud コンソールで、[Cloud DNS サーバー ポリシー] ページを開きます。

    [Cloud DNS サーバー ポリシー] に移動

  2. 変更するポリシーの名前をクリックします。

  3. [ポリシーを編集] をクリックします。

  4. [ネットワーク] リストで、VPC ネットワークの横にあるチェックボックスをオンまたはオフにします。

  5. [保存] をクリックします。

gcloud

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

gcloud dns policies update NAME \
    --networks="VPC_NETWORK_LIST"

次のように置き換えます。

  • NAME: ポリシーの名前
  • VPC_NETWORK_LIST: ポリシーを適用する VPC ネットワークのカンマ区切りのリスト。前のリストは、指定した VPC ネットワークのリストで置き換わります。

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

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

コンソール

DNS サーバー ポリシーのインバウンド転送を有効にします。

  1. Google Cloud コンソールで、[Cloud DNS サーバー ポリシー] ページを開きます。

    [Cloud DNS サーバー ポリシー] に移動

  2. 変更するポリシーの名前をクリックします。

  3. [ポリシーを編集] をクリックします。

  4. [受信クエリ転送] セクションで、[オン] を選択します。

  5. [保存] をクリックします。

DNS サーバー ポリシー インバウンド転送を無効にします。

  1. [Cloud DNS サーバー ポリシー] ページを開きます。
  2. 変更するポリシーの名前をクリックします。
  3. [ポリシーを編集] をクリックします。
  4. [受信クエリ転送] セクションで、[オフ] を選択します。
  5. [保存] をクリックします。

gcloud

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

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

DNS サーバー ポリシーのインバウンド転送を無効にするには、--no-enable-inbound-forwarding フラグを指定します。

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

NAME は、ポリシーの名前に置き換えます。

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

コンソール

  1. Google Cloud コンソールで、[Cloud DNS サーバー ポリシー] ページを開きます。

    [Cloud DNS サーバー ポリシー] に移動

  2. プロジェクトで作成された DNS サーバー ポリシーが一覧表示されます。

gcloud

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

gcloud dns policies list

DNS ポリシーを削除する

コンソール

DNS サーバー ポリシーを削除するには、どのネットワークにもバインドされていない必要があります。ポリシーを削除する前に、ポリシーを更新してすべてのネットワークを削除します。

  1. Google Cloud コンソールで、[Cloud DNS サーバー ポリシー] ページを開きます。

    [Cloud DNS サーバー ポリシー] に移動

  2. 削除するポリシーの名前の横にある [削除] をクリックします。

gcloud

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

gcloud dns policies delete NAME

NAME は、削除するポリシーの名前に置き換えます。

次のステップ