管理 DNSSEC 配置

本页面介绍了如何启用和停用域名系统安全扩展 (DNSSEC) 并验证 DNSSEC 部署。

如需 DNSSEC 的概念性概览,请参阅 DNSSEC 概览

为现有代管式公共可用区启用 DNSSEC

如需为现有代管式公共可用区启用 DNSSEC,请按以下步骤操作。

控制台

  1. 在 Google Cloud Console 中,转到 Cloud DNS 页面。

    转到 Cloud DNS

  2. 点击要为其启用 DNSSEC 的可用区名称。

  3. 可用区详情页面上,点击修改

  4. 修改 DNS 可用区页面上,点击 DNSSEC

  5. DNSSEC 下,选择开启

  6. 点击保存

您为可用区选择的 DNSSEC 状态显示在 Cloud DNS 页面的 DNSSEC 列中。

gcloud

运行以下命令:

gcloud dns managed-zones update EXAMPLE_ZONE \
    --dnssec-state on

EXAMPLE_ZONE 替换为可用区 ID。

Terraform

resource "google_dns_managed_zone" "example" {
  name        = "example-zone-name"
  dns_name    = "example.com."
  description = "Example Signed Zone"
  dnssec_config {
    state = "on"
  }
}

在创建可用区时启用 DNSSEC

如需在创建可用区时启用 DNSSEC,请按以下步骤操作。

控制台

  1. 在 Google Cloud Console 中,转到 Cloud DNS 页面。

    转到 Cloud DNS

  2. 点击创建区域

  3. 可用区名称字段中,输入名称。

  4. DNS 名称字段中,输入名称。

  5. DNSSEC 下,选择开启

  6. 可选:添加说明。

  7. 点击创建

    创建带有 DNSSEC 签名的可用区

gcloud

运行以下命令:

gcloud dns managed-zones create EXAMPLE_ZONE \
    --description "Signed Zone" \
    --dns-name myzone.example.com \
    --dnssec-state on

EXAMPLE_ZONE 替换为可用区 ID。

验证 DNSSEC 部署

如需验证启用了 DNSSEC 的可用区是否正确部署,请确保您已将正确的 DS 记录存放在父可用区中。如果出现以下任一情况,DNSSEC 解析可能会失败:

  • 配置有误,或者您输错了配置。
  • 您已将不正确的 DS 记录置于父可用区中。

如需验证是否正确配置了配置,以及先交叉检查 DS 记录,然后再放置在父可用区,请使用以下工具:

您可以使用 Verisign DNSSEC 调试程序和 Zonemaster 网站来验证您的 DNSSEC 配置,然后再向注册商更新 Cloud DNS 域名服务器或 DS 记录。为 DNSSEC 正确配置的网域是 example.com,可使用 DNSViz 查看。

针对带有 DNSSEC 签名的可用区推荐的 TTL 设置

TTL 是 DNSSEC 签名的可用区的存留时间(以秒为单位)。

与 TTL 过期时间不同,DNSSEC 签名的过期时间为固定的绝对时间,而 TTL 过期时间是一个相对时间(相对于域名服务器发送查询响应时间)。 如果配置的 TTL 超过签名生命周期,则可能会导致许多客户端在 DNSSEC 签名已过期时同时请求记录。如果 TTL 太短,这也会导致 DNSSEC 验证解析器出现问题。

如需详细了解 TTL 选择方面的建议,请参阅 RFC 6781 第 4.4.1 节时间注意事项RFC 6781 图 11

阅读 RFC 6781 第 4.4.1 节时,请考虑许多由 Cloud DNS 修复的签名时间参数,您无法更改这些参数。您无法更改以下参数(可能会发生更改,恕不另行通知,或者更新本文档):

  • 生效偏移量 = 1 天
  • 有效期 = 21 天
  • 重新签名周期 = 3 天
  • 刷新周期 = 18 天
  • 抖动间隔 = ½ 天(或 ±6 小时)
  • 最短签名有效期 = 刷新周期 - 抖动间隔 = 17.75 天 = 1533600

切勿将 TTL 设置为超过最短签名有效期。

为代管式可用区停用 DNSSEC

移除 DS 记录并等到这些记录在缓存中过期后,您可以使用以下 gcloud 命令来停用 DNSSEC:

gcloud dns managed-zones update EXAMPLE_ZONE \
    --dnssec-state off

EXAMPLE_ZONE 替换为可用区 ID。

后续步骤