管理 DNSSEC 配置

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

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

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

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

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud DNS 页面。

    转到 Cloud DNS

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

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

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

  5. 在 DNSSEC 下,选择开启。

  6. 点击保存。

您为可用区选择的 DNSSEC 状态显示在 DNSSEC 页面的 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 控制台中,前往 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。

后续步骤