报文处理方法、装置及分布式设备与流程

文档序号:12789418阅读:380来源:国知局
报文处理方法、装置及分布式设备与流程

本发明涉及数据通信技术领域,具体而言,涉及一种报文处理方法、装置及分布式设备。



背景技术:

因特网组管理协议(Internet Group Management Protocol,IGMP),用于实现主机和路由器之间组成员关系的建立与维护,随着网络的发展,IGMP协议正越来越多的运用于网络中。IGMP报文具有多种类型,如加组报文、离组报文等,且报文格式简单,报文本身不具备安全功能。IGMP协议对于网络中大量的IGMP报文,无法判断是否为有效的IGMP报文,因而会全部进行处理,这样就导致主控处理单元MPU(Main Processing Unit)的CPU因处理大量的IGMP报文而处于繁忙状态,影响其他业务的处理。特别在有恶意报文攻击中,造成网络异常。

现有技术中通常以下面两种方法来防止网络中大量的IGMP报文或恶意的IGMP攻击报文对MPU的CPU的冲击,造成CPU繁忙而影响正常业务处理的问题。一种是交换机通过不同的队列将报文送交CPU,通过限制IGMP报文所在队列的速率,限制IGMP报文上MPU的速率。此种方法能够降低IGMP报文上MPU的速率,但是在IGMP报文数量较多时,容易导致因超过CPU限速而丢弃正常的IGMP报文。另一种是通过限制IGMP特定组地址来限制报文的接收,此种方法能够减少接收报文的范围,但对于网络中存在大量相同组范围的报文时,仍存在上述问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种报文处理方法、装置及分布式设备,以有效地改善上述问题。

为了实现上述目的,本发明采用的技术方案如下:

第一方面,本发明实施例提供了一种报文处理方法,所述方法包括:获取接收到的报文的类型;根据获取到的类型在与该类型对应的链表中查找与所述报文对应的条目;若在所述链表中查找到与所述报文对应的条目且该条目的上报定时器为启动状态,丢弃所述报文;若在所述链表中没有查找到与所述报文对应的条目,将所述报文发送到组播管理模块。

第二方面,本发明实施例还提供了一种报文处理装置,该装置包括:获取模块、查找模块、丢弃模块和发送模块。获取模块,用于获取接收到的报文的类型。查找模块,用于根据获取到的类型在与该类型对应的链表中查找与所述报文对应的条目。丢弃模块,用于若在所述链表中查找到与所述报文对应的条目且该条目的上报定时器为启动状态,丢弃所述报文。发送模块,用于若在所述链表中没有查找到与所述报文对应的条目,将所述报文发送到主控处理单元MPU的组播管理模块。

第三方面,本发明实施例还提供了一种分布式设备,包括主控处理单元MPU和至少一个包括上述报文处理装置的线卡处理单元LPU。所述MPU包括组播管理模块,用于接收所述报文处理装置发送的报文,所述报文包括加组报文和离组报文。

相比于现有技术,本发明实施例提供的报文处理方法、装置及分布式设备,针对接收到的不同类型的IGMP报文,根据IGMP报文的类型在对应的链表中查找与该报文对应的条目,若在链表中查找到与该报文对应的条目且该条目的上报定时器为启动状态,表明接收到的报文为无效的报文,从而丢弃该报文,若在链表中没有查找到与报文对应的条目,将该报文发送到组播管理模块,能够针对不同类型的IGMP报文实现速率控制,有效地改善了由于网络中大量的IGMP报文或恶意的IGMP攻击报文对主控处理单元MPU的CPU的冲击,造成MPU的CPU繁忙而影响正常业务处理的问题。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的一种分布式设备和多个主机的组播示意图;

图2示出了一种可应用于本发明实施例中的分布式设备的结构框图;

图3示出了本发明第一实施例提供的一种报文处理方法的流程图;

图4示出了本发明第二实施例提供的第一种报文处理方法的方法流程图;

图5示出了本发明第二实施例提供的加组报文预判定步骤的流程图;

图6示出了本发明第二实施例提供的第二种报文处理方法的方法流程图;

图7示出了本发明第二实施例提供的第三种报文处理方法的方法流程图;

图8示出了本发明第二实施例提供的告警信息生成步骤的流程图;

图9示出了本发明第三实施例提供的一种报文处理方法的方法流程图;

图10示出了本发明第三实施例提供的另一种报文处理方法的方法流程图;

图11示出了本发明第三实施例提供的告警信息生成步骤的流程图;

图12示出了本发明第四实施例提供的一种报文处理装置的功能模块框图;

图13示出了本发明第五实施例提供的一种报文处理装置的功能模块框图;

图14示出了本发明第六实施例提供的一种报文处理装置的功能模块框图。

具体实施方式

如图1所示,是本发明实施例提供的一种分布式设备和多个主机的组播示意图。所述多个主机(如图1中所示201、202及203)与分布式设备100之间进行组播数据传输。于本发明实施例中,分布式设备100可以为组播路由器、交换机等分布式网络通信设备。

图2示出了一种可应用于本发明实施例中的分布式设备100的结构框图。如图2所示,分布式设备100包括:主控处理单元110(Main ProcessingUnit,MPU)和至少一个线卡处理单元120(Line Processing Unit,LPU)。LPU包括报文处理装置,用于对接收到的IGMP报文进行预处理,从而丢弃无效的报文,将通过该预处理的IGMP报文发送至MPU。MPU包括组播管理模块,用于接收报文处理装置发送的报文,包括加组报文和离组报文,根据IGMP协议对报文处理装置发送的报文进行处理。

可以理解,图2所示的结构仅为示意,分布式设备100还可包括比图2中所示更多的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。

由于IGMP报文格式简单,报文本身不具备安全功能,IGMP协议对于网络中大量的IGMP报文,无法判断是否为有效的IGMP报文,因而会全部进行处理,这样就导致MPU的CPU因处理大量的IGMP报文而处于繁忙状态,影响其他业务的处理。特别在有恶意报文攻击中,造成网络异常。因此,先通过本发明实施例提供的报文处理方法根据报文类型对分布式设备100所接收到的IGMP报文进行预处理,丢弃掉无效的IGMP报文,然后再将通过预处理的报文上送给MPU,再由MPU根据IGMP协议对接收到的IGMP报文进行处理,能够有效地控制MPU处理IGMP报文的速率,有效降低网络中大量的IGMP报文对MPU的CPU的冲击,增强系统稳定性。

需要说明的是,于本发明的优选实施例中,报文处理装置对应的程序指令/模块运行于分布式设备100的LPU卡中,占用系统资源少。当然,于本发明的其他实施例中,包括报文处理装置对应的程序指令/模块的LPU与MPU也可以运行于集中式通信设备中。

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

第一实施例

图3示出了本发明第一实施例提供的一种报文处理方法的流程图。请参阅图3,本实施例描述的是分布式设备100的处理流程,所述方法包括:

步骤S110,获取接收到的报文的类型;

IGMP报文具有多种类型,例如IGMP通用查询报文、IGMP特定组查询报文、IGMP加组报文、IGMP离组报文等。IGMP通用查询报文为组播路由器向组播组成员发送的报文,用于查询哪些组播组存在成员。IGMP特定组查询报文为组播路由器向组播组成员发送的报文,用于查询特定组播组是否存在成员。IGMP加组报文,即IGMP报告报文,为主机向组播路由器发送的报告报文,用于申请加入某个组播组或者应答IGMP查询报文。IGMP离组报文为组播组成员向组播路由器发送的报文,用于告知组播路由器该主机离开了某个组播组。

对接收到的IGMP报文进行格式解析,可以获得该IGMP报文的类型。本实施例中,优选主要对IGMP加组报文和IGMP离组报文两种IGMP报文进行处理,以下简称加组报文和离组报文。对于这两种报文类型外的其他报文,可以直接发送至组播管理模块,由组播管理模块继续对这些报文进行处理。当然,在本发明另外的实施例中,也可以处理这两种报文类型以外的其他报文。

步骤S120,根据获取到的类型在与该类型对应的链表中查找与所述报文对应的条目;

预先配置有所需要的报文类型对应的链表,该链表用于管理报文对应的条目。每个条目均具有唯一识别码,该唯一识别码至少包括但不限于报文源端口、报文源IP、组播组地址以及VLAN号。

因此,获取到所接收的报文的类型后,根据该报文类型查找与该类型对应的链表。例如,加组报文对应有加组链表,离组报文对应有离组链表。进一步的,在该报文类型对应的链表中查找与该报文对应的条目。具体的,当条目的唯一识别码包括报文源端口、报文源IP、组播组地址以及VLAN号时,可以获取接收到的报文中的源端口、源IP、组播组地址以及VLAN号,根据获取到的源端口、源IP、组播组地址以及VLAN号在该报文类型对应的链表中查找唯一识别码与该报文匹配的条目。

步骤S130,若在所述链表中查找到与所述报文对应的条目且该条目的上报定时器为启动状态,丢弃所述报文;

步骤S140,若在所述链表中没有查找到与所述报文对应的条目,将所述报文发送到组播管理模块。

于本发明实施例中,链表中每个条目均配置有一个上报定时器,且对于每个上报定时器均预先设置有定时时间,该定时时间即为链表中对应条目的老化时间。其中,定时时间大于或等于1且小于或等于IGMP查询间隔时间。例如,定时时间可以设置为60s。

本发明实施例中,上报定时器的状态包括启动状态和超时状态。上报定时器在开启后的定时时间内处于启动状态;上报定时器在超时后,即开启时间超过其定时时间时,处于超时状态。

将报文对应的条目添加到链表中时,则开启该条目对应的上报定时器。当该条目对应的上报定时器处于启动状态时,若接收到与该条目对应的报文,则判定该报文为无效报文。由于无效报文的处理与否不影响组播组的正常工作,因此可以丢弃该报文,即不再将该报文发送到组播管理模块处理,从而实现IGMP报文速率的控制。

也就是说,若在链表中查找到与所接收到的报文对应的条目且该条目的上报定时器为启动状态,则表明该报文为无效报文,从而丢弃该报文。当然,若在链表中没有查找到与所接收到的报文对应的条目,则将该报文发送到组播管理模块,由组播管理模块继续对该报文进行处理,以使得分布式设备100根据该报文创建组播组或者更新组播组的成员关系。然后将该报文对应的条目添加到与该报文类型对应的链表中,开启该条目的上报定时器。作为一种实施方式,当每个链表中的任意一个条目的上报定时器达到超时状态时,可以停止该上报定时器,并将该条目从链表中删除。

相比于现有技术,本发明实施例提供的报文处理方法,针对接收到的不同类型的IGMP报文,根据IGMP报文的类型在对应的链表中查找与该报文对应的条目,若在链表中查找到与该报文对应的条目且该条目的上报定时器为启动状态,表明接收到的报文为无效的报文,从而丢弃该报文,若在链表中没有查找到与报文对应的条目,将该报文发送到组播管理模块,能够针对不同类型的IGMP报文实现速率控制,有效地改善了由于网络中大量的IGMP报文或恶意的IGMP攻击报文对主控处理单元MPU的CPU的冲击,造成MPU的CPU繁忙而影响正常业务处理的问题。

第二实施例

图4示出了本发明第二实施例提供的一种报文处理方法的流程图。请参阅图4,本实施例描述的是分布式设备100对加组报文的处理流程,所述方法包括:

步骤S200,获取接收到的报文的类型;

于本发明实施例中,步骤S200的具体实施方式可以参照上述第一实施例中的步骤S110,此处不再赘述。

步骤S202,若接收到的报文为加组报文,在预设的加组链表中查找与所述加组报文对应的条目;

预先配置的加组链表用于管理加组报文对应的条目,加组链表中每个条目均对应于一个加组报文。每个条目均具有唯一识别码,该唯一识别码至少包括但不限于报文源端口、报文源IP、组播组地址以及VLAN号。相应地,获取接收到的报文的唯一识别码,根据获取到的唯一识别码在加组链表中查找与该报文对应的条目。

于本实施例中,为了提高处理效率,在执行步骤S202之前,该报文处理方法还可以包括加组报文预判定步骤,用于对所接收到的加组报文的可信度进行初步判定。具体的,如图5所示,上述加组报文预判定步骤包括以下步骤S2010至步骤S2018。

步骤S2010,若接收到的报文为加组报文,在预设的信任列表中查找与该加组报文匹配的条目。

预先设置加组报文对应的信任列表,加组报文对应的信任列表中包括多个预先确定为受信任的加组报文条目。

步骤S2012,判断在信任列表中是否查找到与该加组报文匹配的条目。

若在所述信任列表中没有查找到与该加组报文匹配的条目,则执行步骤S2018。

作为一种实施方式,本发明实施例中还可以预先设置黑名单列表,黑名单列表中包括预先确定为不受信任的加组报文条目。若在黑名单列表中存在与接收到的报文对应的条目,则丢弃该报文。此时,若在所述信任列表中查找到与该加组报文匹配的条目,则执行步骤S2014。需要说明的是,作为另一种实施方式,也可以不设置黑名单列表,当在信任列表中查找到与该报文匹配的条目时,则表示该报文被初步确定为受信任的报文,直接执行步骤S202。

步骤S2014,在预设的黑名单列表中查找与该加组报文匹配的条目。

步骤S2016,判断在黑名单列表中是否查找到与该加组报文匹配的条目。

若在所述黑名单列表中没有查找到与该加组报文匹配的条目,则执行步骤S202。然而,若在黑名单列表中查找到与所述报文匹配的条目,则表明该报文不受信任,执行步骤S2018。

步骤S2018,丢弃该加组报文。

若在信任列表中没有查找到与该加组报文匹配的条目,或者是,在信任列表中查找到与该加组报文匹配的条目但是在黑名单列表中也查找到与该加组报文匹配的条目,则表明该加组报文不受信任,从而丢弃该加组报文。

步骤S204,若在所述加组链表中查找到与所述加组报文对应的条目且该条目的上报定时器为启动状态,丢弃所述加组报文。

于本发明实施例中,加组链表中每个条目均配置有一个上报定时器,且对于每个上报定时器均预先设置有第一定时时间,该第一定时时间即为加组链表中对应条目的老化时间。其中,第一定时时间大于或等于1且小于或等于IGMP查询间隔时间。例如,第一定时时间可以设置为60s。

将加组报文对应的条目添加到加组链表中时,则开启该条目对应的上报定时器。上报定时器的状态包括启动状态和超时状态。上报定时器在开启后的第一定时时间内处于启动状态;上报定时器超时后,即开启时间超过其第一定时时间时,处于超时状态。当该条目对应的上报定时器处于启动状态时,若接收到与该条目对应的加组报文,则判定该加组报文为无效报文。由于无效报文的处理与否不影响组播组的正常工作,因此可以丢弃该加组报文,即不再将该加组报文发送到组播管理模块处理,从而实现加组报文速率的控制。

也就是说,若在加组链表中查找到与所接收到的加组报文对应的条目且该条目的上报定时器为启动状态,则表明该加组报文为无效报文,从而丢弃该加组报文。

如图6所示,执行完步骤S202后,若在所述加组链表中没有查找到与所述加组报文对应的条目,则执行以下步骤S206。

步骤S206,若在所述加组链表中没有查找到与所述加组报文对应的条目,将所述加组报文发送到组播管理模块,将所述加组报文对应的条目添加到所述加组链表中,启动该条目的上报定时器。

组播管理模块继续对加组报文进行处理,以使得分布式设备100根据该加组报文创建组播组或者更新组播组的成员关系。

可以理解的是,在添加到加组链表中的该条目的上报定时器超时前,若再次接收到该条目对应的加组报文,则可以在加组链表中查找到该条目,且此时该条目的上报定时器处于启动状态,从而丢弃所接收到的加组报文。

在具体应用场景中,主机发送加组报文和离组报文的间隔时间可能较短,即主机在加组操作和离组操作之间快速切换。因此,为了避免在处理加组报文的过程中,丢弃正常的离组报文,如图6所示,上述步骤S206中,将加组报文发送到组播管理模块之后,本实施例提供的报文处理方法还包括以下步骤S2100和步骤S2102。

步骤S2100,根据所述加组报文的特征信息在离组链表中查找与所述特征信息对应的条目。

本实施例中,加组报文的特征信息可以包括加组报文的源端口、源IP、组播组地址和VLAN号。离组链表为预先设置的,用于管理离组报文对应的条目,每个条目均具有唯一标识码。上述加组报文的特征信息与离组链表中条目的唯一标识码对应,将加组报文的特征信息与离组链表中每个条目的唯一标识码匹配,查找与加组报文的特征信息对应的条目。

步骤S2102,若在所述离组链表中查找到与所述特征信息对应的条目且所述离组链表中的该条目的上报定时器为启动状态,停止该条目的上报定时器。

同理,离组链表中的每个条目也均配置有一个上报定时器,对于每个上报定时器均预先设置有第二定时时间,该第二定时时间即为离组链表中对应条目的老化时间。其中,第二定时时间大于或等于1且小于或等于IGMP查询间隔时间。例如,第二定时时间可以设置为60s。本实施例中,第二定时时间与第一定时时间优选设置为相等。当然,在其他实施例中,第二定时时间与第一定时时间也可以不等,具体可以根据用户的需要设置。

若在离组链表中查找到与加组报文的特征信息对应的条目且该条目的上报定时器为启动状态,则停止该条目的上报定时器,以便于当同一主机在发送该加组报文后的较短时间间隔内,又发送了与该加组报文对应的离组报文时,组播管理模块能够及时处理该离组报文,从而避免该离组报文被当作无效报文丢弃掉。此时,若接收到离组报文,虽然能够在离组链表中查找到与该离组报文对应的条目,但由于该条目的上报定时器已被停止,因此仍将该离组报文发送到组播管理模块,并重新启动该条目的上报定时器。

需要说明的是,若在离组链表中没有查找到与所述特征信息对应的条目,或者是在离组链表中查找到与所述特征信息对应的条目但离组链表中的该条目的上报定时器不为启动状态,则不需要根据上述特征信息对离组链表进行处理。

作为一种实施方式,当加组链表中的条目老化后,即条目对应的上报定时器达到超时状态时,可以将该条目从加组链表中删除,当再次接受到对应于该条目的加组报文时,再重新将该条目添加到加组链表中。然而,若在该条目老化后立即将该条目从加组链表中删除,若在删除后的较短时间间隔内接收到该条目对应的加组报文,则会在较短时间间隔内相继执行删除和添加相同的条目的操作,增加工作量。因此,为了进一步简化处理流程,在本发明实施例的优选实施方式中,加组链表中的每个条目还设置有延时定时器,并预先为每个延时定时器设置有第三定时时间,延时定时器的第三定时时间即为加组链表中的条目老化后,该条目存在于加组链表中的延时时间。因此,如图7所示,本实施例提供的报文处理方法还包括步骤S208。

步骤S208,若所述加组链表中任一条目的上报定时器达到超时状态,启动该条目的延时定时器。

本实施例中,延时定时器的第三定时时间等于组老化时间减去条目的上报定时器的第一定时时间。其中,组老化时间即为分布式设备100以及多个主机构成的组播组的老化时间,该老化时间由组播组成员的最大响应时间、查询间隔时间以及查询者的健壮变量决定。可以理解的是,延时定时器也包括启动状态和超时状态,延时定时器在开启后的第三定时时间内处于启动状态;延时定时器在超时前,即开启时间超过其第三定时时间时,处于超时状态。

需要说明的是,步骤S208的执行顺序不限于图7所示的顺序,其可以发生在其他任意步骤的前后或与其他任意步骤同时发生,若加组链表中存在有条目的上报定时器达到超时状态,则执行步骤S208。此时,如图7所示,执行完上述步骤S202后,本发明实施例提供的报文处理方法还包括以下步骤S210。

步骤S210,若在所述加组链表中查找到与所述加组报文对应的条目且该条目的上报定时器为超时状态以及该条目的延时定时器为启动状态,将所述加组报文发送到所述组播管理模块,并重置该条目的上报定时器,停止该条目的延时定时器。

在加组链表中查找与接收到的加组报文对应的条目时,若在加组链表中查找到与该加组报文对应的条目,且此时该条目的上报定时器处于超时状态,该条目的延时定时器处于启动状态,说明当前时刻该加组报文对应的条目已经老化,但处于该条目的延时时间段内。由于加组链表中该加组报文对应的条目已经老化,因此将该加组报文发送到组播管理模块继续处理。此外,重置该条目的上报定时器,即重新开始该条目的老化周期,并停止该条目的延时定时器,即停止本次延时。

需要说明的是,步骤S210中,将所述加组报文发送到所述组播管理模块之后,为了避免在处理加组报文的过程中,丢弃正常的离组报文,仍需要执行上述步骤S2100和步骤S2102,如图7所示。根据加组报文的特征信息在离组链表中查找与所述特征信息对应的条目,若在所述离组链表中查找到与所述特征信息对应的条目且所述离组链表中的该条目的上报定时器为启动状态,停止该条目的上报定时器。若在离组链表中没有查找到与所述特征信息对应的条目,或者是在离组链表中查找到与所述特征信息对应的条目但离组链表中的该条目的上报定时器不为启动状态,则不需要根据上述特征信息对离组链表进行处理。

进一步的,当加组链表中条目的延时定时器达到超时状态,表明本次延时结束,此时再将该条目从加组链表中删除。因此,如图7所示,本发明实施例提供的报文处理方法还包括步骤S212。需要说明的是,步骤S212的执行顺序不限于图7所示的顺序,其可以发生在其他任意步骤的前后或与其他任意步骤同时发生,若加组链表中存在有条目的延时定时器达到超时状态,则执行步骤S212。

步骤S212,若所述加组链表中任一条目的延时定时器达到超时状态,将该条目从所述加组链表中删除。

当预设的加组链表中不存在当前接收到的加组报文对应的条目时,将该加组报文对应的条目添加到加组链表中,启动该条目的上报定时器。上报定时器开始计时,当达到预设的老化时间时,该条目的上报定时器处于超时状态即该条目处于老化状态,启动该条目的延时定时器。延时定时器开始计时,当延时定时器达到预设的老化时间时,延时定时器处于超时状态,此时将该条目从加组链表中删除。在此过程中,需要说明的是,在延时定时器从开启到超时之间的时间段内,若接收到该条目对应的加组报文,则重置该条目的上报定时器,停止该条目的延时定时器,此时延时定时器无法达到超时状态,则不用将该条目从加组链表中删除。

此外,为了便于管理员分析网络环境,可以进一步对所丢弃的加组报文进行计数,并预先设置告警条件,以根据计数结果和告警条件判断是否生成告警信息。具体的,本发明实施例提供的报文处理方法还可以包括告警信息生成步骤。本实施例中,告警信息生成步骤包括以下步骤S214、步骤S216以及步骤S218,如图8所示。

步骤S214,在所述加组链表中每个条目的当前上报定时器超时前,对接收的与所述加组链表中每个条目对应的所述加组报文进行计数,得到当前定时周期内该条目对应的加组报文丢弃量。

加组链表中每个条目的老化周期为该条目的上报定时器的定时周期。在所述加组链表中每个条目的当前上报定时器超时前,分别对接收的与所述加组链表中每个条目对应的加组报文,也就是上述步骤S204所丢弃的加组报文进行计数,得到当前定时周期内该条目对应的加组报文丢弃量。也就是说,上述步骤S204中,若在加组链表中查找到与当前加组报文对应的条目且该条目的上报定时器为启动状态,丢弃该加组报文后,将该条目的当前老化周期内即该条目对应的上报定时器的当前定时周期内,该条目对应的加组报文丢弃量加1。可以理解的是,每个定时周期内,加组报文丢弃量的初始值可以设置为零。

步骤S216,若所述加组报文丢弃量满足预设告警条件时,根据所述加组报文丢弃量、该条目的特征信息以及所述告警条件生成告警信息。

于本发明实施例中,告警条件可以根据需要设置。例如,可以预先设置一个告警阈值,当报文丢弃量超过该告警阈值时,表示满足告警条件,生成告警信息。或者,也可以预先设置一个告警值范围,当报文丢弃量在该告警值范围内时,表示满足告警条件,生成告警信息。具体的,告警信息可以包括但不限于当前老化周期内的加组报文丢弃量、条目的特征信息以及预设的告警条件,以便于管理员可以根据该告警信息及时了解并分析网络环境。

步骤S218,若连续N个所述定时周期内该条目对应的所述加组报文丢弃量均满足预设告警条件,将该条目添加到预设的黑名单列表中。

于本步骤中,黑名单列表为预先设置的,黑名单列表中包括的每个条目均对应于一个不受信任的报文。当某个条目的连续N个定时周期的加组报文丢弃量均满足预设告警条件时,则将该条目添加到黑名单列表中。其中,N默认为0,此时不添加黑名单,用户可以根据具体需要对N进行设置,可以将其设置为大于或等于1的值。

对于添加到黑名单列表中的条目,当后续接收到对应于该条目的加组报文时,该加组报文将直接被丢弃掉。此外,将该条目添加到黑名单列表中后,将生成提示信息,用于提示该条目已被加入黑名单列表。需要说明的是,管理员了解黑名单列表中的条目情况后,可以手动恢复黑名单列表中的成员,即将一些因网络异常造成通信异常的情况下,被添加到黑名单列表中的条目从黑名单列表中删除,增强了网络管理可控性。适时进行黑名单成员恢复,能够有效降低因网络异常而造成的通信异常。

本发明实施例提供的报文处理方法,能够有效地实现对加组报文的速率控制,改善了由于网络中大量的IGMP加组报文或恶意的IGMP加组攻击报文对主控处理单元MPU的CPU的冲击,造成MPU的CPU繁忙而影响正常业务处理的问题。

第三实施例

图9示出了本发明第三实施例提供的一种报文处理方法的流程图。请参阅图9,本实施例描述的是分布式设备100对离组报文的处理流程,所述方法包括:

步骤S300,获取接收到的报文的类型;

于本发明实施例中,步骤S300的具体实施方式可以参照上述第一实施例中的步骤S110,此处不再赘述。

步骤S302,若接收到的报文为离组报文,在预设的离组链表中查找与所述离组报文对应的条目;

预先配置的离组链表用于管理离组报文对应的条目,每个条目均对应于一个离组报文。每个条目均具有唯一识别码,该唯一识别码至少包括但不限于报文源端口、报文源IP、组播组地址以及VLAN号。相应地,获取接收到的报文的唯一识别码,根据获取到的唯一识别码在离组链表中查找与该报文对应的条目。

于本实施例中,为了提高处理效率,在执行步骤S302之前,该报文处理方法还可以包括离组报文预判定步骤,用于对所接收到的离组报文的可信度进行初步判定。具体的,上述预判定步骤包括以下步骤S3011、步骤S3012以及步骤S3013。

步骤S3011,若接收到的报文为离组报文,在预设的信任列表中查找与该离组报文匹配的条目。

预先设置离组报文对应的信任列表,离组报文对应的信任列表中包括多个预先确定为受信任的离组报文条目。

步骤S3012,若在所述信任列表中查找到与该离组报文匹配的条目,则执行上述步骤S302。

接收到的报文为离组报文时,若在离组报文对应的信任列表中查找到与该报文匹配的条目时,则表示该报文被初步确定为受信任的报文,继续执行步骤S302。

步骤S3013,若在所述信任列表中没有查找到与该离组报文匹配的条目,则丢弃该离组报文。

若在离组报文对应的信任列表中没有查找到与该离组报文匹配的条目,则表明该离组报文不受信任,从而丢弃该离组报文。

步骤S304,若在所述离组链表中查找到与所述离组报文对应的条目且该条目的上报定时器为启动状态,丢弃所述离组报文。

于本发明实施例中,离组链表中每个条目均配置有一个上报定时器,且对于每个上报定时器均预先设置有第二定时时间,该第二定时时间即为离组链表中对应条目的老化时间。其中,第二定时时间大于或等于1且小于或等于IGMP查询间隔时间。例如,第二定时时间可以设置为60s。

将离组报文对应的条目添加到离组链表中时,则开启该条目对应的上报定时器。离组链表中的条目对应的上报定时器包括启动状态和超时状态。上报定时器在开启后的第二定时时间内处于启动状态;上报定时器在超时后,即开启时间超过其第二定时时间时,处于超时状态。当该条目对应的上报定时器处于启动状态时,若接收到与该条目对应的离组报文,则判定该离组报文为无效报文。由于无效报文的处理与否不影响组播组的正常工作,因此可以丢弃该离组报文,即不再将该离组报文发送到组播管理模块处理,从而实现离组报文速率的控制。

也就是说,若在离组链表中查找到与所接收到的离组报文对应的条目且该条目的上报定时器为启动状态,则表明该离组报文为无效报文,从而丢弃该离组报文。

进一步的,如图10所示,执行完步骤S302之后,本发明实施例提供的报文处理方法还包括步骤S306以及步骤S308。

步骤S306,若在所述离组链表中没有查找到与所述离组报文对应的条目,将所述离组报文发送到组播管理模块。

在离组链表中没有查找到与该离组报文对应的条目时,将离组报文发送到组播管理模块,由组播管理模块继续对该离组报文进行处理,以使得分布式设备100根据该离组报文更新该离组报文对应的组播组的成员关系或删除该组播组。

步骤S308,将所述离组报文对应的条目添加到所述离组链表中,启动该条目的上报定时器。

需要说明的是,步骤S308也可以发生在将离组报文发送到组播管理模块之前,或者是与将离组报文发送到组播管理模块的步骤基本同时发生。

可以理解的是,在添加到离组链表中的条目的上报定时器超时前,若再次接收到该条目对应的离组报文,则可以在离组链表中查找到该条目,且此时该条目的上报定时器处于启动状态,从而丢弃所接收到的离组报文。

在具体应用场景中,主机发送加组报文和离组报文的间隔时间可能较短,即主机在加组操作和离组操作之间快速切换。因此,为了避免在处理离组报文的过程中,丢弃正常的加组报文,如图10所示,上述步骤S306中,将所述离组报文发送到组播管理模块之后,本实施例提供的报文处理方法还包括步骤S310和步骤S312。

步骤S310,根据所述离组报文的特征信息在加组链表中查找与所述特征信息对应的条目;

本实施例中,离组报文的特征信息可以包括离组报文的源端口、源IP、组播组地址和VLAN号。加组链表为预先设置的,用于管理加组报文对应的条目,每个条目均具有唯一标识码。上述离组报文的特征信息与加组链表中条目的唯一标识码对应,将离组报文的特征信息与加组链表中每个条目的唯一标识码匹配,查找与离组报文的特征信息对应的条目。

步骤S312,若在所述加组链表中查找到与所述特征信息对应的条目且所述加组链表中的该条目的上报定时器为启动状态,停止该条目的上报定时器。

同理,加组链表中的每个条目也均配置有一个上报定时器。对于每个上报定时器均预先设置有第一定时时间,该第一定时时间即为加组链表中对应条目的老化时间。其中,第一定时时间大于或等于1且小于或等于IGMP查询间隔时间。例如,第一定时时间可以设置为60s。若在加组链表中查找到与该离组报文的特征信息对应的条目且该条目的上报定时器为启动状态,则停止该条目的上报定时器,以便于当同一主机在发送该离组报文后的较短时间间隔内,又发送了与该离组报文对应的加组报文时,组播管理模块能够及时处理该加组报文,从而避免该加组报文被当作无效报文丢弃掉。此时,若接收到加组报文,虽然能够在加组链表中查找到与该加组报文对应的条目,但由于该条目的上报定时器已被停止,因此仍将该加组报文发送到组播管理模块,并重新启动该条目的上报定时器。

需要说明的是,若在加组链表中没有查找到与该离组报文的特征信息对应的条目,或者是在加组链表中查找到与该特征信息对应的条目但加组链表中的该条目的上报定时器不为启动状态,则不需要根据上述特征信息对加组链表进行处理。

进一步的,当离组链表中条目的上报定时器达到超时状态时,表明该条目老化,此时需要将该条目从加组链表中删除。因此,如图10所示,本发明实施例提供的报文处理方法还包括步骤S314。

步骤S314,若所述离组链表中任一条目的上报定时器达到超时状态,将该条目从所述离组链表中删除。

将接收到的离组报文对应的条目添加到离组链表中后,则启动该条目对应的上报定时器,上报定时器开始计时,当超过预设的第二定时时间时,该条目的上报定时器处于超时状态即该条目处于老化状态,将该条目从离组链表中删除。

此外,为了便于管理员分析网络环境,可以进一步对所丢弃的离组报文进行计数,并预先设置告警条件,以根据计数结果和告警条件判断是否生成告警信息。具体的,本发明实施例提供的报文处理方法还可以包括告警信息生成步骤。如图11所示,本实施例中,告警信息生成步骤包括以下步骤S316以及步骤S318。

步骤S316,在所述离组链表中每个条目的当前上报定时器超时前,对接收的与所述离组链表中每个条目对应的所述离组报文进行计数,得到当前定时周期内该条目对应的离组报文丢弃量。

离组链表中每个条目的老化周期为该条目的上报定时器的定时周期。在所述离组链表中每个条目的当前上报定时器超时前,分别对接收的与所述离组链表中每个条目对应的离组报文,也就是上述步骤S304所丢弃的离组报文进行计数,得到当前定时周期内该条目对应的离组报文丢弃量。也就是说,上述步骤S304中,若在离组链表中查找到与当前离组报文对应的条目且该条目的上报定时器为启动状态,丢弃该离组报文后,将该条目的当前老化周期内即该条目对应的上报定时器的当前定时周期内,该条目对应的离组报文丢弃量加1。可以理解的是,上报定时器的每个定时周期内,离组报文丢弃量的初始值可以设置为零。

步骤S318,若所述离组报文丢弃量满足预设告警条件时,根据所述离组报文丢弃量、该条目的特征信息以及所述告警条件生成告警信息。

于本实施例中,上述步骤S318的具体实施方式与上述第二实施例中的步骤S216类似,不同之处仅在于步骤S216中,是根据加组报文丢弃量以及针对加组报文设置的告警条件生成相应的告警信息,而步骤S318中,是根据离组报文丢弃量以及针对离组报文设置的告警条件生成相应的告警信息。因此,步骤S318的具体实施方式可以参照与上述第二实施例中的步骤S216。

本发明实施例提供的报文处理方法,能够有效地实现对离组报文的速率控制,改善了由于网络中大量的IGMP离组报文或恶意的IGMP离组攻击报文对MPU的CPU的冲击,造成MPU的CPU繁忙而影响正常业务处理的问题。

第四实施例

请参阅图12,是本发明第四实施例提供的一种报文处理装置的功能模块框图。所述报文处理装置10运行于分布式设备100的线卡处理单元LPU,用于实现第一实施例提出的报文处理方法。如图12所示,所述报文处理装置10包括获取模块11、查找模块12、丢弃模块13以及发送模块14。

其中,获取模块11,用于获取接收到的报文的类型。查找模块12,用于根据获取到的类型在与该类型对应的链表中查找与所述报文对应的条目。丢弃模块13,用于若在所述链表中查找到与所述报文对应的条目且该条目的上报定时器为启动状态,丢弃所述报文。发送模块14,用于若在所述链表中没有查找到与所述报文对应的条目,将所述报文发送到主控处理单元MPU的组播管理模块。

第五实施例

请参阅图13,是本发明第五实施例提供的一种报文处理装置的功能模块框图。所述报文处理装置20运行于分布式设备100的线卡处理单元LPU,用于实现第二实施例提出的报文处理方法。如图13所示,所述报文处理装置20包括:获取模块21、查找模块22、丢弃模块23以及发送模块24。

获取模块21,用于获取接收到的报文的类型。查找模块22,用于若接收到的报文为加组报文,在预设的加组链表中查找与所述加组报文对应的条目。丢弃模块23,用于若在所述加组链表中查找到与所述加组报文对应的条目且该条目的上报定时器为启动状态,丢弃所述加组报文。发送模块24,用于若在加组链表中没有查找到与所述加组报文对应的条目,将所述加组报文发送到主控处理单元MPU的组播管理模块。

进一步的,上述查找模块22还用于在预设的加组链表中查找与所述加组报文对应的条目之前,在预设的信任列表中查找与所述加组报文匹配的条目;若在所述信任列表中查找到与所述加组报文匹配的条目,则执行在加组链表中查找与所述加组报文对应的条目;若在所述信任列表中没有查找到与所述加组报文匹配的条目,则通知丢弃模块丢弃该加组报文。

进一步的,查找模块22还用于若在信任列表中查找到与所述加组报文匹配的条目,在预设的黑名单列表中查找与所述加组报文匹配的条目,若在所述黑名单列表中没有查找到与所述加组报文匹配的条目,则执行在加组链表中查找与所述加组报文对应的条目。

进一步的,如图13所示,所述报文处理装置20还包括:第一加组报文处理模块25。第一加组报文处理模块25,用于若在所述加组链表中没有查找到与所述加组报文对应的条目,将所述加组报文对应的条目添加到所述加组链表中,启动该条目的上报定时器。

进一步的,如图13所示,所述报文处理装置20还包括:第二加组报文处理模块26。第二加组报文处理模块26,用于在将所述加组报文发送到主控处理单元MPU的组播管理模块之后,根据所述加组报文的特征信息在离组链表中查找与所述特征信息对应的条目;若在所述离组链表中查找到与所述特征信息对应的条目且所述离组链表中的该条目的上报定时器为启动状态,停止该条目的上报定时器。

进一步的,如图13所示,本实施例提供的报文处理装置20还包括:第三加组报文处理模块27。第三加组报文处理模块27,用于若在所述加组链表中查找到与所述加组报文对应的条目且该条目的上报定时器为超时状态以及该条目的延时定时器为启动状态,将所述加组报文发送到所述组播管理模块,重置该条目的上报定时器,停止该条目的延时定时器。

进一步的,如图13所示,本实施例提供的报文处理装置20还包括:加组链表管理模块28。加组链表管理模块28,用于若所述加组链表中任一条目的上报定时器达到超时状态,启动该条目的延时定时器;若该条目的延时定时器达到超时状态,将该条目从所述加组链表中删除。

进一步的,如图13所示,所述报文处理装置20还包括第一告警模块29。第一告警模块29包括第一计数子模块291、第一生成子模块292以及黑名单添加子模块293。第一计数子模块291,用于在所述加组链表中每个条目的当前上报定时器超时前,对接收的与所述加组链表中每个条目对应的所述加组报文进行计数,得到当前定时周期内该条目对应的加组报文丢弃量。第一生成子模块292,用于若所述加组报文丢弃量满足预设告警条件时,根据所述加组报文丢弃量、该条目的特征信息以及所述告警条件生成告警信息。黑名单添加子模块293,用于若连续N个所述定时周期内该条目对应的所述加组报文丢弃量均满足预设告警条件,将该条目添加到预设的黑名单列表中。

第六实施例

请参阅图14,是本发明第六实施例提供的一种报文处理装置的功能模块框图。所述报文处理装置30运行于分布式设备100的线卡处理单元LPU,用于实现第三实施例提出的报文处理方法。如图14所示,所述报文处理装置30包括:获取模块31、查找模块32、丢弃模块33以及发送模块34。

获取模块31,用于获取接收到的报文的类型。查找模块32,用于若接收到的报文为离组报文,在预设的离组链表中查找与所述离组报文对应的条目。丢弃模块33,用于若在所述离组链表中查找到与所述离组报文对应的条目且该条目的上报定时器为启动状态,丢弃所述离组报文。发送模块34,用于若在离组链表中没有查找到与所述离组报文对应的条目,将所述离组报文发送到主控处理单元MPU的组播管理模块。

进一步的,查找模块32还用于在预设的离组链表中查找与所述离组报文对应的条目之前,在预设的信任列表中查找与所述离组报文匹配的条目;若在所述信任列表中查找到与所述离组报文匹配的条目,则执行在预设的离组链表中查找与所述离组报文对应的条目;若在所述信任列表中没有查找到与所述离组报文匹配的条目,则通知丢弃模块丢弃该离组报文。

进一步的,如图14所示,本实施例提供的报文处理装置30还包括第一离组报文处理模块35。第一离组报文处理模块35用于若在所述离组链表中没有查找到与所述离组报文对应的条目,将所述离组报文对应的条目添加到所述离组链表中,启动该条目的上报定时器。

进一步的,如图14所示,本实施例提供的报文处理装置30还包括第二离组报文处理模块36。第二离组报文处理模块36用于在将所述离组报文发送到主控处理单元MPU的组播管理模块之后,根据所述离组报文的特征信息在加组链表中查找与所述特征信息对应的条目;若在所述加组链表中查找到与所述特征信息对应的条目且所述加组链表中的该条目的上报定时器为启动状态,停止该条目的上报定时器。

进一步的,如图14所示,本实施例提供的报文处理装置30还包括离组链表管理模块37。离组链表管理模块37用于若所述离组链表中任一条目的上报定时器达到超时状态,将该条目从所述离组链表中删除。

进一步的,如图14所示,本实施例提供的报文处理装置30还包括第二告警模块38。第二告警模块38包括第二计数子模块381以及第二生成子模块382。其中,第二计数子模块381,用于在所述离组链表中每个条目的当前上报定时器超时前,对接收的与所述离组链表中每个条目对应的所述离组报文进行计数,得到当前定时周期内该条目对应的离组报文丢弃量。第二生成子模块382,用于若所述离组报文丢弃量满足预设告警条件时,根据所述离组报文丢弃量、该条目的特征信息以及所述告警条件生成告警信息。

以上第四实施例至第六实施例中,各模块可以是由软件代码实现,此时,上述的各模块可存储于分布式设备100的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1