​​IP地址冲突检测方法研究与实践

VSole2021-10-25 06:25:23

IP地址冲突是指在局域网中某主机配置了与其他主机相同的IP地址导致原主机无法正常处理业务,这种信息故障事件对于实时交易业务尤其是金融行业业务会带来严重影响,快速检测网络中IP地址冲突并定位至关重要。下文将分析不同IP地址冲突场景,整理传统日志监控方式以及研究两种报文采集定位方法,旨在实现快速检测定位,提高运维效率。

数据报文转发与IP地址冲突过程测试

ARP地址解析是主机发现从网络层IP地址到链路层MAC地址之间映射关系的过程。地址解析协议ARP运行的关键是维护每个主机和路由器上记录了IP地址与MAC地址映射关系的ARP高速缓存表。下图中当主机B需要给主机C发送数据包时,B只知道C的IP地址,通过查询主机B的ARP高速缓存表未找到IP对应的MAC地址,导致主机B的数据连路层无法封装MAC帧,无法给主机C发送数据包。

图1    主机B通过ARP高速缓存表

查找主机C的MAC地址

为获取主机C的MAC地址以便于给主机C发送报文,主机B需要广播一条ARP请求报文,来请求目的IP地址的MAC地址。主机C在接收到B的广播帧之后,首先将B的IP与MAC映射关系记录到其ARP高速缓存表中,随后发送ARP响应告知自己的MAC地址。

图2    主机B广播ARP请求报文

主机B在接收到C的ARP响应后将MAC地址记录在自己的ARP高速缓存表中,随后就可以封装MAC帧给主机C发送数据包,其他主机接收到之后不予理会。

图3    主机C发送ARP响应报文

地址解析协议ARP还有另外一个功能免费ARP,此功能的主要作用是为了检测IP地址冲突。免费ARP是一种特殊的ARP请求,当主机启动的时候,发送一个免费ARP请求,请求自己的IP地址的MAC地址。

图4    免费ARP请求报文

免费ARP请求通常有两个目的,第一个目的是当IP地址更改了对应的MAC地址时通过该ARP请求告知局域网内其他主机更新ARP高速缓存表。第二个目的则是确定局域网中是否有主机配置了与自己相同的IP地址。对于第二个目的来说,主机并不希望收到此请求的响应,因为一旦收到响应就证明有另一台主机也配置了相同的IP地址,网络中发生了IP地址冲突。

 图5    免费ARP响应报文

基于免费ARP报文可以检测是否存在IP地址冲突。为测试不同操作系统在IP地址冲突时ARP交互情况,我们搭建如下测试环境,通过更改主机的IP地址配置来模拟IP地址冲突。

图6    ARP交互实验环境示意图


下文以测试Linux系统下IP地址冲突时ARP交互情况实验为例,实验如下。

 

1.实验过程

(1)使用Linux B(192.168.198.130)长ping Linux C(192.168.198.131),同时Linux C 长ping Linux B来模拟B主机与C主机之间正常的网络通讯。

图7    B主机与C主机互相发送

ping包模拟网络通讯


(2)将Linux A(192.168.198.129)的IP地址修改为192.168.198.130,以此模拟Linux A主动制造了与Linux B的IP地址冲突。

图8     A主机主动制造与B主机的IP地址冲突

 

(3)在局域网中抓包,使用wireshark分析IP地址冲突下各主机的的交互情况。

 

2.实验分析

(1) Linux A进行地址修改后,A主机立马以A主机MAC为源MAC,FF:FF:FF:FF:FF:FF为目的MAC发送免费ARP广播,进行全网通告A主机的IP地址为192.168.198.130。

(2)B主机收到A主机的免费ARP后,以B主机MAC为源MAC,FF:FF:FF:FF:FF:FF为目的MAC响应,进行通告,告知全网B主机的IP才是192.168.198.130。

(3)A主机连续发送4个免费ARP通告,但B主机只会在第一次进行响应。

(4)由于A主机多次发送免费ARP,此时C主机ARP高速缓存表中记录的192.168.198.130为A主机,C主机与192.168.198.130通讯未中断。

图9    主机IP地址冲突后ARP交互情况


(5)B主机(此时IP地址被冲突)与C主机(192.168.198.131)通讯有中断现象,通过数据包可以发现B主机(IP:192.168.198.130;MAC:00:0c:29:ff:12:87)访问C主机(IP:192.168.198.131;MAC:00:0c:29:38:83:18)时,C主机回包给A主机(IP:192.168.198.130;MAC:00:0c:29:34:eb:e2)。

图10    B主机与C主机网络通讯中断


(6)B主机与C主机通讯超时后会重新请求一次ARP,请求192.168.198.131的MAC地址。当C主机收到此ARP后会更新ARP高速缓存表中192.168.198.130对应的MAC地址为B主机MAC地址,随后B主机恢复与C主机的通讯。

图11    B主机与C恢复通讯


 3.实验结论

主动制造IP地址冲突的Linux主机会发送多次免费ARP,被冲突的Linux主机会返回1个免费ARP,通讯过程中存在通过ARP请求互相抢IP的现象。


随后,以相同的方式模拟了SUSE系统IP地址被冲突、Windows系统IP地址被冲突、Windows系统主动制造IP地址冲突三组实验,得出实验结论如下。


表1    不同系统在IP地址冲突时的ARP交互情况




IP地址冲突反应机制总结

经过上述测试以及其它技术了解,我们总结了宿主机(凡是配置了ip地址并存活于网络中的产品)对ip地址冲突的反应机制,下表列出部分涉及到的产品。


表2    不同产品在IP地址冲突时日志记录

及ARP交互情况

注:表中“是”与“否”只针对对测试过的版本与产品型号有效,不确保对该产品不同系列或不同版本有效




IP地址冲突检测方案

1.方案一:主机日志与网络syslog监控

针对可进行ip地址冲突日志记录的宿主机,可对其产生的对应日志进行监控分析并产生告警;针对可发出ip地址冲突syslog的网络设备,可对syslog进行解析监控与告警。

图12    SUSE系统在IP地址冲突时的日志样例

 

2.方案二:报文MAC检测

通过流量采集设备采集网络中所有流量,并将ip及对应MAC地址解析出来后,发送至大数据分析平台,将其中网络设备的MAC地址进行过滤后,如果发现1个ip地址对应多个不同MAC地址,则判定可能存在ip地址冲突。

图13    TCP/IP网络模型帧封装示意图


在TCP/IP网络模型中,不同的分层封装了不同的信息。数据链路层主要封装了源MAC及目的MAC地址等信息,网络层主要封装了源IP与目的IP等信息。因此,通过对网络中报文进行解包,可以获取到网络中正在进行通信的所有IP与MAC映射关系,通过计算可以分析出是否存在IP地址冲突(即不同MAC地址映射为相同IP地址)。但是由于企业级网络环境复杂且报文数据量较大,该方法的实现成本较高。

 

3.方案三:ARP报文检测

通过网络流量采集,对所有ARP流量进行实时推送至大数据分析平台,发现同段时间内,存在宣告同个IP对应多个不同MAC地址,则判定为IP地址冲突。具体实现方法:网络采集设备精准过滤ARP流量并推送出来,推送的报文格式为:发送者MAC(宿主机)、目标MAC全为F(广播)、通告IP、时间戳、交换机名称。大数据平台接受到此数据后,判定同秒(或更短)之内是否存在同个通告IP对应多个不同MAC,因在数据采集与推送时带有交换机名称或id的标识,因此,能迅速定位冲突IP所在的网络位置,便于进行相关处置操作,隔离故障源,恢复业务。

 

4.三种方案优缺点比较


表3    三种不同方案优缺点比较

 

以上三种方案各有优缺点,我们建议采用“方案一:主机与Syslog监控”与“方案三:ARP报文检测”的组合方案,期望能实现IP地址冲突的快速发现与故障位置定位。






往期精选:

(点击查看精彩内容)


● 实战 | 基于敏捷模式的分层自动化测试体系建设与应用

● 实战 | 数字孪生技术在数据中心运营场景的应用

● 实战 | SDT智网建设思路与实践

● 实战 | 构建外贸综合服务场景下的联邦链

● 实战 | 光大银行科技运营数据平台建设实践







《金融电子化》新媒体部:主任 / 邝源 编辑 / 傅甜甜 潘婧

macarp
本作品采用《CC 协议》,转载必须注明作者和本文链接
数年前,农业银行在总行层面规划和建设了VXLAN DCI(Datacenter Interconnect)网络核心,将内外网Fabric资源池通过DCI高速互联,并采用原创的多段式VXLAN和两级外部网络技术,实现跨Fabric的逻辑分区、资源调度及服务链功能,为云原生应用提供超大规模的网络资源池。该架构业已成为大型金融数据中心网络的最佳实践和事实标准,被同业广泛采用。
ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。通过ARP欺骗可以对内网数据进行嗅探,在内网渗透中往往也是重要的一部分。网关收到此ARPARP表中普通用户的MAC更新为攻击者MAC
大多数计算机系统设计为可与多个用户一起使用。特权是指允许用户执行的操作。普通特权包括查看和编辑文件或修改系统文件。特权升级意味着用户获得他们无权获得的特权。这些特权可用于删除文件,查看私人信息或安装不需要的程序,例如病毒。
一文吃透 Linux 提权
2021-10-23 07:09:32
特权升级意味着用户获得他们无权获得的特权。通常,当系统存在允许绕过安全性的错误或对使用方法的设计假设存在缺陷时,通常会发生这种情况。结果是,具有比应用程序开发人员或系统管理员想要的特权更多的应用程序可以执行未经授权的操作。
三层交换机转发基于目标 IP 地址,数据包的目的地是定义的下一跳,三层交换机遵循路由算法。同样,当 PC2 在 ARP 响应消息中发送其 MAC 地址时,交换机会收集 PC2 的 MAC 地址并将其存储到自己的 MAC 地址表中。当数据帧发生冲突,设备必须重新发送数据。冲突对网络性能有严重的负面影响,因此绝对要避免冲突。需要注意的是,二层交换机只能允许主机设备与同一个VLAN的主机通信。中继端口的智能程度足以承受多个VLAN的流量。
三层交换机转发基于目标 IP 地址,数据包的目的地是定义的下一跳,三层交换机遵循路由算法。同样,当 PC2 在 ARP 响应消息中发送其 MAC 地址时,交换机会收集 PC2 的 MAC 地址并将其存储到自己的 MAC 地址表中。当数据帧发生冲突,设备必须重新发送数据。冲突对网络性能有严重的负面影响,因此绝对要避免冲突。需要注意的是,二层交换机只能允许主机设备与同一个VLAN的主机通信。中继端口的智能程度足以承受多个VLAN的流量。
7 张图带你搞懂二层和三层交换机之间的区别
IP地址冲突是指在局域网中某主机配置了与其他主机相同的IP地址导致原主机无法正常处理业务,这种信息故障事件对于实时交易业务尤其是金融行业业务会带来严重影响,快速检测网络中IP地址冲突并定位至关重要。
最终ARP请求会被转发到同一网络中的所有客户机上。ARP广播,是在需要与其他主机通信时发出的。IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签,用以标识VLAN信息。表示帧类型,取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。PRI3bitPriority,表示数据帧的802.1p优先级。CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。为了提高处理效率,设备内部处理的数据帧一律都是Tagged帧。
VSole
网络安全专家