CN111935100B - Flowspec规则下发方法、装置、设备及介质 - Google Patents
Flowspec规则下发方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111935100B CN111935100B CN202010688134.2A CN202010688134A CN111935100B CN 111935100 B CN111935100 B CN 111935100B CN 202010688134 A CN202010688134 A CN 202010688134A CN 111935100 B CN111935100 B CN 111935100B
- Authority
- CN
- China
- Prior art keywords
- rule
- bgp flowspec
- priority value
- priority
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种Flowspec规则下发方法、装置、设备及介质。所述方法包括:获取BGP Flowspec规则;计算BGP Flowspec规则在已经确定的有序化规则序列中的位置;根据位置确定BGP Flowspec规则的优先级值,并判断BGP Flowspec规则的优先级值是否分配成功;若分配成功,则将BGP Flowspec规则的优先级值和BGP Flowspec规则关联后插入到有序化规则序列中;将BGP Flowspec规则的优先级值和BGP Flowspec规则发送至数据面,以供数据面同步数据面对应的有序化规则序列。本发明解决了flowspec的控制面板与数据面解耦问题,提升了数据面的处理性能。
Description
技术领域
本发明实施例涉及通信技术领域,具体涉及一种Flowspec规则下发方法、装置、设备及介质。
背景技术
分布式拒绝服务(Distributed Denial of Service,DDOS)攻击是一种常见且难防御的攻击,边界网关协议流规则BGP Flowspec功能集群是目前防御DDOS攻击最有效的一种手段。在单台设备上BGP Flowspec功能主要是从BGP邻居接收Flowspec规则信息并且进行优先级排序,根据排序好的规则进行报文过滤,在最靠近攻击源的地方拦截攻击流量。
BGP Flowspec功能主要分为两部分:1、接收邻居通告的规则并计算规则的优先级,以及将本机的Flowspec规则通告给邻居。2、根据已排序的Flowspec规则对流经本设备的报文流量进行检测分析。其中Flowspec的规则排序算法较复杂,当规则量大的时候较耗费性能,而报文流量的检测分析则要求更高的效率,因此两个功能不能放在同一个线程中实现。
现有技术方案中将规则排序与转发在同一个进程中使用两个线程实现,使用互斥锁的机制保护临界资源,然而,整个进程业务属于数据面,无法实现控制面与数据面解耦的目的;且规则排序属于复杂逻辑,在数据面会影响报文的转发效率。
另一种Flowspec规则下发方法中,控制面每次接收到新规则后,对新规则排序,将所有的有序规则数据全部发送给数据面,这个过程需要发送所有的历史数据,数据面进程需要先删除数据,再添加规则。这样,每收到一条新规则就需要下发所有历史数据,当规则多的时候,对控制面性能影响较大;同时由于需要对规则进行全部删除后再全部添加,也影响数据面的性能。
发明内容
针对现有技术中的缺陷,本发明实施例提供了一种Flowspec规则下发方法、装置、设备及介质。
第一方面,本发明实施例提供一种Flowspec规则下发方法,包括:
获取BGP Flowspec规则;
计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;
根据所述位置确定所述BGP Flowspec规则的优先级值,并判断所述BGP Flowspec规则的优先级值是否分配成功;
若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则关联后插入到所述有序化规则序列中;
将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
如上述方法,可选地,所述根据所述位置确定所述BGP Flowspec规则的优先级值,包括:
根据所述有序化规则序列确定与所述BGP Flowspec规则相邻的两个规则的优先级值;
将所述两个规则的优先级值的均值取整后作为所述BGP Flowspec规则的优先级值。
如上述方法,可选地,还包括:
若分配失败,则重新计算所述有序化规则序列中所有BGP Flowspec规则的优先级值;
根据新计算的优先级值重新确定所述BGP Flowspec规则的优先级值。
如上述方法,可选地,还包括:
更新所述有序化规则序列中每个规则的优先级值,将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则关联后插入到更新后的有序化规则序列中,并将所述BGPFlowspec规则的优先级值和所述BGP Flowspec规则,以及所述有序化规则序列中每个规则的优先级值发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
如上述方法,可选地,所述重新计算所述有序化规则序列中所有BGP Flowspec规则的优先级值,包括:
按照公式(1)确定所述有序化规则序列中所有BGP Flowspec规则的优先级间隔:
p=M/(N+1) 公式(1)
其中,p为优先级间隔,M为可分配的最大优先级值,N为所述有序化规则序列中的规则总数;
根据公式(2)确定所述有序化规则序列中所有BGP Flowspec规则的优先级;
P(i)=i*p+1 公式(2)
其中,P(i)为所述有序化规则序列中第i个规则的优先级值。
第二方面,本发明实施例提供一种Flowspec规则下发装置,包括:
获取模块,用于获取BGP Flowspec规则;
计算模块,用于计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;
优先级值确定模块,用于根据所述位置确定所述BGP Flowspec规则的优先级值,并判断所述BGP Flowspec规则的优先级值是否分配成功;
更新模块,用于若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGPFlowspec规则关联后插入到所述有序化规则序列中;
发送模块,用于将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
如上述装置,可选地,所述优先级值确定模块具体用于:
根据所述有序化规则序列确定与所述BGP Flowspec规则相邻的两个规则的优先级值;
将所述两个规则的优先级值的均值取整后作为所述BGP Flowspec规则的优先级值。
如上述装置,可选地,还包括:
重分配模块,用于若分配失败,则重新计算所述有序化规则序列中所有BGPFlowspec规则的优先级值;
相应地,所述优先级值确定模块还用于:
根据新计算的优先级值重新确定所述BGP Flowspec规则的优先级值。
如上述装置,可选地,还包括:
重计算模块,用于若分配失败,则重新计算所述有序化规则序列中所有BGPFlowspec规则的优先级值;
相应地,所述优先级值确定模块还用于根据新计算的优先级值重新确定所述BGPFlowspec规则的优先级值。
如上述装置,可选地,所述更新模块还用于:
更新所述有序化规则序列中每个规则的优先级值,将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则关联后插入到更新后的有序化规则序列中,并将所述BGPFlowspec规则的优先级值和所述BGP Flowspec规则,以及所述有序化规则序列中每个规则的优先级值发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
如上述装置,可选地,所述重计算模块具体用于:
按照公式(1)确定所述有序化规则序列中所有BGP Flowspec规则的优先级间隔:
p=M/(N+1) 公式(1)
其中,p为优先级间隔,M为可分配的最大优先级值,N为所述有序化规则序列中的规则总数;
根据公式(2)确定所述有序化规则序列中所有BGP Flowspec规则的优先级;
P(i)=i*p+1 公式(2)
其中,P(i)为所述有序化规则序列中第i个规则的优先级值。
第三方面,本发明实施例提供一种电子设备,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:获取BGP Flowspec规则;计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;根据所述位置确定所述BGP Flowspec规则的优先级值,并判断所述BGP Flowspec规则的优先级值是否分配成功;若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGPFlowspec规则关联后插入到所述有序化规则序列中;将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:获取BGP Flowspec规则;计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;根据所述位置确定所述BGP Flowspec规则的优先级值,并判断所述BGP Flowspec规则的优先级值是否分配成功;若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则关联后插入到所述有序化规则序列中;将所述BGPFlowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
本发明实施例提供的Flowspec规则下发方法,在控制面计算BGP Flowspec规则优先级值之后,将优先级值和BGP Flowspec规则关联后发送至数据面,数据面同步有序化规则序列,解决了flowspec的控制面板与数据面解耦问题,且仅需将新规则和其优先级值发送给数据面即可,数据面无需对已有规则进行全部删除和添加,提升了数据面的处理性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的Flowspec规则下发方法流程示意图;
图2为本发明实施例提供的又一种Flowspec规则下发方法流程示意图;
图3为本发明实施例提供的Flowspec规则下发装置的结构示意图;
图4为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的Flowspec规则下发方法流程示意图,如图1所示,该方法包括:
步骤S11、获取BGP Flowspec规则;
具体地,本发明实施例提供的Flowspec规则下发方法,应用于网络设备的控制面,通过控制面获取BGP Flowspec规则,确定BGP Flowspec规则的优先级,将BGP Flowspec规则和优先级下发至数据面,数据面接收有序化的规则后,直接利用BGP Flowspec规则处理报文,实现Flowspec功能控制面与数据面的解耦。BGP Flowspec功能解耦后由控制面获取BGP Flowspec规则,包括:接收邻居通告的BGP Flowspec规则或者接收用户配置的BGPFlowspec规则。控制面接收到的消息无优先级,接收消息的时间也是随机的。
步骤S12、计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;
具体地,控制面每获取一条BGP Flowspec规则,则按照指定的优先级算法计算当前规则在已经确定的有序化规则序列中的位置,其中,有序化规则序列是指,按照优先级进行排序后的BGP Flowspec规则序列,在该有序化规则队列中,每条规则关联其对应的优先级值,按照优先级值排序。在有序化规则序列中,各规则的优先级可以根据前后顺序判断,不依赖优先级值具体取值。基于同样的优先级计算方法,计算出BGP Flowspec规则的优先级之后,就可确定该BGP Flowspec规则在有序化规则序列中的前后节点信息,即对获取的规则进行规则排序。
步骤S13、根据所述位置确定所述BGP Flowspec规则的优先级值;并判断所述BGPFlowspec规则的优先级值是否分配成功;
具体地,确定了BGP Flowspec规则的排序位置之后,就可为该BGP Flowspec规则分配优先级值,具体地,根据所述有序化规则序列确定与所述BGP Flowspec规则相邻的两个规则的优先级值;
将所述两个规则的优先级值的均值取整后作为所述BGP Flowspec规则的优先级值。
由于新规则随机到达,新规则的优先级可能会在任意一个已有序化的规则前或规则后,因此需要保证有序化规则序列中任意两个相邻的规则间有足够多的优先级值可以分配。
例如:规则A与规则B是有序化规则队列中相邻的两个规则,当已经计算得到新规则X1的位置应该在规则A和规则B之间时,新规则的优先级值可以是A规则优先级值和B规则优先级值之间的任意值,但是下一条新规则X2的优先级位置可能在A与X1之间,也可能在X1与B之间,因此需要在规则X1与规则A以及规则X1与规则B之间都有可用优先级值来进行分配。仅当规则X1的优先级值是规则A与规则B优先级值的平均值时才可以保证新规则X2有可用优先级值,才能保证下一条新规则有可用的优先级值分配。因此新规则的优先级值为其前后两个规则优先级值的平均值向下取整获得。
通过上述优先级值确定方法,使任意相邻规则间优先级值的差值都达到最大,保证了任意两条有序规则间有最大数量的可分配优先级值。
确定了BGP Flowspec规则的优先级值之后,还需要判断BGP Flowspec规则的优先级值是否分配成功,例如新规则的前后规则的优先级值分别为98和99,这样就没有新的整数表示当前规则的优先级值,则新规则的优先级分配失败,若有序化规则序列中,没有和新规则优先级值相同的规则,则新规则优先级值分配成功。
步骤S14、若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGPFlowspec规则关联后插入到所述有序化规则序列中;
具体地,如果新的BGP Flowspec规则的优先级值分配成功,则将该BGP Flowspec规则和其优先级值关联后,按照优先级值插入到之前的有序化规则序列中,更新该有序化规则序列。
步骤S15、将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面根据所述优先级值将所述BGP Flowspec规则存入到同步数据面对应的有序化规则序列中,并关联所述优先级值。
具体地,更新完控制面的有序化规则序列之后,将BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,数据面同时也存储了对应的有序化规则序列,数据面同步其有序化规则序列即可,无需删除之前已经存储的有序化规则序列,仅需添加新的BGP Flowspec规则及其优先级值。只有当数据面同步有序化规则序列之后,该规则及其优先级才在后续的报文处理中生效。
本发明实施例提供的Flowspec规则下发方法,在控制面计算BGP Flowspec规则优先级值之后,将优先级值和BGP Flowspec规则关联后发送至数据面,数据面同步有序化规则序列,解决了flowspec的控制面板与数据面解耦问题,且仅需将新规则和其优先级值发送给数据面即可,数据面无需对已有规则进行全部删除和添加,提升了数据面的处理性能。
在上述实施例的基础上,进一步地,还包括:
若分配失败,则重新计算所述有序化规则序列中所有BGP Flowspec规则的优先级值;
根据新计算的优先级值重新确定所述BGP Flowspec规则的优先级值。
具体地,当计算得到的新规则的优先级值与前后规则中任意一个的优先级值相同时,则说明该位置没有可用优先级可分配,则需要重新计算有序化规则序列中所有BGPFlowspec规则的优先级值,以保证有足够的优先级值额度分配给新规则。
由于不可预知新规则的排序后的位置,因此需要让有序化规则序列中任意两个相邻规则之间都有最多的可分配优先级值,包括有序化队列中的第一个规则前和最后一个规则后都有足够的优先级值可分配,保证新接收到的规则都能分配到可用优先级值。
首先按照公式(1)确定有序化规则序列中所有BGP Flowspec规则的优先级间隔:
p=M/(N+1) 公式(1)
其中,p为优先级间隔,M为可分配的最大优先级值,N为所述有序化规则序列中的规则总数;例如,M可以为无符号整型类型的最大值,则优先级值的分布范围为[0,4294967295],则当前的相邻规则优先级值之间的差值为p=4294967295/(N+1)。
然后,根据公式(2)确定有序化规则序列中所有BGP Flowspec规则的优先级;
P(i)=i*p+1 公式(2)
其中,P(i)为所述有序化规则序列中第i个规则的优先级值。
即有序化规则队列中规则的优先级值以等差数列的方式进行分配,其中第一个规则的优先级值为p+1,后面的规则依照等差队列方式进行计算,第i个规则的优先级值为i*p+1。
对有序化规则序列中的规则进行优先级值重分配之后,就有够空间分配新规则的优先级值,同上面的首次分配优先级值方法相同,对相邻两个规则的优先级值的中间值向下取值获得。
之后,控制面更新有序化规则序列中每个规则的优先级值,将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则关联后插入到更新后的有序化规则序列中;
之后将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则,以及所述有序化规则序列中每个规则的优先级值发送至数据面,数据面更新其对应的有序化规则序列中每个规则的优先级值之后,插入新规则及其优先级值,使得数据面有序化规则序列与控制面有序化规则序列同步。
对于优先级值重新分配过程中,数据面进程更新有序化规则序列中规则的优先级值时不影响报文检测,因为在有序化规则序列中,各规则的优先级可以根据前后顺序判断,不依赖优先级值。正因为如此,优先级值的更新不需要删除规则重新添加,减少了内存遍历操作,可提升数据面报文处理的性能。
此外,除了上述被动重分配优先级值外,还可根据设备的负载情况,智能选择合适的时间点进行优先级值重新分配的操作,避免在业务负载大的情况下被动触发优先级值重新分配逻辑。此外,优先级值可以采用long long类型的变量存放,可以一定程度上减少优先级值重新分配的次数。
此外,本发明实施例提供的Flowspec规则下发方法,还可以扩展到分布式环境中,可适用于分布式的集群业务,适用于分布式的消息传输与同步的场景。
在实际应用中,还可以设置中间件缓存数据,因此该方法至少包含三个部分:控制面进程A,中间件和数据面进程B。控制面进程A主要功能是接收动态无序消息,将无序消息有序化并分配优先级值,中间件缓存规则信息并透传信息至数据面进程B。数据面进程B,接收消息根据优先级值有序化,并根据有序消息完成对应的业务。
图2为本发明实施例提供的又一种Flowspec规则下发方法流程示意图,如图2所示,该流程包括:
步骤S21:规则消息接收。控制面进程A接收BGP Flowspec消息,接收到的消息无优先级,接收消息的时间也是随机的。
步骤S22:消息排序。接收到的消息需要根据指定的算法计算当前规则在有序化规则序列中的位置,并记录位置的前后节点信息。
步骤S23:分配规则优先级值。根据新规则前后位置的优先级值分配新规则的优先级值,分配成功,直接执行步骤S210,分配失败时则执行步骤S24。
步骤S24:优先级值重新分配,更新优先级值信息。控制面进程A重新分配优先级值。。
步骤S25:控制面进程A向中间件发布优先级值重新分配后的结果。
步骤S26:中间件收到控制面A进程发送的新规则,更新中间件中存储的数据。
步骤S27:中间件将新的消息通告给数据面进程B。
步骤S28:数据面B进程更新有序化规则序列中的优先级值,B进程在更新优先级值时不需要改变有序化规则序列的数据存储,修改每一个规则数据下的优先级值时,不影响数据面的业务。
步骤S29:控制面进程A接收新规则,根据前后位置计算新规则的优先级值,计算完成后将新规则及其优先级值存入有序化规则序列中。
步骤S210:将新的规则和优先级值发布给中间件。
步骤S211:中间件收到A进程发送的新规则,更新中间件中存储的规则,并将新的消息透传给数据面进程B。
步骤S212:B进程收到新的规则,将新的规则根据优先级值存入有序化规则序列中。
在图2所示的消息交互步骤中,其中步骤S21、S22、S23、S210、S211、S212是每次新增规则时必须执行的步骤,步骤S24、S25、S26、S27、S28、S29仅在优先级值分配失败后,优先级值重新分配需要执行。当步骤S24、S25、S26、S27、S28、S29执行的次数越少时,系统的性能越好。因此需要降低这些步骤的执行次数,即降低优先级重新分配次数。
在本发明实施例中优先级值在优先级值重新分配后会变更,数据面进程在优先级值重新分配的过程中,不能执行新规则的添加消息。由于控制面进程使用单线程发送,数据面使用单线程接收,执行顺序会按照图2所示的步骤执行,且消息中间件在同一个消息通道上遵循先进先出原则,所以数据面进程不会在系统进行有优先级值重新分配时收到新规则数据。另外一方面,在优先级值重新分配未结束前,新规则无合法优先级值,无法向数据面下发。
本发明实施例提供的Flowspec规则下发方法、可实现flowspec功能控制面与数据面的解耦,在排序与优先级值分配过程中最大程度上的减少优先级值重新分配次数,提高了系统性能。
基于同一发明构思,本发明实施例还提供一种Flowspec规则下发装置,如图3所示,包括:获取模块31、计算模块32、优先级值确定模块33、更新模块34和发送模块35,其中:
获取模块31用于获取BGP Flowspec规则;计算模块32用于计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;优先级值确定模块33用于根据所述位置确定所述BGPFlowspec规则的优先级值,并判断所述BGP Flowspec规则的优先级值是否分配成功;更新模块34用于若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则关联后插入到所述有序化规则序列中;发送模块35用于将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
如上述装置,可选地,所述优先级值确定模块具体用于:
根据所述有序化规则序列确定与所述BGP Flowspec规则相邻的两个规则的优先级值;
将所述两个规则的优先级值的均值取整后作为所述BGP Flowspec规则的优先级值。
如上述装置,可选地,还包括:
重分配模块,用于若分配失败,则重新计算所述有序化规则序列中所有BGPFlowspec规则的优先级值;
相应地,所述优先级值确定模块还用于:
根据新计算的优先级值重新确定所述BGP Flowspec规则的优先级值。
如上述装置,可选地,还包括:
重计算模块,用于若分配失败,则重新计算所述有序化规则序列中所有BGPFlowspec规则的优先级值;
相应地,所述优先级值确定模块还用于根据新计算的优先级值重新确定所述BGPFlowspec规则的优先级值。
如上述装置,可选地,所述更新模块还用于:
更新所述有序化规则序列中每个规则的优先级值,将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则关联后插入到更新后的有序化规则序列中,并将所述BGPFlowspec规则的优先级值和所述BGP Flowspec规则,以及所述有序化规则序列中每个规则的优先级值发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
如上述装置,可选地,所述重计算模块具体用于:
按照公式(1)确定所述有序化规则序列中所有BGP Flowspec规则的优先级间隔:
p=M/(N+1) 公式(1)
其中,p为优先级间隔,M为可分配的最大优先级值,N为所述有序化规则序列中的规则总数;
根据公式(2)确定所述有序化规则序列中所有BGP Flowspec规则的优先级;
P(i)=i*p+1 公式(2)
其中,P(i)为所述有序化规则序列中第i个规则的优先级值。
本发明实施例提供的装置,用于实现上述方法,其功能具体参照上述方法实施例,此处不再赘述。
图4为本发明实施例提供的电子设备的结构示意图,如图4所示,所述设备包括:处理器(processor)41、存储器(memory)42和总线43;
其中,处理器41和存储器42通过所述总线43完成相互间的通信;
处理器41用于调用存储器42中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取BGP Flowspec规则;计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;根据所述位置确定所述BGP Flowspec规则的优先级值,并判断所述BGP Flowspec规则的优先级值是否分配成功;若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGPFlowspec规则关联后插入到所述有序化规则序列中;将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取BGPFlowspec规则;计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;根据所述位置确定所述BGP Flowspec规则的优先级值,并判断所述BGP Flowspec规则的优先级值是否分配成功;若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则关联后插入到所述有序化规则序列中;将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取BGP Flowspec规则;计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;根据所述位置确定所述BGP Flowspec规则的优先级值,并判断所述BGP Flowspec规则的优先级值是否分配成功;若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGPFlowspec规则关联后插入到所述有序化规则序列中;将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。
Claims (10)
1.一种Flowspec规则下发方法,其特征在于,包括:
获取BGP Flowspec规则;
计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;
根据所述位置确定所述BGP Flowspec规则的优先级值,并判断所述BGP Flowspec规则的优先级值是否分配成功;
若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则关联后插入到所述有序化规则序列中;
将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
2.根据权利要求1所述的方法,其特征在于,所述根据所述位置确定所述BGP Flowspec规则的优先级值,包括:
根据所述有序化规则序列确定与所述BGP Flowspec规则相邻的两个规则的优先级值;
将所述两个规则的优先级值的均值取整后作为所述BGP Flowspec规则的优先级值。
3.根据权利要求1所述的方法,其特征在于,还包括:
若分配失败,则重新计算所述有序化规则序列中所有BGP Flowspec规则的优先级值;
根据新计算的优先级值重新确定所述BGP Flowspec规则的优先级值。
4.根据权利要求3所述的方法,其特征在于,还包括:
更新所述有序化规则序列中每个规则的优先级值,将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则关联后插入到更新后的有序化规则序列中,并将所述BGPFlowspec规则的优先级值和所述BGP Flowspec规则,以及所述有序化规则序列中每个规则的优先级值发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
5.根据权利要求3或4所述的方法,其特征在于,所述重新计算所述有序化规则序列中所有BGP Flowspec规则的优先级值,包括:
按照公式(1)确定所述有序化规则序列中所有BGP Flowspec规则的优先级间隔:
p=M/(N+1) 公式(1)
其中,p为优先级间隔,M为可分配的最大优先级值,N为所述有序化规则序列中的规则总数;
根据公式(2)确定所述有序化规则序列中所有BGP Flowspec规则的优先级;
P(i)=i*p+1 公式(2)
其中,P(i)为所述有序化规则序列中第i个规则的优先级值。
6.一种Flowspec规则下发装置,其特征在于,包括:
获取模块,用于获取BGP Flowspec规则;
计算模块,用于计算所述BGP Flowspec规则在已经确定的有序化规则序列中的位置;所述有序化规则序列是按照优先级进行排序后的BGP Flowspec规则序列;
优先级值确定模块,用于根据所述位置确定所述BGP Flowspec规则的优先级值,并判断所述BGP Flowspec规则的优先级值是否分配成功;
更新模块,用于若分配成功,则将所述BGP Flowspec规则的优先级值和所述BGPFlowspec规则关联后插入到所述有序化规则序列中;
发送模块,用于将所述BGP Flowspec规则的优先级值和所述BGP Flowspec规则发送至数据面,以供所述数据面同步数据面对应的有序化规则序列。
7.根据权利要求6所述的装置,其特征在于,所述优先级值确定模块具体用于:
根据所述有序化规则序列确定与所述BGP Flowspec规则相邻的两个规则的优先级值;
将所述两个规则的优先级值的均值取整后作为所述BGP Flowspec规则的优先级值。
8.根据权利要求6所述的装置,其特征在于,还包括:
重分配模块,用于若分配失败,则重新计算所述有序化规则序列中所有BGP Flowspec规则的优先级值;
相应地,所述优先级值确定模块还用于:
根据新计算的优先级值重新确定所述BGP Flowspec规则的优先级值。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至5任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688134.2A CN111935100B (zh) | 2020-07-16 | 2020-07-16 | Flowspec规则下发方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688134.2A CN111935100B (zh) | 2020-07-16 | 2020-07-16 | Flowspec规则下发方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111935100A CN111935100A (zh) | 2020-11-13 |
CN111935100B true CN111935100B (zh) | 2022-05-20 |
Family
ID=73313128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010688134.2A Active CN111935100B (zh) | 2020-07-16 | 2020-07-16 | Flowspec规则下发方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111935100B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230388341A1 (en) * | 2022-05-24 | 2023-11-30 | Arbor Networks, Inc. | System and method for managing flowspec mitigations |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1284180A (zh) * | 1997-12-16 | 2001-02-14 | Ip半导体有限公司 | 利用布尔逻辑和可编程结构进行地址分析的方法和装置 |
JP2001117774A (ja) * | 1999-10-21 | 2001-04-27 | Japan Science & Technology Corp | 適応化機構を備えたプロダクションシステム |
US6467019B1 (en) * | 1999-11-08 | 2002-10-15 | Juniper Networks, Inc. | Method for memory management in ternary content addressable memories (CAMs) |
CN101039271A (zh) * | 2007-03-20 | 2007-09-19 | 华为技术有限公司 | 访问控制列表规则生效的方法及装置 |
CN101447940A (zh) * | 2008-12-23 | 2009-06-03 | 杭州华三通信技术有限公司 | 访问控制列表规则的更新方法和装置 |
CN101753369A (zh) * | 2008-12-03 | 2010-06-23 | 北京天融信网络安全技术有限公司 | 一种检测防火墙规则冲突的方法及装置 |
CN103620570A (zh) * | 2011-06-24 | 2014-03-05 | Arm有限公司 | 存储器控制器和这种存储器控制器的操作方法 |
WO2016018400A1 (en) * | 2014-07-31 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Data merge processing |
CN105915465A (zh) * | 2016-06-30 | 2016-08-31 | 华为技术有限公司 | BGP flow-spec表优先级调整的方法、设备及系统 |
CN106161226A (zh) * | 2015-03-23 | 2016-11-23 | 华为技术有限公司 | 发送、接收流规范规则的方法和装置 |
CN108572921A (zh) * | 2017-05-15 | 2018-09-25 | 北京金山云网络技术有限公司 | 规则集更新方法、装置、规则匹配方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7548989B2 (en) * | 2003-07-01 | 2009-06-16 | International Business Machines Corporation | Method and system for maintaining consistency during multi-threaded processing of LDIF data |
US10361899B2 (en) * | 2015-09-30 | 2019-07-23 | Nicira, Inc. | Packet processing rule versioning |
US20170310625A1 (en) * | 2016-04-22 | 2017-10-26 | Dell Software, Inc. | Prioritized Messaging System |
US10439932B2 (en) * | 2016-10-05 | 2019-10-08 | Avago Technologies International Sales Pte. Limited | System and method for flow rule management in software-defined networks |
-
2020
- 2020-07-16 CN CN202010688134.2A patent/CN111935100B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1284180A (zh) * | 1997-12-16 | 2001-02-14 | Ip半导体有限公司 | 利用布尔逻辑和可编程结构进行地址分析的方法和装置 |
JP2001117774A (ja) * | 1999-10-21 | 2001-04-27 | Japan Science & Technology Corp | 適応化機構を備えたプロダクションシステム |
US6467019B1 (en) * | 1999-11-08 | 2002-10-15 | Juniper Networks, Inc. | Method for memory management in ternary content addressable memories (CAMs) |
CN101039271A (zh) * | 2007-03-20 | 2007-09-19 | 华为技术有限公司 | 访问控制列表规则生效的方法及装置 |
CN101753369A (zh) * | 2008-12-03 | 2010-06-23 | 北京天融信网络安全技术有限公司 | 一种检测防火墙规则冲突的方法及装置 |
CN101447940A (zh) * | 2008-12-23 | 2009-06-03 | 杭州华三通信技术有限公司 | 访问控制列表规则的更新方法和装置 |
CN103620570A (zh) * | 2011-06-24 | 2014-03-05 | Arm有限公司 | 存储器控制器和这种存储器控制器的操作方法 |
WO2016018400A1 (en) * | 2014-07-31 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Data merge processing |
CN106161226A (zh) * | 2015-03-23 | 2016-11-23 | 华为技术有限公司 | 发送、接收流规范规则的方法和装置 |
CN105915465A (zh) * | 2016-06-30 | 2016-08-31 | 华为技术有限公司 | BGP flow-spec表优先级调整的方法、设备及系统 |
CN108572921A (zh) * | 2017-05-15 | 2018-09-25 | 北京金山云网络技术有限公司 | 规则集更新方法、装置、规则匹配方法及装置 |
Non-Patent Citations (3)
Title |
---|
Carrying Label Information for BGP FlowSpec;Q.Liang et al;《IETF》;20160321;全文 * |
Snort规则集优化算法研究;周丽华等;《广西轻工业》;20100315(第03期);全文 * |
一种基于FLOW-spec的网络异常流量防护策略;黄卓君;《通信热点》;20120531;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111935100A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7274700B2 (en) | Router providing differentiated quality of service (QoS) and fast internet protocol packet classifying method for the router | |
CN107545338B (zh) | 业务数据处理方法及业务数据处理系统 | |
JP6881575B2 (ja) | 資源割当システム、管理装置、方法およびプログラム | |
CN106878415B (zh) | 数据消费的负载均衡方法及装置 | |
CN104866339B (zh) | Fota数据的分布式持久化管理方法、系统和装置 | |
EP3152659B1 (en) | Scheduling access to resources for efficient utilisation of network capacity and infrastructure | |
CN111722918A (zh) | 业务标识码生成方法、装置、存储介质及电子设备 | |
CN109196807B (zh) | 网络节点以及操作网络节点以进行资源分发的方法 | |
US10063478B2 (en) | Switching device and control method of switching device | |
CN111935100B (zh) | Flowspec规则下发方法、装置、设备及介质 | |
JP2016208195A (ja) | パケット中継装置、パケット中継装置におけるコピー機能分散方法。 | |
CN110290228B (zh) | 一种互联网协议ip地址分配方法及装置 | |
KR20130130295A (ko) | 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법 | |
JP5388134B2 (ja) | 計算機システム、及び、移動データ決定方法 | |
CN112685167A (zh) | 资源使用方法、电子设备和计算机程序产品 | |
US20090248629A1 (en) | Search engine configured to minimize performance degradation under high load | |
KR102443395B1 (ko) | 포인트 전환 시스템 및 그 방법, 그리고 이에 적용되는 장치 | |
US20240070144A1 (en) | Information processing apparatus, adjacent node selecting method and program | |
CN115237597A (zh) | 一种数据处理方法、装置、系统、设备及存储介质 | |
US11233847B1 (en) | Management of allocated computing resources in networked environment | |
US10887381B1 (en) | Management of allocated computing resources in networked environment | |
CN108683608B (zh) | 分配流量的方法和装置 | |
CN113626221A (zh) | 一种消息入队方法及装置 | |
US10664307B1 (en) | System and method for assigning tasks to computer system elements | |
CN112131267A (zh) | 计数处理方法、装置、服务器和计数处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |