当前位置:首页 > wifi设置知识 > 正文内容

实战|​​IP地址冲突检测方法研究与实践(原理)

秋天2024年01月28日 10:01:14wifi设置知识205
新手设置路由器可能会遇到一些问题,本文实战|​​IP地址冲突检测方法研究与实践 将为您提供常见问题的解答和路由器使用技巧。

文 / 中国光大银行信息科技部 刘轶勇 魏耀辉

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地址冲突的快速发现与故障位置定位。

~感谢您阅读本文,希望这些路由器设置和无线网络的技巧和方法能够帮助您更好地管理和使用您的网络。

扫描二维码推送至手机访问。

版权声明:本文由路由设置网发布,如需转载请注明出处。

本文链接:https://www.shoulian.org/luyou/post/142763.html

分享给朋友:

“实战|​​IP地址冲突检测方法研究与实践(原理)” 的相关文章

不同路由器怎么中继

不同路由器怎么中继

当朋友们看到这个文章时想必是想要了解不同路由器怎么中继相关的知识,这里同时多从个角度为大家介绍无线路由器怎样中继相应的内容。 本文内容目录一览: 1、如何设置中继路由器 2、如何利旧路由器来实现无线中继 3、两台路由器如何中继wifi网络 4、两个路由器如何设置中继 5、路由器中继怎...

宿舍路由器怎么分流量

宿舍路由器怎么分流量

今天和朋友们分享宿舍路由器怎么分流量相关的知识,相信大家通过本文介绍也能对宿舍分流器怎么连接路由器有自已的收获和理解。自己轻松搞问题。本文内容目录一览: 1、路由器怎么分配流量? 2、路由器怎么设置平分网速流量 3、如何用路由器分流量 路由器怎么分配流量? 一般路由器没有流量分配的功能,要...

小米路由器文件怎么安装

小米路由器文件怎么安装

今天和朋友们分享小米路由器文件怎么安装相关的知识,相信大家通过本文介绍也能对小米路由器的安装方法有自已的收获和理解。自己轻松搞问题。本文内容目录一览: 1、小米路由器怎么安装 2、小米路由器怎么安装tar.gz文件 3、小米无线路由器如何安装? 小米路由器怎么安装 小米路由器它实现了类似N...

路由器怎么刷插件加速

路由器怎么刷插件加速

本篇文章给大家谈谈路由器怎么刷插件加速,以及路由器怎么刷插件加速网络对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文内容目录一览: 1、UU加速器怎么更新路由器插件 2、小米路由器怎么设置网页加速插件 3、路由器插件加速该怎么弄呢? 4、华硕路由器官方固件能安装加速插件吗...

蚂蚁邦路由器怎么用

蚂蚁邦路由器怎么用

针对蚂蚁邦路由器怎么用这个问题,本文将综合不同朋友对这个蚂蚁邦路由器怎么连接的知识为大家一起来解答,希望能帮到大家 本文内容目录一览: 1、蚂蚁邦路由器怎么设置 2、蚂蚁邦路由器怎么安装? 3、蚂蚁邦A3智能路由器如何安装? 4、蚂蚁邦路由器怎么设置联网 蚂蚁邦路由器怎么设置 线路连接...

华为路由器怎么管理后台

华为路由器怎么管理后台

当朋友们看到这个文章时想必是想要了解华为路由器怎么管理后台相关的知识,这里同时多从个角度为大家介绍如何管理华为路由器相应的内容。 本文内容目录一览: 1、怎么进入华为路由器的管理页面 2、不是华为手机怎么管理华为路由器 3、华为路由器怎么进入管理界面? 4、华为无线路由器hg532e怎么...