创建转发可用区

本页面介绍如何创建转发可用区。如需了解详细的背景信息,请参阅转发可用区

在开始之前,请确保您了解以下内容:

如需创建新的代管专用转发可用区,请完成以下步骤。

控制台

  1. 在 Google Cloud Console 中,转到创建 DNS 可用区页面。

    转到“创建 DNS 可用区”

  2. 对于可用区类型,请选择专用

  3. 输入可用区名称,例如 my-new-zone

  4. 为专用地区输入 DNS 名称后缀。该可用区中的所有记录都具有此后缀,例如 example.private

  5. 可选:添加说明。

  6. 选项下,选择将查询转发到其他服务器

  7. 选择专用地区必须在其中公开的网络。

  8. 如需添加转发目标的 IPv4 地址,请点击添加项目。您可以添加多个 IP 地址。

  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 地址的英文逗号分隔列表。使用此标志指定的 RFC 1918 IP 地址必须位于您的 VPC 网络,或者使用 Cloud VPN 或 Cloud Interconnect 连接到 Google Cloud 的本地网络。使用此标志指定的非 RFC 1918 IP 地址必须可通过互联网访问。
  • PRIVATE_FORWARDING_TARGETS_LIST:将查询发送到的 IP 地址的英文逗号分隔列表。使用此标志指定的任何 IP 地址都必须位于您的 VPC 网络中或使用 Google Cloud 或 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 网络的网址,位于同一项目中,能够查询此可用区中的记录。您可以按照指示添加多个 VPC 网络。要确定 VPC 网络的网址,请使用以下 gcloud 命令描述网络,并将 VPC_NETWORK_NAME 替换为网络的名称:
    gcloud compute networks describe VPC_NETWORK_NAME 
    --format="get(selfLink)"
  • FORWARDING_TARGET_1FORWARDING_TARGET_2:转发目标域名服务器的 IP 地址。您可以按照指示添加多个转发目标。此处指定的 RFC 1918 IP 地址必须位于您的 VPC 网络中或使用 Google Cloud 或 Cloud Interconnect 连接到 Google Cloud 的本地网络中。使用此标志指定的非 RFC 1918 IP 地址必须可通过互联网访问。

转发目标网络要求

当 Cloud DNS 向转发目标发送请求时,将发送下表中列出的来源范围内的数据包。

转发目标类型 来源范围

类型 1 目标

有权使用转发区域的同一 VPC 网络中的 Google Cloud 虚拟机或内部直通式网络负载均衡器内部 IP 地址

类型 2 目标

本地系统的 IP 地址,使用 Cloud VPN 或 Cloud Interconnect 连接到有权使用转发可用区的 VPC 网络。

如需详细了解受支持的 IP 地址,请参阅转发目标和路由方法

35.199.192.0/19

Cloud DNS 对所有客户使用 35.199.192.0/19 来源范围。 此范围只能从 Google Cloud VPC 网络或连接到 VPC 网络的本地网络访问。

类型 3 目标

可供互联网或 Google Cloud 资源的外部 IP 地址访问的 DNS 域名服务器的外部 IP 地址例如,另一个 VPC 网络中虚拟机的外部 IP 地址。

Google 公共 DNS 来源范围

类型 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 使用自定义动态或自定义静态路由(标记的静态路由除外)访问转发目标。

  • 35.199.192.0/19 通过同一 VPC 网络的返回路由

    对于类型 1 目标,Google Cloud 会自动为 35.199.192.0/19 目的地添加一个特殊返回路由。对于类型 2 的目标,本地网络必须具有 35.199.192.0/19 目的地的路由,其下一个跃点位于发起请求的同一 VPC 网络(通过 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN) 连接)。如需了解如何满足此要求,请参阅类型 2 目标的返回路由策略

  • 定向目标进行的响应

    Cloud DNS 要求接收数据包的转发目标是将回复发送到 35.199.192.0/19 的转发目标。如果您的转发目标将请求发送到其他域名服务器,并且该域名服务器响应了 35.199.192.0/19,则 Cloud DNS 会忽略该响应。出于安全原因,Google Cloud 要求各目标域名服务器 DNS 回复的来源地址与该转发目标的 IP 地址相匹配。

类型 2 目标的返回路由策略

Cloud DNS 无法通过互联网或通过不同的 VPC 网络发送类型 2 转发目标的响应。响应必须返回到同一个 VPC 网络,但它们可以使用同一网络中的任何 Cloud VPN 隧道或 VLAN 连接。

  • 如果是使用静态路由的 Cloud VPN 隧道,请在本地网络中手动创建目的地为 35.199.192.0/19 且下一个跃点为 Cloud VPN 隧道的路由。如果是使用基于政策的路由的 Cloud VPN 隧道,请配置 Cloud VPN 的本地流量选择器和本地 VPN 网关的远程流量选择器,使其包含 35.199.192.0/19
  • 如果是使用动态路由或用于 Cloud Interconnect 的 Cloud VPN 隧道,请在管理该隧道或 VLAN 连接的 Cloud Router 路由器的 BGP 会话上为 35.199.192.0/19 配置自定义路由通告

类型 3 目标

当 Cloud DNS 使用标准路由访问外部 IP 地址时,它要求备用域名服务器是互联网上的系统、可公开访问或 Google Cloud 资源的外部 IP 地址。

例如,类型 3 目标包括其他 VPC 网络中虚拟机的外部 IP 地址。

不支持通过专用路由发送到类型 3 目标。

后续步骤