CN105207912B - 一种sdn多模块部署规则冲突的处理方法 - Google Patents
一种sdn多模块部署规则冲突的处理方法 Download PDFInfo
- Publication number
- CN105207912B CN105207912B CN201510590338.1A CN201510590338A CN105207912B CN 105207912 B CN105207912 B CN 105207912B CN 201510590338 A CN201510590338 A CN 201510590338A CN 105207912 B CN105207912 B CN 105207912B
- Authority
- CN
- China
- Prior art keywords
- flow table
- node
- rule
- dag
- sdn
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种SDN多模块部署规则冲突的处理方法,将SDN规则以OpenFlow流表的形式进行部署,其中,OpenFlow流表按其表项空间的包含关系抽象成以流表项为节点组成的DAG图;需要插入新的流表项时,首先将新的流表项构建为DAG节点;然后沿DAG图进行遍历,直至找到一个节点,其规则空间与构建的DAG节点的规则空间互不包含;接着,将构建的DAG节点与找到的节点的规则空间求交,将求交后形成的节点作为公共子节点;最后,将公共子节点与产生它的两个父节点所对应的下一级流表的表项分别进行关联。本发明设计简单,使用方便,能够处理SDN中多个app部署到同一物理设备上从而产生的规则冲突和重叠,从而保证避免数据包的误匹配。
Description
技术领域
本发明涉及SDN网络技术领域,尤其涉及一种SDN多模块部署规则冲突的处理方法。
背景技术
随着网络规模和业务的不断发展,现有的网络架构已经无法满足需求。因此,新兴的网络变革技术--软件定义网络(SDN)受到了极大的关注。SDN将传统网络设备的控制平面从数据平面分离出来,通过软件编程的方式进行集中化的控制与管理。
通过SDN控制器,用户可以进行模块化编程组合的方式构建不同app以完成特定网络的功能,从而实现网络的创新。OpenFlow1.1规范推出之后,SDN的app的编写常常需要多表流水线的形式,其数据包处理流程如图1所示。数据包从第一个流表开始匹配,其整个匹配过程可能需要通过goto指令跳转到另外一个流表继续进行匹配,不同流表间通过64位的metadata进行相关联。数据包在一个流表中只查找到与之相匹配的优先级最高的流表项,然后根据流表项的动作执行进一步操作。
同时,在同一台Openflow交换机上可能部署着来自不同控制平面app的流水线规则,并且这些规则都需要对同一流量进行处理。因此,来自不同的app其构建的规则可能是相互重叠冲突从而导致误匹配。
发明内容
本发明所要解决的技术问题是针对背景技术中所涉及到的缺陷,提供一种SDN多模块部署规则冲突的处理方法,以解决不同app部署在同一台openflow交换机时由于规则的重叠冲突从而导致数据包误匹配的问题。
本发明为解决上述技术问题采用以下技术方案:
一种SDN多模块部署规则冲突的处理方法,包含以下具体步骤:
步骤1),将SDN规则以OpenFlow流表的形式进行部署,OpenFlow流表按其表项空间的包含关系抽象成以流表项为节点所组成的DAG图;
步骤2),需要插入新的流表项时;
步骤2.1),将新的流表项构建为DAG节点;
步骤2.2),沿DAG图进行遍历,直至找到一个节点,其规则空间与步骤2.1)中构建的DAG节点的规则空间互不包含;
步骤2.3),将步骤2.1)中构建的DAG节点与步骤2.2)中找到的节点的规则空间求交,将求交后形成的节点作为公共子节点;
步骤2.4),将公共子节点与产生它的两个父节点所对应的下一级流表的表项分别进行关联。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1. 设计简单,使用方便;
2. 能够处理SDN中多个app部署到同一物理设备上从而产生的规则冲突和重叠,从而保证避免数据包的误匹配。
附图说明
图1是OpenFlow数据包流水线处理的示意图;
图2是规则误匹配的示意图;
图3是重叠规则求交的示意图;
图4是流表抽象的示意图;
图5是流表添加规则的示意图;
图6是本发明的流程图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明公开了一种SDN多模块部署规则冲突的处理方法,包含以下具体步骤:
步骤1),将SDN规则以OpenFlow流表的形式进行部署,OpenFlow流表按其表项空间的包含关系抽象成以流表项为节点组成的有向无环图(DAG);
步骤2),需要插入新的流表项时;
步骤2.1),将新的流表项构建为DAG节点;
步骤2.2),沿DAG图进行遍历,直至找到一个节点,其规则空间与步骤2.1)中构建的DAG节点的规则空间互不包含;
步骤2.3),将步骤2.1)中构建的DAG节点与步骤2.2)中找到的节点的规则空间求交,将求交后形成的节点作为公共子节点;
步骤2.4),将公共子节点与产生它的两个父节点所对应的下一级流表的表项分别进行关联。
如图2所示, 数据包在flow table 0匹配到规则,然后执行所对应的动作,接着跳转到flow table 1查找metadata值为0x1的表项进行匹配,但由于其无法匹配到F3匹配域,因此,该数据包会执行默认规则(丢掉或者上传到控制器)。但其实,该数据包能够匹配到flow table 0的规则,并能够得到具体的转发。
我们通过观察,发现来自apps的规则容易因为重叠而导致误匹配。因此,本发明的主要思想是将规则重叠的部分(各个规则的交)单独作为一个优先级更高的表项。同时,这个新的表项与冲突规则的后续表项都进行关联。通过这种方式,可以避免数据包的误匹配。同时,为了避免由于提出重叠部分而导致规则表的膨胀,本发明将每个流表抽象成一个DAG图,每个图的节点代表一个flow entry。同时,在DAG中,父节点所代表的规则的范围大于其子节点规则的范围。因此,每次有新的流表项加入DAG图时,只需要与DAG中特定的节点求交即可。
本发明的核心思想是将重叠的规则取交,交的结果作为一个优先级更高的表项,同时与取交规则的后续表项相关联,如图3所示,从而避免了数据包误匹配而产生的错误操作。
通过将重叠规则求交产生新的表项可能会使整个流表的规模增大,这样会增大交换机的开销。为了尽可能减少求交的次数(减少新产生的规则),本发明将流表抽象成一个DAG图,图中的父节点的规则所能表示的范围大于子节点规则所能表示的范围,如图4所示。
当新流表项插入时,只需找到最合适的旧规则进行求交,所谓最合适的规则是指规则的范围最小,如图5所示。
整个过程的流程图如图6所示。
本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种SDN多模块部署规则冲突的处理方法,其特征在于,包含以下具体步骤:
步骤1),将SDN规则以OpenFlow流表的形式进行部署,OpenFlow流表按其表项空间的包含关系抽象成以流表项为节点组成的DAG图;
步骤2),需要插入新的流表项时:
步骤2.1),将新的流表项构建成DAG节点;
步骤2.2),沿DAG图进行遍历,直至找到一个节点,其规则空间与步骤2.1)中构建的DAG节点的规则空间互不包含;
步骤2.3),将步骤2.1)中构建的DAG节点与步骤2.2)中找到的节点的规则空间求交,将求交后形成的节点作为公共子节点;
步骤2.4),将公共子节点作为一个优先级更高的表项,并将该公共子节点与产生它的两个父节点所对应的下一级流表的表项分别进行关联。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510590338.1A CN105207912B (zh) | 2015-09-16 | 2015-09-16 | 一种sdn多模块部署规则冲突的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510590338.1A CN105207912B (zh) | 2015-09-16 | 2015-09-16 | 一种sdn多模块部署规则冲突的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105207912A CN105207912A (zh) | 2015-12-30 |
CN105207912B true CN105207912B (zh) | 2018-08-24 |
Family
ID=54955354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510590338.1A Active CN105207912B (zh) | 2015-09-16 | 2015-09-16 | 一种sdn多模块部署规则冲突的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105207912B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017128112A1 (zh) * | 2016-01-27 | 2017-08-03 | 中国科学院计算技术研究所 | 软件定义网络组合编程动作计算方法、系统、装置及芯片 |
CN108270614B (zh) * | 2017-12-25 | 2021-07-23 | 深圳市泰信通信息技术有限公司 | 基于sdn网络的故障处理方法、装置及设备 |
CN108809829B (zh) * | 2018-06-14 | 2020-09-08 | 重庆邮电大学 | 一种sdn规则部署方法 |
CN109379441A (zh) * | 2018-12-07 | 2019-02-22 | 华中科技大学 | 一种云环境中服务链规则组合方法及系统 |
CN111147368A (zh) * | 2019-12-31 | 2020-05-12 | 江苏省未来网络创新研究院 | 一种sdn控制器与sdn交换机的连接控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202303A (zh) * | 2014-08-11 | 2014-12-10 | 华中科技大学 | 一种sdn应用的策略冲突检测方法及系统 |
WO2015152930A1 (en) * | 2014-04-03 | 2015-10-08 | Hewlett-Packard Development Company, L.P. | Modifying a priority for at least one flow class of an application |
-
2015
- 2015-09-16 CN CN201510590338.1A patent/CN105207912B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015152930A1 (en) * | 2014-04-03 | 2015-10-08 | Hewlett-Packard Development Company, L.P. | Modifying a priority for at least one flow class of an application |
CN104202303A (zh) * | 2014-08-11 | 2014-12-10 | 华中科技大学 | 一种sdn应用的策略冲突检测方法及系统 |
Non-Patent Citations (1)
Title |
---|
一种基于OpenFlow的SDN访问控制策略实时冲突检测与解决方法;王鹃等;《计算机学报》;20150430;第38卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105207912A (zh) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105207912B (zh) | 一种sdn多模块部署规则冲突的处理方法 | |
US10075375B2 (en) | Method for making flow table multiple levels, and multi-level flow table processing method and device | |
CN103259718A (zh) | 一种流表转换方法和装置 | |
CN106664320A (zh) | 支持通信网络中的业务链图的机制 | |
CN103200122A (zh) | 一种软件定义网络中组表的处理方法、系统和控制器 | |
Liu et al. | Further results on finite‐time consensus of second‐order multi‐agent systems without velocity measurements | |
WO2010127527A1 (zh) | 在邻接节点间多边条件下实现k优路径算法的方法及装置 | |
JP2017501639A (ja) | パケット処理方法およびデバイス | |
WO2023030094A1 (zh) | 基于矩阵运算的移动社会网络图修改方法 | |
Jiang et al. | Sign‐consensus over cooperative‐antagonistic networks with switching topologies | |
RU2013145592A (ru) | Система и способ планирования вычислений в системе администрирования информационно-зависимых ограничений | |
JP2012124720A (ja) | プログラム、情報処理装置、及び情報処理方法 | |
EP3100436B1 (en) | Maintaining routing information for a distributed service provided by service instances | |
Trajanovski et al. | From epidemics to information propagation: Striking differences in structurally similar adaptive network models | |
CN107977310B (zh) | 一种遍历测试命令生成方法及装置 | |
Ren et al. | Adaptive projective synchronization for a class of switched chaotic systems | |
WO2015165323A1 (zh) | 一种数据处理方法、处理器及数据处理设备 | |
US20220036206A1 (en) | Containerized distributed rules engine | |
CN104579896B (zh) | 一种虚拟网络的划分方法及装置 | |
Xie et al. | Leader‐following consensus of nonlinear singular multiagent systems with intermittent communication | |
Senan et al. | New results for exponential stability of delayed cellular neural networks | |
CN106202720A (zh) | 脑网络模型建立方法 | |
CN105187423B (zh) | 网络资源的隔离方法、网络资源的隔离系统和移动终端 | |
CN103729401B (zh) | 一种家谱树的生成方法 | |
CN115914423B (zh) | 在选定组中实现同源同宿的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |