星期三, 十一月 07, 2007

dig DNS 迭代查询以及双线 view 问题

默认情况下,DNS 都会使用递归查询。通过迭代查询,可以获得查询的路径,即对域名是如何被解析的得到一个直观印象。可以通过运行
sh$ dig +trace www.example.com (@server)
来进行查询。

我在 "变态"DNS中曾经讨论过为双线设置 DNS 的方法。但最近发现老是会被解析到网通的服务器,即使是电信的 DNS 服务器,也会得到网通的结果。用 dig +trace 也看不出所以然来。

后来发现网通的 slave DNS 的两个域文件(电信 .zone 和 网通 .cnc_zone)的内容完全一样。原来从服务器同步的时候,因为地址是网通的,所以主服务器只会返回网通的结果。这样看来,从主服务器之间也是通过 53 端口传递数据并且也受 acl view 规则的影响。

要解决这个问题,复杂一点的办法是从服务器绑定两个 IP 地址,主服务器的两个 view 设置不同的 allow-transfer {},从服务器的两个 view 设置两个 transfer-source $ipaddr,可参考:
http://www.chinalinuxpub.com/read.php?wid=1452

简单点的办法就是把两个都设置成主的 DNS 并手工同步。

没有评论: