配置 DNS64

本文档介绍了如何配置 DNS64 服务器政策,以及如何将其与虚拟私有云 (VPC) 网络搭配使用。

准备工作

  • DNS64 服务器政策不适用于双栈虚拟机 (VM) 实例、仅 IPv4 的虚拟机实例、无服务器工作负载,或发送到由入站 DNS 服务器政策创建的端点的请求。
  • 确保您拥有创建 DNS64 服务器政策所需的权限。

创建 DNS64 服务器政策

创建 DNS64 服务器政策,以实现 IPv6 专用工作负载与 IPv4 专用目标之间的通信。

创建 DNS64 服务器政策后,当查询 IPv6 (AAAA) 记录时,会发生以下情况:

  • 如果存在 AAAA DNS 记录,DNS 服务器会返回 IPv6 地址。您的工作负载通过该 IPv6 地址进行连接。
  • 如果不存在 AAAA DNS 记录,Cloud DNS 会查找 A 记录。 然后,Cloud DNS 会使用 64:ff9b::/96 IPv6 前缀为 A 记录中的 IPv4 地址创建 IPv6 地址。

如需创建 DNS64 服务器政策,请按照以下步骤操作。

gcloud

如需创建 DNS64 服务器政策,请运行 gcloud dns policies create 命令:

gcloud dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --enable-dns64-all-queries

替换以下内容:

  • NAME:政策的名称
  • DESCRIPTION:政策的说明
  • VPC_NETWORK_LIST:DNS 服务器政策绑定到的 VPC 网络的英文逗号分隔列表

Terraform

resource "google_dns_policy" "default" {
  name = "NAME"

  dns64_config {
    scope {
      all_queries = true
    }
  }

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "PRIVATE_IP_ADDRESS"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "PUBLIC_IP_ADDRESS"
    }
  }

  networks {
    network_url = google_compute_network.default.id
  }
}

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

替换以下内容:

  • NAME:出站 DNS64 政策的名称
  • PRIVATE_IP_ADDRESS:使用专用转发路径的备用域名服务器的 IP 地址
  • PUBLIC_IP_ADDRESS:其他备用域名服务器的 IP 地址

API

如需创建 DNS64 服务器政策,请使用 policies.create 方法:

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/policies
{
  "kind": "dns#policy",
  "networks": [
    {
      "kind": "dns#policyNetwork",
      "networkUrl": "NETWORK_URL"
    }
  ],
  "dns64Config":
    {
        "scope":
        {
          allQueries: true,
        }
    }
  }

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • NETWORK_URL:DNS 服务器政策必须绑定到的 VPC 网络的完全限定网址,格式如下:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME。指定包含仅限 IPv6 的子网和实例的网络。

验证是否已启用 DNS64 服务器政策

gcloud

如需列出项目中的所有 DNS 服务器政策,请运行 dns policies list 命令:

gcloud dns policies list

如需获取有关特定 DNS64 服务器政策的详细信息,请运行 gcloud dns policies describe 命令:

gcloud dns policies describe NAME

将 NAME 替换为您要详细了解的 DNS64 服务器政策的名称。

停用 DNS64 服务器政策

gcloud

如需停用 DNS64 服务器政策,请运行 dns policies update 命令:

gcloud dns policies update NAME \
    --no-enable-dns64-all-queries

将 NAME 替换为您要停用的 DNS64 服务器政策的名称。

后续步骤

  • 如需配置 NAT64 以实现从 IPv6 到 IPv4 地址的 Public NAT 转换,请按照创建 Cloud NAT 网关中的说明操作。
  • 如需大致了解 DNS 服务器政策,请参阅 DNS 服务器政策。
  • 如需了解您在使用 Cloud DNS 时可能会遇到的常见问题的解决方案,请参阅排查 Cloud DNS 问题。