引言:相比大家经常在家上网或者和别人共享上网的朋友一定遭受过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重定向报文
转载于:https://blog.51cto.com/nanwangting/198814