ARP 故障排查

1. 网络现象
最近网络中有主机频繁断线,刚刚开始还比较正常,但是一段时间后就出现断线情况,有时
很快恢复,但是有时要长达好几分钟啊,这样对工作影响太大了。最初怀疑是否是物理上的
错误,总之从最容易下手的东西开始检查,检查完毕后没有发现异常!突然想到目前网上比
较流行的ARP攻击,ARP攻击出现的故障情况与此非常之相似!对于ARP攻击,一般常规办法
是很难找出和判断的,需要抓包分析。
2. 原理知识
在解决问题之前,我们先了解下ARP的相关原理知识。
ARP原理
l 首先,每台主机都会在自己的ARP 缓冲区 (ARP Cache)中建立一个 ARP 列表,以
表示IP 地址和MAC 地址的对应关系。
l 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP 列表中是
否存在该 IP 地址对应的MAC 地址,如果有�o就直接将数据包发送到这个MAC 地址;
如果没有,就向本地网段发起一个ARP 请求的广播包,查询此目的主机对应的MAC
地址。此ARP 请求数据包里包括源主机的IP 地址、硬件地址、以及目的主机的IP
地址。
l 网络中所有的主机收到这个ARP 请求后,会检查数据包中的目的IP 是否和自己的
IP 地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC
地址和IP 地址添加到自己的ARP 列表中,如果ARP 表中已经存在该IP 的信息,则
将其覆盖,然后给源主机发送一个 ARP 响应数据包,告诉对方自己是它需要查找
的MAC 地址;
l 源主机收到这个ARP 响应数据包后,将得到的目的主机的IP 地址和MAC 地址添加
到自己的ARP 列表中,并利用此信息开始数据的传输。如果源主机一直没有收到
ARP 响应数据包,表示ARP 查询失败。
ARP 欺骗原理
我们先模拟一个环境:
l 网关:192.168.1.1 MAC 地址:00:11:22:33:44:55
l 欺骗主机 A:192.168.1.100 MAC 地址:00:11:22:33:44:66
l 被欺骗主机 B:192.168.1.50 MAC 地址:00:11:22:33:44:77
欺骗主机A 不停的发送ARP 应答包给网关,告诉网关他是192.168.1.50 主机B,这样
网关就相信欺骗主机,并且在网关的ARP 缓存表里就有192.168.1.50 对应的MAC 就是
欺骗主机A 的MAC 地址00:11:22:33:44:66,网关真正发给主机B 的流量就转发给主机
A;另外主机A 同时不停的向主机B 发送ARP 请求,主机B 相信主机A 为网关,在主机
B 的缓存表里有一条记录为192.168.1.1 对应00:11:22:33:44:66,这样主机B 真正发
送给网关的数据流量就会转发到主机A;等于说主机A 和网关之间的通讯就经过了主机
A,主机A 作为了一个中间人在彼此之间进行转发,这就是ARP 欺骗。
3. 解决方法
看来只有抓包了,首先,我将交换机做好端口镜像设置,然后把安装有科来网络分析系统的
电脑接入镜像端口,抓取网络的所有数据进行分析。通过几个视图我得出了分析结果:
诊断视图提示有太多“ARP无请求应答”,如图1。
图片
(图1 诊断提示)
在诊断中,我发现几乎都是00:20:ED:AA:0D:04发起的大量ARP应答。而且在参考信息中提示
说可能存在ARP欺骗。看来我的方向是走对了,但是为了进一步确定,得结合其他内容信息。
查看协议视图了解ARP协议的详细情况,如图2所示。
图片
(图2 协议视图)
从图2中所显示的协议分布来看,ARP Response和ARP Request相差比例太大了,很不正常啊。
接下来,再看看数据包的详细情况,如下图3。
图片
(图3 ARP数据包)
我从图3中的数据包信息已经看出问题了,00:20:ED:AA:0D:04在欺骗网络中192.168.17.0
这个网段的主机,应该是在告诉大家它是网关吧,想充当中间人的身份吧,被欺骗主机的通
讯流量都跑到他那边“被审核”了。
4. 解决办法
现在基本确定为ARP 欺骗攻击,现在我需要核查MAC 地址的主机00:20:ED:AA:0D:04 是
哪台主机,幸好我在平时记录了内部所有主机的MAC 地址和主机对应表,终于给找出真凶主
机了。可能上面中了ARP 病毒,立即断网杀毒。网络正常了,呜呼!整个世界又安静了!
5. 总结(故障原理)
我们来回顾一下上面ARP 攻击过程。MAC 地址为00:20:ED:AA:0D:04 的主机,扫描攻击
192.168.17.0 这个网段的所有主机,并告之它就是网关,被欺骗主机的数据都发送到MAC
地址为00:20:ED:AA:0D:04 的主机上去了,但是从我抓取的数据包中,MAC 为
00:20:ED:AA:0D:04 的主机并没有欺骗真正的网关,所以我们的网络会出现断网现象。
6. 补充内容
对于 ARP 攻击的故障,我们还是可以防范的,以下三种是常见的方法:
l 最老的办法:)
平时做好每台主机的MAC 地址记录,出现状况的时候,可以利用MAC 地址扫描工具扫描
出当前网络中主机的MAC 地址对应情况,参照之前做好的记录,也可以找出问题主机。
l ARP �CS
可在 MS-DOS 窗口下运行以下命令: ARP �CS 手工绑定网关IP 和网关MAC。静态绑定,就可
以尽可能的减少攻击了。需要说明的是,手工绑定在计算机重起后就会失效,需要再绑定,
但是我们可以做一个批处理文件,可以减少一些烦琐的手工绑定!
l 使用软件(Antiarp)
使用 Anti ARP Sniffer 可以防止利用ARP 技术进行数据包截取以及防止利用ARP 技术发送
地址冲突数据包。


你可能感兴趣的:(网络,IP地址,缓冲区,流行,数据包)