最近在论坛上经常看到关于ARP 病毒的问题,于是在Google 上搜索ARP 关键字,啊哦!结果出来N 多关于这类问题的讨论。呵呵,俺的求知欲很强:),想再学习ARP 下相关知识,所以对目前网络中常见的ARP 问题进行了一个总结。现在将其贴出来,希望和大家一起讨论!
1. ARP 概念
咱们谈ARP 之前,还是先要知道ARP 的概念和工作原理,理解了原理知识,才能更好去面对和分析处理问题。
1.1 ARP 概念知识
ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。IP 数据包常通过以太网发送,以太网设备并不识别32 位IP 地址,它们是以48 位以太网地址传输以太网数据包。因此,必须把IP 目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC 地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP 协议用于将网络中的IP 地址解析为的硬件地址(MAC 地址),以保证通信的顺利进行。
1.2 ARP 工作原理:
l 首先,每台主机都会在自己的ARP 缓冲区中建立一个 ARP 列表,以表示IP 地址和MAC地址的对应关系.l 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP 列表中是否存在该 IP 地址对应的MAC 地址,如果有﹐就直接将数据包发送到这个MAC 地址;如果没有,就向本地网段发起一个ARP 请求的广播包,查询此目的主机对应的MAC 地址。此ARP 请求数据包里包括源主机的IP 地址、硬件地址、以及目的主机的IP 地址。
l 网络中所有的主机收到这个ARP 请求后,会检查数据包中的目的IP 是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC 地址和IP 地址添加到自己的ARP 列表中,如果ARP 表中已经存在该IP 的信息,则将其覆盖,然后给源主机发送一个 ARP 响应数据包,告诉对方自己是它需要查找的MAC 地址;l 源主机收到这个ARP 响应数据包后,将得到的目的主机的IP 地址和MAC 地址添加到自己的ARP 列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP 响应数据包,表示ARP 查询失败。
例如:A 的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA
B 的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB
根据上面的所讲的原理,我们简单说明这个过程:A 要和B 通讯,A 就需要知道B 的以太网地址,于是A 发送一个ARP 请求广播(谁是92.168.10.2 ,请告诉192.168.10.1),当B收到该广播,就检查自己,结果发现和自己的一致,然后就向A 发送一个ARP 单播应答(192.168.10.2 在BB-BB-BB-BB-BB-BB)。
1.3 ARP 通讯模式
通讯模式(Pattern Analysis):在网络分析中,通讯模式的分析是很重要的,不同的协议和不同的应用都会有不同的通讯模式。更有些时候,相同的协议在不同的企业应用中也会出现不同的通讯模式。ARP 在正常情况下的通讯模式应该是:请求 -> 应答 -> 请求 -> 应答,也就是应该一问一答。
2. 常见ARP 攻击类型
[ |