ARP协议
ARP协议
1.简介
ARP(Address Resolution Protocol,地址解析协议)
在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。但是仅仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因此发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理地址的映射,APR就是实现这个功能的协议。
2.原理
主机以广播的方式,发送包含目标IP地址的包到网络上的所有主机,然后接收返回信息,以此来确定目标地址的MAC地址,收到响应信息后,将IP地址和MAC地址的映射缓存一段时间(下次请求可以先查缓存,这样节省时间)。
3.功能
ARP是IPv4中必不可少的一种协议,它的主要功能是:
- 将IP地址解析为MAC地址
- 维护IP地址与MAC地址的映射关系的缓存,即ARP表项
- 实现网段内重复IP地址的检测
4.类型
4.1 动态ARP
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,也可以被静态ARP表项覆盖。
动态ARP适用于拓扑结构复杂、通信实时性要求高的网络。
4.2 静态ARP
静态ARP表项是由网络管理员手工建立的IP地址和MAC地址之间固定的映射关系。静态ARP表项不会被老化,不会被动态ARP表项覆盖。
正常情况下网络中设备可以通过ARP协议进行ARP表项的动态学习,生成的动态ARP表项可以被老化,可以被更新。但是当网络中存在ARP攻击时,设备中动态ARP表项可能会被更新成错误的ARP表项,或者被老化,造成合法用户通信异常。
静态ARP表项不会被老化,也不会被动态ARP表项覆盖,可以保证网络通信的安全性。静态ARP表项可以限制本端设备和指定IP地址的对端设备通信时只使用指定的MAC地址,此时攻击报文无法修改本端设备的ARP表中IP地址和MAC地址的映射关系,从而保护了本端设备和对端设备间的正常通信。一般在网关设备上配置静态ARP表项。
静态ARP表项分为短静态ARP表项和长静态ARP表项。
-
短静态ARP表项:手工建立IP地址和MAC地址之间固定的映射关系,未同时指定VLAN和出接口。
如果出接口是处于二层模式的以太网接口,短静态ARP表项不能直接用于报文转发。当需要发送报文时,设备会先发送ARP请求报文,如果收到的ARP应答报文中的源IP地址和源MAC地址与所配置的IP地址和MAC地址相同,则将收到ARP应答报文的VLAN和接口加入该静态ARP表项中,后续设备可直接用该静态ARP表项转发报文。
-
长静态ARP表项:手工建立IP地址和MAC地址之间固定的映射关系,并同时指定该ARP表项所在VLAN和出口。
长静态ARP表项可以直接用于报文转发。建议用户采用长静态ARP表项。
4.3 免费ARP/无故ARP(Gratuitous ARP)
设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。
作用:
-
IP地址冲突检测
当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。
-
用于通告一个新的MAC地址
发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。
-
网关利用免费ARP防止ARP攻击
有些网关设备在一定的时间间隔内向网络主动发送免费ARP报文,让网络内的其他主机更新ARP表项中的网关MAC地址信息,以达到防止或缓解ARP攻击的效果。 -
利用免费ARP进行ARP攻击
ARP协议并不只在发送了ARP请求才接收ARP应答,计算机只要接收到ARP应答数据包,就会使用应答中的IP和MAC地址对本地的ARP缓存进行更新。主机可以构造虚假的免费ARP应答,将ARP的源MAC地址设为错误的MAC地址,并把这个虚假的免费ARP应答发送到网络中,那么所有接收到这个免费ARP应答的主机都会更新本地ARP表中相应IP地址对应的MAC地址。更新成功后,这些主机的数据报文就会被转发到错误的MAC地址,从而实现了ARP欺骗的攻击。
4.4 代理ARP
代理ARP就是通过使用一个主机(通常为router),来作为指定的设备使用自己的 MAC 地址来对另一设备的ARP请求作出应答。
为什么需要代理ARP?
先要了解,路由器的重要功能之一就是把局域网的广播包限制在该网内,阻止其扩散,否则会造成网络风暴。
ARP请求是个广播包,它询问的对象如果在同一个局域网内,就会收到应答。但是如果询问的对象不在同一个局域网该如何处理?路由器就提供了代理ARP为这个问题提供了解决方案。
工作流程:
两台主机A和B处于同一网段但不同的广播段(不在同一物理网络上)时,主机A发送ARP请求主机B的MAC地址时,因为路由器不转发广播包的原因,ARP请求只能到达路由器。如果路由器启用了代理ARP功能,并知道主机B属于它连接的网络,那么路由器就用自己接口的MAC地址代替主机B的MAC地址来对主机A进行ARP应答。主机A接收ARP应答,但并不知道代理ARP的存在。
代理ARP的优缺点:
-
优点:
代理ARP能在不影响路由表的情况下添加一个新的Router,使子网对该主机变得透明化。一般代理ARP应该使用在主机没有配置默认网关或没有任何路由策略的网络上。
-
缺点:
从工作流程可以看到,这其实是一种ARP欺骗。而且,通过两个物理网络之间的路由器的代理ARP功能其实互相隐藏了物理网络,这导致无法对网络拓扑进行网络概括。此外,代理ARP增加了使用它的那段网络的ARP流量,主机需要更大的ARP缓存空间,也不会为不使用ARP进行地址解析的网络工作。

浙公网安备 33010602011771号