使用了dns缓存引起的一个问题

发布时间:2020-06-25编辑:脚本学堂
问题描述:公司有一套ERP系统,配置的IP地址是内网地址:192.168.10.200。无论从公司内还是公司外部访问统一使用域名:erp.xxx.com;

问题描述
公司有一套ERP系统,配置的IP地址是内网地址:192.168.10.200。
无论从公司内还是公司外部访问统一使用域名:erp.xxx.com;
外网访问该ERP时,在防火墙上通过地址映射的方式,将一个外网IP地址映射到内网地址192.168.10.200;
内网访问该ERP时,公司内部的DNS服务器将域名指向192.168.10.200;
 
运行一段时间后,发现DNS缓存带来了不少麻烦:
笔记本电脑在外网访问ERP系统后,该机器的DNS解析得到的是外网IP,并被缓存。当该电脑回到公司内网再次访问ERP系统时,由于DNS缓存的作用,仍然将访问ERP系统的外网IP,结果就不能正常访问。只有清空DNS缓存后,电脑才能向公司内部DNS服务器发出DNS解析请求到正确的IP地址(内网地址)。
 
解决方法
禁用电脑的DNS缓存,即:将“服务”中的“DNS client”服务禁用。
那么,禁用后,上网速度会有影响吗?
根据用sniffer抓包测试,禁用前后,解析域名得到IP地址的时间相差微乎其微,可以不用考虑。
唯一需要注意:如果内网是一个域的环境,那么还是慎重考虑是否要禁用DNS client服务,因为这将影响到和域相关的所有操作。
 
与DNS解析有关的命令
ipconfig/displaydns   -查看被缓存的域名解析
ipconfig/flushdns     -清空DNS缓存