GCP 是否支持内部 DNS 服务?我不需要公开我的区域,但我希望我的 gce 实例使用它来解析内部服务。
3 回答
我对您的要求不是很清楚,但是如果您只希望项目 VPC 中的两个 vm 实例相互通信,那么您可以使用内部 dns,而不是使用重新创建 vm 实例时可能会更改的内部 IP 地址。
GCP 提供内部 dns,同一 VPC 中的两个 VM 实例可以使用这些 dns 进行通信。
注意,两个不同VPC中的vm实例不能使用这种方法跨VPC进行通信(除非配置了VPN或其他机制连接VPC)
有两种方法可以访问/配置内部 DNS
- 全球 DNS
- 区域 DNS(2018 年 9 月 6 日之后启用 Compute Engine API 的所有组织或独立项目的默认设置。)
实例的内部完全限定域名 (FQDN) 具有以下格式:
Instances using the default global DNS : [HOST_NAME] .c.[PROJECT_ID].internal
Instances enabled for Zonal DNS : [HOST_NAME].[ZONE].c.[PROJECT_ID].internal
您可以使用此 FQDN 通过内部 VPC 网络寻址实例。
例如,如果您的实例启用了区域 DNS,您可以使用区域完全限定域名通过内部 VPC 网络从一个实例 ping 到另一个实例:
ping example-instance.us-west1-c.c.example-project.internal -c 1
是的,截至 2018 年 10 月,Google Cloud DNS 现在支持私有 DNS 区域。
您可以创建域和 DNS 条目(指向任何实例、负载均衡器、服务),这些条目只能在您允许的 VPC 网络内部可见,而不能通过 Internet 使用。
根据此 VPC 文档,您需要设置自己的 DNS 服务器。
DNS 服务器每个实例的元数据服务器都充当 DNS 服务器。它将所有 VPC 网络 IP 地址的 DNS 条目存储在本地 VPC 网络中,并调用 Google 的公共 DNS 服务器以获取 VPC 网络之外的条目。您无法配置此 DNS 服务器,但您可以根据需要设置您自己的 DNS 服务器,并通过编辑 /etc/resolv.conf 文件将您的实例配置为使用该服务器。
编辑:正如最近的答案所指出的,Cloud DNS 现在支持 private zone。