引言:相比大家经常在家上网或者和别人共享上网的朋友一定遭受过ARP***吧。那网速的锐减,以及不停的断线一定把大家弄得一头雾水。一提起ARP大家就恨之入骨。下面我将详细的讲解一下ARP协议的解析过程,以及防范措施以帮助大家更好的认识ARP协议,以提高自己的安全意识。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

 

 

MAC :
讲解ARP协议之前我们首先认识一下什么叫做MAC地址

 

MAC地址又叫做硬件地址或物理地址,他存放与网卡的rom中,用来标识网卡的唯一性。说白了就是说我这张网卡是全世界独一无二的(呵呵,有点像人的指纹和商品上的防伪标识)。现在我们来看一下自己电脑的MAC地址,在命令提示符下输入ipconfig/all
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 
 
画红线的地址就是 MAC 自己网卡的 MAC 地址了 .MAC 地址由 48 为二进制数组成,通常分为 6 段。前 24 位是生产厂商向 IEEE 申请统一分配,后 24 位由厂商自己分配。(注意: MAC 地址第八位是 0 时代表单播地址, 1 时代表主播地址,网卡的第八位一定是 0. 还没有见过谁的网卡向一个组的人能够发送信息呢 O( _ )O~ )。

 

ARP 协议:

 

 

Arp 协议的全称是 Address Resolution Protocl 中文名是地址解析协议。用来把目标主机的 ip 地址转换为 MAC 地址以实现二层数据链路层的通信。
(1) ARP 映射表

ARP 协议规定每一个主机都有一个 ARP 高速缓存,里面存有所在局域网的个主机和路由器的 ip 地址到硬件地址的一张映射表。根据存储类型, ARP 地址转换表可以分为动态和静态两种。

 

 

 

(2) ARP 解析过程。

 

假如同一局域网有 A,B,C,D 四台主机。其中 A 内的 ARP 映射表如下图所示:
IP
MAC   地址
  B
192.168.0.1
00-09-bf-55-69-a2-66
  C
192.168.0.2
.......................................

  D
192.168.0.3
00-65-85<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />-1a-aa-4b

 

 

 

 

 

 

 

假如 A 主机要与 C 主机通信, A 主机只知道 C 主机的 ip 地址。要使 A 主机真正的和 C 主机通信怎么办呢。 A 主机必须在发送数据包中填写 C 主机的 mac 地址。具体过程如下:
(1) 首先 A 主机查看自己的映射表中是否有 C mac 地址,如果有则直接发送信息,如果没有就以广播的形式向 A 所在的本局域网所在的主机发送 ARP 请求报文。意思是说本主机大叫一声“谁的 ip 地址是 192.168.0.2 ?请把你的 ip 地址 mac 地址发送过来!”
(2) C 收到次广播后,向 A 返回 replay 报文,意思是对 A 说“我的 ip 地址是 192.168.0.2 我的 mac 地址是 xx-xx-xx-xx-xx-xx
(3) A ARP 中收到 replay 后把 C mac 地址存在自己的映射表中,然后将报文发送给 C

 

 

 

(3) ARP 欺骗原理

 

 

 

 

 

如图所示 A,C 代表目标主机,也就是被欺骗的主机,     B 主机代表***者,进行欺骗。其中 B 主机不断向 A 发送 ARP Replay 包中包含 C ip 地址所对应的 B MAC 地址; B 主机不断向 C 发送 ARP Replay 包中包含 A ip 地址所对应的 B MAC 地址 . A C 通信的时候 A C 之间通信的数据包都先达到 B ,从而对数据包进行修改,然后再传给目标接受数据包的主机,但 A C 却对此全然不知,因此 B 就实现了对 A C 的监听。

 

 

 

4 ARP 欺骗的防御

 

知道了 ARP 欺骗的方法和危害,我们给出一些初步的防御方法:

 

1. 不要把你的网络安全信任关系建立在 ip 地址的基础上或硬件 mac 地址基础上,( rarp 同样存在欺骗的问题),理想的关系应该建立在 ip+mac 基础上。

 

2. 设置静态的 mac-->ip 对应表,不要让主机刷新你设定好的转换表。

 

3. 除非很有必要,否则停止使用 ARP ,将 ARP 做为永久条目保存在对应表中。在 linux 下可以用 ifconfig -arp 可以使网卡驱动程序停止使用 ARP

 

4. 使用代理网关发送外出的通讯。

 

5. 修改系统拒收 ICMP 重定向报文