Java AppEngine 系统中的内部 DNS 解析

Java AppEngine 系统中的内部 DNS 解析

与许多组织一样,我们拥有大量内部基础设施,这些基础设施都映射到内部 DNS 名称 (int.organization.com)。此 DNS 命名空间采用拆分 DNS 配置,其中防火墙内的设备可以使用我们的 DNS 服务器来解析内部名称,而外部系统无法解析这些名称。

随着我们的团队扩展到使用 AppEngine,我们在寻找一种模式时遇到了问题,在该模式中我们可以继续利用内部/受保护的 DNS 条目(config.int.organization.com),而不是无意中将我们的基础架构暴露给公共 DNS。

通常在云实例 (VM) 上,我们只需覆盖 /etc/resolv.conf 即可使用我们的内部 DNS 服务器(通过 VPN)。这很有效。

对于 AppEngine(托管 VM)和容器引擎,我们似乎没有可以覆盖 resolv.conf 的工具(它以只读方式从 docker 主机映射)。我们简要研究了使用 Java 覆盖 DNS 服务器,但无法证明该功能。

使用内部/私有 DNS 服务器是否不是一种与 AppEngine/ContainerEngine 兼容的模式?人们正在实施哪些模式来保护其基础设施/命名?

答案1

Java 专用 DNS

您还可以使用以下命令在您的应用程序中专门覆盖 DNS 服务器:

sun.net.spi.nameservice.nameservers=<server1_ipaddr,server2_ipaddr ...>

http://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html

答案2

您可以在Dockerfile灵活的环境(曾经是“托管虚拟机”)实例来编辑系统文件,例如 /etc/resolv.conf。

相关内容