正如许多组织所做的那样,我们在映射在内部DNS名称(int.organization.com)后面的内部基础架构占用空间很大。 此DNS命名空间是在拆分DNSconfiguration中configuration的,其中,防火墙内的设备可以使用我们的DNS服务器来parsing内部名称,而外部系统无法解决这些问题。
随着我们的团队扩展到使用AppEngine,我们在find一种可以继续利用内部/受保护的DNS条目(config.int.organization.com)而不是无意中将我们的基础设施公开给公有DNS的模式方面存在问题。
通常在云实例(VM)上,我们简单地覆盖/etc/resolv.conf以使用我们的内部DNS服务器(通过VPN)。 这很好。
对于AppEngine(托pipe虚拟机)和容器引擎,我们似乎没有工具来覆盖resolv.conf(它从Docker主机以只读方式映射)。 我们简单地看了一下Java中重写的DNS服务器,并且无法certificate这个function。
是否使用内部/私有DNS服务器而不是与AppEngine / ContainerEngine兼容的模式? 人们采用什么样的模式来保护他们的基础设施/命名?
Java特定的DNS
您也可以使用以下命令专门覆盖您的应用程序中的DNS服务器:
sun.net.spi.nameservice.nameservers=<server1_ipaddr,server2_ipaddr ...>
根据http://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html
您可以在灵活环境的Dockerfile (一次“托pipeVM”)实例中使用指令来编辑系统文件,例如/etc/resolv.conf。