2

我想设置从 Google 云中的实例可见的 DNS 记录。

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

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

4

3 回答 3

0

假设您希望您的 VM 实例能够按名称查询其他实例,并检索所需实例的私有 IP,这已经包含在 GCP中。

Google Cloud Platform (GCP) 虚拟私有云 (VPC) 网络具有内部 DNS 服务,允许您使用实例名称而不是实例 IP 地址来引用 Compute Engine 虚拟机 (VM) 实例。

每个实例都有一个元数据服务器,该服务器还充当该实例的 DNS 解析器。对实例名称执行 DNS 查找。元数据服务器本身存储本地网络的所有 DNS 信息,并向 Google 的公共 DNS 服务器查询本地网络之外的任何地址。

[剪辑]

实例的内部完全限定域名 (FQDN) 如下所示:

hostName.c.[PROJECT_ID].internal

您始终可以使用此 FQDN 从一个实例连接到另一个实例。

否则,如果您想为一组机器提供完全任意的记录,您需要自己提供这些记录(可能使用Cloud DNS)。在这种情况下,您需要resolv.conf适当地重新配置这些实例上的文件(尽管您不能只更改您认为合适的文件)。请注意,您不能将查询限制在您自己的机器上,但正如David 还提到的,通过默默无闻的安全性根本不是安全性。

于 2017-11-20T15:06:21.623 回答
0

谷歌云 DNS 私有 DNS刚刚发布测试版,完全可以满足您的需求

于 2018-10-24T00:35:47.797 回答
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 来确保安全)

于 2017-10-31T05:39:34.513 回答