什么是ARP
ARP (Address Resolution Protocol ) 地址解析协议。作用:IPMAC
简单来说:
      任何网络访问(第一次)都会事先发一次arp的请求,以获取目地主机的物理地址。
•         不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
•         每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
•         当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。 
ARP协议的基本思想
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
 
 
 
 
 
 
使用ARP高速缓存。
          当主机(或路由器)A通过ARP请求得到B的物理地址时,就将此“IP地址——物理地址绑定存储在高速缓存中。这样,对于后续发往B的分组,通过查找高速缓存获得物理地址。
ARP缓存
Arp –s添加静态ARP缓存表项,该表项是永久性的,除非用arp –d删除;
动态arp缓存表项有有限的生存时间,在pcpingip后,获得该ipmac地址后,Arp –a观察动态arp缓存的生存时间;观察在2分钟内未使用该arp表项的话,该表项会被自动删除,如果在2分钟内使用了该表项,会从使用之时起,该表项的生存时间再延长2分钟。
arp缓存表项的生存期
在默认情况下,Windows Server 2003家族和Windows XP中,ARP缓存中的表项仅存储2分钟。如果一个ARP缓存表项在2分钟内被用到,则其期限再延长2分钟,直到最大生命期限10分钟为止。超过10分钟的最大期限后,ARP缓存表项将被移出,并且通过另外一个ARP请求——ARP回应交换来获得新的对应关系。
 
 
 
 
 
 
特殊的ARP
•         代理ARP
   向另一个网络发送ARP请求时,路由器主机返回自己的mac作为目的地址
•         免费ARP
   发给自己的ARP,一般发生在系统引导时,来获得网络接口的MAC地址。

 

免费ARP和重复的IP地址检测
•         ARP可以被用来检测重复的IP地址,这是通过传送一种叫做免费ARPARP请求来完成的。免费ARP就是一个发往自己IP地址的ARP请求。在免费ARP中,SPA(发送者协议地址)TPA(目标协议地址)被设置成同一个IP地址。
•         如果节点发送一个发往自己IP地址的ARP请求,就不应收到任何一个ARP回应帧,这样节点就可以判断没有其他节点使用跟它相同的IP地址。如果节点发送一个发往自己IP地址的ARP请求,结果收到ARP回应,这样此节点就可以判断有另外一个节点使用同样的IP地址。
•         如果发送了3个免费ARP后,都没有收到ARP回应,IP就假定此IP地址在此网络段中是唯一的。
ARP协议漏洞
•         漏洞的根源就是ARP协议是无连接的
   没有ARP的请求也可以ARP回复,
   最致命的就是操作系统收到这个请求后就会更新ARP缓存。
  
   ARP请求也可以伪造。
   ARP主机的缓存中毒!

 

 

 

ARP欺骗***——仿冒网关
p            ***者发送伪造的网关ARP报文,欺骗同网段内的其它主机。

p            主机访问网关的流量,被重定向到一个错误的MAC地址,导致该用户无法正常访问外网。

    ARP欺骗***——欺骗网关

p      ***者伪造虚假的ARP报文,欺骗网关

p      网关发给该用户的所有数据全部重定向到一个错误的MAC地址,导致该用户无法正常访问外网

  

ARP欺骗***——欺骗终端用户
p            ***者伪造虚假的ARP报文,欺骗相同网段内的其他主机。

p            网段内的其他主机发给该用户的所有数据都被重定向到错误的MAC地址,同网段内的用户无法正常互访。

ARP泛洪***
p            ***者伪造大量不同ARP报文在同网段内进行广播,导致网关ARP表项被占满,合法用户的ARP表项无法正常学习,导致合法用户无法正常访问外网