一般来说,非域环境比较容易出现共享的问题,原因大抵是与鉴权有关。
而在域环境中,由于域服务器的加持,很容易实现权限的统一管理,共享问题相对较少。
本文即将讲述的共享故障,还是比较少见的,毕竟笔者做了20多年的IT外包,也是头一回碰到这样的共享故障。
先说故障现象,突然有一天开始,局域网内的电脑的相互共享出现了奇怪的问题:无法通过计算机名称来访问共享了,但是,在我司技术人员的提醒下,客户说是通过IP就能正常访问共享的电脑。
问题分析,既然通过IP地址可以访问,那说明computer browser、server等服务都是正常的,且windows自带的防火墙也是放行了共享的行为,再且,共享权限也是没有问题的。
那倒奇怪了,技术小伙是解决不了了,那我上线看看吧。
先远程一台客户的电脑G,通过\\d,访问计算机名称为d的共享文件夹,结果访问正常啊,好吧,看来并不是每台电脑都有问题的。
于是询问客户,是哪一台计算机不能被访问。
得到的回复是刚发现S上的共享无法访问。
好吧,在这台G电脑上运行 \\S,提示无权访问。
嗯?权限问题?
远程这台S,发现它可以访问G的共享。
查看computer browser、server等服务都是正常的,且windows自带的防火墙直接是关闭状态,貌似没问题啊。
看了一下S的IP地址,然后在G上运行 \\S的IP地址,发现可以访问共享,很明显这并不是权限问题。
可是,凭什么?凭什么IP地址就能被访问,计算机名称就不行?
在G上ping S,可以ping通啊。
既然ping 计算机名称是通的,那ping -a IP 试一下呢?
顺便讲一下:ping -a IP 可以解析出这个IP的计算机名称。
不看不知道,一看傻眼了,ping -a IP并没有解析出来计算机名称,再往上看,刚才ping S得到的IP地址,根本就不是S实际上的IP地址。
这下破案了,\\计算机名称的方式访问共享时候,可能访问的根本不是这台计算机!跑过去看了这台计算机的IP地址,用\\ip地址的方式,才是真正访问这台计算机的共享!
问题的根源在解析上,也就是说与DNS服务器有关。
登录域服务器,查看DNS记录,果然,S这台电脑,对应的IP,与实际的IP地址不符。
这台域服务器是2008年搭建的,客户的网络环境也没有多大变化,只是最近换了宽带,换了台路由器而已,不至于影响内网DNS解析啊?
进一步分析:终端的IP地址,由路由器统一下发,所以网关IP是路由器的IP地址,而DNS服务器则指定为主域和备域的IP地址,这么多年来,一直是这样的,怎么突然就发生这种问题了?
登录路由器看一下吧,这是一台带AC功能的路由器,同时也带无线AP管理功能。
看着看着,就发现问题了,无线AP抢占了个别电脑的IP地址,然后电脑发现IP被占用后,重新发起请求,路由器接到请求,重新分配了一个IP,但是域服务器没那么快更新,就导致了计算机名称与实际的IP地址不符。
找到问题就好办了,反正也没几个被抢占的IP,于是就手动在域控上修改A记录,把几台错误的IP修正了,然后重启了DNS服务器,并且在域控上执行命令:ipconfig /flushdns,刷新DNS缓存,然后ping S,这次是正确的IP地址了,尝试访问共享,正常了。
于是回到远程的电脑G上,同样,先运行命令:ipconfig /flushdns,然后运行\\s,也能顺利打开S上面的共享文件夹了。
其他电脑也是一样操作,到此,问题解决。
所以,还是建议部署无线的时候,业务VLAN和管理VLAN分开。
拓展:硬盘录像机也是这样,它会给摄像机分配IP地址,而不顾局域网的其他的DHCP服务器,哪怕硬盘录像机自己的IP也是自动获取来的,它还是给摄像机分配IP地址,这也有一定的概率,使摄像机与电脑的IP冲突,在日常的IT外包服务中,也是经常碰到的问题。
对此,最好的方法就是监控不要和办公电脑在同一个VLAN,如果全是傻瓜交换机,且路由器也是家用级别的,实在分不开网络,那就建议在DHCP服务里面绑定摄像机IP,然后再接上硬盘录像机,添加摄像机,那就没有后顾之忧了,不会与电脑的IP冲突了。