CN113114594A - 一种策略生成方法及装置、存储介质 - Google Patents
一种策略生成方法及装置、存储介质 Download PDFInfo
- Publication number
- CN113114594A CN113114594A CN202110308773.6A CN202110308773A CN113114594A CN 113114594 A CN113114594 A CN 113114594A CN 202110308773 A CN202110308773 A CN 202110308773A CN 113114594 A CN113114594 A CN 113114594A
- Authority
- CN
- China
- Prior art keywords
- policy
- strategy
- data packet
- basic
- flow table
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请的实施例公开一种策略生成方法及装置、存储介质,涉及计算机科学领域。能够解决现有技术中由于策略模块间的组合过程容易相互影响,使得整个网络的策略应用难以编写,测试,调试和重用的问题。该方法包括:获取数据包、该数据包对应的至少一个基础策略以及至少一个基础策略的预设组合方式;按照至少一个基础策略的预设组合方式,将数据包执行至少一个基础策略,生成数据包的策略流表;调用软件定义网络SDN控制器的北向接口将策略流表,通过SDN控制器的南向接口下发至对应的交换机,以使交换机按照策略流表传输数据包。本申请实施例应用于网络***。
Description
技术领域
本申请的实施例涉及计算机科学领域,尤其涉及一种策略生成方法及装置、存储介质。
背景技术
在软件定义网络(software-defined networking,SDN)中,各种策略表现为一个个运行在控制器上的应用模块。为实现对网络的管理控制,通常需要将多种策略组合在一起对同一流量进行处理,这就需要利用多个策略模块进行组合。而现有技术中的策略主要采用C语言这种传统编译器来编写,由于该语言的抽象层次较低,与底层数据平面的硬件实现耦合性较强,策略模块间的组合过程容易相互影响,使得整个网络的策略应用难以编写,测试,调试和重用。
发明内容
本申请提供一种策略生成方法及装置、存储介质,能够解决现有技术中由于策略模块间的组合过程容易相互影响,使得整个网络的策略应用难以编写,测试,调试和重用的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种策略生成方法,该方法包括:获取数据包、该数据包对应的至少一个基础策略以及至少一个基础策略的预设组合方式;按照至少一个基础策略的预设组合方式,将数据包执行至少一个基础策略,生成数据包的策略流表;调用软件定义网络SDN控制器的北向接口将策略流表,通过SDN控制器的南向接口下发至对应的交换机,以使交换机按照策略流表传输数据包。
在上述方法中,利用Python类的方式定义基础策略,提高了策略的抽象层次,避免了采用C语言这种传统编译器编写策略带来的复杂性,使得策略的编写、测试、调试的实现更为简便。另外,按照预设组合方式组合利用Python类的方式定义的基础策略,能够保证在策略组合的过程中策略间不会相互影响的前提下,更易实现策略的重用,从而获得更加复杂且多样的策略,以满足用户的需求。
第二方面,提供一种策略生成装置,该装置包括:获取单元、处理单元以及发送单元。
获取单元,用于获取数据包、数据包对应的至少一个基础策略以及至少一个基础策略的预设组合方式;基础策略基于Python类的方式定义。
处理单元,用于按照获取单元获取的至少一个基础策略的预设组合方式,将数据包执行至少一个基础策略,生成数据包的策略流表。
发送单元,用于调用软件定义网络SDN控制器的北向接口将处理单元生成的策略流表,通过SDN控制器的南向接口下发至对应的交换机,以使交换机按照策略流表传输数据包。
可以理解地,上述提供的策略生成装置用于执行上文所提供的第一方面对应的方法,因此,其所能达到的有益效果可参考上文第一方面对应的方法以及下文具体实施方式中对应的方案的有益效果,此处不再赘述。
第三方面,提供了一种策略生成装置,该策略生成装置的结构中包括处理器,处理器用于执行程序指令,使得该策略生成装置执行第一方面的方法。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序代码,当计算机程序代码在策略生成装置上运行时,使得该策略生成装置执行上述第一方面的方法。
第五方面,提供一种计算机程序产品,该计算机程序产品储存有上述计算机软件指令,当计算机软件指令在策略生成装置上运行时,使得该策略生成装置执行如上述第一方面的方法的程序。
附图说明
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本发明实施例提供的一种网络***的结构示意图;
图2为本发明实施例提供的一种通信设备的硬件结构示意图;
图3为本申请实施例提供的一种策略生成方法的流程示意图之一;
图4为本申请实施例提供的一种策略生成方法的流程示意图之二;
图5为本申请实施例提供的一种策略生成方法的流程示意图之三;
图6为本申请实施例提供的一种策略生成装置的结构示意图;
图7为本申请实施例提供的策略生成方法的计算机程序产品的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
还需要说明的是,本申请实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
在本申请的实施例中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
SDN是一种新型网络架构。它利用OpenFlow协议将交换机的控制平面从数据平面中分离,改以软件方式实现,从而使得将分散在各个网络设备上的控制平面进行集中化管理成为可能,该架构可使网络管理员在不改动硬件设备的前提下,以中央控制方式用程序重新规划网络,为控制网络流量提供了新方案,也为核心网络和应用创新提供了良好平台。在SDN中,各种网络与安全策略表现为一个个运行在控制器上的应用模块。为实现对网络的管理控制,通常需要将多种策略组合在一起对同一流量进行处理,这就需要利用多个策略模块进行组合。而现有技术中的策略主要采用C语言这种传统编译器来编写,由于该语言的抽象层次较低,与底层数据平面的硬件实现耦合性较强,策略模块间的组合过程容易相互影响,使得整个网络的策略应用难以编写,测试,调试和重用。
因此,本申请实施例提供一种策略生成方法,来解决上述技术问题。首先,参照图1,本发明实施例提供一种网络***的结构示意图,该***包括策略生成装置11、SDN控制器12以及交换机13。其中,策略生成装置11通过SDN控制器12提供的北向接口与SDN控制器12进行通信;交换机13通过SDN控制器12提供的南向接与SDN控制器12进行通信。
策略生成装置11可以是独立的计算机设备,比如服务器;或者,计算机设备中的芯片。
可选的,本申请实施例所提及的设备,例如策略生成装置11、SDN控制器12以及交换机13等,均可以由图2所示的通信设备来实现。
该通信设备包括处理器21,通信总线24以及至少一个收发器(图2中仅是示例性的以包括收发器23为例进行说明)。
处理器21可以包括一个或多个处理单元,例如:处理器21可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),视频处理单元(videoprocessing unit,VPU)控制器,存储器,视频编解码器,数字信号处理器(digital signalprocessor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是通信设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器21中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器21中的存储器为高速缓冲存储器。该存储器可以保存处理器21刚用过或循环使用的指令或数据。如果处理器21需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器21的等待时间,因而提高了***的效率。
在一些实施例中,处理器21可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,通用异步收发传输器(universal asynchronousreceiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processorinterface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serialbus,USB)接口,串行外设接口(serial peripheral interface,SPI)接口等。
通信总线24可包括一通路,在上述组件之间传送信息。
收发器23,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
可选的,该通信设备还可以包括存储器22。
存储器22可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信总线24与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器22用于存储执行本申请方案的计算机执行指令,并由处理器21来控制执行。处理器21用于执行存储器22中存储的计算机执行指令,从而实现本申请下述实施例提供的区域识别方法。
可选的,本发明实施例中的计算机执行指令也可以称之为应用程序代码,本发明实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器21可以包括一个或多个CPU,例如图2中的CPU0和CPU1。
在具体实现中,作为一种实施例,通信设备可以包括多个处理器,例如图2中的处理器21和处理器25。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
下面结合说明书附图,以策略生成装置为执行主体对本申请实施例所提供的技术方案进行具体阐述。
本申请实施例所提供的策略生成方法的技术原理为:首先,获取数据包对应的基于Python类的方式定义的一种或多种基础策略及其为串行组合或并行组合的预设组合方式;基于这些基础策略的串行组合方式或者并行组合方式,将数据包执行这些策略,以获取该数据包的策略流表,并调用SDN控制器的北向接口将该策略流表,通过SDN控制器的南向接口小法至交换机,从而解决现有技术中由于策略模块间的组合过程容易相互影响,使得整个网络的策略应用难以编写,测试,调试和重用的问题。
参照图3,本发明实施例所提供的一种策略生成方法具体包括:
S31、策略生成装置获取数据包、数据包对应的至少一个基础策略以及至少一个基础策略的预设组合方式;基础策略基于Python类的方式定义。
示例性的,数据包由交换机接收,并通过SDN控制器的南向接口以及北向接口传输至策略生成装置。
在本方法中,使用类来表示策略,所有的策略均是策略类的子类。对基础策略进行预设组合方式组合后,得到新的策略仍然是策略类的子类。
可选的,基础策略包括:drop、identity、modify、fwd、match以及flood的任一项;其中,drop表示直接丢弃输入的数据包;identity表示不对输入的数据包进行处理;modify表示是用于对输入的数据包进行修改,将数据包中字段名f的值修改为v;fwd表示将输入的数据包从交换机的指定端口转发出去;match表示对数据包进行过滤,返回匹配字段名f的值为v的所有数据包;flood表示洪泛。
示例性的,下面针对上述基础策略进行解释说明:
1)drop为最简单的基础策略。在对输入数据包执行本基础策略后,输出是空集,即直接丢弃输入的数据包。
2)identity表示不对输入的数据包进行处理,其输出为数据包集合{p},其中p为输入的数据包。identity主要是与其它基础策略组合使用。
3)modify(f=v)是用于对输入的数据包进行修改,输出为包含单个数据包的集合,将数据包的字段名f的值修改为v。modify是策略类的子类,其中有map成员,用于保存所有需要修改的字段名f和修改的值v。在modify策略执行的时,对于所有在map中的f和v,将输入的数据包的字段名f的值修改为v。
4)fwd(port)表示将输入的数据包从交换机的指定端口转发出去,其中port为指定的出端口。其函数输出为数据包集合{p'},其中p'与输入数据包p基本一致,区别只在于将p的出端口指定为port。fwd是一种modify的特殊情况,fwd(port)与modify(port=port)等价。
5)match(f=v)表示对输入的数据包进行过滤,返回匹配字段名f的值为v的所有数据包。match是策略类的子类,其中有map成员,用于保存所有需要匹配的字段名f和值v。在match策略执行时,对于所有在map中的f和v,返回输入数据包中的字段名f的值为v数据包的集合。
6)flood:表示洪泛。其输出的数据包集合包含多个数据包p的副本,每个副本的出端口对应交换机的一个端口(除入端口外)。由拓扑模块生成全网的最小生成树,当最小生成树的结构发生变化时,修改自身的策略:对于生成树上的每一个交换机,当其收到数据包时,转发给在生成树上的每一个端口(除入端口外)。
S32、策略生成装置按照至少一个基础策略的预设组合方式,将数据包执行至少一个基础策略,生成数据包的策略流表。
具体的,预设组合方式为串行组合方式以及并行组合方式中的任一种。
示例性的,假定A、B是2个策略,当策略C为A和B串行组合的运行结果时,则可表示为C=A>>B。该表达式的执行过程:执行前一个策略A,得到其运行的结果。将A运行结果作为后一个策略B的输入,再执行策略B,得到B的运行结果。将此结果作为A>>B的最终运行结果C。当策略C为A和B并行组合的运行结果,则可表示为C=A+B。该表达式的执行过程:分别执行策略A、B,得到A和B的运行结果。再将A、B的运行结果进行合并,将此结果作为A+B的最终运行结果C。
S33、策略生成装置调用软件定义网络SDN控制器的北向接口将策略流表,通过SDN控制器的南向接口下发至对应的交换机,以使交换机按照策略流表传输数据包。
进一步的,本发明实施例的策略生成装置通过构建一个基于Python的网络与安全功能形式化描述语言(python network policy programming language,PyNPPL)运行框架,该框架中基于Python来定义各种网络与安全策略(包括基础策略以及根据多个基础策略组合的其他策略);如流量监控、路由转发或防火墙等;PyNPPL运行框架对这些网络与安全策略进行解释处理,生成策略流表,通过调用SDN控制器提供的北向接口将策略流表经由OpenFlow等南向接口下发到SDN网络中的交换机上。
在上述方法中,利用Python类的方式定义基础策略,提高了策略的抽象层次,避免了采用C语言这种传统编译器编写策略带来的复杂性,使得策略的编写、测试、调试的实现更为简便。另外,按照预设组合方式组合利用Python类的方式定义的基础策略,能够保证在策略组合的过程中策略间不会相互影响的前提下,更易实现策略的重用,从而获得更加复杂且多样的策略,以满足用户的需求。
在一种实现方式中,结合图3,参照图4,当策略间的预设组合方式为为串行组合方式的情况下,S32具体包括:
S321a、策略生成装置基于第一预设规则,按照预设顺序将数据包依次执行至少一个基础策略,生成数据包的策略流表;第一预设规则为执行前一策略的结果作为执行后一策略的输入。
示例性的,策略类中定义了eval方法,该方法接收一个参数p,参数p为数据包的集合,eval方法执行后返回数据包的集合p1。当一个策略类的对象被执行时,会调用该对象的eval方法。初始的参数p为交换机通过SDN控制器上报的数据包,eval方法执行后得到的数据包的集合p1即为执行完策略后的输出。
在实际应用中,通过对策略类右移运算符(>>)的重载,实现了网络与安全功能形式化描述语言中的串行运算符。采用Python语言对策略c1,c2的串行组合c3=c1>>c2的执行过程可以由下式定义:
c3.eval(p1)=c2.eval(c1.eval(p))
进一步的,串行组合方式的实现主要分为顺序sequential类以及右移运算符的重载。具体解释为:
sequential类是策略类的子类,其中定义了策略policies成员用于存储被串行组合的各个策略。当一个sequential类的被执行的时候,会依次执行policies成员中的各个策略,其中将上一个策略的运行结果作为下一个策略的输入,最终返回最后一个策略的运行结果。
另外,为了实现网络与安全功能形式化描述语言中“>>”,本发明实施例对于策略类里的右移方法进行了重载。主要分为以下四种情况:
1)当两个进行串行组合的策略c1和c2均不是sequential类的策略时,右移方法返回一个新的sequential类的策略,其policies成员依次为2个串行组合的策略。即在sequential类中添加策略c1和c2,并在policies成员中添加c3=c1>>c2。
2)当串行组合c1>>c2中只有前者c1是sequential类的策略时,将后者c2添加到策略c1的policies成员的最后,并返回该sequential类的策略。
3)当串行组合c1>>c2中只有后者c2是sequential类的策略时,右移方法返回一个新的sequential类的策略,其policies成员依次为前者c1和后者c2的policies成员。
4)当c1和c2均是sequential类的策略时,将后者policies成员里的策略添加到前者的policies成员的最后,并返回前者。
需要说明的是,上述仅示例性的说明的两个策略的串行组合方式,但本申请实施例不限于两个策略,也可以是3个以上的策略,其实现方式可参照上述两个策略的的串行组合方式,此处不再赘述。
本实现方式中,将至少一个策略通过串行组合方式,获取数据包的最终执行结果,无需用户手工合并多个策略模块,从而减少用户的工作量。
在一种实现方式中,结合图3,参照图5,当策略间的预设组合方式为为并行组合方式的情况下,S32具体包括:
S322a、策略生成装置将数据包并列执行至少一个基础策略中每个策略,生成每个策略的执行结果。
S322b、策略生成装置合并所有策略的执行结果,生成数据包的策略流表。
在实际应用中,通过对策略类加运算符(+)的重载,实现了网络与安全功能形式化描述语言中的并行运算符。采用Python语言对策略c1,c2的并行组合c3=c1+c2的执行过程可以由下式定义:
c3.eval(p1)=c1.eval(p)∪c2.eval(p)
示例性的,并行运算符的实现主要分为并行parallel类以及对加运算符的重载。parallel类是策略类的子类,其中定义了policies成员用于存储被并行组合的各个策略。当一个parallel类的被执行的时候,会依次执行policies成员中的各个策略,将执行的结果取并集,最终返回最后一个策略的运行结果。
为了实现网络与安全功能形式化描述语言中“+”,本发明实施例对于策略类里的加方法进行了重载。当两个进行并行组合的策略均不是parallel类时,加方法返回一个新的parallel类的策略,其policies成员为2个并行组合的对象。当只有一个是parallel类时,将另一个策略添加到parallel类的policies成员里,并返回parallel类。当2个均是parallel类时,将后者policies成员里的策略添加到前者的policies成员里,并返回前者。
需要说明的是,上述仅示例性的说明的两个策略的并行组合方式,但本申请实施例不限于两个策略,也可以是3个以上的策略,其实现方式可参照上述两个策略的的并行组合方式,此处不再赘述。
本实现方式中,将至少一个策略通过并行组合方式,获取数据包的最终执行结果,无需用户手工合并多个策略模块,从而减少用户的工作量。
本申请实施例可以根据上述方法实施例对策略生成装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图6所示,为本申请实施例提供的一种策略生成装置11的结构示意图。该策略生成装置11具体包括获取单元601、处理单元602以及发送单元603。
具体的,获取单元601,用于获取数据包、数据包对应的至少一个基础策略以及至少一个基础策略的预设组合方式;基础策略基于Python类的方式定义。
处理单元602,用于按照获取单元601获取的至少一个基础策略的预设组合方式,将数据包执行至少一个基础策略,生成数据包的策略流表。
发送单元603,用于调用软件定义网络SDN控制器的北向接口将处理单元602生成的策略流表,通过SDN控制器的南向接口下发至对应的交换机,以使交换机按照策略流表传输数据包。
可选的,预设组合方式为串行组合方式以及并行组合方式中的任一种。
可选的,在预设组合方式为串行组合方式的情况下,处理单元602,具体用于基于第一预设规则,按照预设顺序将数据包依次执行至少一个基础策略,生成数据包的策略流表;第一预设规则为执行前一策略的结果作为执行后一策略的输入。
可选的,在预设组合方式为并行组合方式的情况下,处理单元602,具体用于将数据包并列执行至少一个基础策略中每个策略,生成每个策略的执行结果。
处理单元602,还用于合并所有策略的执行结果,生成数据包的策略流表。
可选的,基础策略包括:drop、identity、modify、fwd、match以及flood的任一项;其中,drop表示直接丢弃输入的数据包;identity表示不对输入的数据包进行处理;modify表示是用于对输入的数据包进行修改,将数据包中字段名f的值修改为v;fwd表示将输入的数据包从交换机的指定端口转发出去;match表示对数据包进行过滤,返回匹配字段名f的值为v的所有数据包;flood表示洪泛。
当然,本申请实施例提供的策略生成装置11包括但不限于上述模块,例如策略生成装置11还可以包括存储单元604。存储单元604可以用于存储该策略生成装置11的程序代码,还可以用于存储策略生成装置11在运行过程中生成的数据,如写请求中的数据等。
这里,本申请实施例描述的***架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
图7示意性地示出本申请实施例提供的计算机程序产品的概念性局部视图,所述计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。
在一个实施例中,计算机程序产品是使用信号承载介质410来提供的。所述信号承载介质410可以包括一个或多个程序指令,其当被一个或多个处理器运行时可以提供以上针对图2描述的功能或者部分功能。因此,例如,参考图2中所示的实施例,S21-S23的一个或多个特征可以由与信号承载介质410相关联的一个或多个指令来承担。此外,图7中的程序指令也描述示例指令。
在一些示例中,信号承载介质410可以包含计算机可读介质411,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等等。
在一些实施方式中,信号承载介质410可以包含计算机可记录介质412,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。
在一些实施方式中,信号承载介质410可以包含通信介质413,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。
信号承载介质410可以由无线形式的通信介质413(例如,遵守IEEE802.41标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令可以是,例如,计算机可执行指令或者逻辑实施指令。
在一些示例中,诸如针对图6描述的策略生成装置可以被配置为,响应于通过计算机可读介质411、计算机可记录介质412、和/或通信介质413中的一个或多个程序指令,提供各种操作、功能、或者动作。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种策略生成方法,其特征在于,包括:
获取数据包、所述数据包对应的至少一个基础策略以及所述至少一个基础策略的预设组合方式;所述基础策略基于Python类的方式定义;
按照所述至少一个基础策略的预设组合方式,将所述数据包执行所述至少一个基础策略,生成所述数据包的策略流表;
调用软件定义网络SDN控制器的北向接口将所述策略流表,通过所述SDN控制器的南向接口下发至对应的交换机,以使所述交换机按照所述策略流表传输所述数据包。
2.根据权利要求1所述的策略生成方法,其特征在于,所述预设组合方式为串行组合方式以及并行组合方式中的任一种。
3.根据权利要求1或2所述的策略生成方法,其特征在于,在所述预设组合方式为串行组合方式的情况下,所述按照所述至少一个基础策略的预设组合方式,将所述数据包执行所述至少一个基础策略,生成所述数据包的策略流表,包括:
基于第一预设规则,按照预设顺序将所述数据包依次执行所述至少一个基础策略,生成所述数据包的策略流表;所述第一预设规则为执行前一策略的结果作为执行后一策略的输入。
4.根据权利要求1或2所述的策略生成方法,其特征在于,在所述预设组合方式为并行组合方式的情况下,所述按照所述至少一个基础策略的预设组合方式,将所述数据包执行所述至少一个基础策略,生成所述数据包的策略流表,包括:
将所述数据包并列执行所述至少一个基础策略中每个策略,生成所述每个策略的执行结果;
合并所有策略的执行结果,生成所述数据包的策略流表。
5.根据权利要求1所述的策略生成方法,其特征在于,所述基础策略包括:drop、identity、modify、fwd、match以及flood的任一项;
其中,所述drop表示直接丢弃输入的数据包;所述identity表示不对输入的数据包进行处理;所述modify表示是用于对输入的数据包进行修改,将数据包中字段名f的值修改为v;所述fwd表示将输入的数据包从交换机的指定端口转发出去;所述match表示对数据包进行过滤,返回匹配字段名f的值为v的所有数据包;所述flood表示洪泛。
6.一种策略生成装置,其特征在于,包括:
获取单元,用于获取数据包、所述数据包对应的至少一个基础策略以及所述至少一个基础策略的预设组合方式;所述基础策略基于Python类的方式定义;
处理单元,用于按照所述获取单元获取的所述至少一个基础策略的预设组合方式,将所述数据包执行所述至少一个基础策略,生成所述数据包的策略流表;
发送单元,用于调用软件定义网络SDN控制器的北向接口将所述处理单元生成的所述策略流表,通过所述SDN控制器的南向接口下发至对应的交换机,以使所述交换机按照所述策略流表传输所述数据包。
7.根据权利要求6所述的策略生成装置,其特征在于,所述预设组合方式为串行组合方式以及并行组合方式中的任一种。
8.根据权利要求6或7所述的策略生成装置,其特征在于,在所述预设组合方式为串行组合方式的情况下,
所述处理单元,具体用于基于第一预设规则,按照预设顺序将所述数据包依次执行所述至少一个基础策略,生成所述数据包的策略流表;所述第一预设规则为执行前一策略的结果作为执行后一策略的输入。
9.根据权利要求6或7所述的策略生成装置,其特征在于,在所述预设组合方式为并行组合方式的情况下,
所述处理单元,具体用于将所述数据包并列执行所述至少一个基础策略中每个策略,生成所述每个策略的执行结果;
所述处理单元,还用于合并所有策略的执行结果,生成所述数据包的策略流表。
10.根据权利要求6所述的策略生成装置,其特征在于,所述基础策略包括:drop、identity、modify、fwd、match以及flood的任一项;
其中,所述drop表示直接丢弃输入的数据包;所述identity表示不对输入的数据包进行处理;所述modify表示是用于对输入的数据包进行修改,将数据包中字段名f的值修改为v;所述fwd表示将输入的数据包从交换机的指定端口转发出去;所述match表示对数据包进行过滤,返回匹配字段名f的值为v的所有数据包;所述flood表示洪泛。
11.一种策略生成装置,其特征在于,所述策略生成装置的结构中包括处理器,所述处理器用于执行程序指令,使得所述策略生成装置执行如权利要求1-5任一项所述的策略生成方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序代码,当所述计算机程序代码在策略生成装置上运行时,使得所述策略生成装置执行如权利要求1-5任一项所述的策略生成方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品储存有计算机软件指令,当所述计算机软件指令在策略生成装置上运行时,使得所述策略生成装置执行如权利要求1-5任一项所述的策略生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110308773.6A CN113114594B (zh) | 2021-03-23 | 2021-03-23 | 一种策略生成方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110308773.6A CN113114594B (zh) | 2021-03-23 | 2021-03-23 | 一种策略生成方法及装置、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113114594A true CN113114594A (zh) | 2021-07-13 |
CN113114594B CN113114594B (zh) | 2023-04-07 |
Family
ID=76711979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110308773.6A Active CN113114594B (zh) | 2021-03-23 | 2021-03-23 | 一种策略生成方法及装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113114594B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230104129A1 (en) * | 2021-10-04 | 2023-04-06 | Juniper Networks, Inc. | Network policy generation for continuous deployment |
US11700237B2 (en) | 2018-09-28 | 2023-07-11 | Juniper Networks, Inc. | Intent-based policy generation for virtual networks |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105406992A (zh) * | 2015-10-28 | 2016-03-16 | 浙江工商大学 | 一种面向sdn的业务需求转化和部署方法 |
US20160255051A1 (en) * | 2015-02-26 | 2016-09-01 | International Business Machines Corporation | Packet processing in a multi-tenant Software Defined Network (SDN) |
US20170093924A1 (en) * | 2015-09-29 | 2017-03-30 | The Trustees Of The University Of Pennsylvania | Methods, systems, and computer readable media for generating software defined networking (sdn) policies |
CN108494574A (zh) * | 2018-01-18 | 2018-09-04 | 清华大学 | 一种nfv中网络功能并行处理基础架构 |
CN109547437A (zh) * | 2018-11-23 | 2019-03-29 | 北京奇安信科技有限公司 | 一种安全资源池的引流处理方法及装置 |
CN109918152A (zh) * | 2019-03-18 | 2019-06-21 | 中科麦迪人工智能研究院(苏州)有限公司 | 基于策略流的任务执行方法、装置、服务器和存储介质 |
CN111162939A (zh) * | 2019-12-25 | 2020-05-15 | 广东省新一代通信与网络创新研究院 | 一种网络设备控制方法、装置、计算设备及网络*** |
-
2021
- 2021-03-23 CN CN202110308773.6A patent/CN113114594B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160255051A1 (en) * | 2015-02-26 | 2016-09-01 | International Business Machines Corporation | Packet processing in a multi-tenant Software Defined Network (SDN) |
US20170093924A1 (en) * | 2015-09-29 | 2017-03-30 | The Trustees Of The University Of Pennsylvania | Methods, systems, and computer readable media for generating software defined networking (sdn) policies |
CN105406992A (zh) * | 2015-10-28 | 2016-03-16 | 浙江工商大学 | 一种面向sdn的业务需求转化和部署方法 |
CN108494574A (zh) * | 2018-01-18 | 2018-09-04 | 清华大学 | 一种nfv中网络功能并行处理基础架构 |
CN109547437A (zh) * | 2018-11-23 | 2019-03-29 | 北京奇安信科技有限公司 | 一种安全资源池的引流处理方法及装置 |
CN109918152A (zh) * | 2019-03-18 | 2019-06-21 | 中科麦迪人工智能研究院(苏州)有限公司 | 基于策略流的任务执行方法、装置、服务器和存储介质 |
CN111162939A (zh) * | 2019-12-25 | 2020-05-15 | 广东省新一代通信与网络创新研究院 | 一种网络设备控制方法、装置、计算设备及网络*** |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11700237B2 (en) | 2018-09-28 | 2023-07-11 | Juniper Networks, Inc. | Intent-based policy generation for virtual networks |
US20230104129A1 (en) * | 2021-10-04 | 2023-04-06 | Juniper Networks, Inc. | Network policy generation for continuous deployment |
US11870642B2 (en) * | 2021-10-04 | 2024-01-09 | Juniper Networks, Inc. | Network policy generation for continuous deployment |
Also Published As
Publication number | Publication date |
---|---|
CN113114594B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113114594B (zh) | 一种策略生成方法及装置、存储介质 | |
US9614789B2 (en) | Supporting multiple virtual switches on a single host | |
CN104348677A (zh) | 一种深度报文检测方法、设备及协处理器 | |
US11588734B2 (en) | Systems for providing an LPM implementation for a programmable data plane through a distributed algorithm | |
US20220150154A1 (en) | Automatically managing a mesh network based on dynamically self-configuring node devices | |
US9225545B2 (en) | Determining a path for network traffic between nodes in a parallel computer | |
US11398981B2 (en) | Path creation method and device for network on chip and electronic apparatus | |
CN110266679B (zh) | 容器网络隔离方法及装置 | |
US11915034B2 (en) | Sidecar-based integration capabilities for containerized applications | |
US20220255794A1 (en) | Configuration method, related apparatus, and system | |
CN115913937B (zh) | 一种容器多网卡网络配置方法、装置、设备及存储介质 | |
US11258707B1 (en) | Systems for building data structures with highly scalable algorithms for a distributed LPM implementation | |
US20120140640A1 (en) | Apparatus and method for dynamically processing packets having various characteristics | |
CN113660127B (zh) | 基于EasyMesh组网中的组网控制方法、装置及设备 | |
CN112637081A (zh) | 带宽限速的方法及装置 | |
CN113986969A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
KR102280343B1 (ko) | 복수의 이더넷 포트를 가지는 사물인터넷 디바이스 | |
CN115033407B (zh) | 一种适用于云计算的采集识别流量的***和方法 | |
CN114697387A (zh) | 数据包传输方法、装置及存储介质 | |
CN114338193B (zh) | 一种流量编排方法、装置及ovn流量编排*** | |
CN114205172A (zh) | 一种表项下发方法及一种报文转发方法 | |
US10445120B2 (en) | Tiered application discovery | |
CN116800605B (zh) | 在容器中运行虚拟机的网络实现方法、***、设备及介质 | |
CN112367258B (zh) | 基于Openstack架构实现服务链功能的方法 | |
CN118101494B (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 |