技术文档编辑:WOLFLAB杨广成
1. ARP 基础 ★★★★
(1) 作用:
根据目的的IP地址解析目的MAC地址。(为二层数据封装提供依据)主机或三层网络设备上会维护一张ARP表,用于存储IP地址和MAC地址的关系。
(2) 触发条件:
当需要访问目的IP地址在ARP缓存表不存在对应表项时;
(3) ARP报文:
①arp request(一般为广播发送):
a) 当访问的目的IP地址为同一网段时,请求的访问目的IP地址对应的
MAC地址;
b)
当访问的目的IP地址不在同一网段时,请求网关IP对应的MAC地址;
a) 当收到请求报文,目的IP地址与接收接口的IP地址一致时,回复arp
reply,包含自己接口IP地址与MAC地址的对应关系;
b) 当收到请求报文,目的IP地址与接收接口的IP地址不一致时,如果没有开启ARP proxy功能,不会回复任何报文;
c)
如果开启ARP proxy功能,满足一定的条件之后回复arp reply,包含请求的目的IP地址与自己接口MAC地址的对应关系;
(1) ARP表项:一般ARP表项包括动态ARP表项和静态ARP表项。
①动态ARP:
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可
以被新的ARP报文更新,可以被静态ARP表项覆盖。动态ARP老化机制:
动态ARP表项的老化参数有:老化超时时间、老化探测次数和老化探测模式;
①缺省情况下,动态ARP表项的老化超时时间为1200秒,即20分钟;
②缺省情况下,动态ARP表项的老化探测次数为3次。
③缺省情况下,接口只在最后一次发送ARP老化探测报文是广播方式, 其余均为单播方式发送。
②静态ARP
静态ARP表项是由网络管理员手工建立的IP地址和MAC地址之间固定的映射关系。
静态ARP表项不会被老化,不会被动态ARP表项覆盖。应用场景:
当网络中存在ARP GJ时,设备中动态ARP表项可能会被更新成错误的ARP 表项,或者被老化,造成合法用户通信异常。静态ARP表项不会被老化,也不会被动态ARP表项覆盖,可以保证网络通信的安全性。
(2) 免费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地址表项)
1. 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内Proxy ARP:需要互通的主机处于相同网段,并且属于相同VLAN, 但是VLAN内配置了端口隔离的场景。
由于在Router上配置了VLAN内不同接口彼此隔离,因此PC1和PC2不能直接在二层互通。
若Router的接口使能了VLAN内Proxy ARP功能,可以使PC1和PC2实现三层互通。Router的接口在接收到目的地址不是自己的ARP请求报文后,
Router并不立即丢弃该报文,而是查找该接口的ARP表项。
如果存在PC2的ARP表项,则将自己的MAC地址通过ARP应答报文发送给
PC1,并将PC1发送给PC2的报文代为转发。
③VLAN间Proxy ARP:需要互通的主机处于相同网段,但属于不同VLAN的场景。
由于PC1和PC2属于不同的Sub-VLAN,PC1和PC2不 能直接实现二层4
互通。如果Router.上使能了VLAN间Proxy ARP功能,可以使PC1和PC2实现
三层互通。Router的接口在接收到目的地址不是自己的ARP请求报文
后,并不立即丢弃该报文,而是查找ARP表项。如果存在PC2的ARP表项,则将自己的MAC地址发送给PC1,并将PC1
发送给PC2的报文代为转发。
1. ARP G。J与防范 ★★★
ARP协议有简单、易用的优点,但是也因为其没有任何安全机制,容易被GJ者利用。在网络中,常见的ARPGJ方式主要包括:
(1) ARP GJ,是指GJ者发送大量的ARP报文,也叫拒绝服务GJ DoS
(Denial of Service),主要带来以下两种影响:
○1 ARP表项溢出:设备处理ARP报文和维护ARP表项都需要消耗系统资源,同时为了满足ARP表项查询效率的要求,一般设备都会对ARP表项规模有规格限制。GJ者就利用这一点,通过伪造大量源IP地址变化的ARP报文,使得设备ARP表资源被无效的ARP条目耗尽,合法用户的ARP报文不能继续生成ARP条目,导致正常通信中断。
防范:
a) ARP表项严格学习:在网关设备上部署ARP表项严格学习功能,
ARP表项严格学习是指只有本设备主动发送的ARP请求报文的应答报文才能触发本设备学习ARP,其他设备主动向本设备发送的ARP报
文不能触发本设备学习ARP,可拒绝大部分的ARP报文gj。
b) ARP表项限制:ARP表项限制功能应用在网关设备上,可以限制设备的某个接口学习动态ARP表项的数目。默认状态下,接口可以学习的动态ARP表项数目规格与全局的ARP表项规格保持一致。当部署完ARP表项限制功能后,如果指定接口下的动态ARP表项达到了允许学习的最大数目,将不再允许该接口继续学习动态ARP表项,以保证当一个接口所接入的某一用户主机发起ARP gj时不会导致整个设备的ARP表资源都被耗尽。
○ 2 ARP MISS:gj者利用工具扫描本网段主机或者进行跨网段扫描时,会向设备发送大量目标IP地址不能解析的IP报文(即路由表中存在该IP报文的目的IP对应的路由表项,但设备上没有该路由表项中下一跳对应的ARP 表项),导致设备触发大量ARP Miss消息,生成并下发大量临时ARP表项, 并广播大量ARP请求报文以对目标IP地址进行解析,从而造成CPU负荷过重。
防范:
a) 根据源IP地址进行ARP Miss消息限速:当设备检测到某一源IP地址的IP报文在1秒内触发的ARP Miss消息数量超过了ARP Miss消息限速值,就认为此源IP地址存在gj。
b) 针对全局的ARP Miss消息限速:设备支持对全局处理的ARP Miss
消息数量,根据限速值进行限速。
(2) ARP欺骗gj,是指gj者通过发送伪造的ARP报文,恶意修改设备或网
络内其他用户主机的ARP表项,造成用户或网络的报文通信异常。主要存在这样两种场景:
○1 欺骗网gj:Attacker仿冒UserA向Gateway发送伪造的ARP报文,导致
Gateway的ARP表中记录了错误的UserA地址映射关系,造成UserA接收不到正常的数据报文。
防范:
a) ARP表项固化:网关设备在第一次学习到ARP以后,不再允许用户更新此ARP表项或只能允许更新此ARP表项的部分信息,或者通过发送单播ARP请求报文的方式对更新ARP条目的报文进行合法性确认。
○2 仿冒网关gj :gj者B将伪造网关的ARP报文发送给用户A,使用户A误以为gj者即为网关。用户A的ARP表中会记录错误的网关地址映射关系,使得用户A跟网关的正常数据通信中断
防范:
a )ARP防网关冲突功能:当设备收到的ARP报文,发现ARP报文的源
IP地址与报文入接口对应的VLANIF接口的IP地址相同。设备就认为该ARP报文是与网关地址冲突的ARP报文,设备将生成ARP防gj表项,并在后续一段时间内丢弃该接口收到的同VLAN以及同源MAC 地址的ARP报文,这样可以防止与网关地址冲突的ARP报文在VLAN 内广播。(此时网关是三层交换机的VLANIF接口)
b)发送免费ARP报文功能:定期广播发送正确的免费ARP报文到所有用户,迅速将已经被gj的用户记录的错误网关地址映射关系修改正确。
○3 中间人gj:gj者主动向PC1发送伪造PC3的ARP报文,导致PC1的ARP表中记录了错误的PC3地址映射关系,gj者可以轻易获取到PC1原本要发往PC3的数据;同样,gj者也可以轻易获取到PC3原本要发往PC1的数据。这样,PC1与PC3间的信息安全无法得到保障。
防范:
a)动态ARP检测(DAI):动态ARP检测是利用绑定表来防御中间人gj的。当设备收到ARP报文时,将此ARP报文对应的源IP、源MAC、
VLAN以及接口信息和绑定表的信息进行比较,如果信息匹配,说明发送该ARP报文的用户是合法用户,允许此用户的ARP报文通过,否则就认为是gj,丢弃该ARP报文。
说明:动态ARP检测功能仅适用于DHCP Snooping场景。设备使能DHCP Snooping功能后,当DHCP用户上线时,设备会自动生成DHCP
Snooping绑定表;对于静态配置IP地址的用户,设备不会生成DHCP
Snooping绑定表,所以需要手动添加静态绑定表,否则无法正常通信。
主机或三层网络设备上会维护一张ARP表。
免费ARP报文中的sender IP和targetIP是一致的,而普通的ARP报文sender
IP和targetIP是不一致。
扩展问题3:IPV4的重复地址检测和IPV6的重复地址检测有什么区别?
1. IPV4中使用的是免费ARP报文,而IPV6中使用的是ICMPV6报文;
2. 免费ARP报文是二层广播发送的,而ipv6中是三层组播发送的,即目的IPV6地址为被请求节点组播地址;
扩展问题4:IPV4的的地址解析和IPV6的地址解析有什么区别?
1.使用的协议不同
ARP NDP
1. 目的地址不同
广播(二层广播)、组播(被请求节点组播组地址)
2. 工作环境不同二层 三层
1. 要访问的目的IP地址在本设备没有对应的ARP表项;
2. 设备上动态ARP表项到达老化超时时间后,设备会发送ARP请求报文;(默认老化超时时间为20分钟、老化探测次数为3次、老化探测模式为前两次是单播,最后一次是广播)
一般情况下是,除了动态ARP表项老化超时之后,进行老化探测是会单播发送。
1. 查看target IP是否为自己的接口IP,是则回复ARP应答并记录sender IP和sender MAC的对应关系在ARP缓存表中;
2. 不是自己,设备如果开启了proxy ARP,则会进行相应的检查(查找路由表、ARP表项),再判断丢弃或者回复;没有开启proxy ARP,则直接丢弃;
1. 如果免费ARP报文中源IP地址和自己的IP地址相同,则周期性的广播发送免费ARP应答报文,告知此IP地址在网络中存在冲突,直到冲突解除。
2. 如果免费ARP报文中源IP地址和自己的IP地址不同,免费ARP报文是在
VLANIF接口收到的,并且设备上已经有免费ARP报文中源IP地址对应的动态
ARP表项,则进行ARP学习,即根据收到的免费ARP报文更新该ARP表项。其余情况收到免费ARP报文后均不进行ARP学习。
感谢关注WOLFLAB 51CTO官方号
技术文档会陆续更新,记得关注哦!