在Google云上设置内部可见的DNS条目

时间:2017-08-31 07:40:43

标签: dns google-cloud-platform google-cloud-dns google-compute-engine

我希望从Google云中的实例中设置DNS记录。

例如,如果我从我的PC查询DNS,我将获得一个IP;但是,如果我从实例查询DNS,我将获得另一个IP。 (准确的记录)

理想情况下,我希望以最合理/最方便的方式做到这一点;因为我可以在每个实例上安装缓存DNS服务器并设置授权结果;并为其余的转发缓存(我猜bind9可以做到这一点,从来没有尝试过)。但这是配置同步混乱;而且它不优雅。我有点假设可能存在更好的方式。

3 个答案:

答案 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 mentionedsecurity through obscurity根本不是安全性。