転送ゾーンを作成する

このページでは、転送ゾーンの作成方法について説明します。詳細な背景情報については、転送ゾーンをご覧ください。

始める前に、次の内容を理解しておいてください。

新しい限定公開マネージド ゾーンを作成するには、次の手順を行います。

コンソール

  1. Google Cloud コンソールで、[DNS ゾーンの作成] ページに移動します。

    [DNS ゾーンの作成] に移動

  2. [ゾーンのタイプ] で [非公開] を選択します。

  3. ゾーン名(例: my-new-zone)を入力します。

  4. 限定公開ゾーンの DNS 名のサフィックスを入力します。ゾーン内のすべてのレコードがこのサフィックスを共有します。例: example.private

  5. (省略可)説明を追加します。

  6. [オプション] で、[クエリを別のサーバーに転送する] を選択します。

  7. このプライベート ゾーンが見えるようにするネットワークを選択します。

  8. 転送先を追加するには、[項目を追加] をクリックします。複数の IP アドレスまたは 1 つの完全修飾ドメイン名(FQDN)を追加できます。転送先は、IP アドレスのリストまたは FQDN のいずれかである必要があります。同じゾーンで IP アドレスと FQDN の両方を使用することはできません。

  9. 転送先へのプライベート ルーティングを強制するには、[プライベート転送] で [有効にする] チェックボックスをオンにします。

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

gcloud

dns managed-zones create コマンドを実行します。

gcloud dns managed-zones create NAME \
    --description=DESCRIPTION \
    --dns-name=DNS_SUFFIX \
    --networks=VPC_NETWORK_LIST \
    --forwarding-targets=FORWARDING_TARGETS_LIST \
    --private-forwarding-targets=PRIVATE_FORWARDING_TARGETS_LIST \
    --visibility=private

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

  • NAME: ゾーンの名前
  • DESCRIPTION: ゾーンの説明
  • DNS_SUFFIX: ゾーンの DNS サフィックス(例: example.private
  • VPC_NETWORK_LIST: ゾーンに対するクエリ実行が許可されている VPC ネットワークのカンマ区切りのリスト。
  • FORWARDING_TARGETS_LIST: クエリの送信先となる IP アドレスのカンマ区切りのリストまたは単一の完全修飾ドメイン名。ドメイン名が IP アドレスに解決されます。このフラグで指定する RFC 1918 IP アドレスは、VPC ネットワークに存在するか、Cloud VPN または Cloud Interconnect を使用して Google Cloudに接続されたオンプレミス ネットワークに存在する必要があります。このフラグで指定する RFC 1918 以外の IP アドレスは、インターネットにアクセスできる必要があります。
  • PRIVATE_FORWARDING_TARGETS_LIST: クエリの送信先となる IP アドレスのカンマ区切りのリストまたは単一の完全修飾ドメイン名。ドメイン名が IP アドレスに解決されます。このフラグで指定する IP アドレスは、VPC ネットワークに存在するか、Cloud VPN または Cloud Interconnect を使用して Google Cloud に接続されたオンプレミス ネットワークに存在する必要があります。

Terraform

resource "google_dns_managed_zone" "private_zone" {
  name        = "private-zone"
  dns_name    = "private.example.com."
  description = "Example private DNS zone"
  labels = {
    foo = "bar"
  }

  visibility = "private"

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

  forwarding_config {
    target_name_servers {
      ipv4_address = "172.16.1.10"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }
}

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
}

API

managedZones.create メソッドを使用して、POST リクエストを送信します。

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
{

    "name": "NAME",
    "description": "DESCRIPTION",
    "dnsName": "DNS_NAME",
    "visibility": "private"
    "privateVisibilityConfig": {
        "kind": "dns#managedZonePrivateVisibilityConfig",
        "networks": [{
                "kind": "dns#managedZonePrivateVisibilityConfigNetwork",
                "networkUrl": VPC_NETWORK_1
            },
            {
                "kind": "dns#managedZonePrivateVisibilityConfigNetwork",
                "networkUrl": VPC_NETWORK_2
            },
            ....
        ]
    },
    "forwardingConfig": {
        "kind": "dns#managedZoneForwardingConfig",
        "targetNameServers": [{
                "kind": "dns#managedZoneForwardingConfigNameServerTarget",
                "ipv4Address": FORWARDING_TARGET_1
            },
            {
                "kind": "dns#managedZoneForwardingConfigNameServerTarget",
                "ipv4Address": FORWARDING_TARGET_2
            },
            ....
        ]
    },
}

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

  • PROJECT_ID: マネージド ゾーンが作成されるプロジェクトの ID
  • NAME: ゾーンの名前
  • DESCRIPTION: ゾーンの説明
  • DNS_NAME: ゾーンの DNS サフィックス(例: example.private
  • VPC_NETWORK_1VPC_NETWORK_2: 同じプロジェクト内の VPC ネットワークの URL。このゾーンのレコードに対してクエリを実行できます。上記に示すように、複数の VPC ネットワークを追加できます。VPC ネットワークの URL を確認するには、次の gcloud コマンドでネットワークを記述し、VPC_NETWORK_NAME はネットワークの名前に置き換えます。
    gcloud compute networks describe VPC_NETWORK_NAME 
    --format="get(selfLink)"
  • FORWARDING_TARGET_1FORWARDING_TARGET_2: 転送先ネームサーバーの IP アドレス、または単一の完全修飾ドメイン名。上記に示すように、複数の IP アドレスを追加できます。ここで指定する RFC 1918 IP アドレスは、VPC ネットワークに存在するか、Cloud VPN または Cloud Interconnect を使用して Google Cloud に接続されたオンプレミス ネットワークに存在する必要があります。このフラグで指定する RFC 1918 以外の IP アドレスは、インターネットにアクセスできる必要があります。

転送先ネットワーク要件

Cloud DNS は、転送先にリクエストを送信するときに、次の表に示したソース範囲のパケットを送信します。

転送先のタイプ ソース範囲

タイプ 1 の転送先

Google Cloud VM の内部 IP アドレス、または転送ゾーンの使用が承認されている同じ VPC ネットワーク内の内部パススルー ネットワーク ロードバランサ

タイプ 2 の転送先

Cloud VPN または Cloud Interconnect を使用して、転送ゾーンの使用が承認された VPC ネットワークに接続されている、オンプレミス システムの IP アドレス。

サポートされている IP アドレスの詳細については、転送先とルーティング方法をご覧ください。

35.199.192.0/19

Cloud DNS は、すべてのお客様に 35.199.192.0/19 ソース範囲を使用します。この範囲には、 Google Cloud VPC ネットワークから、または VPC ネットワークに接続されたオンプレミス ネットワークからのみアクセスできます。

タイプ 3 の転送先

インターネットからアクセス可能な DNS ネームサーバーの外部 IP アドレス、または Google Cloud リソースの外部 IP アドレス(別の VPC ネットワークにある VM の外部 IP アドレスなど)。

Google Public DNS ソース範囲

タイプ 4 の転送先

VPC ネットワークの解決順序で IPv4 アドレスと IPv6 アドレスの両方に解決されるターゲット ネームサーバーの完全修飾ドメイン名。ドメイン名は最大 50 個の IP アドレスに解決できます。

解決された IP アドレスは、ターゲット タイプ 1~3 になります。

解決された IP アドレスに応じて、送信元範囲は次のいずれかになります。

タイプ 1 とタイプ 2 の転送先

Cloud DNS がタイプ 1 またはタイプ 2 の転送先にアクセスするには、次のものが必要です。これらの要件は、転送先が RFC 1918 の IP アドレスで標準ルーティングを使用していても、またはプライベート ルーティングを選択している場合でも変わりません。

  • 35.199.192.0/19 に対するファイアウォール構成

    タイプ 1 の転送先の場合、TCP と UDP のポート 53 トラフィック用に上り(内向き)許可のファイアウォール ルールを作成し、承認済みの各 VPC ネットワーク内の転送先に適用します。タイプ 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 の転送先の場合、オンプレミス ネットワークには、Cloud VPN トンネルまたは Cloud Interconnect の VLAN アタッチメントを経由した 35.199.192.0/19 の宛先へのルートが必要です。このルートのネクストホップは、リクエストの送信元と同じ VPC ネットワーク内にあります。この要件を満たす方法については、タイプ 2 の転送先の戻りルート戦略をご覧ください。

  • 転送先からのダイレクト レスポンス

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

タイプ 2 の転送先への戻りルート戦略

Cloud DNS は、タイプ 2 の転送先からのレスポンスをインターネットや別の VPC ネットワークを経由して送信することはできません。レスポンスは、同じネットワーク内で Cloud VPN トンネルや 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 が標準ルーティングを使用して外部 IP アドレスにアクセスする場合、転送先は、インターネット上の一般公開されているシステム、または Google Cloud リソースの外部 IP アドレスのいずれかである必要があります。

たとえば、タイプ 3 の転送先には、別の VPC ネットワーク内にある VM の外部 IP アドレスが含まれます。

タイプ 3 の転送先へのプライベート ルーティングはサポートされていません。

タイプ 4 の転送先

タイプ 4 のターゲットは、まずターゲットの IP アドレスを解決します。解決された転送ターゲットは、IPv4 アドレスと IPv6 アドレスの両方を含む最大 50 個の IP アドレスに解決できます。解決された転送先のネットワークに応じて、タイプ 4 ターゲットには、タイプ 1、2、3 のターゲットと同じネットワーク要件があります。

転送ターゲットとして FQDN を使用する場合の追加要件については、転送ゾーンを使用するをご覧ください。

次のステップ