某日移动工作人员来单位排除网络故障,偶然发现的一点疑惑,就是本地电脑ip的DNS服务器设置成移动提供的地址或是本地路由的地址,都可以正常解析访问网站,莫非路由器也能通过DNS服务?
感觉很是奇怪,在网上搜索很久发现以下资料,或许是这么解释:
一般来说宽带路由器都有DNS代理功能,所谓代理,就是它本身并没有DNS解析功能,但是它能够帮你完成解析任务。
首先,宽带路由器是一种NAT的原理,分为LAN、WAN口,就有2个IP,LAN提供局域网网关IP,WAN口提供来连接Internet,当路由器拨 上号后,会从电信或者网通、铁通上获取2个DNS,这个和本机自己设置的IP没有什么关系,这个DNS基本上都是电信电信或者网通、铁通认为能够正常解析 的DNS IP。
那现在来讲讲当使用宽带路由器的PC设置DNS IP为LAN IP的时候,DNS的工作原理:DNS请求包--->LAN IP--->正真的DNS IP(WAN口得到的主DNS IP)
而当PC设置为当地的公网DNS IP的时候,DNS的工作原理:DNS请求包--->正真的DNS IP(PC上设置的主DNS IP)
从以上可以看出区别:使用代理的时候,要多出一个步骤,DNS请求数据包先被发送到了宽带路由上,再有路由器将请求包发到目的DNS IP(这里有封包和解包的过程);而不使用代理的时候,DNS数据包被直接发送到目的DNS IP进行解析。就是因为在封包解包的时候宽带路由器的代理原理实现工作不是很稳定(BUG),才会造成有时能够解析有时候不能解析(当然这个要排除目的 DNS服务器本身工作正常的情况下)。
如果确是如此的话,各位网管们最好还是别偷懒,配置地址池时也加上外网的DNS,减少路由负担也提高网络稳定性。