当DNS服务器收到DNS客户端的查询请求后,若要查询的记录不在其所管辖的区域内,而且在缓存区内也查不到,那这时DNS服务器有两种方法可以帮客户端将域名解析出来。
首先第一种方法也是DNS服务器的默认选择,是向那13台根服务器求助,从而展开迭代查询。下面我们做一个测试,首先保证我们的DNS服务器已经接入Internet,然后在客户端上执行ping
www.baidu.com之类的命令进行测试,发现DNS服务器可以将这些公网上的域名解析出来。我们再回到DNS服务器,打开属性设置界面,找到根提示,将那13台根服务器全部删除(最好先将虚拟机做好快照),然后分别在DNS服务器和客户端执行ipconfig /flushdns命令清空缓存。此时在客户端再次执行ping
www.baidu.com命令,就会发现DNS服务器无法解析这些公网上的域名了。
让DNS服务器能够解析其它域名的第二种方法就是设置转发器,转发器的原理很简单,就是将所有不归自己管的解析任务都转发给其它的DNS服务器,由其代为完成,而自己只负责自己所在区域的查询任务。这些转发到的目的DNS服务器一般都是公网上由ISP提供的DNS服务器。
下面我们就来配置一个转发器,在【DNS管理器】中的服务器上单击右键,选择属性,打开服务器属性设置界面,选择“转发器”选项卡。单击“编辑”按钮,弹出“编辑转发器”对话框,在其中可以键入要转发到的DNS服务器的IP地址。
转发器可以设置多个,此时DNS服务器将优先使用最上面的转发器,如果其无法完成解析任务,再依次将解析请求转发给下面的DNS服务器。
转发器设置完成后,在客户端再次测试,发现现在又可以解析出公网上的域名了。
对于我们在内网中架设的DNS服务器,到底是选择根提示还是转发器能更好一些呢?个人认为转发器要更好一些,如果DNS服务器每次对那些解析不出来的域名都以迭代查询的方式从根服务器开始逐级查询,那势必会影响解析效率,而通过转发器则可以省事的多。
本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1159400