ARP协议

2020/4/5 19:01:00

什么是ARP协议

 

ARP协议,全称“Address Resolution Protocol”,中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应主机的物理地址(MAC地址)。

 

在TCP/IP的网络环境下,每个联网的主机都会被分配一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传输,还必须要知道对方目的主机的物理地址(MAC)才行。这样就存在把IP地址变换成物理地址的地址转换的问题。

 

在以太网环境,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为目的主机48位以太网的地址(MAC地址)。这就需要在互联层有一个服务或功能将IP地址转换为相应的物理地址(MAC地址),这个服务或者功能就是ARP协议。

  所谓的“地址解析”,就是主机在发送帧之前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MA地址,以保证主机间相互通信的顺利进行。

 

ARP 协议和DNS有点相像之处。不同点是:DNS是在域名和IP之间的解析,另外,ARP协议不需要配置服务,而DNS要配置服务才行。

 

ARP协议要求通信的主机双方必须在同一个物理网段(即局域网环境)!

 

ARP小结:

 

1、ARP全称“Address Resolution Protocol”

  2、实现局域网内通过IP地址获取主机的MAC地址。

  3、MAC地址48位主机的物理地址,局域网内唯一。

  4、ARP协议类似DNS服务,但不需要配置服务。

  5、ARP协议是三层协议。

 

ARP缓存表

 

在每台安装有TCP/IP协议的电脑里都会有一个ARP缓存表(windows命令提示符里输入arp -a即可),表里的IP地址与MAC地址是一一对应的

 

 

arp常用命令:

arp -a 查所有记录

arp -d 清除

arp -s 绑定IP和MAC

 

ARP缓存表是把双刃剑

(1)主机有了arp缓存表,可以加快arp的解析速度,减少局域网内广播风暴。

(2)正是有了arp缓存表,给恶意黑客带来了攻击服务器主机的风险,这个就是arp欺骗攻击。

(3)切换路由器,负载均衡等设备时,可能会导致短时网络中断。

 

MAC(Media Access Control或者Medium Access Control)地址,意译媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负载IP地址,第二层数据链路层则负责MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。

 

为什么要使用ARP协议

OSI模型把网络工作分为七层,彼此不直接打交道,只通过接口(layer interface)。IP地址工作在第三层,MAC地址工作在第二层。当协议在发送数据包时,需要先封装第三层IP地址,第二层MAC地址的报头,但协议只知道目的节点的IP地址,不知道目的节点的MAC地址,又不能跨第二、三层,所以得用ARP协议服务,来帮助获取到目的节点的MAC地址。

 

ARP协议是二层协议,还是三层协议?

工作在二层,是三层协议。

 

总结OSI7层不同的层对应的协议:

 

OSI七层模型及协议-包封装解封装详解

http://www.tudou.com/programs/view/sP9JY_KranA/

TCP三次握手四次断开原理过程详解

http://www.tudou.com/programs/view/XjHCDedZQa8

 

ARP在生成环境产生的问题及解决办法:

(1)ARP病毒,ARP欺骗。

(2)高可用服务器对之间切换时要考虑ARP缓存的问题。

(3)路由器等设备无缝迁移时要考虑ARP缓存的问题,例如:更换办公室的路由器。

 

ARP欺骗原理

ARP攻击就是通过伪造IP地址和MAC地址对实现ARP欺骗的,如果一台主机中了ARP病毒,那么它就能够在网络中产生大量的ARP通信量(它会以很快的频率进行广播),以至于使网络阻塞,攻击者只要持续不断的发送伪造的ARP响应宝就能更改局域网中目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。

ARP攻击主要是存在于局域网网络中,局域网中若有一个人感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其他计算机的通信信息,并因此造成网内其他计算机的通信故障。

 

服务器切换ARP问题

当网络中一台提供服务的机器宕机后,当在其他运行正常的机器添加宕机的机器的IP时,会因为客户端的ARP table cache的地址解析还是宕机的机器的MAC地址。从而导致,即使在其他运行正常的机器添加宕机的机器的IP,也会发生客户依然无法访问的情况。

解决办法是:当机器宕机,IP地址迁移到其他机器上时,需要通过arping命令来通知所有网络内机器清除其本地的ARP table cache,从而使得客户机访问时重新广播获取MAC地址

这个在自己开发脚本实现服务器的高可用时是要必须考虑的问题之一,几乎所有的高可用软件都会考虑这个问题。ARP广播而进行新的地址解析。