ARP一.简介ARP,即地址解析协议,实现通过IP地址得知其物理地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。另有电子防翻滚系统也称为ARP。二.基本功能在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(addressresolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARPProxy)。三.工作原理当一个基于TCP/IP的应用程序需要从一台主机发送数据给另一台主机时,它把信息分割并封装成包,附上目的主机的IP地址。然后,寻找IP地址到实际MAC地址的映射,这需要发送ARP广播消息。当ARP找到了目的主机MAC地址后,就可以形成待发送帧的完整以太网帧头。最后,协议栈将IP包封装到以太网帧中进行传送。如图1所示,描述了ARP广播过程。图1ARP广播在图1中,当主机A要和主机B通信(如主机APing主机B)时。主机A会先检查其ARP缓存内是否有主机B的MAC地址。如果没有,主机A会发送一个ARP请求广播包,此包内包含着其欲与之通信的主机的IP地址,也就是主机B的IP地址。当主机B收到此广播后,会将自己的MAC地址利用ARP响应包传给主机A,并更新自己的ARP缓存,也就是同时将主机A的IP地址/MAC地址对保存起来,以供后面使用。主机A在得到主机B的MAC地址后,就可以与主机B通信了。同时,主机A也将主机B的IP地址/MAC地址对保存在自己的ARP缓存内。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报文格式ARP报文被封装在以太网帧头部中传输,如图2所示,是ARP请求协议报文头部格式。图2ARP请求协议报文头部格式图2中黄色的部分是以太网(这里是EthernetII类型)的帧头部。其中,第一个字段是广播类型的MAC地址:0XFF-FF-FF-FF-FF-FF,其目标是网络上的所有主机。第二个字段是源MAC地址,即请求地址解析的主机MAC地址。第三个字段是协议类型,这里用0X0806代表封装的上层协议是ARP协议。接下来是ARP协议报文部分。其中各个字段的含义如下:硬件类型:表明ARP实现在何种类型的网络上。协议类型:代表解析协议(上层协议)。这里,一般是0800,即IP。硬件地址长度:MAC地址长度,此处为6个字节。协议地址长度:IP地址长度,此处为4个字节。操作类型:代表ARP数据包类型。0表示ARP请求数据包,1表示ARP应答数据包。源MAC地址:发送端MAC地址。源IP地址:代表发送端协议地址(IP地址)。目标MAC地址:目的端MAC地址(待填充)。目标IP地址:代表目的端协议地址(IP地址)。ARP应答协议报文和ARP请求协议报文类似。不同的是,此时,以太网帧头部的目标MAC地址为发送ARP地址解析请求的主机的MAC地址,而源MAC地址为被解析的主机的MAC地址。同时,操作类型字段为1,表示ARP应答数据包,目标MAC地址字段被填充以目标MAC地址。四.地址解析报文封装ARP/RARP报文是作为普通数据直接封装在物理帧(以太网帧)中进行传输的,ARP/RARP报文封装在以太网物理帧中的格式如下。以太网帧的封装格式0x0806:表示ARP类型,0X8035表示RARP类型。ARP/RARP作为普通数据放在数据区,由于它(ARP/RARP报文)只有28字节,后面必须增加18个字节的填充PAD,以达到以太网帧的最小长度要求(46字节)。四.RARP反向地址解析协议反向地址解析协议用于一种特殊情况,如果站点被初始化后,只有自己的物理网络地址而没有IP地址,则它可以通过RARP协议,并发出广播请求,征求自己的IP地址,而RARP服务器则负责回答。这样无IP的站点可以通过RARP协议取得自己的IP地址,这个地址在下一次系统重新开始以前都有效,不用连续广播请求。RARP广泛用于获取无盘工作站的IP地址。五.ARP缓存表查看方法ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp-a”就可以查看ARP缓存表中的内容了,如附图所示。arp-a用“arp-d”命令可以删除ARP表中所有的内容;用“arp-d+空格+指定ip地址”可以删除指定ip所在行的内容用“arp-s”可以手动在ARP表中指定IP地址与MAC地址的对应,类型为static(静态),静态ARP缓存除非手动清除,否则不会丢失。无论是静态还是动态ARP缓存,重启启动计算机后都会丢失。六.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]arparp-dinet_addr[if_addr]arp-sinet_addrether_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浏览器频繁出错,以及一些常用软件出现故障等。如果局域网中是通过身份认证上网的,会突然出现可认证,但不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令arp-d后,又可恢复上网。ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。八.常用的维护方法搜索网上,目前对于ARP攻击防护问题出现最多是绑定IP和MAC和使用ARP防护软件,也出现了具有ARP防护功能的路由器。下面来了解以下三种方法