将 Google Domains DNS 设置迁移到 Cloud DNS 或其他提供商

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

准备工作

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

控制台

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

    前往 Cloud Domains

    注册页面会列出您的注册。

  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
        

后续步骤