ARP
简介
ARP全称为地址解析协议,处于TCP/IP协议族中的链路层。ARP协议是任何以太网设备都必须支持的协议,实现三层IP地址与二层MAC地址之间的动态映射。
定义
ARP(Address Resolution Protocol)用于将IP地址解析为MAC地址。ARP表项可以分为动态和静态两种类型。另外ARP还有扩展应用功能,包括代理ARP、免费ARP等。
目的
局域网中每台主机或设备都有一个32位的IP地址,这个地址用于该主机的所有通信。IP地址的分配独立于机器的硬件地址。而在以太网中,主机或路由器是根据48位的MAC地址来发送、接收以太网数据帧的,这个MAC地址又称为物理地址或硬件地址,是制造设备时分配到以太网接口中的。因而,在实际的网络互联中,需要一种地址解析的机制来为这两种不同的地址形式提供映射。
ARP协议主要是解决以上问题,此外ARP特性中还包括如下的应用特性:
动态ARP:利用ARP报文,ARP动态执行并自动进行IP地址到以太网MAC地址的解析,无需网络管理员手工处理。
静态ARP:建立IP地址和MAC地址之间固定的映射关系,在主机和路由器上不能动态调整此映射关系。需要网络管理员手工添加。
代理ARP:也叫路由式代理ARP。当主机上没有配置缺省网关地址(即不知道如何到达本网络的中介系统),它可以发送一个ARP请求(请求目的主机的MAC地址),启动代理ARP功能的设备收到这样的请求后,会使用自己的MAC地址作为该ARP请求的回应,使得处于不同物理网络但网络号相同的内部主机之间可以正常的相互通信。
免费ARP:用于检查重复的IP地址和通告新的MAC地址。
授权ARP:只在启用DHCP服务器功能的设备上实现,且只适用于DHCP服务器与DHCP客户端在同一网段的组网环境,防止攻击者仿冒其他合法DHCP客户端的IP地址或MAC地址对网络进行攻击。
原理描述
介绍ARP的实现原理。
ARP地址解析过程
TCP/IP协议的设计人员根据以太网这种具有广播特性的网络开发出的ARP地址解析协议。主机在仅知道同一物理网络上的目的端的IP地址情况下,通过ARP解析到目的端的MAC地址。即使网络上的主机发生变化,比如主机的增加或减少、主机更换计算机的网卡等,仍可以完成从IP地址到MAC地址的转换,并且这个转换关系可以动态更新。
ARP是通过以下两个步骤完成地址解析过程的。
1.ARP请求
如图1所示,当主机A仅知道主机B的IP地址而不知道其MAC地址时,它广播一个ARP请求报文,请求得到主机B的MAC地址。
图1 ARP请求过程
2.ARP响应
因为主机A发送的是一个广播报文,所以包括主机B在内的所有主机都会接收到这个请求。由于ARP请求报文的目的IP地址是主机B的IP地址,所以只有主机B会响应这个ARP请求。如图2所示,主机B向主机A发出一个包含其MAC地址的ARP响应报文。
当主机A接收到主机B的响应报文后,就用这个MAC地址和主机B通信。
图2 ARP响应过程
ARP老化机制
高速缓存
如果每次主机A向主机B发送一个分组前都要发送一个广播的ARP请求报文,则会增加很多网络的通信量。而且网络上的所有机器都必须接收和处理这个广播的ARP请求报文,这也极大的影响了网络运行效率。
为了解决以上问题,每台主机上都维护着一个高速缓存,这是ARP高效运行的一个关键。在这个高速缓存中,存放最近获得的IP地址到MAC地址的映射关系。
发送方在每次发送分组时,都先在缓存中查找目的IP地址所对应的MAC地址。如果ARP缓存中有对应的MAC地址,主机就不会再发送ARP请求报文,而是直接将分组发至这个MAC地址。如果ARP缓存中没有对应的MAC地址时,主机才会发送广播的ARP请求报文。
动态ARP表项的老化超时时间
如图2所示,当主机B回应了主机A的ARP请求后,在主机A的缓存中会形成主机B的IP地址和其MAC地址的映射关系。但是,如果主机B发生故障后或者更换了网卡时,主机A没有得到任何关于主机B的任何通告,于是主机A仍会继续将分组发送给主机B。造成地址解析出现错误的原因就是主机A中的缓存表的信息没有得到及时的更新。
为了减少地址解析过程中所出现的错误,ARP高速缓存中的表项一般都会设定一个定时器。当达到定时器的动态ARP表项的老化超时时间后,删除掉这个表项。通过设置定时器,在地址解析过程中出现错误的现象得到了改善但并没有完全消除,其原因在于时延。如果定时器的动态ARP表项的老化超时时间是N秒,发送方只有等到N秒后才能检测到接收方出现了故障,在此期间发送方缓存表的信息还是没有得到及时的更新。
动态ARP表项的老化探测次数
除了设置定时器中动态ARP表项的老化超时时间,还可以通过设置动态的探测次数来减少地址的解析错误。在一个动态ARP表项老化之前,系统先进行探测,如果超过设置的探测次数后仍没有应答,则此ARP表项将被删除。
静态ARP
静态ARP是指IP地址和MAC地址之间有固定的映射关系,在主机和路由设备上不能动态调整此映射关系。静态ARP需要网络管理员手动配置。
配置静态ARP表项主要应用于以下情况:
为了将目的IP地址不在本网段的报文,穿过本网段的某个网关,使得到该IP地址的报文能通过该网关进行转发。
当用户需要过滤掉一些非法的报文时,可以将这些非法报文的目的IP地址绑定到某个不存在的MAC地址。
将IP地址与MAC地址绑定,防止ARP flood等攻击。
静态ARP表项的优先级高于动态ARP表项。如果ARP表中存在某IP地址的动态ARP表项,当手动配置同一IP地址的静态ARP表项时,该表项将覆盖原有的动态ARP表项。
动态ARP
一般情况下,ARP动态执行并自动进行IP地址到以太网MAC地址的解析,无需网络管理员的介入。在FW的实现中,如果收到的ARP报文满足以下条件中的任何一条,系统将创建或更新ARP表项。
ARP报文的源IP地址与入接口IP地址在同一网段,且不是广播地址,目的IP地址是本接口IP地址。
ARP报文的源IP地址与入接口IP地址在同一网段,且不是广播地址,目的IP地址是本接口的VRRP(Virtual Router Redundancy Protocol)虚拟IP地址。
ARP报文的目的IP地址是入接口上配置的NAT地址池中的地址。
如果收到的ARP报文的源IP地址在入接口的ARP表中已经存在对应表项,也将对ARP表项进行更新。
代理ARP
代理ARP主要是通过代理的方式来解决网络互通问题的ARP实现功能。
代理ARP有以下特点:
所有处理在ARP子网网关(ARP Subnet Gateways)进行,所连网络中的主机不必做任何改动。
在主机端看不到子网,只是一个标准IP网络。
代理ARP只影响主机的ARP高速缓存,对网关的ARP高速缓存和路由表没有影响。
使用代理ARP后,主机应该减小ARP老化时间,以尽快使无效ARP项失效,减少发给路由器而路由器却不能转发的报文。
本设备支持路由式代理ARP。路由式代理ARP就是使那些在同一网段却不在同一物理网络上的计算机或路由器能够相互通信的一种功能。在实际应用中,如果连接路由器的当前主机上没有配置缺省网关地址(即不知道如何到达本网络的中介系统),此时将无法进行数据转发。路由式代理ARP可以解决这个问题,主机发送一个ARP请求(请求目的主机的MAC地址),使能代理ARP功能的路由器收到这样的请求后,会使用自己的MAC地址作为该ARP请求的回应,以此进行数据转发。
免费ARP
设备主动使用自己的IP地址作为目标地址发送ARP请求,此种方式称免费ARP。免费ARP有以下几方面的作用:
用于检查重复的IP地址:正常情况下应当不能收到ARP回应,如果收到,则表明本网络中存在与自身IP地址重复的地址。
用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变了,为了能够在ARP表项老化前就通告所有主机,发送方可以发送一个免费ARP。
双机热备组网中,主备状态发送变化时,新的主用设备会发送一次VRRP虚拟IP地址的免费ARP。
双机热备组网中,VRRP备份组状态为Active的设备会定期发送VRRP虚拟IP地址的免费ARP。
授权ARP
授权ARP(Authorized Address Resolution Protocol)是指DHCP服务器在为客户端成功分配IP地址的同时,会自动在ARP映射表中添加一条包含客户端MAC地址、IP地址的ARP表项,即授权ARP表项。
授权ARP表项
授权ARP表项是一类特殊的静态ARP表项,不会被老化,但当DHCP客户端下线后,该客户端对应的授权ARP表项将自动从ARP映射表中删除。
授权ARP表项具有较高的优先级,新添加的授权ARP表项可以覆盖相同的动态ARP表项而同时不被新添加的相同动态ARP表项所覆盖;但同时其优先级低于静态ARP表项,可以被相同的静态ARP表项所覆盖。
授权ARP的工作机制
授权ARP的工作机制是ARP的工作机制和DHCP的工作机制的结合。目前,授权ARP特性只在启用DHCP服务器功能的设备上实现,且只适用于DHCP服务器与DHCP客户端在同一网段的组网环境,不适用于DHCP中继组网环境。
授权ARP的工作机制如下:
1.DHCP客户端以广播方式发送DHCPDISCOVER报文。DHCP服务器接收到客户端的DHCPDISCOVER报文后,回应携带预分配的IP地址和其他网络配置参数的DHCPOFFER报文。
2.如果有多台DHCP服务器向该客户端发来DHCPOFFER报文,DHCP客户端只接收第一个收到的DHCPOFFER报文,然后以广播方式向各DHCP服务器回应DHCPREQUEST报文。DHCPREQUEST报文中包含DHCP客户端的MAC地址以及向所选定的DHCP服务器请求IP地址的内容。
3.DHCP服务器收到DHCP客户端回答的DHCPREQUEST报文后,便向客户端发送包含它所提供的IP地址和其他网络配置参数的DHCPACK确认报文。同时DHCP服务器会在自身的ARP表项中添加一条包含了DHCP客户端MAC地址、IP地址的授权ARP表项。
4.因为授权ARP表项的优先级高于动态ARP表项,所以授权ARP可以阻止DHCP服务器对非法ARP应答进行动态学习。如果攻击者冒用合法DHCP客户端的IP地址或MAC地址发送ARP请求,因为IP地址或MAC地址与网关(DHCP服务器与DHCP客户端在同一网段的组网环境下,DHCP服务器地址通常为网关地址)记录的授权ARP表项不匹配,伪造的ARP请求将不能得到应答,从而限制冒用合法IP地址或MAC地址的攻击者通过网关访问网络,增加了网络的安全性。
内容为官方文档摘抄,仅供个人学习