我打算标准化主机命名约定,并希望build立一个“内部”networking,以便在不同服务器之间轻松通信。 我们从多个不同的专用服务器提供商购买服务器,这些提供商没有物理连接到同一本地networking 目前在configurationnetworking服务器时,我们使用每台机器的IP地址。 我希望用“db1-fr.internalnet”这样的主机名代替它,以简化事情并使事情变得容易理解。 在每台机器上处理名称parsing的最佳方法是什么? 我目前正在计划在每个服务器的hosts文件中添加条目,但是维护性方面,这在规模上似乎很低。 我想尽量避免托pipe一个完整的DNS服务器只是为了内部networking查找,但如果这是推荐的方式,它当然是一个选项。 那么我的下一个问题就是,在哪里configuration这个DNS服务器呢? 如果我更换服务器范围的DNS服务器,事情就会开始中断。 是否有一个本地查找某个configuration文件?
如果您高兴使用生产域,那么您可以在您的内部networking上运行DNSMasq,并让所有的服务器使用它作为cachingparsing器
这有两个好处
从dnsmasq示例configuration中,给出关于点2的更多信息:
# If you want to fix up DNS results from upstream servers, use the # alias option. This only works for IPv4. # This alias makes a result of 1.2.3.4 appear as 5.6.7.8 #alias=1.2.3.4,5.6.7.8 # and this maps 1.2.3.x to 5.6.7.x #alias=1.2.3.0,5.6.7.0,255.255.255.0 # and this maps 192.168.0.10->192.168.0.40 to 10.0.0.10->10.0.0.40 #alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
基本上这意味着,如果你曾经在DNS中查询一个通常在DNS中返回IP 1.2.3.4的地址,它将会重写它,以返回5.6.7.8
把你的外部IPreplace成内部的IP映射,然后你就可以获胜了
如果要使用“仅内部区域”,则可以使用DNSmasq和dnsmasq服务器上的hosts文件来定义内部DNSlogging,dnsmasq使用您的hosts文件及其configuration的外部parsing程序将DNS结果返回给它客户端(默认情况下主机文件优先),就像在每个文件夹中将logging添加到主机文件一样,但只需要在一个位置执行
只要记住当你修改那台机器上的主机文件的时候重新加载/重新启动dnsmasq