CN114301786A - 检测sdn中的流表的策略冲突的方法、装置、以及存储介质 - Google Patents
检测sdn中的流表的策略冲突的方法、装置、以及存储介质 Download PDFInfo
- Publication number
- CN114301786A CN114301786A CN202010996092.9A CN202010996092A CN114301786A CN 114301786 A CN114301786 A CN 114301786A CN 202010996092 A CN202010996092 A CN 202010996092A CN 114301786 A CN114301786 A CN 114301786A
- Authority
- CN
- China
- Prior art keywords
- node
- flow table
- new
- entry
- directed graph
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000001514 detection method Methods 0.000 description 48
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了检测SDN中的流表的策略冲突的方法、装置、以及存储介质。所述方法包括:接收流表更新信息,其中,所述流表更新信息包括要更新到流表的新流表项和作为所述新流表项的下发目的地的目的交换机的信息;获取所述SDN中维护的有向图,其中,所述有向图基于所述SDN的物理拓扑和所述SDN中的交换机中的流表的现有流表项生成并且包括多个节点以及节点之间的连接以形成数据包的转发路径;以及基于所述新流表项和所述有向图检测所述新流表项是否与所述现有流表项冲突。
Description
技术领域
本公开总体上涉及网络通信领域中的冲突检测技术,并且具体地涉及用于检测软件定义网络(SDN)中的流表的策略冲突的方法、装置、以及存储介质。
背景技术
SDN作为一种新兴的网络架构,其核心思想是将转发平面和控制平面解耦,通过集中式控制器并且使用标准的接口对各种不同的网络设备进行管理。例如,目前业界普遍使用南向接口协议OpenFlow对网络中的交换机进行集中管理。与传统网络相比,SDN存在诸多优点。例如,SDN更可控,对网络的管理能力也更强,可以更方便地掌控网络的运行状况,以及更灵活地部署数据包的转发策略。
尽管SDN对网络的管理提供了极大的便利,但是由于SDN中存在多个不同的用户,所以这些不同的用户、甚至同一用户下发的流表的策略之间可能互相冲突,从而导致SDN网络中形成转发环、转发黑洞以及安全策略(例如,防火墙规则)失效等。
对于SDN网络中的流表的策略冲突,目前存在一些检测方案。然而,本申请的发明人已发现,现有的这些检测方案至少存在以下问题。
首先,现有的部分检测方案采用笛卡尔积的方式进行检测,无法对冲突进行准确的检测,通常会将正常的数据包行为检测为冲突,从而导致容易产生误报。
其次,现有的部分检测方案无法检测出SDN网络中的防火墙冲突(该冲突通常由SDN网络中的“设置(set)”动作的使用导致),从而导致检测的有效性差。
再次,现有的部分检测方案尽管可以解决上述误报和有效性差的问题,但是当SDN网络中流表发生变化时,需要进行从数据包的发送端到接收端的全网检测,从而导致检测的效率低。
因此,希望能够提供一种新的检测方案,以解决目前的检测方案容易产生误报、有效性差、以及效率低等问题。
发明内容
本公开提供了用于检测SDN中的流表的策略冲突的方法、装置、以及存储介质,其在进行流表的策略冲突检测时不容易产生误报,而且检测的有效性好、效率高。
根据本公开的一方面,提出了一种用于检测SDN中的流表的策略冲突的方法。所述方法包括:接收流表更新信息,其中,所述流表更新信息包括要更新到流表的新流表项和作为所述新流表项的下发目的地的目的交换机的信息;获取所述SDN中维护的有向图,其中,所述有向图基于所述SDN的物理拓扑和所述SDN中的交换机中的流表的现有流表项生成并且包括多个节点以及节点之间的连接以形成数据包的转发路径;以及基于所述新流表项和所述有向图检测所述新流表项是否与所述现有流表项冲突。
根据本公开的另一方面,提出了一种用于检测SDN中的流表的策略冲突的的装置。所述装置包括用于实现上述方法的部件。
根据本公开的又一方面,提出了一种计算机装置。所述计算机装置包括:处理器;以及存储器,所述存储器存储能够由所述处理器执行的程序,所述程序在由所述处理器执行时实现上述方法。
根据本公开的又一方面,提出了一种计算机可读存储介质。所述计算机可读存储介质存储程序,所述程序在由处理器执行时实现上述方法。
以上给出了关于本公开的简要概述,以便提供关于本公开的一些方面的基本理解。但是,应当理解,这个概述不是关于本公开的穷举性概述。它不意图用于确定本公开的关键性部分或重要部分,也不意图用于限定本公开的范围。它的目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。
通过以下参考附图对本公开的实施例的详细描述,本公开的其它特征及其优点将变得更清楚。
附图说明
构成本说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
图1示出了根据本公开的实施例的包括流表策略冲突检测装置的SDN系统。
图2示出了根据本公开的实施例的用于检测SDN中的流表策略冲突的方法的基本流程。
图3示出了根据本公开的实施例的用于检测SDN中的流表策略冲突的方法的详细流程。
图4示出了根据本公开的实施例的SDN的物理拓扑。
图5示出了根据本公开的实施例的用于检测SDN中的流表策略冲突的有向图。
图6示出了根据本公开的实施例的用于检测SDN中的流表策略冲突的装置的结构。
具体实施方式
下面,将参考附图详细描述本公开的实施例。
需要说明的是,在以下的详细描述中,阐述了许多具体的细节以提供对描述的实施例的透彻理解。然而,对于本领域技术人员应当清楚的是,描述的实施例可以在没有这些具体的细节中的一些或全部的情况下进行实施。另外,在描述的实施例中,为了避免不必要地模糊本公开的概念,一些众所周知的内容没有详细地描述,在适当的情况下,这些内容应当视为说明书的一部分。
此外,本公开中呈现的方法的步骤是说明性的。在一些实施例中,这些方法可以具有本文中没有描述的一个或多个附加的步骤和/或省略本文中已描述的一个或多个步骤。而且,这些方法的步骤被图示和描述的顺序也不是限制性的。
图1示出了根据本公开的实施例的包括流表策略冲突检测装置的SDN系统。
如图1中所示,SDN系统100包括SDN控制器101和交换机106、107、108。SDN控制器101对交换机106、107、108进行管理,这些管理包括对交换机106、107、108下发数据包的转发策略(即,流表项)。
SDN控制器101中除了包括应用102、103、104之外,还包括应用本公开的流表策略冲突检测技术的装置105。具体地,当SDN控制器101中的例如应用102需要下发流表项到相应的交换机106以对该交换机106中的流表进行更新时,该流表项首先将由装置105使用本公开的流表策略冲突检测技术进行检测以确定它是否与系统100中的交换机106、107、108中的流表的现有流表项冲突。在确定不冲突之后,该流表项将被下发到交换机106。
以上简单地介绍了应用本公开的流表策略冲突检测技术的系统。需要说明的是,图1中所示的SDN系统仅是示例性的,其实际的系统架构并不限于此。例如,尽管图1中流表策略冲突检测装置被设置在SDN控制器内部,但是该装置设置在SDN控制器外部也是可以的。另外,为了简单起见,图1中仅示出了SDN控制器中的三个应用以及SDN控制器管理的三个交换机,很显然,SDN系统可以包括任意数量的应用和交换机,而且还可以包括与图1中所示的组件在功能上等同的那些组件,甚至还可以包括图1中没有示出的一些组件。与图1中所示的SDN系统相关的这些变型对于本领域技术人员而言应当是清楚的,在此不再一一列举。
图2示出了根据本公开的实施例的用于检测SDN中的流表策略冲突的方法的基本流程。该方法例如可以由以上所提到的流表策略冲突检测装置执行。
首先,在步骤S201中,接收流表更新信息。
如以上所提到的,在新流表项被下发到SDN中的交换机以对其流表进行更新之前,需要对该新流表项进行冲突检测。因此,在步骤S201中,可以获得与流表更新相关的信息(即,流表更新信息),该信息包括新流表项以及与该新流表项的下发目的地(即,目的交换机)相关的信息。
接着,在步骤S202中,获取SDN中维护的有向图。
在本公开中,SDN中维护有有向图,该有向图用于在进行流表策略冲突检测时使用。因此,在每次进行冲突检测时,需要获取维护的有向图。总体上,该有向图是基于SDN的物理拓扑以及SDN中的交换机中的流表的现有流表项生成的,而且该有向图包括多个节点以及节点之间的连接以形成数据包的转发路径。
为了更清楚地理解本公开的有向图,下面将结合图4和图5给出一些详细说明。
图4示出了根据本公开的实施例的SDN的物理拓扑。如图4中所示,在物理拓扑400中,存在交换机S1、S2、S3、S4,以及主机H1、H2,并且这些交换机、主机之间存在物理连接(在图4中使用连接线表示)。另外,顺便提及的是,在图4中,每个交换机附近的数字1、2、3表示该交换机的端口编号。
现在假定交换机S1中已存在流表项“192.168.0.0/16,1,2”、“192.169.0.0/16,1,3”,S2中已存在流表项“192.169.0.0/16,1,2”,S3中已存在流表项“192.160.1.2/32,1,2”,S4中已存在流表项“192.168.1.2/32,1,2”。需要说明的是,以下的描述中将涉及流表项的匹配域,这一内容对于本领域技术人员而言是熟知的,在此不再详细介绍。另外,假定主机H1、H2的IP地址分别为“192.168.0.2”、“192.168.1.2”。
图5示出了根据本公开的实施例的用于检测SDN中的流表策略冲突的有向图,其中,图5中的有向图501是基于图4中的物理拓扑400以及交换机S1、S2、S3、S4中的现有流表项(即,以上假设的流表项)生成的。下面,将对有向图501进行详细介绍。
具体地,在图5的上半部分中,HN1、HN2表示有向图501中的节点(在下文中称为第一节点),它们分别与图4中的主机H1、H2对应(为了直观起见,已示出了这些主机的IP地址),SN1、SN2、SN3、SN4也表示有向图501中的节点(在下文中称为第二节点),它们分别与图4中的交换机S1、S2、S3、S4对应。另外,SN1-1、SN1-2、SN2-1、SN3-1、SN4-1同样表示有向图501中的节点(在下文中称为第三节点),它们分别与交换机S1、S2、S3、S4中的流表项对应(为了直观起见,已示出了这些流表项),而且这些第三节点被包括在对应的第二节点SN1、SN2、SN3、SN4中。因此,可以说有向图501包括第一节点和第二节点,并且第二节点中包括第三节点。
而且,在有向图501中,不同的第二节点中包括的第三节点之间通过以下准则建立连接以形成数据包的转发路径:对于物理上连接的两个交换机,如果这两个交换机中的两个流表项的匹配域之间存在重叠(这意味着这两个流表项在数据包的转发处理上具有协同关系),那么在有向图501中与这两个交换机中的这两个流表项对应的第三节点之间建立连接。
并且,在有向图501中,第一节点与第二节点中包括的第三节点之间通过以下准则建立连接以形成数据包的转发路径:对于物理上连接的主机和交换机,如果主机的IP地址和交换机中的流表项的匹配域之间存在重叠(这意味着数据包能够从该主机发送到该交换机以经由该流表项进行处理),那么在有向图501中与这个主机对应的第一节点和与这个交换机中的流表项对应的第三节点之间建立连接。
举例来说,如图4中所示,交换机S1与交换机S2之间存在物理连接。并且,如上所述,交换机S1具有流表项“192.169.0.0/16,1,3”,交换机S2具有流表项“192.169.0.0/16,1,2”。由于这两个交换机S1、S2中的这两个流表项的匹配域“192.169.0.0/16”、“192.169.0.0/16”之间存在重叠(这意味着这两个流表项在数据包的转发处理上具有协同关系,即在交换机S1中数据包经由流表项“192.169.0.0/16,1,3”处理并转发到交换机S2之后,交换机S2中的流表项“192.169.0.0/16,1,2”可以对其进行下一步处理),因此在有向图501中与这两个流表项对应的第三节点SN1-2、SN2-1之间建立连接L2以形成数据包的转发路径(注:连接L2的方向表示数据包的转发方向)。同时,从有向图501中还可以看到,由于交换机S3中的流表项“192.160.1.2/32,1,2”的匹配域“192.160.1.2/32”与交换机S1、S4中的流表项“192.168.0.0/16,1,2”、“192.168.1.2/32,1,2”的匹配域“192.168.0.0/16”、“192.168.1.2/32”之间不存在重叠(这意味着这些流表项在数据包的转发处理上不具有协同关系),因此在有向图501中第三节点SN3-1与第三节点SN1-1、SN4-1之间不建立连接。
此外,由于主机H1的IP地址“192.168.0.2”与交换机S1的流表项“192.168.0.0/16,1,2”的匹配域“192.168.0.0/16”之间存在重叠(这意味着数据包能够从主机H1发送到交换机S1以经由流表项“192.168.0.0/16,1,2”进行处理),因此在有向图501中对应的第一节点HN1与第三节点SN1-1之间建立连接L1。类似地,第三节点SN4-1与第一节点HN2之间建立连接L3。
以上就是基于SDN的物理拓扑和交换机中的流表的流表项生成有向图的过程。需要说明的是,图5中示出的有向图501是示例性的。本公开的有向图不限于图5中所示的形式,而是可以有其它变型。实际上,只要生成的有向图能够反映数据包的转发路径,就可以采用其它形式的有向图。
接下来,继续讨论图2中的流程。在步骤S202中获取有向图之后,接着在步骤S203中,基于在步骤S201中接收的新流表项和在步骤S202中获取的有向图检测新流表项是否与现有流表项冲突。
在步骤S202中获取的有向图是如图5中所示的有向图501那样的情况下,步骤S203可以包括:判断新流表项是否与有向图中与目的交换机对应的第二节点中包括的第三节点所对应的流表项冲突;以及如果新流表项与有向图中与目的交换机对应的第二节点中包括的第三节点所对应的流表项不冲突,则判断新流表项是否与有向图中要形成的数据包的新转发路径中的第三节点所对应的流表项冲突,该新转发路径是在有向图中与目的交换机对应的第二节点中增加与新流表项对应的第三节点的情况下形成的转发路径。关于这些判断过程,下面将结合图3对其进行详细介绍。
图3示出了根据本公开的实施例的用于检测SDN中的流表策略冲突的方法的详细流程。该方法例如可以由以上所提到的流表策略冲突检测装置执行。
在步骤S301和S302中,接收流表更新信息并且获取SDN中维护的有向图。这两个步骤在以上图2中的步骤S201和S202中已进行描述,在此不再介绍。
在步骤S303中,基于在步骤S301中接收的流表更新信息中包括的目的交换机信息确定在步骤S302中获取的有向图中的对应节点(即,与目的交换机对应的第二节点)。
如以上所提到的,流表更新信息中包括目的交换机信息,而且在有向图中存在与各个交换机对应的第二节点。因此,在步骤S303中,基于目的交换机信息能够确定有向图中的对应节点。
在步骤S304中,判断新流表项的匹配域是否与在步骤S303中确定的第二节点中包括的第三节点所对应的流表项的匹配域重叠。
步骤S304旨在通过比较新流表项的匹配域与目的交换机中的现有流表项的匹配域来判断新流表项是否与目的交换机中的现有流表项冲突。需要说明的是,对于同一个交换机,如果两个不同的流表项的匹配域之间存在重叠,这意味着对于同一数据包存在两个不同的转发处理策略,这造成了处理策略上的冲突。因此,对于同一个交换机,可以通过判断流表项的匹配域是否重叠来判断流表项(即,策略)是否冲突。
在步骤S304的判断结果为“是”的情况下,流程进行到步骤S305。在步骤S305中,确定新流表项与有向图中与目的交换机对应的第二节点中包括的第三节点所对应的流表项冲突,即,确定新流表项与现有流表项(具体地,目的交换机中的流表项)冲突。
在步骤S304的判断结果为“否”(即,新流表项与目的交换机中的现有流表项不冲突)的情况下,流程进行到步骤S306。在步骤S306中,确定在有向图中与目的交换机对应的第二节点中增加与新流表项对应的第三节点的情况下形成的数据包的新转发路径。
具体地,在通过步骤S304确定出新流表项与目的交换机中的现有流表项不冲突的情况下,需要继续判断新流表项是否与其它交换机中的现有流表项冲突。步骤S306旨在确定数据包的新转发路径,该新转发路径将被用于判断新流表项是否与其它交换机中的现有流表项冲突。
更具体地,在目的交换机中增加新流表项(即,在有向图中与目的交换机对应的第二节点中增加与新流表项对应的第三节点)的情况下,该新流表项可能与其它交换机中的现有流表项一起作用来完成数据包的转发处理(即,在有向图中与新流表项对应的第三节点可能与其它节点建立连接以形成数据包的新转发路径)。步骤S306中确定的新转发路径就是在有向图中与目的交换机对应的第二节点中增加与新流表项对应的第三节点的情况下所形成的转发路径。需要说明的是,有向图中增加的与新流表项对应的第三节点与其它节点之间建立连接以形成新转发路径同样按照以上在关于图5的描述中提到的准则进行,在此不再重复。
在步骤S306中确定新转发路径之后,流程进行到步骤S307。在步骤S307中,判断新转发路径中从与新流表项对应的第三节点开始顺着数据包的转发方向追踪直到最后一个节点(在下文中称为向下追踪)所经历的路径和逆着数据包的转发方向追踪直到第一个节点(在下文中称为向上追踪)所经历的路径是否形成转发环、转发黑洞或者与防火墙规则冲突。需要说明的是,这里所提到的转发环、转发黑洞以及防火墙规则,对于本领域技术人员而言是熟知的,在此不再详细介绍。
步骤S307旨在通过在新转发路径中从与新流表项对应的第三节点开始进行向下追踪和向上追踪来判断是否形成有转发环、转发黑洞或者与防火墙规则冲突,由此来判断新流表项是否与新转发路径上的节点所对应的流表项冲突。具体地,如果在目的地交换机中增加新流表项(即,在有向图中与目的地交换机对应的第二节点中增加与新流表项对应的第三节点)之后,该新流表项与其它交换机(具体地,新转发路径中涉及到的那些交换机)中的现有流表项一起作用以进行数据包的转发处理时形成了转发环、转发黑洞或者与防火墙规则冲突(即,在新转发路径中形成了转发环、转发黑洞或者与防火墙规则冲突),那么这意味着新流表项与其它交换机中的现有流表项冲突。因此,在步骤S307中,可以通过判断新转发路径中是否形成有转发环、转发黑洞或者与防火墙规则冲突来判断新流表项是否与现有流表项冲突。
在步骤S307中的判断结果为“是”的情况下,流程进行到步骤S305。在步骤S305中,确定新流表项与现有流表项(具体地,新转发路径中涉及到的交换机中的流表项)冲突。
在步骤S307中的判断结果为“否”的情况下,流程进行到步骤S308。在步骤S308中,确定新流表项与现有流表项不冲突。
至此,已经可以确定出新流表项是否与现有流表项冲突。从以上可以看出,以上的冲突检测过程主要包括以下两步:首先检测新流表项是否与目的交换机中的流表项(即,有向图中与目的交换机对应的第二节点中包括的第三节点所对应的流表项)冲突(图3中的步骤S303、S304),如果新流表项与目的交换机中的流表项不冲突,那么接着检测新流表项是否与在新流表项增加到目的交换机的情况下所形成的新转发路径中的交换机中的流表项(即,在有向图中增加与新流表项对应的第三节点的情况下所形成的新转发路径中的第三节点所对应的流表项)冲突(图3中的步骤S306、S307),由此来判断新流表项是否与现有流表项冲突。
可选地,在判断新流表项是否与现有流表项冲突之后,可以包括附加的步骤,例如,图3中的步骤S309和S310。
在步骤S309中,向新流表项的下发者发送冲突报告。
具体地,在判断新流表项与现有流表项冲突之后,可以向新流表项的下发者发送冲突报告,该冲突报告向新流表项的下发者告知新流表项与现有流表项冲突。而且,在这种情况下,新流表项将不会下发到目的交换机。
在步骤S310中,更新有向图并且将新流表项下发到目的交换机。
具体地,在判断新流表项与现有流表项不冲突之后,可以基于在步骤S301中接收的流表更新信息中包括的新流表项和目的交换机的信息来更新在步骤S302中获取的有向图。更具体地,有向图的更新可以包括在有向图中与目的交换机对应的第二节点中增加与新流表项对应的第三节点并且在增加的第三节点与其它节点(第一节点和/或第三节点)之间建立连接,建立连接的过程在上面已经描述,这里不再重复。这里,需要说明的是,尽管在步骤S306中确定新转发路径时提到了在有向图增加与新流表项对应的第三节点以及建立相应的连接,但是此时并未在有向图中实际地增加第三节点以及建立相应的连接,只有当通过后续的步骤S307、S308判断新流表项与现有流表项不冲突时才会在有向图中实际地增加第三节点以及建立相应的连接。更新后的有向图可以在下一次冲突检测时被调用或获取。
除了更新有向图之外,步骤S310的处理还可以包括将新流表项下发到目的交换机以对目的交换机的流表进行更新。
以上已完整地介绍了图3中的流程。下面将进一步给出两个示例以便于更清楚地理解图3中的流程。
在示例1中,假定SDN控制器中的应用要向图4中的交换机S1下发新流表项“192.168.2.0/16,1,2”。
根据图3,首先,在步骤S301中接收到的流表更新信息包括新流表项“192.168.2.0/16,1,2”以及交换机S1的信息。
接着,在步骤302中,获取SDN中维护的有向图,这里,假定步骤S302中获取的有向图为图5中的有向图501。
接着,在步骤S303中,基于在步骤S301中接收到的交换机S1的信息确定有向图501中与交换机S1对应的(第二)节点为SN1。
接着,在步骤S304中,比较新流表项“192.168.2.0/16,1,2”的匹配域“192.168.2.0/16”与有向图501中的第二节点SN1中包括的第三节点SN1-1和SN1-2所对应的流表项“192.168.0.0/16,1,2”、“192.169.0.0/16,1,3”的匹配域“192.168.0.0/16”、“192.169.0.0/16”以判断它们的匹配域之间是否存在重叠。经过比较,发现新流表项“192.168.2.0/16,1,2”的匹配域与流表项“192.168.0.0/16,1,2”的匹配域存在重叠。
接着,在步骤S305中,确定新流表项“192.168.2.0/16,1,2”与现有流表项(具体地,交换机S1中的流表项“192.168.0.0/16,1,2”)冲突。
接着,在步骤S309中,向新流表项“192.168.2.0/16,1,2”的下发者(即,SDN控制器中的应用)发送冲突报告以告知该新流表项与现有流表项冲突。这样,图3中的流程结束。
接下来描述示例2。在示例2中,假定SDN控制器中的应用要向图4中的交换机S3下发新流表项“192.168.1.0/24,1,2”。
同样地,根据图3,首先,在步骤S301中接收到的流表更新信息包括新流表项“192.168.1.0/24,1,2”以及交换机S3的信息。
接着,在步骤302中,获取SDN中维护的有向图,这里,假定步骤S302中获取的有向图为图5中的有向图501。
接着,在步骤S303中,基于在步骤S301中接收到的交换机S3的信息确定有向图501中与交换机S3对应的(第二)节点为SN3。
接着,在步骤S304中,比较新流表项“192.168.1.0/24,1,2”的匹配域“192.168.1.0/24”与有向图501中的第二节点SN3中包括的第三节点SN3-1所对应的流表项“192.160.1.2/32,1,2”的匹配域“192.160.1.2/32”以判断它们的匹配域之间是否存在重叠。经过比较,发现新流表项“192.168.1.0/24,1,2”的匹配域与流表项“192.160.1.2/32,1,2”的匹配域不存在重叠。
接着,在步骤S306中,确定在有向图501中与交换机S3对应的第二节点SN3中增加与新流表项“192.168.1.0/24,1,2”对应的第三节点的情况下形成的新转发路径。关于这一步骤S306,将结合图5中的有向图502进行说明。图5中的有向图502是在有向图501的基础上增加与新流表项“192.168.1.0/24,1,2”对应的第三节点(即,SN3-2)的情况下形成的有向图。从有向图502中可以看到,在增加第三节点SN3-2之后,该第三节点SN3-2与另外两个第三节点SN1-1、SN4-1分别建立了连接L4、L5。需要说明的是,有向图502中的第三节点SN3-2与其它节点之间的连接的建立过程和有向图501中的节点之间的连接的建立过程相同,这在上面已经进行描述,这里不再重复。这样,由于第三节点SN3-2(即,新流表项“192.168.1.0/24,1,2”)的增加,形成了数据包的新转发路径L1-L4-L5-L3。
接着,在步骤S307中,判断在新转发路径L1-L4-L5-L3中从第三节点SN3-2开始向下追踪所经历的路径(即,L5-L3)和向上追踪所经历的路径(即,L4-L1)是否形成转发环、转发黑洞或者与防火墙规则冲突,经过判断,发现以上路径没有形成转发环、转发黑洞以及与防火墙规则冲突。
接着,在步骤S308中,确定新流表项“192.168.1.0/24,1,2”与现有流表项不冲突。
接着,在步骤S310中,更新有向图501并且将新流表项“192.168.1.0/24,1,2”下发到交换机S3以对该交换机S3中的流表进行更新。更新后的有向图将变为有向图502。
以上已经介绍了本公开的流表策略冲突检测方法。从以上的描述可知,本公开的检测方法是基于有向图进行检测,而且在检测时通过从流表的更新点(即,目的交换机)开始进行向下追踪和向上追踪来进行检测,这避免了每次更新流表时需要进行全网检测,使得检测的效率高。而且,本公开的检测方法仅需要针对有向图中的转发路径上的节点所对应的流表项进行检测,不需要遍历交换机中的每一个流表项,这也使得检测的效率高。
而且,本公开的检测方法不仅能够检测转发环、转发黑洞等常见的策略冲突,而且可以检测防火墙冲突,因此检测的有效性好。
此外,与传统的检测方法(例如,采用笛卡尔积的方式进行检测)相比,本公开的检测方法基于有向图进行路径追踪检测,其准确性高,不容易产生误报。
下面,将简要介绍本公开的流表策略冲突检测装置。图6示出了根据本公开的实施例的用于检测SDN中的流表策略冲突的装置的结构。
如图6中所示,流表策略冲突检测装置600包括第一部件601、第二部件602、以及第三部件603。
其中,第一部件601用于接收流表更新信息,其中,该流表更新信息包括要更新到流表的新流表项和作为新流表项的下发目的地的目的交换机的信息。
第二部件602用于获取SDN中维护的有向图,其中,该有向图基于SDN的物理拓扑和SDN中的交换机中的流表的现有流表项生成并且包括多个节点以及节点之间的连接以形成数据包的转发路径。
第三部件603用于基于新流表项和有向图检测新流表项是否与现有流表项冲突。
需要说明的是,以上描述了第一部件601、第二部件602、以及第三部件603分别执行图2中所示的步骤S201、S202、以及S203中的处理。这仅仅是一个示例。本领域技术人员可以意识到,图2中所示的步骤S201、S202、以及S203中的处理可以通过数量更多或者更少的部件来执行,而不局限于图6中的所示的这三个部件。
而且,如以上所详细描述的,本公开的流表策略冲突检测方法除了包括图2中所示的步骤S201、S202、以及S203中的处理之外,还可以包括诸多其它的处理。因此,流表策略冲突检测装置600中的第一部件601、第二部件602、以及第三部件603还可以用于执行这些其它的处理,或者流表策略冲突检测装置600还可以包括附加的部件来执行这些其它的处理。对于本领域技术人员来讲,这些都是可以意识到的,这里不再进一步详细地描述。
本公开还可以通过计算机程序来实现。例如,该程序可以存储在计算机装置的存储器中,其在由计算机装置的处理器执行时实现本公开的流表策略冲突检测方法。或者,该程序可以存储在计算机可读存储介质中,其在由处理器执行时实现本公开的流表策略冲突检测方法。
计算机可读存储介质可以是例如但不限于电子的、磁性的、光学的、电磁的、红外的或半导体系统、装置或设备、或前述各项的任何适当组合。计算机可读存储介质的更具体的实例可以包括:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或前述各项的任何适当组合。
附图中的流程图和框图示出了根据本公开的各个实施例的装置、方法等的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模块、段或指令的一部分,该模块、段或指令的一部分包括用于实现规定的一个或多个逻辑功能的一个或多个可执行指令。在一些替代的实现中,方框中标注的处理也可以以不同于附图中标注的顺序发生。例如,取决于涉及的功能,两个连续的方框实际上可以基本并行地执行,或者这些方框有时也可以按相反的顺序执行。本领域技术人员可以根据需要调整操作的顺序。本领域技术人员还可以根据需要增加更多的操作或省略其中的一些操作。
本说明书中描述的任一特征,除非特别地叙述,均可以被其它等同或者具有类似目的的替代特征加以替换。即,除非特别地叙述,每个特征只是一系列等同或类似的特征中的一个示例。
此外,尽管对本公开的描述已包括对一个或多个实施例、配置或方面的描述,但是其它变型、修改和组合也在本公开的范围内。本公开旨在获得权利,这些权利应当包括在允许范围内的替代实施例、配置或方面,并且包括与请求保护的那些结构、功能、或步骤的可互换、替代和/或等同的结构、功能、或步骤,无论这些可互换、替代和/或等同的结构、功能、或步骤是否在本说明书中具体描述。
Claims (11)
1.一种用于检测软件定义网络SDN中的流表的策略冲突的方法,包括:
接收流表更新信息,其中,所述流表更新信息包括要更新到流表的新流表项和作为所述新流表项的下发目的地的目的交换机的信息;
获取所述SDN中维护的有向图,其中,所述有向图基于所述SDN的物理拓扑和所述SDN中的交换机中的流表的现有流表项生成并且包括多个节点以及节点之间的连接以形成数据包的转发路径;以及
基于所述新流表项和所述有向图检测所述新流表项是否与所述现有流表项冲突。
2.根据权利要求1所述的方法,其中,在所述有向图中,所述多个节点包括至少一个第一节点和第二节点,每一个第一节点与所述SDN中的主机对应,每一个第二节点与所述SDN中的交换机对应,并且每一个第二节点中包括与对应的交换机中的每一个流表项分别对应的第三节点,并且第一节点与第二节点中包括的第三节点之间以及不同的第二节点中包括的第三节点之间通过以下准则建立连接以形成数据包的转发路径:
如果主机与交换机之间存在物理连接并且该主机的IP地址与该交换机中的流表项的匹配域之间存在重叠,则在与该主机对应的第一节点和与该交换机中的流表项对应的第三节点之间建立连接;并且
如果两个交换机之间存在物理连接并且这两个交换机中的两个流表项的匹配域之间存在重叠,则在与所述两个交换机中的所述两个流表项分别对应的第三节点之间建立连接。
3.根据权利要求2所述的方法,其中,基于所述新流表项和所述有向图检测所述新流表项是否与所述现有流表项冲突包括:
判断所述新流表项是否与所述有向图中与所述目的交换机对应的第二节点中包括的第三节点所对应的流表项冲突;以及
如果所述新流表项与所述有向图中与所述目的交换机对应的第二节点中包括的第三节点所对应的流表项不冲突,则判断所述新流表项是否与所述有向图中要形成的数据包的新转发路径中的第三节点所对应的流表项冲突,所述新转发路径是在所述有向图中与所述目的交换机对应的第二节点中增加与所述新流表项对应的第三节点的情况下基于所述准则形成的转发路径。
4.根据权利要求3所述的方法,其中,判断所述新流表项是否与所述有向图中与所述目的交换机对应的第二节点中包括的第三节点所对应的流表项冲突包括:
基于所述流表更新信息中包括的目的交换机的信息确定所述有向图中与所述目的交换机对应的第二节点;
判断所述新流表项的匹配域是否与所确定的所述有向图中的第二节点中包括的第三节点所对应的流表项的匹配域重叠;以及
如果所述新流表项的匹配域与所确定的所述有向图中的第二节点中包括的第三节点所对应的流表项的匹配域重叠,则确定所述新流表项与所述有向图中与所述目的交换机对应的第二节点中包括的第三节点所对应的流表项冲突。
5.根据权利要求4所述的方法,在确定所述新流表项与所述有向图中与所述目的交换机对应的第二节点中包括的第三节点所对应的流表项冲突的情况下,所述方法还包括:
向所述新流表项的下发者发送冲突报告。
6.根据权利要求3所述的方法,其中,判断所述新流表项是否与所述有向图中要形成的数据包的新转发路径中的第三节点所对应的流表项冲突包括:
确定在所述有向图中与所述目的交换机对应的第二节点中增加与所述新流表项对应的第三节点的情况下基于所述准则形成的所述新转发路径;
判断所述新转发路径中从增加的第三节点开始顺着数据包的转发方向追踪直到最后一个节点所经历的路径和逆着数据包的转发方向追踪直到第一个节点所经历的路径是否形成转发环、转发黑洞或者与防火墙规则相冲突;以及
如果形成转发环、转发黑洞或者与防火墙规则相冲突,则确定所述新流表项与所述有向图中要形成的数据包的新转发路径中的第三节点所对应的流表项冲突。
7.根据权利要求6所述的方法,在确定所述新流表项与所述有向图中要形成的数据包的新转发路径中的第三节点所对应的流表项不冲突的情况下,所述方法还包括:
根据所述新流表项和所述目的交换机的信息更新有向图;以及
将所述新流表项下发到所述目的交换机以更新所述目的交换机的流表。
8.根据权利要求6所述的方法,在确定所述新流表项与所述有向图中要形成的数据包的新转发路径中的第三节点所对应的流表项冲突的情况下,所述方法还包括:
向所述新流表项的下发者发送冲突报告。
9.一种用于检测软件定义网络SDN中的流表的策略冲突的装置,所述装置包括用于实现权利要求1-8中的任一项所述的方法的部件。
10.一种计算机装置,所述计算机装置包括:
处理器;以及
存储器,所述存储器存储能够由所述处理器执行的程序,所述程序在由所述处理器执行时实现权利要求1-8中的任一项所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储程序,所述程序在由处理器执行时实现权利要求1-8中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010996092.9A CN114301786A (zh) | 2020-09-21 | 2020-09-21 | 检测sdn中的流表的策略冲突的方法、装置、以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010996092.9A CN114301786A (zh) | 2020-09-21 | 2020-09-21 | 检测sdn中的流表的策略冲突的方法、装置、以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114301786A true CN114301786A (zh) | 2022-04-08 |
Family
ID=80963855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010996092.9A Pending CN114301786A (zh) | 2020-09-21 | 2020-09-21 | 检测sdn中的流表的策略冲突的方法、装置、以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114301786A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202303A (zh) * | 2014-08-11 | 2014-12-10 | 华中科技大学 | 一种sdn应用的策略冲突检测方法及系统 |
WO2016008524A1 (en) * | 2014-07-16 | 2016-01-21 | Nec Europe Ltd. | Efficient cascading of flow tables in sdn |
CN108270614A (zh) * | 2017-12-25 | 2018-07-10 | 深圳市泰信通信息技术有限公司 | 基于sdn网络的故障处理方法、装置及设备 |
CN109120525A (zh) * | 2017-06-26 | 2019-01-01 | 中国电信股份有限公司 | 用于sdn的路径确定方法、装置、sdn控制器及网络 |
-
2020
- 2020-09-21 CN CN202010996092.9A patent/CN114301786A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016008524A1 (en) * | 2014-07-16 | 2016-01-21 | Nec Europe Ltd. | Efficient cascading of flow tables in sdn |
CN104202303A (zh) * | 2014-08-11 | 2014-12-10 | 华中科技大学 | 一种sdn应用的策略冲突检测方法及系统 |
CN109120525A (zh) * | 2017-06-26 | 2019-01-01 | 中国电信股份有限公司 | 用于sdn的路径确定方法、装置、sdn控制器及网络 |
CN108270614A (zh) * | 2017-12-25 | 2018-07-10 | 深圳市泰信通信息技术有限公司 | 基于sdn网络的故障处理方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11757932B2 (en) | Event driven route control | |
US11121920B2 (en) | Cloud management connectivity assurance | |
US7644168B2 (en) | SAS expander | |
US8122505B2 (en) | Method and apparatus for detection of malicious behavior in mobile ad-hoc networks | |
JP6112165B2 (ja) | 通信システム、制御装置、通信方法およびプログラム | |
CN103023707A (zh) | 一种策略配置的方法、管理服务器以及网络系统 | |
EP2863595B1 (en) | Topology stratification and flooding processing method and apparatus | |
CN107645402A (zh) | 一种路由管理方法和装置 | |
CN110324415B (zh) | 一种对等网络的路由实现方法、装置、设备和介质 | |
CN106789664B (zh) | 一种路由聚合方法及装置 | |
JP2018504061A (ja) | ソフトウェア定義ネットワーキングコントローラ | |
CN114301786A (zh) | 检测sdn中的流表的策略冲突的方法、装置、以及存储介质 | |
KR101703491B1 (ko) | 클라우드 시스템의 보안 서비스 제공방법 및 그 클라우드 시스템 | |
CN109218182B (zh) | 一种路由信息的同步方法及装置 | |
CN111385285B (zh) | 一种防止非法外联的方法及装置 | |
CN114978580B (zh) | 网络检测方法及装置、存储介质及电子设备 | |
KR102555773B1 (ko) | 네트워크 터널링 기반 동일 네트워크 내 장비 별 통신 제어 시스템 | |
CN112866031B (zh) | 路由配置方法、装置、设备及计算机可读存储介质 | |
JP2006148532A (ja) | パケットフィルタ制御方法、装置及び記録媒体 | |
CN116389173B (zh) | 一种企业生产网自组网实现方法、系统、介质及设备 | |
WO2023024867A1 (zh) | 跨设备链路聚合组网的网络诊断方法及网络接入设备 | |
CN115514501A (zh) | 一种封堵网络攻击的方法和装置 | |
WO2015042853A1 (zh) | 数据通信网络分域方法、装置及系统 | |
WO2004062216A1 (ja) | ファイアウォールのポリシをチェックする装置 | |
JP2012156743A (ja) | ネットワーク管理装置、ネットワーク管理方法、及びプログラム |
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 |