环路检测方法和系统的制作方法

文档序号:8001973阅读:403来源:国知局
环路检测方法和系统的制作方法
【专利摘要】本发明提供了一种环路检测方法和系统。所述方法还包括:获取探测包,并根据所述探测包对应的虚拟局域网向所述探测包添加虚拟局域网标记,并发送所述探测包;接收用户端设备返回的探测包;根据所述接收的探测包判断接口是否产生环回,若是,则关闭所述产生环回的接口。所述系统还包括:处理模块,用于获取探测包,并根据所述探测包对应的虚拟局域网向所述探测包添加虚拟局域网标记,并发送所述探测包;接收模块,用于接收用户端设备返回的探测包;环回判断模块,用于根据所述接收的探测包判断接口是否产生环回,若是,则通知接口关闭模块;所述接口关闭模块用于关闭所述产生环回的接口。采用本发明能准确定位虚拟局域网中出现了环回的接口。
【专利说明】
环路检测方法和系统

【技术领域】
[0001]本发明涉及网络通信技术,特别是涉及一种环路检测方法和系统。

【背景技术】
[0002]随着操作系统内核的不断强大,为各种终端设备中磁盘及文件系统控制、多任务的实现等提供了前提条件。例如,Linux操作系统之下,随着Linux内核的不断强大,所支持的功能也不断扩大,进而能够应用于各种不同的业务。
[0003]终端设备应用于各种不同的业务中,并常常通过虚拟局域网划分不同的业务,以供终端设备所对应的用户端设备运行某一业务。若某一用户端设备出现环回,终端设备所发出的数据包将被用户端设备环回,进而使得终端设备中的所有业务出现长时间中断,因此,终端设备有必要对用户端设备所在的网络进行环回探测。
[0004]然而,现有的环回探测技术并不支持对虚拟局域网中进行环回探测,因此无法实现准确定位出现了环回的接口。


【发明内容】

[0005]基于此,有必要提供一种能准确定位虚拟局域网中出现了环回的接口的环路检测方法。
[0006]此外,还有必要提供一种能准确定位虚拟局域网中出现了环回的接口的环路检测系统。
[0007]一种环路检测方法,包括如下步骤:
[0008]获取探测包,并根据所述探测包对应的虚拟局域网向所述探测包添加虚拟局域网标记,并发送所述探测包;
[0009]接收用户端设备返回的探测包;
[0010]根据所述接收的探测包判断接口是否产生环回,若是,则[0011 ]关闭所述产生环回的接口。
[0012]在其中一个实施例中,所述根据所述接收的探测包判断接口是否产生环回的步骤包括:
[0013]判断所述探测包是否为本地数据包,若是,则进一步判断所述探测包的源接口是否为绑定的网桥接口,若是,则
[0014]将所述源接口动态更新至创建的虚拟文件中。
[0015]在其中一个实施例中,所述关闭所述产生环回的接口的步骤包括:
[0016]读取虚拟文件得到产生环回的接口 ;
[0017]将所述产生环回的接口所对应的状态更新为关闭状态。
[0018]在其中一个实施例中,所述关闭所述产生环回的接口的步骤之后,所述方法还包括:
[0019]探测关闭的接口是否可恢复,若是,则重新开启所述关闭的接口。
[0020]在其中一个实施例中,所述发送所述探测包的步骤之前,所述方法还包括:
[0021]创建套接字实例,通过所述套接字实例绑定网桥接口 ;
[0022]所述发送所述探测包的步骤为:
[0023]通过所述绑定的网桥接口发送探测包。
[0024]一种环路检测系统,包括:
[0025]处理模块,用于获取探测包,并根据所述探测包对应的虚拟局域网向所述探测包添加虚拟局域网标记,并发送所述探测包;
[0026]接收模块,用于接收用户端设备返回的探测包;
[0027]环回判断模块,用于根据所述接收的探测包判断接口是否产生环回,若是,则通知接口关闭模块;
[0028]所述接口关闭模块用于关闭所述产生环回的接口。
[0029]在其中一个实施例中,所述环回判断模块包括:
[0030]本地判断单元,用于判断所述探测包是否为本地数据包,若是,则通知接口判断单元;
[0031]所述接口判断单元用于进一步判断所述探测包的源接口是否为绑定的网桥接口,若是,则通知动态更新单元;
[0032]所述动态更新单元用于将所述源接口动态更新至创建的虚拟文件中。
[0033]在其中一个实施例中,所述接口关闭模块包括:
[0034]读取单元,用于读取虚拟文件得到产生环回的接口 ;
[0035]接口更新单元,用于将所述产生环回的接口所对应的状态更新为关闭状态。
[0036]在其中一个实施例中,所述系统还包括:
[0037]恢复探测模块,用于探测关闭的接口是否可恢复,若是,则重新开启所述关闭的接□。
[0038]在其中一个实施例中,所述系统还包括:
[0039]接口绑定模块,用于创建套接字实例,通过所述套接字实例绑定网桥接口 ;
[0040]所述处理模块还用于通过所述绑定的网桥接口发送探测包。
[0041]上述环路检测方法和系统中,根据探测包对应的虚拟局域网向探测包添加虚拟局域网标记后发送,以接收到用户端设备所返回的探测包,根据返回的探测包即可判断是否产生了环回,若是,则关闭相应的接口即可,以实现了虚拟局域网中的环回探测,进而能够准确定位虚拟局域网中出现了环回的接口,并通过关闭相应接口使得出现了环回的业务不会对其它业务造成影响,提高故障修复速度。

【专利附图】

【附图说明】
[0042]图1为一个实施例中环路检测方法的流程图;
[0043]图2为图1中根据接收的探测包判断接口是否产生环回的方法流程图;
[0044]图3为图1中关闭产生环回的接口的方法流程图;
[0045]图4为一个实施例中环路检测系统的结构示意图;
[0046]图5为图4中环回判断模块的结构示意图;
[0047]图6为图4中接口关闭模块的结构示意图。

【具体实施方式】
[0048]如图1所示,在一个实施例中,一种环路检测方法,包括如下步骤:
[0049]步骤S110,获取探测包,并根据探测包对应的虚拟局域网向探测包添加虚拟局域网标记,并发送该探测包。
[0050]本实施例中,终端设备将发送探测包,其中,该探测包是与业务的虚拟局域网对应的。具体的,终端设备中的进程将按照预设的时间间隔向操作系统内核发送探测包,此时,内核将对接收到的探测包中的包头信息添加虚拟局域网标记,以将添加了虚拟局域网标记的探测包发送出去。
[0051]在一个实施例中,上述步骤S110之前,该方法还包括:创建套接字实例,通过套接字实例绑定网桥接口。
[0052]本实施例中,创建用于网桥接口的套接字实例,即socket,该网桥接口可为以太网接口,以启用绑定的网桥接口中的环回监测功能。
[0053]在一个实施例中,上述发送该探测包的步骤具体为:通过绑定的网桥接口发送探测包。
[0054]本实施例中,每一业务所在的虚拟局域网均是通过预先绑定的网络接口实现探测包的发送的,也就是说,对于多个业务而言,将存在着多个虚拟局域网(VLAN),则为每一业务预先绑定了一个网络接口,以用于实现该业务的网络传输。
[0055]因此,由上所述,终端设备将根据一定的时间间隔依次通过业务所对应的网桥接口发送携带了不同虚拟局域网标记的探测包,进行环回监测,检测虚拟局域网中是否存在环路故障。
[0056]步骤S130,接收用户端设备返回的探测包。
[0057]本实施例中,发送了探测包的终端设备将接收到用户端设备所返回的探测包。
[0058]步骤S150,根据接收的探测包判断接口是否产生环回,若是,则进入步骤S170,若否,则结束。
[0059]本实施例中,通过接收自己所发出的探测包来探测当前是否产生环回,进而定位产生了环回的网桥接口。若根据接收的探测包获知发送和接收该探测包为同一网桥接口,则说明该网桥接口产生了环回,此时,需要关闭该网桥接口,以对其它业务的网络通信造成影响。
[0060]步骤S170,关闭产生环回的接口。
[0061]本实施例中,将产生环回的接口由UP状态变为DOWN状态。
[0062]如图2所示,在一个实施例中,上述步骤S150包括:
[0063]步骤S151,判断探测包是否为本地数据包,若是,则进入步骤S152,若否,则进入步骤S154。
[0064]本实施例中,终端设备作为网关所形成的本地网络中,为多个业务划分了多个对应的虚拟局域网,以在终端设备和多个用户端设备之间实现业务的顺畅运行。因此,若业务的网络通信发生了环回,出现了故障,用于实现环回探测的探测包则必然是本地数据包,由于当前接收的探测包可能是本地数据包,也可能是来自于终端设备的本地网络之外的其它网络,因此,需要判断当前接收的探测包是否为本地数据包。
[0065]步骤S152,进一步判断探测包的源接口是否为绑定的网桥接口,若是,则进入步骤S153,若否,则结束。
[0066]本实施例中,若判断到当前接收的探测包为本地数据包,则需要进一步对探测包的源接口进行判断,以获知该探测包的源接口是否为绑定的网桥接口,若是,则说明该探测包的源接口与当前接收该探测包的接口相一致,即均为绑定的某一网桥接口,此时即可判定产生了环回,若否,则说明业务的网络通信正常运行。
[0067]步骤S153,将源接口动态更新至创建的虚拟文件中。
[0068]本实施例中,将产生了环回的源接口更新到创建的虚拟文件中,例如,proc文件,其中,该虚拟文件是由内存所创建的,并于更改发生时进行动态更新。虚拟文件将记录了当前发生了环回的接口。
[0069]步骤S154,释放产生环回的探测包。
[0070]本实施例中,若判断到探测包并非是本地数据包,则因为与本地网络中业务的网络通信无关,将释放产生了环回的探测包。
[0071]如图3所示,在一个实施例中,上述步骤S170包括:
[0072]步骤S171,读取虚拟文件得到产生环回的接口。
[0073]本实施例中,读取虚拟文件,以获知是否存在产生环回的接口。
[0074]步骤S173,将产生环回的接口所对应的状态更新为关闭状态。
[0075]本实施例中,将产生环回的接口由开启状态,即UP状态变换为关闭状态,即DOWN状态。
[0076]在另一个实施例中,上述步骤S170之后,该方法还包括:
[0077]探测关闭的接口是否可恢复,若是,则重新开启关闭的接口。
[0078]本实施例中,预先设置解除检测时间间隔,按照预先设置的解除检测时间间隔临时开启关闭的接口,并通过发送探测包检测环路是否解除,若是,则说明该接口已经恢复正常工作状态,可重新开启该接口,若否,则说明当前该接口还存在着环路故障,应当继续关闭该接口。
[0079]下面结合一个具体的实施例来详细阐述环路检测方法。该实施例中,终端设备中运行的操作系统为Linux操作系统,因此,上述环路检测方法将由Linux操作系统中的适配层、loopmon进程和内核所实现的。
[0080]触发运行终端设备时将通过适配层中的init进程完成内核的初始化,并获取包含了预设的发送探测包的时间间隔和解除检测时间间隔、虚拟局域网标记等的配置信息。
[0081]此时,将通过loopmon进程对用户端设备进行操作,读取配置信息以得到预设的发送探测包的时间间隔,根据该时间间隔定时发送探测包。
[0082]内核接收到loopmon进程所发送的探测包之后,将向探测包的包头添加虚拟局域网标记,然后再将通过socket所绑定的网桥接口将添加了虚拟局域网标记的探测包发送出去。
[0083]终端设备接收到返回的探测包时,内核将会在软件中断环境中调用netif_receive_skb函数判断是否产生环回,若是,则说明发送和接收该探测包的接口为同一网桥接口,即源接口和目标接口均为同一网桥接口,将该网桥接口写虚拟文件中,以对虚拟文件进行动态更新。
[0084]Loopmon进程读取虚拟文件以得到发生了环回的接口,以将该接口关闭,将更新相应的接口状态链表。
[0085]Loopmon进程将读取接口状态链表,并按照预设的解除检测时间间隔临时开启关闭的网桥接口,通过发送探测包探测该网桥接口是否已经恢复正常,若是,则开启该网桥接口,并相应更新接口状态链表。
[0086]如图4所示,在一个实施例中,一种环路检测系统包括处理模块110、接收模块130、环回判断模块150和接口关闭模块170。
[0087]处理模块110,用于获取探测包,并根据探测包对应的虚拟局域向探测包添加虚拟局域网标记,并发送探测包。
[0088]本实施例中,终端设备将发送探测包,其中,该探测包是与业务的虚拟局域网对应的。具体的,处理模块110将按照预设的时间间隔向操作系统内核发送探测包,此时,将对接收到的探测包中的包头信息添加虚拟局域网标记,以将添加了虚拟局域网标记的探测包发送出去。
[0089]接收模块130,用于接收用户端设备返回的探测包。
[0090]本实施例中,发送了探测包的终端设备中,接收模块130将接收到用户端设备所返回的探测包。
[0091]环回判断模块150,用于根据接收的探测包判断接口是否产生环回,若是,则通知接口关闭模块150,若否,则停止执行。
[0092]本实施例中,环回判断模块150通过接收自己所发出的探测包来探测当前是否产生环回,进而定位产生了环回的网桥接口。若根据接收的探测包获知发送和接收该探测包为同一网桥接口,则说明该网桥接口产生了环回,此时,需要通知接口关闭模块150关闭该网桥接口,以对其它业务的网络通信造成影响。
[0093]接口关闭模块170,用于关闭产生环回的接口。
[0094]本实施例中,接口关闭模块170将产生环回的接口由UP状态变为DOWN状态。
[0095]如图5所示,在一个实施例中,上述环回判断模块150包括本地判断单元151、接口判断单元153和动态更新单元155。
[0096]本地判断单元151,用于判断探测包是否为本地数据包,若是,则通知接口判断单元153,若否,则释放产生环回的探测包。
[0097]本实施例中,终端设备作为网关所形成的本地网络中,为多个业务划分了多个对应的虚拟局域网,以在终端设备和多个用户端设备之间实现业务的顺畅运行。因此,若业务的网络通信发生了环回,出现了故障,用于实现环回探测的探测包则必然是本地数据包,由于当前接收的探测包可能是本地数据包,也可能是来自于终端设备的本地网络之外的其它网络,因此,需要本地判断单元151判断当前接收的探测包是否为本地数据包。
[0098]若判断到探测包并非是本地数据包,则因为与本地网络中业务的网络通信无关,本地判断单元151将释放产生了环回的探测包。
[0099]接口判断单元153,用于进一步判断探测包的源接口是否为绑定的网桥接口,若是,则通知动态更新单元155,若否,则停止执行。
[0100]本实施例中,若判断到当前接收的探测包为本地数据包,则需要接口判断单元153进一步对探测包的源接口进行判断,以获知该探测包的源接口是否为绑定的网桥接口,若是,则说明该探测包的源接口与当前接收该探测包的接口相一致,即均为绑定的某一网桥接口,此时即可判定产生了环回,若否,则说明业务的网络通信正常运行。
[0101]动态更新单元155,用于将源接口动态更新至创建的虚拟文件中。
[0102]本实施例中,动态更新单元155将产生了环回的源接口更新到创建的虚拟文件中,例如,proc文件,其中,该虚拟文件是由内存所创建的,并于更改发生时进行动态更新。虚拟文件将记录了当前发生了环回的接口。
[0103]如图6所示,在一个实施例中,上述接口关闭模块170包括读取单元171和接口更新单元173。
[0104]读取单元171,用于读取虚拟文件得到产生环回的接口。
[0105]本实施例中,读取单元171读取虚拟文件,以获知是否存在产生环回的接口。
[0106]接口更新单元173,将产生环回的接口所对应的状态更新为关闭状态。
[0107]本实施例中,接口更新单元173将产生环回的接口由开启状态,即UP状态变换为关闭状态,即DOWN状态。
[0108]在一个实施例中,上述系统还包括了恢复探测模块,该恢复探测模块用于探测关闭的接口是否可恢复,若是,则重新开启关闭的接口,若否,则停止执行。
[0109]本实施例中,预先设置解除检测时间间隔,恢复探测模块按照预先设置的解除检测时间间隔临时开启关闭的接口,并通过发送探测包检测环路是否解除,若是,则说明该接口已经恢复正常工作状态,可重新开启该接口,若否,则说明当前该接口还存在着环路故障,应当继续关闭该接口。
[0110]在一个实施例中,上述系统还包括了接口绑定模块。该接口绑定模块用于创建套接字实例,通过套接字实例绑定网桥接口。
[0111]本实施例中,接口绑定模块创建用于网桥接口的套接字实例,即socket,该网桥接口可为以太网接口,以启用绑定的网桥接口中的环回监测功能。
[0112]该处理模块110还用于通过绑定的网桥接口发送探测包。
[0113]本实施例中,每一业务所在的虚拟局域网均是通过预先绑定的网络接口实现探测包的发送的,也就是说,对于多个业务而言,将存在着多个虚拟局域网(VLAN),则处理模块110为每一业务预先绑定了一个网络接口,以用于实现该业务的网络传输。
[0114]因此,由上所述,终端设备将根据一定的时间间隔依次通过业务所对应的网桥接口发送携带了不同虚拟局域网标记的探测包,进行环回监测,检测虚拟局域网中是否存在环路故障。
[0115]上述环路检测方法和系统中,根据探测包对应的虚拟局域网向探测包添加虚拟局域网标记后发送,以接收到用户端设备所返回的探测包,根据返回的探测包即可判断是否产生了环回,若是,则关闭相应的接口即可,以实现了虚拟局域网中的环回探测,进而能够准确定位虚拟局域网中出现了环回的业务,并通过关闭相应接口使得出现了环回的业务不会对其它业务造成影响。
[0116]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0117]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种环路检测方法,包括如下步骤: 获取探测包,并根据所述探测包对应的虚拟局域网向所述探测包添加虚拟局域网标记,并发送所述探测包; 接收用户端设备返回的探测包; 根据所述接收的探测包判断接口是否产生环回,若是,则 关闭所述产生环回的接口。
2.根据权利要求1所述的方法,其特征在于,所述根据所述接收的探测包判断接口是否产生环回的步骤包括: 判断所述探测包是否为本地数据包,若是,则进一步判断所述探测包的源接口是否为绑定的网桥接口,若是,则 将所述源接口动态更新至创建的虚拟文件中。
3.根据权利要求2所述的方法,其特征在于,所述关闭所述产生环回的接口的步骤包括: 读取虚拟文件得到产生环回的接口; 将所述产生环回的接口所对应的状态更新为关闭状态。
4.根据权利要求1所述的方法,其特征在于,所述关闭所述产生环回的接口的步骤之后,所述方法还包括: 探测关闭的接口是否可恢复,若是,则重新开启所述关闭的接口。
5.根据权利要求1所述的方法,其特征在于,所述发送所述探测包的步骤之前,所述方法还包括: 创建套接字实例,通过所述套接字实例绑定网桥接口 ; 所述发送所述探测包的步骤为: 通过所述绑定的网桥接口发送探测包。
6.一种环路检测系统,其特征在于,包括: 处理模块,用于获取探测包,并根据所述探测包对应的虚拟局域网向所述探测包添加虚拟局域网标记,并发送所述探测包; 接收模块,用于接收用户端设备返回的探测包; 环回判断模块,用于根据所述接收的探测包判断接口是否产生环回,若是,则通知接口关闭模块; 所述接口关闭模块用于关闭所述产生环回的接口。
7.根据权利要求6所述的系统,其特征在于,所述环回判断模块包括: 本地判断单元,用于判断所述探测包是否为本地数据包,若是,则通知接口判断单元;所述接口判断单元用于进一步判断所述探测包的源接口是否为绑定的网桥接口,若是,则通知动态更新单元; 所述动态更新单元用于将所述源接口动态更新至创建的虚拟文件中。
8.根据权利要求7所述的系统,其特征在于,所述接口关闭模块包括: 读取单元,用于读取虚拟文件得到产生环回的接口 ; 接口更新单元,用于将所述产生环回的接口所对应的状态更新为关闭状态。
9.根据权利要求6所述的系统,其特征在于,所述系统还包括:恢复探测模块,用于探测关闭的接口是否可恢复,若是,则重新开启所述关闭的接口。
10.根据权利要求6所述的系统,其特征在于,所述系统还包括:接口绑定模块,用于创建套接字实例,通过所述套接字实例绑定网桥接口 ;所述处理模块还用于通过所述绑定的网桥接口发送探测包。
【文档编号】H04L12/26GK104283730SQ201310284726
【公开日】2015年1月14日 申请日期:2013年7月8日 优先权日:2013年7月8日
【发明者】陈炼辉 申请人:深圳市共进电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1