一种报文处理方法和装置与流程

文档序号:15497661发布日期:2018-09-21 22:01阅读:145来源:国知局

本申请涉及通信技术领域,尤其是涉及一种报文处理方法和装置。



背景技术:

sdn(softwaredefinednetwork,软件定义网络)是一种新型网络架构,sdn的核心思想是分离网络设备的控制层面与转发层面,通过sdn控制器对网络流量进行集中和灵活控制,从而为核心网络及应用的创新提供良好的平台。

在sdn中,网络设备下挂的主机可以向网络设备发送报文,网络设备接收到该报文后,若该报文匹配miss流表项,则将该报文封装成packet-in消息,并将该packet-in消息发送给sdn控制器。sdn控制器在接收到packet-in消息后,根据packet-in消息生成转发流表项,并将该转发流表项下发给网络设备,网络设备在接收到转发流表项后,根据转发流表项进行报文转发。

但是,当网络设备下挂的主机进行攻击时,会发送大量目的地址变化的未知报文,这些未知报文均可以匹配miss流表项,从而导致网络设备向sdn控制器发送大量packet-in消息,并导致sdn控制器在短时间内生成大量转发流表项,消耗sdn控制器的大量cpu(centralprocessingunit,中央处理器)资源。而且,网络设备也需要处理大量转发流表项,消耗了网络设备的大量cpu资源。



技术实现要素:

本申请提供一种一种报文处理方法,应用于网络设备,所述方法包括:

在接收到与默认流表项匹配的第一报文后,向控制器发送控制消息,所述控制消息携带第一报文、预设时间内与默认流表项匹配的所有报文的攻击参数;

接收并存储控制器发送的未知丢弃流表项;其中,所述未知丢弃流表项是控制器根据所述攻击参数确定所述网络设备被攻击时发送的,所述未知丢弃流表项用于丢弃源地址为所述第一报文的源地址、目的地址未命中的报文;

在接收到与所述未知丢弃流表项匹配的第二报文后,丢弃所述第二报文。

本申请提供一种报文处理方法,应用于控制器,所述方法包括:

接收网络设备发送的控制消息,所述控制消息携带与所述网络设备的默认流表项匹配的第一报文、预设时间内与默认流表项匹配的所有报文的攻击参数;

若根据所述攻击参数确定网络设备被攻击,向网络设备发送未知丢弃流表项,所述未知丢弃流表项用于丢弃源地址为所述第一报文的源地址、目的地址未命中的报文;以使网络设备丢弃与所述未知丢弃流表项匹配的第二报文。

本申请提供一种报文处理装置,应用于网络设备,所述装置包括:

发送模块,用于在接收到与默认流表项匹配的第一报文后,向控制器发送控制消息,所述控制消息携带第一报文、预设时间内与默认流表项匹配的所有报文的攻击参数;

接收模块,用于接收并存储控制器发送的未知丢弃流表项;所述未知丢弃流表项是控制器根据所述攻击参数确定网络设备被攻击时发送的,所述未知丢弃流表项用于丢弃源地址为所述第一报文的源地址、目的地址未命中的报文;

所述接收模块,还用于接收到与所述未知丢弃流表项匹配的第二报文;

处理模块,用于丢弃所述第二报文。

本申请提供一种报文处理装置,应用于控制器,所述装置包括:

接收模块,用于接收网络设备发送的控制消息,所述控制消息携带与所述网络设备的默认流表项匹配的第一报文、预设时间内与所述默认流表项匹配的所有报文的攻击参数;

确定模块,用于根据所述攻击参数确定所述网络设备被攻击;

发送模块,用于向所述网络设备发送未知丢弃流表项,所述未知丢弃流表项用于丢弃源地址为所述第一报文的源地址、目的地址未命中的报文;以使所述网络设备丢弃与所述未知丢弃流表项匹配的第二报文。

由以上技术方案可见,本申请实施例中,网络设备向控制器发送控制消息时,该控制消息可以携带攻击参数,使得控制器根据该攻击参数确定网络设备是否被攻击,若网络设备被攻击,控制器向网络设备发送未知丢弃流表项,使得网络设备丢弃与未知丢弃流表项匹配的报文。综上所述,网络设备下挂的主机发送大量目的地址变化的未知报文时,这些报文均匹配未知丢弃流表项,即网络设备丢弃这些报文,而不会为这些报文向控制器发送大量控制消息,避免控制器在短时间内生成大量流表项,从而节约了控制器的cpu资源和网络设备的cpu资源,减轻网络设备和控制器的负担,提升了网络的可靠性和稳定性。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1是本申请一种实施方式中的应用场景示意图;

图2是本申请一种实施方式中的转发流表项和未知丢弃流表项的示意图;

图3是本申请一种实施方式中的报文处理方法的流程图;

图4是本申请一种实施方式中的报文处理装置的结构图;

图5是本申请一种实施方式中的网络设备的硬件结构图;

图6是本申请另一种实施方式中的报文处理装置的结构图;

图7是本申请一种实施方式中的控制器的硬件结构图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例提出一种报文处理方法,可以应用于包括网络设备(如路由器、交换机等)和控制器(如sdn控制器等)的系统,参见图1所示,为本申请实施例的应用场景示意图。在图1中,以3个网络设备为例进行说明,实际应用中,网络设备的数量可以更多,对此不做限制。此外,每个网络设备还可以下挂一个或者多个主机(如vm(虚拟机)等),对此主机数量不做限制。

在一个例子中,为了指导网络设备对报文进行处理(如转发处理、丢弃处理等),控制器可以向网络设备下发三种类型的流表项,可以分别为转发流表项、默认流表项、未知丢弃流表项,以下先对这三种流表项进行简单说明。

1、转发流表项,即普通的流表项。该转发流表项的匹配选项可以包括但不限于:源地址(例如源ip地址、源mac(mediaaccesscontrol,介质访问控制)地址、源端口等)、目的地址(例如目的ip地址、目的mac地址、目的端口等)、入接口、协议类型等内容,动作选项可以为某个出接口。这样,网络设备在接收到与该转发流表项匹配的报文后,就可以通过该出接口转发该报文。

2、默认流表项,也可以称为miss流表项或者talbemiss流表项。默认流表项的匹配选项可以为空,即所有报文均能够与默认流表项匹配,但是,默认流表项具有最低的优先级,也就是说,当报文没有匹配转发流表项和未知丢弃流表项时,该报文才可以与默认流表项匹配。此外,默认流表项的动作选项可以为上送控制器。这样,网络设备在接收到与该默认流表项匹配的报文后,就可以将该报文封装成packet-in消息,并将该packet-in消息上送给控制器。

3、未知丢弃流表项,即dropunkown流表项,未知丢弃流表项用于丢弃源地址命中、目的地址未命中的报文。例如,未知丢弃流表项的匹配选项包括源地址,当报文的源地址与未知丢弃流表项的源地址相同,但该报文的目的地址与每个转发流表项的目的地址均不同时,则说明源地址命中、目的地址未命中。

在一个例子中,为了查询到源地址命中、目的地址未命中的报文,则未知丢弃流表项可以采用多级子表项的方式实现,本实施例中以两级子表项为例进行说明,即未知丢弃流表项可以包括第一级子表项和第二级子表项。

而且,为了存储上述第一级子表项和第二级子表项,则网络设备可以维护两级流表,这两级流表分别为第一级流表和第二级流表,该第一级流表用于存储第一级子表项,该第二级流表用于存储第二级子表项。

综上所述,转发流表项的匹配选项可以包括目的地址,动作选项可以包括某个出接口;当然,上述只是转发流表项的示例,对此不做限制。而且,控制器是将转发流表项下发到网络设备的第二级流表。参见图2所示,匹配选项为ip地址133的流表项、匹配选项为ip地址134的流表项就是转发流表项,对此转发流表项的生成过程、利用转发流表项的报文处理过程,在后续实施例介绍。

其中,未知丢弃流表项的第一级子表项的匹配选项可以包括源地址,动作选项包括设置元数据(metedata);未知丢弃流表项的第二级子表项的匹配选项可以包括该元数据,动作选项可以包括丢弃;当然,上述只是未知丢弃流表项的示例,对此内容不做限制。而且,控制器是将第一级子表项下发到网络设备的第一级流表,并将第二级子表项下发到网络设备的第二级流表。参见图2所示,匹配选项为ip地址131的流表项就是第一级子表项,匹配选项为元数据0x10的流表项就是第二级子表项,对此未知丢弃流表项的生成过程、利用未知丢弃流表项的报文处理过程,在后续实施例介绍。

在上述应用场景下,参见图3所示,为报文处理方法的流程图,可以包括:

步骤301,网络设备在接收到与默认流表项匹配的第一报文后,向控制器发送控制消息(如packet-in消息),该控制消息可以携带该第一报文、预设时间内与默认流表项匹配的所有报文的攻击参数,如报文总数量和/或报文实际速率。

其中,网络设备在接收到第一报文后,当该第一报文没有与转发流表项和未知丢弃流表项匹配时,则网络设备可以确定第一报文与默认流表项匹配。参见上述实施例,已经介绍默认流表项的动作选项可以为上送控制器,因此,网络设备可以将该第一报文封装成控制消息,并将该控制消息上送给控制器。

在一个例子中,默认流表项可以包括攻击参数,网络设备每次接收到与默认流表项匹配的报文后,就可以更新默认流表项中的攻击参数。例如,在默认流表项包括报文总数量时,网络设备在每次接收到与默认流表项匹配的报文后,就可以将报文总数量加1。又例如,在默认流表项包括报文总数量和报文实际速率时,网络设备在每次接收到与默认流表项匹配的报文后,就将报文总数量加1,并利用报文总数量和统计时间获得报文实际速率,假设1分钟内接收到1200个与默认流表项匹配的报文,则报文总数量为1200,报文实际速率为20个/秒。

其中,网络设备可以周期性统计攻击参数,在每个周期,先清除上一个周期的攻击参数(如将报文总数量和报文实际速率清零),然后,网络设备每次接收到与默认流表项匹配的报文后,就可以更新默认流表项中的攻击参数。

在一个例子中,网络设备在向控制器发送控制消息之前,网络设备还可以从默认流表项中读取更新后的攻击参数,并生成携带该攻击参数的控制消息。例如,网络设备可以从默认流表项中读取报文总数量1200、报文实际速率20个/秒,并生成携带报文总数量1200、报文实际速率20个/秒的控制消息。

其中,在网络设备向控制器发送的控制消息中,除了携带第一报文和攻击参数,还可以携带入端口、上送原因等,对此不做限制,以携带第一报文和攻击参数为例。而且,可以通过控制消息的experiment(实验)字段携带攻击参数。例如,experiment字段包括exp_type、experimenter_data[0]和experimenter_data[1],exp_type用于表示该experiment字段携带的是报文总数量以及报文实际速率,experimenter_data[0]携带报文总数量,experimenter_data[1]携带报文实际速率。

步骤302,控制器接收到控制消息后,从控制消息中解析与网络设备的默认流表项匹配的第一报文、预设时间内与默认流表项匹配的所有报文的攻击参数。

步骤303,若控制器根据该攻击参数确定网络设备被攻击,则向该网络设备发送未知丢弃流表项,该未知丢弃流表项用于丢弃源地址为第一报文的源地址、目的地址未命中的报文,以使网络设备丢弃与该未知丢弃流表项匹配的报文。

在一个例子中,控制器根据该攻击参数确定网络设备被攻击,可以包括:若该攻击参数为报文总数量,且报文总数量大于第一数量阈值,则控制器确定网络设备被攻击;若报文总数量不大于第一数量阈值,则控制器确定网络设备没有被攻击。或者,若该攻击参数为报文实际速率,且报文实际速率大于第一速率阈值,则控制器确定网络设备被攻击;若报文实际速率不大于第一速率阈值,则控制器确定网络设备没有被攻击。或者,若该攻击参数为报文总数量和报文实际速率,且报文总数量大于第二数量阈值、报文实际速率大于第二速率阈值,则控制器确定网络设备被攻击;若报文总数量不大于第二数量阈值、和/或报文实际速率不大于第二速率阈值,则控制器确定网络设备没有被攻击。

其中,控制器从控制消息中解析出第一报文和攻击参数后,可以生成流表项,并向网络设备发送该流表项,针对这一过程,可以包括如下三种情况:

情况一、若根据该攻击参数确定网络设备没有被攻击,则控制器可以生成转发流表项,并将该转发流表项发送给网络设备。例如,若攻击参数为报文总数量60和报文实际速率1个/秒,假设报文总数量60不大于第二数量阈值,且报文实际速率1个/秒不大于第二速率阈值,则确定网络设备没有被攻击。假设第一报文是主机131发送给主机133的报文,即第一报文的源ip地址为ip地址131,目的ip地址为ip地址133,则生成图2所示的转发流表项,该转发流表项的匹配选项为ip地址133,动作选项为出接口1211(网络设备121上与网络设备122连接的接口,图1中未视出),且该转发流表项存储在第二级流表。

情况二、若根据该攻击参数确定网络设备被攻击,则控制器获取预设时间内接收到的与网络设备的默认流表项匹配的所有报文的第一数量、所有报文中与该第一报文的源地址对应报文的第二数量;若第二数量与第一数量的比例不大于比例阈值,则可以生成转发流表项,并将该转发流表项发送给网络设备。

例如,若攻击参数为报文总数量1200和报文实际速率20个/秒,假设该报文总数量1200大于第二数量阈值,且该报文实际速率20个/秒大于第二速率阈值,则控制器可以确定网络设备被攻击。假设第一报文是主机132发送给主机134的报文,即第一报文的源ip地址为ip地址132,目的ip地址为ip地址134。

参见图1所示,假设主机131进行攻击,而主机132未进行攻击,则主机131会发送大量与默认流表项匹配的报文(这些报文的目的ip地址是主机131任意构造的),而主机132只发送少量与默认流表项匹配的报文(如访问主机133的首个报文、访问主机134的首个报文,访问主机135的首个报文等)。

基于此,控制器可以分析第一报文的源ip地址所对应的主机是否为攻击源。例如,控制器在接收到第一报文后,更新网络设备121发送的所有报文的第一数量,如1200,并更新ip地址132对应的报文的第二数量,如3,假设第二数量3与第一数量1200的比例小于比例阈值,则确定ip地址132对应的主机132不是攻击源,因此,控制器可以生成图2所示的转发流表项,该转发流表项的匹配选项为ip地址134,动作选项为出接口1212(网络设备121上与网络设备123连接的接口,图1中未视出),且该转发流表项存储在第二级流表。

情况三、若根据该攻击参数确定网络设备被攻击,则控制器获取预设时间内接收到的与网络设备的默认流表项匹配的所有报文的第一数量、所有报文中源地址与该第一报文的源地址相同的报文第二数量;若第二数量与第一数量的比例大于比例阈值,则生成未知丢弃流表项,并将该未知丢弃流表项发送给网络设备。该未知丢弃流表项可以包括第一级子表项和第二级子表项;该第一级子表项的匹配选项可以包括第一报文的源地址,动作选项可以包括设置元数据;该第二级子表项的匹配选项可以包括所述元数据,动作选项可以包括丢弃。

情况三与情况二类似,以下对不同之处进行说明。假设第一报文是主机131发送的攻击报文,即第一报文的源ip地址为ip地址131,目的ip地址为主机131构造的ip地址x。控制器在接收到第一报文后,更新网络设备121发送的所有报文的第一数量,如1200,更新ip地址131对应的报文的第二数量,如1197,假设第二数量1197与第一数量1200的比例大于比例阈值,则确定ip地址131对应的主机131是攻击源,因此,控制器可以生成图2所示的未知丢弃流表项。

其中,未知丢弃流表项的第一级子表项的匹配选项为ip地址131,动作选项为设置元数据0x10,并跳转至第二级流表处理。此外,未知丢弃流表项的第二级子表项的匹配选项为元数据0x10(不是ip地址x),动作选项为丢弃。

在情况二和情况三中,控制器每次接收到网络设备121发送的第一报文后,就可以更新所有报文的第一数量,该第一报文的源地址对应的报文的第二数量,如将当前的第一数量加1,并将当前的第二数量加1,对此过程不做限制。

其中,控制器可以周期性统计所有报文的第一数量、每个源地址对应的报文的第二数量,在每个周期,先清除上一个周期的第一数量和第二数量,即将第一数量清0,并将每个源地址对应的报文的第二数量清0。然后,控制器每次接收到网络设备121发送的第一报文后,就可以更新第一数量和第二数量。

其中,控制器统计第一数量和第二数量的周期,与网络设备统计攻击参数的周期相同,情况二/情况三中的预设时间与步骤301中的预设时间相同,如3分钟等。例如,时刻a-时刻b是3分钟的统计周期,网络设备121可以在时刻a-时刻b统计攻击参数,控制器可以在时刻a-时刻b统计第一数量和第二数量。

步骤304,网络设备接收并存储控制器发送的未知丢弃流表项,该未知丢弃流表项用于丢弃源地址为第一报文的源地址、目的地址未命中的报文。

其中,参见情况一和情况二所示,网络设备在接收到转发流表项后,在第二级流表存储该转发流表项,参见图2所示。参见情况三所示,网络设备在接收到未知丢弃流表项后,可以在第一级流表存储该未知丢弃流表项的第一级子表项,并在第二级流表存储该未知丢弃流表项的第二级子表项,参见图2所示。

步骤305,网络设备在接收到与未知丢弃流表项匹配的第二报文后,丢弃该第二报文。其中,该第二报文是源地址命中、目的地址未命中的报文。

其中,网络设备接收到与未知丢弃流表项匹配的第二报文,可以包括:网络设备在接收到第二报文后,通过该第二报文的源地址查询第一级流表,若命中第一级流表中的第一级子表项(即未知丢弃流表项的第一级子表项),则为该第二报文设置该第一级子表项中的元数据;通过该第二报文的目的地址查询第二级流表,若未命中所述第二级流表中的所有表项(如所有转发流表项和未知丢弃流表项的第二级子表项),则通过为该第二报文设置的元数据查询第二级流表,若命中第二级流表中的第二级子表项(即未知丢弃流表项的第二级子表项),则可以确定该第二报文与未知丢弃流表项匹配。

例如,针对主机132发送给主机134的报文1,源ip地址为ip地址132,目的ip地址为ip地址134。参见图2所示,网络设备121在接收到报文1之后,通过ip地址132查询第一级流表。由于没有与ip地址132匹配的表项,因此,默认通过目的ip地址134查询第二级流表,由于存在与ip地址134匹配的表项,其动作选项为出接口1212,因此,可以通过出接口1212发送报文1。

例如,针对主机131发送给主机133的报文2,源ip地址为ip地址131,目的ip地址为ip地址133。参见图2所示,网络设备121在接收到报文2之后,通过ip地址131查询第一级流表。由于存在与ip地址131匹配的表项,因此,为报文2设置元数据0x10,并跳转至第二级流表处理。在跳转至第二级流表处理后,先通过目的ip地址(如ip地址133)查询第二级流表,由于存在与ip地址133匹配的表项,其动作选项为出接口1211,因此,可以通过出接口1211发送报文2,而不再利用元数据0x10进行查询操作。

例如,针对主机131发送的攻击报文3,源ip地址为ip地址131,目的ip地址为主机131构造的ip地址y。参见图2所示,网络设备121在接收到报文3后,通过ip地址131查询第一级流表。由于存在与ip地址131匹配的表项,因此为报文3设置元数据0x10,并跳转至第二级流表处理。在跳转至第二级流表处理后,通过目的ip地址(如ip地址y)查询第二级流表,由于未命中所有表项,此时说明目的ip地址未命中,因此,通过为报文3设置的元数据0x10查询第二级流表,由于存在与元数据0x10匹配的表项,其动作选项为丢弃,因此,丢弃报文3,不再进行转发。

显然,若主机131被感染病毒,导致主机131构造大量目的ip地址变化的攻击报文,则这些攻击报文的处理过程与报文3类似,即这些攻击报文被网络设备121丢弃,网络设备121不会为这些攻击报文向控制器发送大量控制消息,避免控制器在短时间内生成大量流表项,从而节约控制器的cpu资源和网络设备的cpu资源,减轻网络设备和控制器的负担,提升了网络的可靠性和稳定性。

在上述实施例中,还可以为未知丢弃流表项设置老化定时器,该老化定时器的老化时间可以根据经验进行配置,如600秒等。在该老化定时器超时之前,网络设备每次接收到与该未知丢弃流表项匹配的报文时,就可以更新该老化定时器的老化时间;在该老化定时器超时之后,则可以删除该未知丢弃流表项。

在上述实施例中,控制器还可以确定网络设备的最大上送速率,并将该最大上送速率发送给网络设备,网络设备在接收到该最大上送速率后,还可以将该最大上送速率存储到默认流表项中。基于此,网络设备在接收到与默认流表项匹配的第一报文之后,在网络设备向控制器发送控制消息之前,可以先判断向控制器发送控制消息的速率是否已经达到最大上送速率。如果是,则禁止向控制器发送控制消息;如果否,网络设备才向控制器发送控制消息。

例如,最大上送速率是10个/秒,网络设备在接收到与默认流表项匹配的第一报文后,判断当前向控制器发送控制消息的速率是否已经达到10个/秒,如果否,则网络设备向控制器发送携带该第一报文的控制消息,如果是,则网络设备直接丢弃第一报文,不再向控制器发送携带该第一报文的控制消息。

其中,控制器确定网络设备的最大上送速率,可以包括:最大上送速率可以为经验值,如10个/秒,控制器可以直接确定网络设备的最大上送速率是10个/秒。或者,控制器可以根据自身的负载情况,确定网络设备的最大上送速率;例如,当控制器的cpu资源较多时,则最大上送速率可以较大,当控制器的cpu资源较少时,则最大上送速率可以较小;又例如,当控制器的待处理任务较少时,则最大上送速率可以较大,当控制器的待处理任务较多时,则最大上送速率可以较小。当然,上述只是最大上送速率的两个确定示例,对此不做限制。

而且,在根据负载情况确定最大上送速率时,基于负载情况的变化,还可以动态调整网络设备的最大上送速率。例如,当控制器的cpu资源增加时,还可以增加网络设备的最大上送速率,当控制器的cpu资源减少时,还可以降低网络设备的最大上送速率,从而动态调整最大上送速率,对此过程不再赘述。

其中,可以在默认流表项中增加meter(计量)类型的instruction(指令集),该instruction中可以包括meter表,且该meter表用于存储最大上送速率。

在上述实施例中,控制器根据攻击参数确定网络设备被攻击后,还可以向云管理平台发送告警消息,该告警消息可以携带以下内容的一种或者几种:攻击参数、与默认流表项匹配的第一报文的源地址(即攻击源的ip地址)、攻击时间。这样,云管理平台可以向用户发出攻击告警,将主机隔离或者消除病毒,待主机恢复后,未知丢弃流表项也会因为超时而老化,从而回复主机的业务。

在实际应用中,网络设备与控制器通过定时发送echo(环回)报文验证连接的有效性。例如,网络设备周期性发送echorequest(请求)报文,若预设时间内未接收到echoreply(应答)报文,就断开网络设备与控制器的连接;若控制器预设时间内未接收到echorequest报文,也断开控制器与网络设备的连接。

在传统方式中,由于控制器和网络设备均需要在短时间内处理大量转发流表项,消耗大量cpu资源,从而导致长时间无法处理echo报文,造成网络设备与控制器的连接中断。本申请实施例中,由于网络设备不会为大量攻击报文向控制器发送大量控制消息,避免控制器在短时间内生成大量流表项,节约控制器的cpu资源和网络设备的cpu资源,缓解控制器和网络设备的负担,使得控制器和网络设备可以及时处理echo报文,避免网络设备与控制器的连接中断。

基于与上述方法同样的构思,本申请实施例还提出一种报文处理装置,可以应用于网络设备,如图4所示,为所述装置的结构图,所述装置具体包括:

发送模块401,用于在接收到与默认流表项匹配的第一报文后,向控制器发送控制消息,所述控制消息携带第一报文、预设时间内与默认流表项匹配的所有报文的攻击参数;

接收模块402,用于接收并存储控制器发送的未知丢弃流表项;所述未知丢弃流表项是控制器根据所述攻击参数确定网络设备被攻击时发送的,所述未知丢弃流表项用于丢弃源地址为所述第一报文的源地址、目的地址未命中的报文;

所述接收模块402,还用于接收到与所述未知丢弃流表项匹配的第二报文;

处理模块403,用于丢弃所述第二报文。

所述未知丢弃流表项包括第一级子表项和第二级子表项;所述第一级子表项的匹配选项包括所述第一报文的源地址,动作选项包括设置元数据;所述第二级子表项的匹配选项包括所述元数据,动作选项包括丢弃;其中,所述第一级子表项存储在第一级流表,所述第二级子表项存储在第二级流表;

所述接收模块402接收到与所述未知丢弃流表项匹配的第二报文时具体用于:在接收到第二报文后,通过第二报文的源地址查询所述第一级流表,若命中所述第一级流表中的所述第一级子表项,则为第二报文设置所述元数据;通过第二报文的目的地址查询所述第二级流表,若未命中所述第二级流表中的所有表项,则通过为第二报文设置的元数据查询所述第二级流表,若命中所述第二级流表中的所述第二级子表项,则确定第二报文与所述未知丢弃流表项匹配。

本申请实施例提供的网络设备,从硬件层面而言,硬件架构示意图具体可以参见图5所示。包括:机器可读存储介质和处理器,其中:

机器可读存储介质:存储指令代码。

处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的报文处理操作。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

基于与上述方法同样的构思,本申请实施例中还提出一种报文处理装置,可以应用于控制器,如图6所示,为所述装置的结构图,所述装置具体包括:

接收模块601,用于接收网络设备发送的控制消息,所述控制消息携带与所述网络设备的默认流表项匹配的第一报文、预设时间内与所述默认流表项匹配的所有报文的攻击参数;

确定模块602,用于根据所述攻击参数确定所述网络设备被攻击;

发送模块603,用于向所述网络设备发送未知丢弃流表项,所述未知丢弃流表项用于丢弃源地址为所述第一报文的源地址、目的地址未命中的报文;以使所述网络设备丢弃与所述未知丢弃流表项匹配的第二报文。

所述攻击参数包括:报文总数量和/或报文实际速率;

所述确定模块602根据所述攻击参数确定网络设备被攻击时具体用于:若所述攻击参数为报文总数量,且所述报文总数量大于第一数量阈值,则确定所述网络设备被攻击;或者,若所述攻击参数为报文实际速率,且所述报文实际速率大于第一速率阈值,则确定所述网络设备被攻击;或者,若所述攻击参数为报文总数量和报文实际速率,且所述报文总数量大于第二数量阈值、所述报文实际速率大于第二速率阈值,则确定所述网络设备被攻击。

在一个例子中,所述报文处理装置还包括(在图中未视出):

生成模块,用于获取预设时间内接收到的与所述网络设备的默认流表项匹配的所有报文的第一数量、所有报文中源地址与所述第一报文的源地址相同的报文的第二数量;若所述第二数量与所述第一数量的比例大于比例阈值,则生成所述未知丢弃流表项。

本申请实施例提供的控制器,从硬件层面而言,硬件架构示意图具体可以参见图7所示。包括:机器可读存储介质和处理器,其中:

机器可读存储介质:存储指令代码。

处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的报文处理操作。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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

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