不知道从什么时候开始,公司内部的qq群文件夹就无法正常浏览了。其实也不是所有人,有部分人时可以浏览的,部分人不行。奶奶的!现象如下:
由于是公司群,很多表单都上传到文件夹中的,比如报销单,请假单,通讯录等等。自从不能查看文件夹列表后,找表单是个麻烦事情。
为解决这个事情,前前后后不知道搞过多少次了。每次都无功而返。很伤人的。最近处理了项目中的大头事情。今天稍微轻松一点。就决定把这个问题搞定。不搞定誓不罢休!!!
由于公司在Internet网络边界上使用了一个深信服上网行为设备,用于控制内部用户上网行为,比如哪些网站不能访问,特别是游戏,股票,视频类网站;还比如下载工具,迅雷等。软件更新,比如360,qq,微软等等。每天耗费的流量很大。自从上了这个设备,网络流量控制明显比较轻松了。
在上面配置了一些策略。由于对这个设备不是很熟悉,不知道是不是这个设备引起qq群文件夹无法浏览。所以,解决步骤如下:
步骤一:禁用深信服设备上的所有策略,并开启直通模式。
结果:QQ群文件夹还是无法浏览。
由于客户端到深信服之间要经过好多个网络设备,所以我把笔记本直接连接到深信服设备的后面进行测试,发现qq群文件夹可以浏览。好高兴!说明不是深信服设备的问题。由此可以分析出,应该可能是网络设备上做了ACL。立马查看配置文件。结果很令人失望,没有什么策略进行过滤。后来想想,有部分人可以浏览,部分人不能。说明不是网络设备的问题。
无意中我想到,当我把DNS设置为当地电信局的DNS服务器IP(61.177.7.7)地址后,就可以浏览文件夹,改为内部DNS 服务器IP地址后就无法浏览。我让其他同事也试试,果然如此,只要使用外网DNS就正常,而使用内部的DNS就不行。总算找到原因了。
步骤二:查找DNS的问题。
查看DNS服务器配置,发现已经启用了转发器,并且就是转发到外网DNS 服务器IP(61.177.7.7)地址的。配置正确啊。怎么会呢?
好吧,还是使用老方法:抓包。
首先把DNS设置为内网DNS服务器后抓包,并过滤得到DNS协议数据包:
我发现,客户端首先向DNS服务器发起查询www.pan.qun.qq.com.just.com。just.com是我们内部的域名。跳过该查询。看到第四条记录,是查询www.pan.qun.qq.com的,是A记录。内容如下:
可以看到,客户端向DNS服务器发起请求,查询A记录www.pan.qun.qq.com.看看服务器给我什么信息:
可以看到,权威DNS服务器给出的答复中,并没有告诉客户端查询的www.pan.qun.qq.com所对应的记录。而是说了一些无用的东西。比如告诉你qun.qq.com是SOA.生命周期等等。但就是没有客户端所关心的www.pan.qun.qq.com所对应的记录。继续看。客户端继续向DNS发起查询:
这次客户端发起查询www.pan.qun.qq.com的类型时AAAA.但DNS服务器的回复是什么呢?
服务器回复是一样的,还是没有告诉客户端www.pan.qun.qq.com对应的IP地址。知道原因了吧?客户端没有获取到想要服务器的IP地址,当然无法浏览文件夹了。
那我们看看如果把DNS设置为外部的IP地址,会如何呢?看看过滤后的结果:
太简洁了。没有那么多个回合了。看第一个查询请求:
客户端发起的查询内容变成pan.qun.qq.com,并且是A记录。不是上面的www.pan.qun.qq.com了。看服务器回复,由于内容太长了,我就缩略了一下,信息还是完整的。
对于客户端查询,服务器回复说,pan.qun.qq.com这个记录是一个别名记录。真正的记录时new.qun.qq.com.并且负责解析这些记录的DNS服务器是ns-telx.qq.com等4台服务器(从ns-tel1-ns-tel4)。并给出了new.qun.qq.com的IP地址。到这里,我就清楚的知道该怎么做了。
步骤三:配置本地DNS服务器。
在我的DNS服务器上创建一个区域:qun.qq.com.因为pan.qun.qq.com和new.qun.qq.com是A记录啊。然后创建了两个A记录。
步骤四:找个客户端试试吧。先刷新客户端的DNS缓存,别忘了命令哦:
ipconfig /flushdns
多执行几次吧。自从开始编程后,执行命令不自觉的就多搞了几次。哎!就像所有的程序员一样,按Ctrl+v时,要按很多次。有点强迫症。
结果已经猜到了。正常浏览群文件夹!!!!
感觉写了好久,休息一下!下次再碰到难题再发帖子!