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

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

准备工作

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

控制台

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

    前往 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 已启用,请停用 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
        

后续步骤