【随笔】ARP和RARP

  ARP协议是什么?

  ARP协议是"Address Resolution Protocol"(地址解析协议)的缩写。在局域网中,网络中实际传输的是"帧",帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓"地址解析"就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

  ARP协议主要负责将局域网中的32位IP地址转换为对应的48位物理地址,即网卡的MAC地址。

  在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,在linux中可以通过"arp -a"命令来查看本地ARP缓存表,ARP缓存表会定期刷新重建,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

  RARP协议是什么?

  RARP协议是ARP协议相反的流程操作,它是籍由查询网路上其它主机而得到自己的 IP协议地址。

  当主机发出广播包后,接收到该请求的其他主机会在自己的ARP缓存表里查询是否有该主机的MAC对应记录,如果有,则给该主机返回响应包,如果没有,则忽略。

  可以这么理解:

  ARP ---> 主机发包询问:谁知道我想联系的IP为192.168.x.x的主机的MAC地址是多少?

       目标主机回应:我是IP 192.168.x.x的主机,我的MAC地址是xx:xx:xx:xx:xx:xx

  RARP ---> 主机发包询问:谁知道我的IP是多少?噢对了!我的MAC地址是xx:xx:xx:xx:xx:xx。

        目标主机回应:我在我的ARP缓存表里查到你的MAC地址对应的IP地址是192.168.y.y



  ARP欺骗攻击

  从前面知道,在以太局域网内数据包传输依靠的是MAC地址,IP地址与MAC对应的关系依靠ARP表,每台主机(包括网关)都有一个ARP缓存表。在正常情况下这个缓存表能够有效保证数据传输的一对一性。

  但是主机在实现ARP缓存表的机制中存在一个不完善的地方,当主机收到一个ARP的应答包后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。

  这样,攻击者C会向主机A发送一个ARP响应包,里面包含了攻击者C的MAC地址和主机B的IP信息,这样主机A的ARP缓存表里就存了一个"主机B的IP:攻击者C的MAC"的值,然后攻击者C会向主机B发送一个包,包含了主机A的IP和攻击者C的MAC地址,然后主机B也会将这信息存入自己的ARP缓存表内,这样,主机A发往主机B的所有数据包都会先发送到攻击者C的机器上,然后攻击者C再将数据包发送到主机B,如此一来,攻击者C就会截取到A和B之间的通信信息。无论攻击者C接收到主机A的信息包后做不做处理,必将影响到信息包的传递,如此以来,使用局域网时会突然掉线,过一段时间后又会恢复正常。还有客户端状态频频变红,用户频繁断网,IE浏览器频繁出错,以及一些常用软件出现故障等。攻击者更会通过各种手段盗取用户账号密码,进行交易等等木马病毒都会做的事。

  如何发现ARP欺骗攻击?  

  局域网内一旦有ARP的攻击存在,会欺骗局域网内所有主机和网关,让所有上网的流量必须经过ARP攻击者控制的主机。其他用户原来直接通过网关上网,现在却转由通过被控主机转发上网。由于被控主机性能和程序性能的影响,这种转发并不会非常流畅,因此就会导致用户上网的速度变慢甚至频繁断线。另外 ARP欺骗需要不停地发送ARP应答包,会造成网络拥塞。

  一旦怀疑有ARP攻击我们就可以使用抓包工具来抓包,如果发现网内存在大量ARP应答包,并且将所有的IP地址都指向同一个MAC地址,那么就说明存在ARP欺骗攻击,并且这个MAC地址就是用来进行ARP欺骗攻击的主机MAC地址,我们可以查出它对应的真实IP地址,从而采取相应的控制措施。另外,我们也可以到路由器或者网关交换机上查看IP地址与MAC地址的对应表,如果发现某一个MAC对应了大量的IP地址,那么也说明存在ARP欺骗攻击,同时通过这个MAC地址查出用来ARP欺骗攻击的主机在交换机上所对应的物理端口,从而进行控制。

  如何防范?

  可以通过对IP和真实MAC地址的绑定,定期广播局域网内真实IP与MAC信息,构建防火墙等等方法来防范ARP欺骗攻击。

时间: 2024-10-23 09:16:53

【随笔】ARP和RARP的相关文章

TCP/IP(3.3) —ARP和RARP

ARP和RARP协议的作用 ARP 我们知道,网络层使用的是IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址.但IP和下面的网络的硬件地址以为格式不同而不存在简单的映射关系.(IP是32位,而局域网硬件地址是48位.)更换网络适配器还可能改换硬件地址. 地址解析协议ARP就是解决这个问题的方法是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表经常动态更新(动态这个词是因为整个过程是软件自动完成的,一般应用程序和用户不必关心) 每一个主机都设有

【计算机网络】详解网络层(二)ARP和RARP

ARP ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(物理地址)的协议.在局域网中,当主机或其他网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址).但是仅仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送.因此发送方还需要有接收方的物理地址,也就需要一个从IP地址到物理地址的映射,ARP就是事先这么功能的协议. 1.ARP报文格式 ARP是一个独立的三层协议,所以ARP报文在此

arp和rarp协议

ARP与RARP详细解析 原创zlnnjit 发布于2016-04-03 15:12:15 阅读数 9544 收藏 展开 地址解析协议 ARP和逆地址解析协议RARP 1.基本关系: ? 2.地址解析协议 ARP的实现过程: ?不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址. ?每一个主机都设有一个 ARP高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表. ?当主机 A 欲向本局域网上的某个主机B发送IP数据报

arp与RARP的区别

ARP的工作原理 ARP用于已知本端IP地址和硬件地址以及对端IP地址的情况下,求解对端的IP地址,其工作原理简示如下: A首先发送广播消息请求其对应目的IP地址的硬件地址是多少?同时在该广播消息中还附带自己的IP地址和硬件地址. B接受到该广播包后,取出A的IP地址和硬件地址,将其添加到地址映射表中.同时返回单播响应,响应包中包含B的IP地址和硬件地址. A收到响应,取出B的IP地址和硬件地址,将其添加到地址映射表中. 之后设备A和B就可以正常进行数据传送了. RARP的工作原理 RARP用于

TCP/IP学习笔记(三)——IP,ARP,RARP

参考文献: * <TCP/IP详解 卷一:协议>: 1. IP网际协议 1.1 特点: 不可靠:不能保证IP数据报能成功到达目的地: 无连接:不维护任何关于后续数据报状态信息,即没有握手的环节,比如UDP也是无连接的: 1.2 IP首部 普通IPv4首部长度20字节(除非含有选项字段): 网络字节序:Big-endian: 服务类性(TOS):共8位,实际有效位4bit,最小时延,最大吞吐量,最高可靠性,最小费用: 不同的协议有不同的要求:Telnet和Rlogin用于少量交互数据要求最小传输

TCP/IP详解 卷一(第四、五章 ARP、RARP)

数据链路如 以太网都有自己的寻址机制(MAC)地址,而IP层使用的是IP地址. 当一台主机把以太网数据发送定位于同一局域网上的另一台主机时,是根据MAC地址来确定目的接口的.设备驱动程序从不检查IP数据报中的目的IP地址. 地址解析为这两种不同的地址形式提供映射. 一个例子 当我们键入下面这个形式的命令: 都会进行以下的步骤: (1) 应用程序FTP客户端调用函数gethostbyname(3)把主机名(bsdi)转换成32bit的IP地址 (2) FTP客户端请求TCP用得到的IP地址建立连接

arp与rarp

图解ARP协议(六)RARP与IARP:被遗忘的兄弟协议

一.概述 在我第一次接触ARP协议的时候,发现这协议挺简单的,"一去一回通过IP拿到MAC地址",整个过程在1s内就搞定了.后面学到了代理ARP,发现也不过是变了个法子,做了次"欺骗",本质还是一样.接下来又学到了免费ARP,顿时觉得网络协议设计者太牛了,一个协议居然能折腾出这么多玩法,连"地址检测"都能实现.等学到了ARP嗅探和欺骗,又发现其实黑帽子更爱折腾,谁能想到这么简单的协议,居然能制造工具出来做内网探测和欺骗攻击,引发这么大的危害. 当

TCP/IP协议——ARP详解(转载)

本文主要讲述了ARP的作用.ARP分组格式.ARP高速缓存.免费ARP和代理ARP. 1.学习ARP前要了解的内容 建立TCP连接与ARP的关系 应用接受用户提交的数据,触发TCP建立连接,TCP的第一个SYN报文通过connect函数到达IP层,IP层通过查询路由表: 如果目的IP和自己在同一个网段: 当IP层的ARP高速缓存表中存在目的IP对应的MAC地址时,则调用网络接口send函数(参数为IP Packet和目的MAC))将数据提交给网络接口,网络接口完成Ethernet Header