迁移 Google Domains DNS 设置

本页面介绍了在将 Google Domains 用作 DNS 提供商的情况下,如何迁移 Google Domains DNS 设置以及导出网域和电子邮件转发配置。

准备工作

检查 Google Domains 是否是您的 DNS 提供商,以及您的网域是否使用网域或电子邮件转发配置。

控制台

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

    前往 Cloud Domains

    Registrations 页面列出了您的注册。

  2. 点击您要获取信息的域名。

    您可以检查特定网域是使用 Google Domains 作为其 DNS 提供商,还是使用网域或电子邮件转发配置。

gcloud

如需查看特定网域的注册详细信息,请使用 gcloud domains registrations describe 命令

gcloud domains registrations describe DOMAIN_NAME

DOMAIN_NAME 替换为要查看详细信息的网域的名称,例如 example.app

如果您的网域使用 Google Domains 作为 DNS 提供商,则输出的 dnsSettings 部分类似于以下示例:

dnsSettings:
    googleDomainsDns:

如果您的网域使用网域或电子邮件转发配置,则输出的 dnsSettings 部分类似于以下示例:

dnsSettings:
    ...
    googleDomainsRedirectsDataAvailable: true

将 Google Domains DNS 设置迁移到 Cloud DNS

如需迁移 Google Domains DNS 设置,请按以下步骤操作。

gcloud

  1. 为您的网域创建公开的托管式区域。

    使用 dns managed-zones create 命令

    gcloud dns managed-zones create ZONE_NAME \
        --description=DESCRIPTION \
        --dns-name=DOMAIN_NAME \
        --visibility=public \
        [--labels=LABELS] \
        [--dnssec-state=DNSSEC_STATE]
    

    请替换以下内容:

    • ZONE_NAME:您的可用区的名称
    • DESCRIPTION:您的可用区的说明
    • DOMAIN_NAME:您的区域的域名,例如 example.com。要为域名使用 DNS 区域,您必须确保该区域中的 DNS 后缀与域名匹配。请注意,example.comexample.com. 被视为等效项。
    • LABELS:以英文逗号分隔的键值对列表,例如 dept=marketingproject=project1。此标志是可选的。 如需了解详情,请参阅 SDK 文档
    • DNSSEC_STATE:您的地区的 DNSSEC 状态。如需了解详情,请参阅 DNS 安全扩展 (DNSSEC) 概览。此标志不是必需的。
  2. 为您的网域停用 DNSSEC。

    如果启用了 DNSSEC,请将其停用并等待 24 小时以使更改生效。

    使用 gcloud domains registrations configure dns 命令

    gcloud domains registrations configure dns DOMAIN_NAME \
        --disable-dnssec
    

    DOMAIN_NAME 替换为要为其停用 DNSSEC 的网域的名称

  3. 从您的 Google Domains DNS 区域检索 DNS 记录信息。

    使用 gcloud domains registrations google-domains-dns export-dns-record-sets 命令

    gcloud domains registrations google-domains-dns export-dns-record-sets DOMAIN_NAME \
        --records-file=RECORDS_FILE \
        --zone-file-format
    

    请替换以下内容:

    • DOMAIN_NAME:您要检索其 DNS 记录信息的网域的名称
    • RECORDS_FILE:记录集必须导出到的文件,例如 records.zonefile
  4. 将记录导入到 Cloud DNS 区域。

    使用 dns record-sets import 命令--zone-file-format 标志将 import 命令设置为需要 BIND 区域文件。如果省略此标志,则 import 会获取 YAML 文件:

    gcloud dns record-sets import RECORDS_FILE \
        --zone=ZONE_NAME \
        --zone-file-format \
        --delete-all-existing
    

    请替换以下内容:

    • RECORDS_FILE:必须从其中导入记录集的文件,例如 records.zonefile
    • ZONE_NAME:您要管理其记录集的托管式区域的名称
  5. 开始使用迁移后的 Cloud DNS 区域。

    使用 gcloud domains registrations configure dns 命令:

    gcloud domains registrations configure dns DOMAIN_NAME \
        --cloud-dns-zone=ZONE_NAME
    

    请替换以下内容:

    • DOMAIN_NAME:已注册网域的名称,例如 example.app
    • ZONE_NAME:您要管理其记录集的托管式区域的名称
  6. 监控您的网域。如果您遇到任何 DNS 配置问题,请回滚迁移。

    使用 gcloud domains registrations configure dns 命令:

    gcloud domains registrations configure dns DOMAIN_NAME --use-google-domains-dns
    

    DOMAIN_NAME 替换为已注册网域的名称,例如 example.app

  7. 可选:为您的网域启用 DNSSEC。

    1. 完成第 5 步后,等待至少 24 小时。
    2. 使用 gcloud domains registrations configure dns 命令:
    gcloud domains registrations configure dns DOMAIN_NAME \
      --cloud-dns-zone=ZONE_NAME \
      --no-disable-dnssec
    

    请替换以下内容:

    • DOMAIN_NAME:已注册网域的名称,例如 example.app
    • ZONE_NAME:要停用 DNSSEC 的代管式区域名称

导出域名和电子邮件转发配置

如需将您的网域和电子邮件转发配置导出到其他托管服务提供商,请按以下步骤操作。

gcloud

  1. 为您的网域停用 DNSSEC。

    如果启用了 DNSSEC,则必须将其停用并等待 24 小时以使更改生效。

    使用 gcloud domains registrations configure dns 命令

    gcloud domains registrations configure dns DOMAIN_NAME \
        --disable-dnssec
    

    请替换以下内容:

    • DOMAIN_NAME:要停用 DNSSEC 的网域的名称
  2. 导出您的 Google Domains DNS 配置。

    使用 gcloud domains registrations google-domains-dns export-dns-record-sets 命令

    gcloud domains registrations google-domains-dns export-dns-record-sets DOMAIN_NAME \
        --records-file=RECORDS_FILE \
        --zone-file-format
    

    请替换以下内容:

    • DOMAIN_NAME:您要检索其 DNS 记录信息的网域的名称
    • RECORDS_FILE:记录集必须导出到的文件,例如 records.zonefile
  3. 检索您的 Google Domains 域名和电子邮件转发配置。

    使用 gcloud domains registrations google-domains-dns get-forwarding-config 命令

    gcloud domains registrations google-domains-dns get-forwarding-config DOMAIN_NAME
    

    DOMAIN_NAME 替换为已注册网域的名称,例如 example.app

  4. 将 DNS 记录和转发配置导入新的托管服务提供商。如需了解相关说明,请与您的托管服务提供商联系。

  5. 为新的托管服务提供商配置域名和转发设置。如需了解相关说明,请与您的托管服务提供商联系。

    如果您有 MXCNAME 记录,请务必将这些记录配置为将服务重定向到新的托管服务提供商。

  6. 更新您网域的域名服务器。您可以从新的托管服务提供商处获取域名服务器信息。

    使用 gcloud domains registrations configure dns 命令:

    gcloud domains registrations configure dns DOMAIN_NAME \
        --name-servers=NAME_SERVERS_LIST
    

    NAME_SERVERS_LIST 替换为网域的 DNS 域名服务器列表。

  7. 监控您的网域。如果您遇到任何 DNS 配置问题,请回滚迁移。

    使用 gcloud domains registrations configure dns 命令:

    gcloud domains registrations configure dns DOMAIN_NAME --use-google-domains-dns
    
  8. 可选:在托管服务提供商处为您的 DNS 区域启用 DNSSEC。

    1. 为 DNS 区域启用 DNSSEC 后,请等待 24 小时。
    2. 为您的网域启用 DNSSEC。

      使用 gcloud domains registrations configure dns 命令:

      gcloud domains registrations configure dns DOMAIN_NAME \
          --dns-settings-from-file=DNS_SETTINGS_FILE_NAME
      

      请替换以下内容:

      • DOMAIN_NAME:已注册网域的名称,例如 example.app
      • DNS_SETTINGS_FILE_NAME:包含所需 DNS 设置的 YAML 文件。如果指定,其内容会替换注册资源中使用的值。如果 YAML 文件缺少某些 dns_settings 字段,则这些字段会被移除。

        文件内容示例:

        customDns:
            nameServers:
            - new.ns1.com
            - new.ns2.com
            dsRecords:
            - keyTag: 24
              algorithm: RSASHA256
              digestType: SHA256
              digest: ab1cfa82b035c26cbbbdae632cea070514eb8b773f616aaeaf668e2f0be8f10d