公司有一套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缓存
阅读(6442) | 评论(0) | 转发(0) |