ARP协议详解和运用(结尾附面试题)

ARP协议基础

(1)作用:
  根据目的的IP地址解析目的MAC地址。(为二层数据封装提供依据)主机或三层网络设备上会维护一张ARP表,用于存储IP地址和MAC地址的关系。

(2)触发条件:
  当需要访问目的IP地址在ARP缓存表不存在对应表项时;

(3)ARP报文:
  ①arp request(一般为广播发送):
    a)    当访问的目的IP地址为同一网段时,请求的访问目的IP地址对应的 MAC地址;
    b)    当访问的目的IP地址不在同一网段时,请求网关IP对应的MAC地址;

  ②arp reply(单播回复)
    a)    当收到请求报文,目的IP地址与接收接口的IP地址一致时,回复arp reply,包含自己接口IP地址与MAC地址的对应关系;
    b)    当收到请求报文,目的IP地址与接收接口的IP地址不一致时,如果没有开启ARP proxy功能,不会回复任何报文;
    c)    如果开启ARP proxy功能,满足一定的条件之后回复arp reply,包含请求的目的IP地址与自己接口MAC地址的对应关系;

(4)ARP表项:一般ARP表项包括动态ARP表项和静态ARP表项。
  ①动态ARP:
  动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更  新,可以被静态ARP表项覆盖。动态ARP老化机制:
  动态ARP表项的老化参数有:老化超时时间、老化探测次数和老化探测模式;
  a)缺省情况下,动态ARP表项的老化超时时间为1200秒,即20分钟;
  b)缺省情况下,动态ARP表项的老化探测次数为3次。
  c)缺省情况下,接口只在最后一次发送ARP老化探测报文是广播方式,其余均为单播方式发送。
  ②静态 ARP
  静态 ARP 表项是由网络管理员手工建立的 IP 地址和 MAC 地址之间固定的映射关系。
  静态 ARP 表项不会被老化,不会被动态 ARP 表项覆盖。
  应用场景:
  当网络中存在 ARP 攻击时,设备中动态 ARP 表项可能会被更新成错误的 ARP 表项,或者被老化,造成合法用户通信异常。静态ARP 表项不会被老化,也不会被动态ARP 表项覆盖,可以保证网络通信的安全性。
(5)免费ARP:设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。(arp属于二层协议 ,此时的目的ip是指arp报文中的target ip)作用如下:
  ①IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备(收到免费ARP请求报文的设备)会周期性的广播发送免费ARP应答报文,直到冲突解除。
  ②用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费 ARP。
  ③在VRRP备份组中用来通告主备发生变换:发生主备变换后,MASTER设备会广播发送一个免费ARP报文来通告发生了主备变换,将流量切换到正确的路径。(主要作用:刷新交换机的mac地址表项)


Proxy ARP 作用以及场景 


(1)作用:实现在相同网段,但是不在同一物理网络的主机能互访。
(2)实现方式:
①路由式Proxy ARP:需要互通的主机(主机上没有配置缺省网关)处于相同的网段但不在同一物理网络(即不在同一广播域)的场景。

当PC1需要与PC2通信时,由于目的IP地址与本机的IP地址为同一网段,因此PC1以广播形式发送ARP请求报文。Router启用路由式Proxy ARP后,Router收到ARP请求报文后,Router会查找路由表。由于PC2与Router直连,因此Router上存在到PC2的路由表项。天Router使用自己的MAC地址给PC1发送ARP应答报文。PC1将以Router的MAC地址进行数据转发。

②VLAN内ProxyARP:需要互通的主机处于相同网段,羊并且属于相同VLAN,但是VLAN内配置了端口隔离的场景。

由于在Router上配置了VLAN内不同接口彼此隔离,因此PC1和PC2不能直接在二层互通。若Router的接口使能了VLAN内Proxy ARP功能,可以使PC1和PC2实现三层互通。Router的接口在接收到目的地址不是自己的ARP请求报文后,Router并不立即丢弃该报文,而是查找该接口的ARP表项。如果存在PC2的ARP表项,则将自己的MAC地址通过ARP应答报文发送给PC1,并将PC1发送给PC2的报文代为转发。

③VLAN间ProxyARP:需要互通的主机处于相同网段,但属于不同VLAN的场景。

由于PC1和PC2属于不同的Sub-VLAN,PC1和PC2不能直接实现二层如果Router上使能了VLAN间Proxy ARP功能,可以使PC1和PC2实现三层互通。Router的接口在接收到目的地址不是自已的ARP请求报文后,并不立即丢弃该报文,而是查找ARP表项。如果存在PC2的ARP表项,则将自己的MAC地址发送给PC1,并将PC发送给PC2的报文代为转发。

ARP 攻击与防范

  ARP协议有简单、易用的优点,但是也因为其没有任何安全机制,容易被攻击者利用。在网络中,常见的ARP攻击方式主要包括:

(1)ARP泛洪攻击,是指攻击者发送大量的ARP报文,也叫拒绝服务攻击DoS(Denial of Service),主要带来以下两种影响:

  ①ARP表项溢出:设备处理ARP报文和维护ARP表项都需要消耗系统资源,同时为了满足ARP表项查询效率的要求,规格限制。攻击者就利用这一点,通过伪造大量源IP地址变化的ARP报文,-般设备都会对ARP表项规模有使得设备ARP表资源被无效的ARP条目耗尽,合法用户的ARP报文不能继续生成ARP条目,导致正常通信中断。

  防范: 

    a)ARP表项严格学习:在网关设备上部署ARP表项严格学习功能,ARP表项严格学习是指只有本设备主动发送的ARP请求报文的应答报文才能触发本设备学习ARP,其他设备主动向本设备发送的ARP报文不能触发本设备学习ARP,可拒绝大部分的ARP报文攻击。

    b)ARP表项限制:ARP表项限制功能应用在网关设备上,可以限制设备的某个接口学习动态ARP表项的数目。默认状态下,接口可以学习的动态ARP表项数目规格与全局的ARP表项规格保持一致。当部署完ARP表项限制功能后,如果指定接口下的动态ARP表项达到了允许学习的最大数目,将不再允许该接口继续学习动态ARP表项,以保证当一个接口所接入的某一用户主机发起ARP攻击时不会导致整个设备的ARP表资源都被耗尽。

  ②ARP MISS:攻击者利用工具扫描本网段主机或者进行跨网段扫描时,会向设备发送大量目标IP地址不能解析的IP报文(即路由表中存在该IP报文的目的IP对应的路由表项,但设备上没有该路由表项中下一跳对应的ARP表项),导致设备触发大量ARP Miss消息,生成并下发大量临时ARP表项,并广播大量ARP请求报文以对目标IP地址进行解析,从而造成CPU负荷过重。

  防范:

    a)根据源IP地址进行ARP Miss消息限速:当设备检测到某一源IP地址的IP报文在1秒内触发的ARP Miss消息数量超过了ARP Miss消息限速值,就认为此源IP地址存在攻击。

    b)针对全局的ARP Miss消息限速:设备支持对全局处理的ARP Miss消息数量,根据限速值进行限速。

(2)ARP欺骗攻击,是指攻击者通过发送伪造的ARP报文,恶意修改设备或网络的报文通信异常。主要存在这样两种场景:

  1.欺骗网关攻击:Attacker仿冒UserA向Gateway发送伪造的ARP报文,导致 Gateway的ARP表中记录了错误的UserA地址映射关系,造成UserA接收不到正常的数据报文。


防范:
      a)ARP表项固化:网关设备在第一次学习到ARP以后,不再允许用户更新此ARP表项或只能允许更新此ARP表项的部分信息,或者通过发送单播ARP请求报文的方式对更新ARP条目的报文进行合法性确认。

  2.仿冒网关攻击 :攻击者B将伪造网关的ARP报文发送给用户A,使用户A误以为攻击者即为网关。用户A的ARP表中会记录错误的网关地址映射关系,使得用户A跟网关的正常数据通信中断


防范:
    a )ARP防网关冲突功能:当设备收到的ARP报文,发现ARP报文的源 IP地址与报文入接口对应的VLANIF接口的IP地址相同。设备就认为该ARP报文是与网关地址冲突的ARP报文,设备将生成ARP防攻击表项,并在后续一段时间内丢弃该接口收到的同VLAN以及同源MAC地址的ARP报文,这样可以防止与网关地址冲突的ARP报文在VLAN内广播。(此时网关是三层交换机的VLANIF接口)
 
    b)发送免费ARP报文功能:定期广播发送正确的免费ARP报文到所有用户,迅速将已经被攻击的用户记录的错误网关地址映射关系修改正确。


   3.中间人攻击:攻击者主动向PC1发送伪造PC3的ARP报文,导致PC1的ARP表中记录了错误的PC3地址映射关系,攻击者可以轻易获取到PC1原本要发往PC3的数据;同样,攻击者也可以轻易获取到PC3原本要发往PC1的数据。这样,PC1与PC3间的信息安全无法得到保障。


防范:
    a) 动态ARP检测(DAI):动态ARP检测是利用绑定表来防御中间人攻击的。当设备收到ARP报文时,将此ARP报文对应的源IP、源MAC、 VLAN以及接口信息和绑定表的信息进行比较,如果信息匹配,说明发送该ARP报文的用户是合法用户,允许此用户的ARP报文通过,否则就认为是攻击,丢弃该ARP报文。


说明:动态ARP检测功能仅适用于DHCP Snooping场景。设备使能 DHCP Snooping功能后,当DHCP用户上线时,设备会自动生成DHCP Snooping绑定表;对于静态配置IP地址的用户,设备不会生成DHCP Snooping绑定表,所以需要手动添加静态绑定表,否则无法正常通信。

面经/面试题

1.哪些设备存在ARP表项?

  答:主机或三层网络设备上会维护一张ARP表。

2.免费ARP和普通的ARP有什么区别?

  答:免费ARP报文中的sender IP和target IP是一致的,而普通的ARP报文sender IP和target IP是不一致。

3.IPV4的重复地址检测和IPV6的重复地址检测有什么区别?

  答:1.IPV4中使用的是免费ARP报文,而IPV6中使用的是ICMPV6报文。 2.免费ARP报文是二层广播发送的,而ipv6中是三层组播发送的,即目的IPV6地址为被请求节点组播地址。

4.IPV4的的地址解析和IPV6的地址解析有什么区别?

  答:1.使用的协议不同:ARP NDP。  2.目的地址不同:广播(二层广播)、组播(被请求节点组播组地址)。  3.工作环境不同:二层三层。

5.什么时候会触发ARP请求?

答:1.要访问的目的IP地址在本设备没有对应的ARP表项。2.设备上动态ARP表项到达老化超时时间后,设备会发送ARP请求报文。(默认老化超时时间为20分钟、老化探测次数为3次、老化探测模式为前两次是单播,最后一次是广播)

6.ARP请求一定是广播发送的吗?

答:一般情况下是,除了动态ARP表项老化超时之后,进行老化探测是会单播发送。

7.设备收到ARP请求会如何处理?

答:1.查看targetIP是否为自己的接口IP,是则回复ARP应答并记录senderIP和senderMAC的对应关系在ARP缓存表中。2.不是自己,设备如果开启了proxy ARP,则会进行相应的检查(查找路由表、ARP表项),再判断丢弃或者回复;没有开启proxyARP,则直接丢弃。

8.设备收到免费ARP报文后,会如何处理?

答:1.如果免费ARP报文中源IP地址和自已的IP地址相同,则周期性的广播发送免费ARP应答报文,告知此IP地址在网络中存在冲突,与直到冲突解除牌。  2.如果免费ARP报文中源IP地址和自己的IP地址不同,免费ARP报文是在VLANIF接口收到的,并且设备上已经有免费ARP报文中源IP地址对应的动态ARP表项,则进行ARP学习,即根据收到的免费ARP报文更新该ARP表项。其余情况收到免费ARP报文后均不进行ARP学习。

9.ARP协议的工作流程?

答:

ARP协议的工作流程包括查询、响应和缓存三个主要步骤。以下是具体步骤的介绍:

1.查询:当主机A想要发送数据给主机B时,首先会检查自己的ARP缓存中是否有主机B的MAC地址。如果存在,则直接使用该MAC地址进行数据传输。
2.响应:如果ARP缓存中没有主机B的MAC地址,主机A会向网络中的所有主机发送一个ARP请求报文,这个请求报文中包含了主机A的IP地址和MAC地址以及目标主机B的IP地址。网络中的每台主机都会接收到这个请求,并检查请求中的IP地址是否与自己的IP地址匹配。只有当主机发现请求的IP地址与自己的IP地址匹配时,它才会将自己的MAC地址包含在一个ARP响应报文中,并将这个响应报文发送回主机A。
3.缓存:当主机A收到从主机B发来的ARP响应报文后,它会更新自己的ARP缓存,将主机B的IP地址和MAC地址存储起来,以备后续通信使用。同时,为了避免恶意攻击,通常会启用一些防护措施,如静态ARP表或动态ARP检测等技术来防止ARP缓存被篡改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值