有不少公司的网络都部署了两个DNS服务器,其中一个作为冗余,当其中一个DNS服务器出现故障的时候,另一个DNS服务器可马上发挥作用,确保对依赖DNS的网络服务不因DNS服务器的故障而中止。但此时如果您的网络内使用了带有第三方DNS代理服务功能的路由器,例如爱快,需要注意一点,就是当路由器内设定的第三方DNS代理服务器出现故障的时候,需要马上在路由器上关闭第三方DNS代理模式,或者把第三方DNS服务器更改为另一个可用的DNS服务器IP地址,否则依赖DNS的服务会出现无法访问的情况。
原理如下:
例子:在内网中,有两个DNS服务器,主DNS服务器为192.168.1.1,辅助DNS服务器为192.168.1.2 。内网中有一个爱快路由器,作为出口路由。爱快路由器中启用了第三方DNS代理模式,IP地址指向192.168.1.1 。
某天,主DNS服务器192.168.1.1出现故障,此时,某客户端PC(本地连接的主DNS服务器设定为:192.168.1.1,辅助DNS服务器设定为192.168.1.2)需要访问https://www.cntse.com网站:
1、该PC操作系统会现在本地DNS缓存里面查找有没有“www.cntse.com”的DNS缓存记录,如果没有,则向本地连接里设定的DNS服务器发起解析请求;
2、由于主DNS服务器192.168.1.1不可用,则客户端PC向辅助DNS服务器192.168.1.2发出“www.cntse.com”的解析请求;
3、辅助DNS服务器192.168.1.2自己查询一下本服务器的缓存,发现自己也没有这个域名的缓存,于是便向服务器设定的上级DNS服务器发出请求,而上级DNS服务器在外网,请求需要经过爱快路由器;
4、由于爱快路由器开启了第三方DNS代理模式功能,并且把第三方DNS服务器指向了内网的192.168.1.1(即出现故障的主DNS服务器),路由器会把192.168.1.2发出的DNS解析请求劫持,把请求转向设定的192.168.1.1,但由于192.168.1.1这个DNS服务器出现故障,因此无法返回有用的DNS解析结果,域名解析失败;
5、如果在路由器中把第三方DNS服务器更改为192.168.1.2,在192.168.1.2向上级发出DNS解析请求的时候,路由器会判断出是192.168.1.2发出的DNS解析请求,于是便允许该服务器向外发出解析请求,接收到解析结果之后,返回192.168.1.2,由192.168.1.2告诉客户端PC最终的解析结果。