谷歌云是否有内部DNS服务?

4

GCP是否支持内部DNS服务?我不需要我的区域公开,但我希望我的gce实例使用它来解析内部服务。


GCP提供了内部DNS服务。您可以在私有网络中设置专用的DNS服务器,以便您的GCE实例可以使用它来解析内部服务。这样,您不必将您的区域公开,同时也可以确保内部服务的可靠性和安全性。
3个回答

6
我不是很清楚您的要求,但如果您只想让一个项目VPC中的两个VM实例相互通信,则可以使用内部DNS,而不是使用内部IP地址,因为当VM实例重新创建时,IP地址可能会更改。
GCP提供内部DNS,可供同一VPC中的两个VM实例用于通信。
请注意,位于两个不同VPC中的VM实例无法使用此方法相互通信(除非配置VPN或其他机制以连接VPC)。
有两种访问/配置内部DNS的方式:
  • 全局DNS
  • Zonal 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,则可以使用区域完全限定域名从一个实例ping另一个实例。
ping example-instance.us-west1-c.c.example-project.internal -c 1

1
全局 DNS 不再是默认选项:“分区 DNS:适用于所有在 2018 年 9 月 6 日之后启用 Compute Engine API 的组织或独立项目的默认选项。” - Henrik

5

这不是OP所谈论的内容。 - Henrik
@Henrik,原帖中提到的是访问他们的服务(而不是实例),并将其区域保持为私有而非公共。原帖作者还回复了另一个答案评论,询问内部/私有DNS与AWS的比较情况。如果您认为自己更懂,请随意添加您自己的答案。 - Mani Gandham
我认为我知道得更好,这是Prashant写的。但你说得对,这只是一种替代方案;因此没有踩票:) - Henrik

1
根据此VPC文档,看起来您需要设置自己的DNS服务器。

DNS服务器 每个实例的元数据服务器充当DNS服务器。它在本地VPC网络中存储所有VPC网络IP地址的DNS条目,并调用Google的公共DNS服务器以获取VPC网络外的条目。您无法配置此DNS服务器,但如果愿意,可以设置自己的DNS服务器并通过编辑/etc/resolv.conf文件配置您的实例使用该服务器。

编辑: 正如最近的答案所指出的那样,Cloud DNS现在支持私有区域


1
AWS在Route 53上支持内部DNS。请参考https://aws.amazon.com/about-aws/whats-new/2014/11/05/amazon-route-53-now-supports-private-dns-with-amazon-vpc/。 - Dan Kowalczyk
我只是为了完整性而添加了那个注释,这样其他人会发现这个问题更有用。很高兴你已经知道了。 - Dan Kowalczyk
1
谷歌刚刚宣布支持私有DNS:https://cloud.google.com/blog/products/networking/introducing-private-dns-zones-resolve-to-keep-internal-networks-concealed - Robert
这个回复是错误的;CloudDNS不提供内部DNS服务,所以“假设”一开始就是错的,这就是答案。此外,您不需要自己的DNS服务器,有一个元数据服务器作为GCP计算实例的内部DNS服务器(就像您的引用所说的那样,但这是在三个误导性段落之后才提到的)。请参阅https://cloud.google.com/compute/docs/internal-dns了解详细信息。还可以查看“内部gcp l4负载均衡器”,以及它们的前端如何向您的GCP“独立项目”添加DNS条目。 - Henrik
它仍然只是半正确的;你不需要设置自己的DNS服务器,你可以使用元数据服务器作为DNS,它会解决内部计算实例名称。请参见下一个答案https://dev59.com/2Kjja4cB1Zd3GeqP_4TD#49891825 - Henrik
@Henrik,请注意,这个问题的所有者选择了我的回答作为被接受的答案。感谢您指出下一个答案似乎是今天最好的答案,但请知道,我的答案在当时已经足够了。 - Dan Kowalczyk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接