对网络管理员或用户来说,发生“IP地址冲突”是不受欢迎的事情,因为在一个网络中,每个主机(严格来说是网络接口)都应该有唯一的一个IP地址,如果出现2个或两个以上主机使用相同的IP地址,这些使用相同IP地址的主机屏幕会弹出对话框报告IP地址冲突(如下图):
这将导致这些使用相同IP的机器不能正常访问网络。但是,前几天笔者却用这个有如鸡肋的功能帮了一个大忙。是怎么一回事呢?听我慢慢道来。
本月12号那天,我被派到月坛大厦的客服部门处理网路故障。经初步诊断,发现网络时断时续,重启网关的话,能够正常好一会,过一段时间后就不灵了。这是一个十分简单的网络:一条外网网线进来,接入一台运行FreeBSD的网关(做NAT用),网关机的另外一个网络接口接交换机,客户端全部接2个在交换机上,同时,网关机提供DHCP服务,所有的客户机使用DHCP自动获取IP。首先,我得确定故障发生在那里;重启网关,发现客户机能正常上网,但网关马上提示DHCP请求超时的报警,除此而外看不出什么端倪,去客户端查IP,发现获取的IP地址正常,于是又怀疑是不是交换机有问题,等一会,发现故障又出现了,重启一下交换机,网络又正常了问题到底在哪里呢?一下犯晕了。
整理了一下思路,然后找了一台客户机(客户机全是windows),先ping一下网关,发现居然ping不通,ping网内的另外一台机器则正常,重启网关再用客户机ping 网关则正常,毫无疑问,网络中了ARP欺骗病毒了。进系统目录,发现c:下有几个异常的文件,该名某个文件,居然不让操作,运行命令 arp –a 发现多行arp请求,看来是病毒引起的网络堵塞故障。不能把所有的机器都与网络段掉,当务之急是先找出当前正在作崇的主机然后隔离处理。
怎么辨别是网络中那台主机中毒厉害呢?网上已经有很多不错的办法。有人建议用抓包工具,然后分析抓到的包信息来确认中毒的主机,然而我手里没有任何抓包工具,看来只好自己想招了。经过摸索,总结了下面一些行之有效的办法,供大家参考!
在客户机运行路由跟踪命令如 tracert –d www.163.com,马上就发现第一条不是网关机的内网ip,而是本网段内的另外一台机器的IP,再下一跳才是网关的内网IP;正常情况是路由跟踪执行后的输出第一条应该是默认网关地址,由此判定第一跳的那个非网关IP 地址的主机就是罪魁祸首。
问题又出来了,由于网内的主机IP地址是通过DHCP自动获取来的,怎么找出这个主机又是一个难题,几十个机器,挨个用 ipconfig/all查非累死不可,怎么办?得走捷径才行。突然之间冒出一个念头:设置一个与查出来的中毒主机相同的IP地址,然后…..,接下来,找一台客户端机器,查一下其自动获取的IP地址,没有那么幸运-这台机器不是要揪出来的那个IP,然后把这个主机的”自动获取IP地址”取消,手动设置机器的IP与有病毒的那个IP相同,设置生效后就听见一个妹妹嚷道:“我的IP地址怎么跟别人冲突了呢?”,殊不知,我要找的就是你呢!把妹妹的主机隔离网络,其他的机器上网立马就顺畅了。
处理arp病毒的操作我想大家都应该有经验了,在这里就不再多罗嗦。
简单总结一下,其主要步骤有两步:1、运行 tracert –d www.163.com 找出作崇的主机IP地址。 2、设置与作崇主机相同的IP,然后造成IP地址冲突,使中毒主机报警然后找到这个主机。(e129)