我希望从Google云中的实例中设置DNS记录。
例如,如果我从我的PC查询DNS,我将获得一个IP;但是,如果我从实例查询DNS,我将获得另一个IP。 (准确的记录)
理想情况下,我希望以最合理/最方便的方式做到这一点;因为我可以在每个实例上安装缓存DNS服务器并设置授权结果;并为其余的转发缓存(我猜bind9可以做到这一点,从来没有尝试过)。但这是配置同步混乱;而且它不优雅。我有点假设可能存在更好的方式。
答案 0 :(得分:0)
一种解决方案是为不同的机器组使用完全不同的区域,并使用DNS搜索路径进行选择。
例如,您可以设置
server1.internal.yourdomain.com IN A 1.2.3.4
server1.external.yourdomain.com IN A 5.6.7.8
然后使用包含
的resolv.conf设置您的计算机search internal.yourdomain.com
或
search external.yourdomain.com
然后当您在这样的计算机上查找server1
时,它将从适当的区域返回地址。此方案意味着您不需要依赖复杂的路由或IP检测。您将免于内部或外部IP泄漏到彼此结果中的事件。
当然,这确实意味着您不会保密任何IP地址,因此请确保您有其他安全层(无论如何您可能不应该依赖秘密IP)
答案 1 :(得分:0)
Google Cloud DNS Private DNS刚刚发布Beta版,并且完全满足您的需求
答案 2 :(得分:-1)
假设您希望VM实例能够按名称查询其他实例,并检索所需实例的私有IP,则为already baked into GCP。
Google云端平台(GCP)虚拟私有云(VPC)网络具有内部DNS服务,允许您使用实例名称而不是实例IP地址来引用计算引擎虚拟机(VM)实例。
每个实例都有一个元数据服务器,它也充当该实例的DNS解析器。对实例名称执行DNS查找。元数据服务器本身存储本地网络的所有DNS信息,并查询Google的公共DNS服务器以查找本地网络之外的任何地址。
[剪断]
实例的内部完全限定域名(FQDN)如下所示:
hostName.c.[PROJECT_ID].internal
您始终可以使用此FQDN从一个实例连接到另一个实例。
否则,如果您想要将完全任意记录提供给一组计算机,您需要自己提供这些记录(可能使用Cloud DNS)。在这种情况下,您需要适当地重新配置这些实例上的resolv.conf
文件(尽管you can’t just change the file as you see fit)。请注意,您不能仅将查询限制在自己的计算机上,但是David also mentioned,security through obscurity根本不是安全性。