以太网 协议中规定,同一局域网 中的一台主机 要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议 栈中,网络层 传输层 只关心目标主机 的IP地址。这就导致在以太网 中使用IP协议时,数据链路层 的以太网协议接到上层IP协议提供的数据中,只包含目的主机 的IP地址。于是需要一种方法,根据目的主机 的IP地址,获得其MAC地址。这就是ARP协议 要做的事情。所谓地址解析(address resolution)就是主机 在发送帧前将目标IP地址转换成目标MAC地址的过程。
另外,当发送主机 和目的主机不在同一个局域网 中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由 转发才可以。所以此时,发送主机 通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网 外的路由器 的某个端口的MAC地址。于是此后发送主机 发往目的主机的所有帧,都将发往该路由器 ,通过它向外发送。这种情况称为ARP代理(ARP Proxy)
工作原理
ARP
在每台安装有TCP/IP协议 的电脑里都有一个ARP缓存 表,表里的IP地址与MAC地址 是一一对应的。
ARP工作原理
主机 A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存 表中寻是否有目标IP地址。如果到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存 表中没有到目标IP地址,主机 A就会在网络上发送一个广播,A主机MAC地址是“主机A的MAC地址”,这表示向同一网段内的所有主机发出这样的询问:“我是192.168.1.5,我的硬件地址是"主机A的MAC地址".请问IP地址为192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机 A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时A和B还同时都更新了自己的ARP缓存 表(因为A在询问的时候把自己的IP和MAC地址一起告诉了B),下次A再向主机 B或者B向A发送信息时,直接从各自的ARP缓存表里查就可以了。ARP缓存 表采用了老化机制(即设置了生存时间TTL),在一段时间内(一般15到
20分钟)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
ARP攻击 就是通过伪造IP地址和MAC地址实现ARP欺骗 ,能够在网络中产生大量的ARP通信量使网络阻塞 ,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机 ARP缓存 中的IP-MAC条目,造成网络中断或中间人攻击 
ARP攻击主要是存在于局域网 网络中,局域网中若有一个人感染ARP木马 ,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机 的通信信息,并因此造成网内其它计算机的通信故障。
RARP的工作原理:
1. 发送主机 发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器 分配一个IP地址;
2. 本地网段上的RARP服务器 收到此请求后,检查其RARP列表,查该MAC地址对应的IP地址;
3. 如果存在,RARP服务器 就给源主机 发送一个响应数据包 并将此IP地址提供给对方主机使用;
4. 如果不存在,RARP服务器 对此不做任何的响应;
5. 源主机 收到从RARP服务器 的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。
6.如果在第1-3中被ARP病毒 攻击,则服务器 做出的反映就会被占用,源主机 同样得不到RARP服务器的响应信息,此时并不是服务器没有响应而是服务器返回的源主机的IP被占用。
数据结构
ARP协议的数据结构 
typedef structarphdr
{
unsigned short arp_hrd;/*硬件类型*/
unsigned short arp_pro;/*协议类型*/
unsigned char arp_hln;/*硬件地址长度*/
unsigned char arp_pln;/*协议地址 长度*/
unsigned short arp_op;/*ARP操作类型*/
unsigned char arp_sha[6];/*发送者的硬件地址*/
unsigned long arp_spa;/*发送者的协议地址 */
unsigned char arp_tha[6];/*目标的硬件地址*/
unsigned long arp_tpa;/*目标的协议地址 */
}ARPHDR,*PARPHDR;
RARP 反向地址解析协议
反向地址解析协议用于一种特殊情况,如果站点被初始化后,只有自己的物理网络地址 而没有IP地址,则它可以通过RARP协议 ,并发出广播请求,征求自己的IP地址,而RARP服务器 则负责回答。这样无IP的站点可以通过RARP协议取得自己的IP地址,这个地址在下一次系统 重新开始以前都有效,不用连续广播请求。RARP广泛用于获取无盘工作站 的IP地址。
ARP缓存表查看方法及修改
ARP缓存 表是可以查看的,也可以添加和修改。在命令提示符 下,输入“arp -a”就可以查看ARP缓存 表中的内容了,如附图所示。
arp -a
用“arp -d”命令可以删除ARP表中所有的内容;
用“arp+空格+ <指定ip地址>+空格-d” 可以删除指定ip所在行的内容
用“arp -s”可以手动在ARP表中指定IP地址与MAC地址的对应,类型为static(静态 ),静态 ARP缓存 除非手动清除,否则不会丢失。无论是静态 还是动态ARP缓存 ,重启启动计算机 后都会丢失。
编辑本段 电子防翻滚系统
ARP英文全称是Anti Rolling Program,即电子防翻滚功能。它通过感知车辆的位置,调节发动机扭矩及各车轮的制动力,从而防止车辆在高速急转弯等紧急状况时发生翻车状况。如雪佛兰科帕奇 就标配了此系统。
编辑本段 ARP欺骗
其实,此起彼伏的瞬间掉线或大面积的断网大都是ARP欺骗在作怪。ARP欺骗攻击已经成了破坏网吧经营的罪魁祸首,是网吧老板和网管 员的心腹大患。从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器 ARP表的欺骗;另一种是对内网PC的网关欺骗 。第一种ARP欺骗的原理是——截获网关数据。它通知路由器 一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址 ,造成正常PC无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器 途径上网。在PC 看来,就是上不了网了,“网络掉线了”。一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。有些网管 员对此不甚了解,出现
故障时,认为PC没有问题,交换机 没掉线的“本事”,电信 也不承认宽带故障。而且如果第一种ARP欺骗发生时,只要重启路由器 ,网络就能全面恢复,那问题一定是在路由器了。为此,宽带路由器 背了不少“黑锅”。作为网吧路由器 的厂家,对防范ARP欺骗不得已做了不少分内、分外的工作。一、在宽带路由器 中把所有PC的IP-MAC输入到一个静态 表中,这叫路由器IP-MAC绑定。二、力劝网管 员在内网所有PC上设置网关的静态 ARP信息,这叫PC机IP-MAC绑定。一般厂家要求两个工作都要做,称其为IP-MAC双向绑定。显示和修改“地址解析协议”(ARP) 所使用的到以太网 的 IP 或令牌环 物理地址 翻译表。该命令只有在安装了 TCP/IP 协议之后才可用。
arp -a [inet_addr] [-N [if_addr]
arp
arp -d inet_addr [if_addr]
arp -s inet_addr ether_addr [if_addr]
参数
-a
通过询问 TCP/IP 显示当前 ARP 项。如果指定了 inet_addr,则只显示指定计算机 的 IP 和物理地址 
-g
与 -a 相同。
inet_addr
以加点的十进制 标记指定 IP 地址。
-N
显示由 if_addr 指定的网络界面 ARP 项。
if_addr
指定需要修改其地址转换 表接口的 IP 地址(如果有的话)。如果不存在,将使用第一个可
适用的接口。
-d
删除由 inet_addr 指定的项。
-s
在 ARP 缓存 中添加项,将 IP 地址 inet_addr 和物理地址 ether_addr 关联。物理地址 由以连字符 分隔的6 个十六进制字节给定。使用带点的十进制 标记指定 IP 地址。项是永久性的,即在超时到期后项自动从缓存 删除。
ether_addr
指定物理地址 
编辑本段 遭受ARP攻击后现象
ARP欺骗木马 的中毒现象表现为:使用局域网 时会突然掉线,过一段时间后又会恢复正常。
比如客户端 状态频频变红,用户频繁断网,IE浏览器 频繁出错,以及一些常用软件出现故障等。如果局域网 中是通过身份认证 不是tcpip协议包含的协议上网的,会突然出现可认证,但不能上网的现象(无法ping通网关 ),重启机器或在MS-DOS 窗口下运行命令 arp -d后,又可恢复上网。
ARP欺骗木马 只需成功感染一台电脑 ,就可能导致整个局域网 都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马 发作时除了会导致同一局域网 内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马 的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。
编辑本段 常用的维护方法
搜索网上,目前对于ARP攻击[1]防护问题出现最多是绑定IP和MAC和使用ARP防护软件 ,也出现了具有ARP防护功能的路由器 。下面来了解以下三种方法:静态绑定 Antiarp 具有ARP防护功能的路由器
静态绑定
最常用的方法就是做IP MAC 静态绑定 ,在网内把主机 和网关都做IP和MAC绑定。
欺骗是通过ARP的动态实时的规则欺骗内网机器,所以我们把ARP全部设置为静态 可以解决对内网PC的欺骗,同时在网关也要进行IP和MAC的静态绑定 ,这样双向绑定才比较保险。
方法:
对每台主机 进行IP和MAC地址静态绑定 
通过命令,arp -s可以实现 “arp –s IP MAC地址 ”。
例如:“arp –s 192.168.10.1 AA-AA-AA-AA-AA-AA”。
如果设置成功会在PC上面通过执行 arp -a 可以看到相关的提示:
Internet Address Physical Address Type
192.168.10.1 AA-AA-AA-AA-AA-AA static(静态)
一般不绑定,在动态的情况下:
Internet Address Physical Address Type
192.168.10.1 AA-AA-AA-AA-AA-AA dynamic(动态)
说明:对于网络中有很多主机 ,500台,1000台...,如果我们这样每一台都去做静态绑定,工作量是非常大的。,这种静态绑定 ,在电脑每次重起后,都必须重新在绑定,虽然也可以做一个批处理文件 ,但是还是比较麻烦的!
3.2 使用ARP防护软件
当前关于ARP类的防护软件出的比较多了,大家使用比较常用的ARP工具主要是欣向ARP工具,Antiarp 等。它们除了本身来检测出ARP攻击外,防护的工作原理是一定频率向网络广播正确的ARP信息。我们还是来简单说下这两个小工具。
3.2.1 欣向ARP工具

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。