对地址解析协议―ARP的研究

时间:2022-09-21 01:48:03

对地址解析协议―ARP的研究

摘要:由于ARP协议本身存在缺陷,因而造成主机欺骗和网关的欺骗。这些欺骗会对局域网产生严重威胁。本文对ARP慨念及工作原理进行介绍,对主机欺骗和网关欺骗进行介绍,并提出相关的解决办法。

关键词:地址;解析协议;ARP的研究

一、地址解析协议ARP概述及原理

地址解析协议即ARP(Address Resolution Protocol),是已知对方的IP地址需要得到对方的MAC地址,使得通信设备能够建立起连接。

每台个工作站都有一个ARP高级缓存,有限的IP地址到MAC地址的映射保存在这个缓存中。当PC机收到一个ARP广播时,这个ARP请求可能与自己无关,但是PC会对这个ARP请求进行处理,提取其中包含的物理地址与IP地址的映射,以便之后的通信。ARP高速缓存是动态生成的,是通过记录每次经过自己的ARP报文中的IP地址与物理地址得到的。这个地址映射表有一定的生存时间,如果生存时间内没有使用,高级缓冲就会将这个ARP地址映射删除掉。ARP缓存表的长度由这种老化方式得到了缩短,因此处理时间就会相应缩短。

当PC机之间要进行通信,首要要知道对方的IP地址映射的MAC地址才能进行通信。它会先检查自己的ARP缓冲表,如果缓存在保存有目的主机的IP地址到MAC地址的映射,就可以直接进行通信。如果缓存里没有保存目的主机的IP地址到MAC地址的映射,就会发送一个ARP请求。二层的交换机的功能是转发数据,通过相应的端口接受数据,又通过相应的端口将数据转发出去。交换机缓存中有一个MAC地址表,用以记录每一个端口对应的MAC地址。比如f0/1端口连接的PC1需要和f0/2端口上连接的PC2进行通信。PC1会在自己的ARP高级缓存中查找是否存有PC2的MAC地址,如果有直接通过交换机建立连接,便可直接和PC2进行通信进。如果PC1在自己的ARP高级缓存中没有查找到PC2的MAC地址,PC1会发送1个ARP请求给交换机端口f0/1,交换机收到请求后,如果交换机里没有PC1的相应信息,交换机就会将数据帧中的源MAC地址与自己的端口相对应,并将其写入MAC地址表中,如果交换机缓存里没有PC2的MAC地址,交换机就会将ARP包转发给自己的所有端口,在交换机网络中所有的PC机都能够收到这个ARP请求,PC机收到ARP包后将里面的目的IP地址和自己的IP地址相比较,如果和自己的IP地址不一致就会将包丢弃,如果和自己的IP地址一致,则会将自己的MAC地址填入到ARP数据包中,发送ARP响应分组,转发给交换机的端口f0/2,交换机将PC2的MAC地址与端口信息填入到自己的MAC地址表中,并将ARP响应PC2便建立起连接,可以直接通信了。

二、 ARP欺骗

主机会主动发送ARP报文,这是ARP协议存在的缺陷。攻击者利用这个漏洞,可以发送虚假的ARP请求报文或响应报文,因此,ARP报文中的IP地址和MAC地址都可以进行伪造。在局域网中,可以伪造成某一台主机(如服务器)的IP地址和MAC地址的组合,也可以伪造成网关的IP地址和MAC地址的组合。

三、相应的防御措施

1.在交换机作安全设置

在交换机端口上绑定MAC 分组转发给PC1,PC1收到响应分组后,将PC2的MAC添加到自己的缓存中,此时PC1与和IP相对应,限制ARP流量,及时发现并自动阻断ARP攻击端口,合理划分VLAN。在交换机的端口上设置端口安全,思科Catalyst2950,命名为S2交换机中的相关配置:

端口安全命令语法:

S2(config)#interface f0/180000000

S2(config-if)#s2port mode access

S2(config-if)#s2port port-security

S2(config-if)#end

配置粘滞地址的端口安全性命令语法:

S2#configure terminal

S2(config)#interface f0/1

S2(config-if)#s2port mode access

S2(config-if)#s2port port-security

S2(config-if)#s2port port-security maximum 20

S2(config-if)#s2port port-security mac-adddress sticky

S2(config-if)#end

可以在交换机端口上创建静态地址映射:

S2(config)#mac-address-table static 000A.F38D.1B0E vlan 10 interface f0/1

可以划分VLAN,方便管理,提高安全性:

S2(config)#interface FastEthernet0/1

S2(config-if)#switchport mode access

S2(config-if)#switchport access vlan 30

2.改动态缓存为静态ARP缓存。由于动态缓表存在生存时间,在生成新的地址表时,存在欺骗,采用静态缓存,源主机与其目的主机进行通信时,不需要发送ARP请求,只要在自己的静态缓存表中提取相应的地址映射后即可和目的主机进行通信。欺骗者如果向主机发送ARP应答,目标主机不会对这个ARP进行处理,直接丢弃。因而可以杜绝ARP欺骗的发生,但是这种方式不适合大型可变的网络。

3.专用的ARP服务器。用一台专用的设备作为ARP服务器,所有主机都在这台ARP服务器上查找自己需要的IP地址对应的MAC地址。这个方法可以防止ARP欺骗,但是要保障这台ARP服务器不被攻击,因此增加了网络管理。

4.网管通过逆地址解析检查ARP响应的真实性。

5.网管定期检查主机上的ARP缓存。

6.防火墙等安全产品从底层驱动对所有ARP欺骗数据包进行识别和屏蔽。

ARP协议本身存在缺陷,要想彻底防范,杜绝ARP欺骗攻击,还需要解决协议本身的缺陷。(作者单位:西华师范大学网络中心)

参考文献:

[1]Sean Whalen. An Introduction to Arp Spoofing. http: projects arpspoof. April 2001

[2]谢希仁.计算机网络.北京:电子工业出版社,2003年6月。

上一篇:让识字教学“情趣盎然” 下一篇:浅谈“网络学生”的管理