查看: 6522|回复: 0

ARP协议

[复制链接]
发表于 2007-8-6 13:04:30 | 显示全部楼层 |阅读模式
一、什么是ARP
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
二、ARP协议的工作原理
ARP的工作原理如下:
1.  首先,每台主机都会在自己的ARP缓冲区 (ARP Cache)中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。
2.  当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。
3.  网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;
4.  源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
三、如何查看ARP缓存表
ARP缓存表是可以查看的,也可以添加和修改。默认情况下,当其中的缓存项超过两分钟没有活动时,此缓存项就会超时被删除。
在命令提示符下,输入“arp -a”就可以查看ARP缓存表中的内容了。
用“arp -d”命令可以清除ARP缓存表中所有的内容,“arp –d IP地址”命令可以删除ARP表中某一行的内容;
用“arp –s IP地址 MAC地址”可以手动在ARP表中指定IP地址与MAC地址的对应。
四、ARP数据报文格式
ARP的报头结构,如图所示。


硬件类型字段:指明了发送方想知道的硬件接口类型,以太网的值为1;
协议类型字段:指明了发送方提供的高层协议类型,IP为0800(16进制);
硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;
操作字段:用来表示这个报文的类型,ARP请求为1,ARP响应为2;
发送方的硬件地址(0-3字节):源主机硬件地址的前3个字节;
发送方的硬件地址(4-5字节):源主机硬件地址的后3个字节;
发送方IP(0-1字节):源主机硬件地址的前2个字节;
发送方IP(2-3字节):源主机硬件地址的后2个字节;
目的硬件地址(0-1字节):目的主机硬件地址的前2个字节;
目的硬件地址(2-5字节):目的主机硬件地址的后4个字节;
目的IP(0-3字节):目的主机的IP地址。
五、免费ARP
整个ARP的体系里基本上就是由ARP Request和Response组成的,从上面的描述中,可以看出Request就是告知对方“我要什么”,而Response是回答“我是什么”。但有些时候也会例外,他们虽然从形式上还是Request和Response的,但它们通常不会不是一问一答的,而是只有其中的一部分,所以通常被称为免费ARP或无为ARP(Gratuitous ARP)。
从作用而言,它们主要是可以分为两类:
1、以ARP Request的形式发送广播,请求自己的MAC地址,目的是探测局域网中是否有跟自己IP地址相同的主机,也就是常说的IP冲突,正常情况下,这样的报文是不会有回复的,如果有,则说明有冲突发生。
2、以ARP Response的形式发送广播,它通常只是为了把自己的ARP信息通告/更新给局域网全体,这种Response不需要别人请求,是自己主动发送的通告。报文结构如下。
    这两种ARP帧虽然都是广播发送的,但目的不同,从帧结构上来说,前者注重的是Target Internet Address,而后者注重的是Sender Hardware Address和Sender Inteernet Address。
六、ARP的攻击方式
ARP的攻击主要分为以下几种:
1.ARP广播,利用ARP数据包发送的是广播报这一缺陷,伪造大量的ARP数据包,轮番查询网内计算机的ARP信息,从而引起网络的堵塞和交换机处理性能下降导致上网速度下降,网络时通时断,严重的时候会导致交换机死机。
2.ARP欺骗,ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。关于欺骗又分为两种:第一种是对网络内的计算机进行欺骗,如果中了这种攻击方式的病毒,计算机会发送伪造的网关ARP信息,导致网络内的计算机的ARP表项中产生假的网关ARP信息,导致用户发往网关的数据包无法到达网关,从而无法上网;第二种是对网络内的网关设备进行欺骗,如果中了这种攻击方式的病毒,计算机会向网关发送伪造的ARP信息,导致网关的ARP表项中产生大量假的ARP信息,从而拒绝转发正常的计算机发送来的数据包,导致网络内的计算机无法上网。
七、ARP攻击的防御
1.对于ARP广播的防御及根治,ARP广播利用的是发送大量的广播信息导致网络的不正常。因此,可以利用交换机的广播风暴抑制功能来抑制广播的流量,从而使危害减到最低。此外,如要根治,必须利用抓包软件来进行数据包的捕获,从而找到病毒源,将其断开网络,处理完毕后再将其接入网络。另外,在配置交换机是如端口是TRUNK口,一定要把允许通过的VLAN配置好,否则,所有的交换机上联口都会受到广播影响。
2.对于ARP欺骗的防御,欺骗网络内计算机的ARP欺骗可以利用“ARP –s”命令绑定网关的ARP信息,还可以利用ARP防火墙这个软件;欺骗网关的ARP欺骗,只能在网关上静态绑定下连所有计算机的ARP信息。
3.ARP防火墙可以防止网关的ARP信息被欺骗,也可以抑制计算机向外发送大量的ARP广播信息,如网络内ARP攻击严重,可以建议用户安装。

评分

1

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表