使用外部 DNS

概览

Google Cloud VPC 网络具有内部 DNS 服务,且不自动支持为虚拟机配置外部 DNS。但是,企业可能更愿意直接管理自己的 DNS 服务器,因而需要在迁移后的虚拟机上配置外部 DNS。

Migrate for Compute Engine 提供了一种用于设置和控制迁移后虚拟机的外部 DNS 设置的方法。为此,需要使用 Google Cloud 项目元数据配置 Google Cloud 项目中的 DNS 设置。这些设置会在虚拟机迁移后应用于新的虚拟机。

另外,Google Cloud 还在 Cloud DNS 中提供了一个单独的 DNS 转发解决方案。Cloud DNS 使用虚拟私有云中的所有资源,并提供本地和 Google Cloud 上的名称的 DNS 解析。

DNS 设置的应用方式

DNS 设置的应用方式如下所示:

  • 对于 Windows 客户端,键值对按以下方式应用于所有 NIC:
    • dns-domain-name:替换每个 NIC 的 DNS suffix for this connection 设置。
    • dns-servers:替换每个 NIC 的 DNS 服务器列表。
    • dns-domain-suffixes:替换每个 NIC 的 DNS 后缀列表。
  • 对于 Linux 客户端,键值对按以下方式应用于所有 NIC:
    • dns-servers:在 resolv.conf 文件中前置 DNS 服务器列表。
    • dns-domain-suffixes:在 resolv.conf 文件中前置 DNS 后缀列表。

配置虚拟机以连接到元数据服务器

Google Cloud 会向 Compute Engine 上托管的虚拟机提供元数据。如需在不转发到 Cloud DNS 的情况下使用外部 DNS,您需要手动为虚拟机配置名称解析。

为此,需要将以下行添加到 /etc/hosts 文件(在 Linux 上)或 c:\Windows\System32\Drivers\etc\hosts(在 Windows 上)。

169.254.169.254 metadata.google.internal

在 GCP 中的虚拟机上配置外部 DNS 数据

要在迁移后的虚拟机上启用外部 DNS,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到您项目的“元数据”页面
  2. 元数据下,点击修改
    启用外部 DNS 的屏幕截图(点击放大)
    启用外部 DNS(点击放大)
  3. 元数据页中,添加相应的键值对。如需获取这些部署的说明,请参阅以下部分之一:

使用无区域设置的虚拟机(默认)

  1. 如果您的虚拟机没有特定区域设置,请在元数据页中添加以下键值对:

    示例值
    {region_name}_dns-domain-name : mydomain.com
    {region_name}_dns-servers : {comma separated list of IPs}
    {region_name}_dns-domain-suffixes mydomain.com, myseconddomain.com
  2. 完成之后,点击保存

使用具有区域设置的虚拟机

  1. 如果您的虚拟机具有特定区域设置,请在元数据页中添加以下键值对:

    说明 示例值
    Windows 客户端 {region_name}_dns-domain-name : mydomain.com
    DNS 服务器列表 {region_name}_dns-servers : {comma separated list of IPs}
    表示要添加到 Windows 和 Linux 机器的 DNS 后缀列表。 {region_name}_dns-domain-suffixes mydomain.com, myseconddomain.com
  2. 完成之后,点击保存