我正在研究一个简单的水平分割DNS实现。 在几个位置使用GoDaddy为我的Internet DNS和Microtik路由器的LAN DNS。
在我的办公室,我有一台服务器,在互联网上是hq.company.com ,但在我的办公室networking上,我一直使用Microtik上的一个DNS条目,名称为hq.internal.company.com 。
我最天真的想法是在Microtik路由器上input与 GoDaddy条目hq.company.com 相同的名称 。
但是,如果做了这些,我可以看到它没有按照我所希望的那样工作。 使用host命令时,这两个地址都是按随机顺序进入的。 我也尝试清除我的笔记本电脑(OSX)本地DNScaching。
$ host hq.company.com hq.company.com has address 192.168.88.177 hq.company.com has address 150.243.157.82 $ host hq.company.com hq.company.com has address 150.243.157.82 hq.company.com has address 192.168.88.177 $ host hq.company.com hq.company.com has address 192.168.88.177 hq.company.com has address 150.243.157.82
我希望的行为是,当我在办公室时,本地DNS 只提供hq.company.com的本地地址,而当我不在办公室时,GoDaddy DNS提供公共IP。
你如何在内部机器上静态或通过DHCP设置DNS服务器?
您需要确保内部机器仅查看microtik,以查看所有DNS查询。 microtik然后必须转发对它不知道的主机和/或域的查询。
我之前没有使用microtik,但在pfSense中,他们使用dnsmasq。 Dnsmasq允许您覆盖单个主机或整个域,同时将其他所有内容转发到其他名称服务器。
你同时得到这两个结果的事实告诉我,内部机器被设置为同时查看microtik和外部DNS提供者,但是这不起作用。 确保他们只看到microtik。
如果这不起作用或者我误解了,请告诉我们更多关于内部客户端的configuration。
我今天检查了这一点,发现hq.company.com只解决从我的本地网站的本地地址…
实现了我发布的问题,原来是因为本地路由器的DNScaching仍然有来自Internetcaching的价值。
清除路由器的DNScaching后,水平分割DNS将立即生效。