ARP协议和RARP协议

1.ARP概述
2.ARP报文格式
3.ARP工作过程
4.RARP协议
5.ARP攻击

1.ARP概述

  在以太网协议规定中,同一局域网中的一台主机要和另一台主机进行直接通信,必须知道目标主机的MAC地址(硬件地址)。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。ARP是一种地址解析协议,是一个位于数据链路层的协议,主要负责将IP地址解析为对应的MAC地址。ARP协议只适用于局域网。另外,当发送主机和目的主机不在同一个局域网中时,即使知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发生主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发送到目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况成为ARP代理。

2.ARP报文格式

  报文格式如下图所示:其中操作类型:代表ARP数据包类型;0表示ARP请求数据包,1表示ARP应答数据包。
这里写图片描述

3.ARP工作过程

  局域网中每台主机都有一个ARP高速缓存,这个缓存存放的是最近发起的IP地址到MAC地址的映射记录。ARP高速缓存中的表项一般都要设置超时值(在多数实现中,完整条目的超时为20分钟,而不完整条目的超时为3分钟),如果一段时间内没有与某主机通信,就将该主机对应的IP与MAC之间的映射关系去掉,下次再需要通信时,依然发送广播。

ARP的基本工作原理如下: 
 

  1. 每台主机都会根据以往在网络中与其他主机的通信,在自己的ARP缓冲区中建立一个ARP列表,以表示网络中主机IP地址和MAC地址的对应关系。
  2. 当源主机需要将一个数据包发送给目标主机时,会首先检查自己的ARP列表是否有该包所包含的目标主机IP地址对应的MAC地址。如果有,则直接将数据包发送到这个MAC地址主机上;如果没有,就向本地网段(局域网)发起一个ARP请求的广播包,查询此IP地址目标主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址,硬件地址,以及目标主机的IP地址。
  3. 网络中的所有主机在收到这个ARP请求后,会检查数据包中的目标IP地址是否和自己的IP地址一致。如果不一致,则忽略这个包;如果相同,该主机首先将源端的MAC地址和IP地址的对应表项添加到自己的ARP列表中。如果发现ARP表中已经存在该IP地址所对应的MAC地址表项信息,则将其覆盖,然后给源主机发送一个ARP响应数据包,告诉对方自己是它需要查找的MAC地址主机。
  4. 源主机在收到这个ARP响应数据包后,将得到的目标主机的IP地址和MAC地址对应表项添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,则表示ARP查询失败。

4.RARP协议

  ARP协议是根据IP地址找其对用的MAC地址,而RARP则是根据MAC地址找其对应的IP地址,所以称为“逆向ARP”。具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址,然后即可直接用ARP协议找出与其对应的主机MAC地址。但是无盘机,如X终端或无盘工作站,启动时是通过MAC地址来寻址的,这时就需要通过RARP协议获取IP地址。

 RARP的基本工作原理如下:

  1. 发送端发送一个本地的RARP广播包,在此广播包中声明自己的MAC地址,并且请求任何收到此请求的RARP服务器分配一个IP地址。
  2. 在本地报文段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址,如果存在,RARP服务器就给源主机发送一个响应数据包,并将此IP地址提供给对方主机使用;如果不存在,RARP服务器对此不做任何响应。
  3. 源端在收到从RARP服务器来的响应信息后,利用得到的IP地址进行通信;如果一直没有收到RARP服务器的响应信息,则表示初始化失败。

5.ARP攻击

  1. 仿冒网关攻击:如图1所示,因为主机A仿冒网关向主机B发送了伪造的网关Address Resolution Protocol报文,导致主机B的Address Resolution Protocol表中记录了错误的网关地址映射关系,从而正常的数据不能被网关接收。
    仿冒网关攻击是一种比较常见的攻击方式,如果攻击源发送的是广播Address Resolution Protocol报文,或者根据其自身所掌握的局域网内主机的信息依次地发送攻击报文,就有可能会导致整个局域网通信的中断,是Address Resolution Protocol攻击中影响较为严重的一种。
    这里写图片描述

  2. 仿冒用户攻击
    1.欺骗网关:如图2所示,主机A仿冒主机B向网关发送了伪造的ARP报文,导致网关的ARP表中记录了错误的主机B地址映射关系,从而正常的数据报文不能正确地被主机B接收
    这里写图片描述
      2.欺骗其他用户:如图3所示,主机A仿冒主机B向主机C发送了伪造的ARP报文,导致主机C的ARP表中记录了错误的主机B地址映射关系,从而正常的数据报文不能正确地被主机B接收。
      这里写图片描述

  3. ARP泛洪攻击
      网络设备在处理ARP报文时需要占用系统资源,同时因为系统内存和查找ARP表效率的要求,一般网络设备会限制ARP表的大小。攻击者就利用这一点,通过伪造大量源IP地址变化的ARP报文,使设备ARP表溢出,合法用户的ARP报文不能生成有效的ARP表项,导致正常通信中断。
      另外,通过向设备发送大量目标IP地址不能解析的IP报文,使设备反复地对目标IP地址进行解析,导致CPU负荷过重,也是泛洪攻击的一种。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值