掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本公开总体上涉及数据管理领域。更具体地,本公开涉及用于策略合成以对未知流实施基于组的策略的方法和系统。

附图说明

图1示出了根据本申请的一个方面的促进基于源角色的策略实施的网络;

图2A示出了根据本申请的一个方面的具有用户配置的基于组的策略(GBP)的表;

图2B示出了根据本申请的一个方面的以矩阵形式指示用户配置的GBP的表;

图2C示出了根据本申请的一个方面的基于与图2B相关联的转置形式以矩阵形式指示用户配置的GBP的表;

图2D示出了根据本申请的一个方面的指示具有变换后的动作的策略集的表;

图2E示出了根据本申请的一个方面的包括条目的通配符扩展和交叠检测的与图2D相对应的表;

图2F示出了根据本申请的一个方面的包括源角色“Admin”的条目的内爆(implosion)和修剪的与图2E相对应的表;

图2G示出了根据本申请的一个方面的基于图2A的用户配置的策略和图2B-图2F中描绘的处理的结果的合成策略的表;

图3呈现了图示根据本申请的一个方面的促进策略合成以向未知流实施GBP的方法的流程图;

图4A呈现了图示根据本申请的一个方面的促进策略合成以向未知流实施GBP的方法的流程图,包括内爆、交叠检测和处理、修剪和合并;

图4B呈现了图示根据本申请的一个方面的促进策略合成以向未知流实施GBP的方法的流程图,包括内爆、交叠检测和处理、修剪和合并;

图5示出了根据本申请的一个方面的促进策略合成以向未知流实施GBP的计算机系统;以及

图6示出了根据本申请的一个方面的促进策略合成以向未知流实施GBP的装置。

在附图中,相同的附图标记指代相同的附图元素。

具体实施方式

以下描述被呈现以使得本领域任何技术人员能够制作和使用这些方面和示例,并且在特定应用及其要求的上下文中提供。对于本领域技术人员来说,对所公开的方面的各种修改将是很清楚的,并且本文中定义的一般原理可以应用于其他方面和应用而不背离本公开的精神和范围。因此,本文中描述的方面不限于所示的方面,而是应当被赋予与本文中公开的原理和特征一致的最广泛的范围。

互联网是在物理和虚拟设备上运行的各种应用的递送媒介。这些应用带来了不断增长的业务需求。因此,设备供应商继续构建具有多种功能的交换机。例如,网络分段可以用于隔离用户业务并且减小网络中的广播域。传统上,本地虚拟局域网(VLAN)已经用于在L2对网络业务进行分段,而IP子域已经用于在L3对网络业务进行分段。传统的边缘网络分段(例如,在交换机或接入点处,客户端可以在此直接附接到执行基于角色的策略的交换机)可能面临一些挑战,诸如:传统有线和无线基础设施的集成;网络中不断增加的移动设备数目;以及大量物联网(IoT)设备的部署。此外,在扩展网络时,支持具有不同访问要求和威胁感知级别的大量设备以及使用互联网协议(IP)子网和访问控制列表(ACL)的传统手动和静态配置可能具有挑战性。

基于组的策略(GBP)可以为动态网络分段提供解决方案。GBP可以允许网络管理员配置策略,该策略定义跨用户角色或在用户角色内允许的业务模式。GBP可以被配置为一对源角色与目的地角色之间的策略,并且可以帮助进行微分段(在同一子网中)和宏分段(跨不同子网)。该系统可以在入口节点处对分组的发送者进行分析,并且使用传输封装携带分析信息。在分组的目的地已知的情况下,使用GBP的分段可以有效地工作。

然而,在一些场景中,分组的目的地可能是未知的。例如,多目的地分组(或广播、未知单播或多播(BUM)业务)可以被寻址以使得交换机可能无法确定目的地主机。这种分组的目的地址可以是例如多播地址,该多播地址不指示个体目的地主机。因此,分组可能没有对应目的地角色。因此,基于GBP来确定是否将分组转发到本地主机对于交换机来说可能具有挑战性。

所描述的方面提供了一种用于通过采用原始的一组用户配置的策略(将源角色、目的地角色和业务属性作为输入以为分组输出允许/拒绝动作)并且基于用户配置的策略合成一组策略来向未知流实施GBP的解决方案。所得到的一组合成策略可以将源角色和业务属性作为输入,并且可以输出允许目的地角色列表。因此,基于用户配置的策略的“第一决策模型”对于给定传入分组可以产生与基于合成策略的“第二决策模型”(也称为等效决策模型)相同的结果。第二决策模型可以允许系统在未知目的地角色或流的场景中实施GBP(如在BUM业务中)。

在本公开中,术语“交换机”在一般意义上使用,并且它可以指代在任何网络层中操作的任何独立或结构交换机。“交换机”不应当被解释为将本发明的方面限制于第2层网络。可以将业务转发到外部设备或其他交换机的任何设备都可以称为“交换机”。可以将业务转发到终端设备的任何物理或虚拟设备(例如,在计算设备上运行的虚拟机或交换机)都可以称为“交换机”。“交换机”的示例包括但不限于第2层交换机、第3层路由器、路由交换机、Gen-Z网络的组件、或结构交换机,包括多个相似或异构的较小的物理和/或虚拟交换机。

术语“分组”是指可以通过网络一起传输的一组比特。“分组”不应当被解释为将本发明的方面限制为第3层网络。“分组”可以替换为指代一组比特的其他术语,诸如“消息”、“帧”、“信元”、“数据报”或“事务”。此外,术语“端口”可以是指可以接收或传输数据的端口。“端口”还可以是指能够促进该端口的操作的硬件、软件和/或固件逻辑。

覆盖拓扑中的策略实施

交换机可以支持不同的协议和服务。例如,交换机可以支持隧道和虚拟专用网络(VPN)。因此,交换机可以促进VPN在隧道之上的覆盖路由。例如,以太网VPN(EVPN)可以部署为一组虚拟可扩展局域网(VXLAN)上的覆盖。

为了在隧道之上部署VPN,相应隧道端点可以将相应客户端虚拟局域网(VLAN)映射到对应隧道网络标识符(TNI),该TNI可以标识用于隧道的虚拟网络。TNI可以出现在封装分组的隧道报头中,并且用于经由隧道转发封装的分组。例如,如果隧道是基于VXLAN而形成的,则TNI可以是VXLAN报头的虚拟网络标识符(VNI),并且隧道端点可以是VXLAN隧道端点(VTEP)。如果需要第3层路由和转发,则TNI也可以映射到与隧道相关联的虚拟路由和转发(VRF)。

VPN可以部署在形成在网络的骨干(或非接入)交换机之间的隧道之上。例如,如果网络包括核心交换机、聚合交换机和接入交换机,则网络的核心交换机和聚合交换机可以称为骨干交换机。骨干交换机之间的一组隧道可以形成覆盖隧道结构。换言之,隧道结构的骨干交换机可以作为隧道端点操作,并且促进隧道之上的路由。另一方面,接入交换机可以从主机(或客户端设备)接收分组并且促进分组分发底层。由于VPN可以分布在隧道结构上,因此隧道结构之上的VPN也可以称为分布式隧道结构。

图1示出了根据本申请的一个方面的促进基于源角色的策略实施的网络。网络100可以包括多个交换机和设备。网络100可以是以太网、InfiniBand或其他网络,并且可以使用对应通信协议,诸如网际协议(IP)、以太网光纤通道(FCoE)或其他协议。网络100可以包括分布式隧道结构110,分布式隧道结构110包括交换机101、102、103、104和105。结构110的交换机101和102可以耦合到核心交换机106。结构110可以经由交换机106(例如,第3层路由器)耦合到外部网络120。

在图1中,结构110中的相应链路可以是隧道。结构110的交换机可以形成隧道网。隧道的示例包括但不限于VXLAN、通用路由封装(GRE)、使用GRE的网络虚拟化(NVGRE)、通用网络虚拟化封装(Geneve)、互联网协议安全(IPsec)。VPN 130(诸如EVPN)可以部署在结构110之上。结构110可以包括聚合层108,聚合层108可以包括聚合交换机103、104和105。相应聚合交换机可以聚合来自一个或多个下游接入交换机的业务。

此外,聚合交换机103、104和105可以耦合到接入层118,接入层118可以包括接入交换机111、112、113、114、115和116。接入层118可以促进结构110对多个主机122、123、124、125和126的访问。主机的示例可以包括但不限于笔记本电脑、台式机、打印机、手机、平板电脑、IoT设备和电器。接入交换机115可以为主机124和125提供接入覆盖。类似地,接入交换机111、112、113和116可以分别为主机121、122、123和126提供接入覆盖。在该示例中,接入交换机113和114可以耦合到聚合交换机104以将业务转发到结构110。因此,由接入交换机113转发的分组可以经由聚合交换机104进入结构110。

利用现有技术,当主机123加入接入交换机113的覆盖范围时,接入交换机113可以从认证服务器140认证主机123。主机123的认证可以基于接入层118支持的认证过程。例如,认证过程可以根据基于端口(例如,IEEE 802.1X)或基于用户名/密码的认证。如果主机123被认证服务器140成功认证,则接入交换机113可以确定主机123的主机角色134,并且基于主机角色为主机123分配VLAN。主机角色134可以由认证服务器140提供并且可以指示主机123的用户和与VPN 130相关联的实体之间的从属关系。主机角色134可以指示以下中的一项或多项:主机123的用户的部门;以及授予用户的访问级别;以及主机123的通信域。

例如,如果主机123与具有管理特权的用户相关联,则角色134可以是管理员角色。另一方面,如果主机123与访客用户相关联,则角色134可以是访客角色。同理,接入层118的对应接入交换机可以为主机121和125确定角色132,为主机122确定角色134,为主机124和126确定角色136。因此,这些角色可以定义用于访问和转发结构110中的业务而不是主机或交换机的物理位置的策略。通过将主机123与角色134相关联,可以将主机123分配给属于角色134的一组主机。主机可以与一个或多个组相关联。然后,用户(例如,管理员)可以为结构110配置GBP,以促进基于在认证过程中确定的角色132、134和136的业务分段。因此,GBP允许管理员配置策略,该策略定义跨结构110中的角色132、134和136的可允许业务模式。

在架构110中,GBP可以部署在出口交换机处,而不会跨结构110分发GBP。例如,对于经由隧道接收的分组,交换机103可以作为策略执行交换机操作并且维护策略表150,该策略表150包括基于源和目的地角色而定义的一组策略(例如,GBP或用户配置的策略)152。策略152中的相应策略或GBP可以指示是否允许或准许将来自源角色的业务类别(例如,具有某些业务属性)转发到目的地角色。例如,GBP可以指示角色134是否被准许在端口80处从角色132接收传输控制协议(TCP)业务。由于交换机103可以充当经由隧道接收的分组的出口交换机,因此交换机103可以确定分组的目的地角色。此外,交换机103可以仅在交换机103的端口处检测到具有该角色的主机的情况下启用与该角色相关联的策略。以这种方式,交换机103可以有效地在结构110中实施GBP。

在另一示例中,在主机125的成功认证之后,主机125可以向主机122发送分组。接入交换机115可以接收分组并且将其转发到结构110。入口交换机105可以接收分组并且确定与分组相关联的源角色(即,源主机125的角色132)。交换机105还可以确定与分组的VLAN相对应的TNI(例如,VNI)。交换机105可以进一步基于分组的报头信息确定结构110中的远程隧道端点,诸如交换机103。交换机105可以维护VLAN与TNI之间的映射以确定TNI。交换机105然后可以用具有TNI、与交换机103相对应的目的地址和源角色的隧道报头来封装分组(例如,使用组策略对象(GPO)封装)。随后,交换机105可以经由隧道将封装的分组转发到交换机103。为了将交换机103标识为远程隧道端点,交换机105需要基于TNI参与VPN 130的路由过程。该参与可以包括与结构110的其余部分共享与TNI相关联的路由信息,包括更新媒体访问控制(MAC)地址表。

可以是隧道的另一隧道端点的出口交换机103可以从隧道报头中获取源角色并且解封装隧道报头以获取分组。基于分组的目的地址,交换机103可以确定目的地角色(即,目的地主机122的角色134)。交换机103可以遍历策略152以确定是否准许将分组的业务类别从角色132转发到角色134。如果准许,交换机103可以将分组转发到主机122。否则,交换机103可以避免将分组转发到主机122,并且可以丢弃分组。因此,图1中描述的网络描绘了使用GBP的分段如何需要发送者的相关角色(即,源角色)以及每个分组的目的地(即,目的地角色),当分组的目的地已知时,这可以成功工作。

然而,如上所述,当分组的目的地未知时(如在BUM业务中),如上面关于图1所描述的通信可能还不够。例如,分组的目的地址可以是多播地址,该多播地址并不指示个体目的地主机。因此,分组可能没有对应目的地角色。因此,基于策略152确定是否将分组转发到本地主机对于交换机103来说可能具有挑战性。

所描述的方面可以通过生成基于用户配置的策略152的一组合成策略154(如策略表150中所示)来解决这个挑战。用户配置的策略152可以将源角色、目的地角色和业务属性作为输入,以便为分组输出允许/丢弃动作。相反,合成策略154可以将源角色和业务属性作为输入,以便输出允许目的地角色列表。合成策略154因此可以产生与用户配置的策略152等效的决策模型。换言之,使用基于合成策略154的决策模型(即,“第二决策模型”)而评估的分组被视为与当使用基于用户配置的策略152的决策模型(即,“第一决策模型”)对其进行评估时相同。

第一阶段:将用户配置的基于组的策略重新定向为转置矩阵形式

基于组的策略传统上可以与目的地角色相关联。单个GBP可以与每个目的地角色相关联。该单个相关联的GBP可以定义一组源角色和业务属性的元组,当匹配时,该元组可以允许或不允许将分组发送到目的地,如下面关于图2A所述。

图2A示出了根据本申请的一个方面的具有用户配置的基于组的策略的表200。表200可以包括指示以下各项的行:策略201;相关联的目的地角色202;以及策略条目203。表200可以包括三个策略,包括用于三个相关联的目的地角色中的每个的策略:用于Finance204的策略P1;以及用于Admin 205的策略P2;以及用于Security 206的策略P3。每个策略可以包括一个或多个策略条目,并且每个策略可以指示或包括:序列号(例如,“10”、“20”和“30”);源角色;目的地角色;一个或多个业务属性;以及动作(例如,“允许”或“拒绝”)。例如,用于目的地角色Finance 204的策略P1可以包括两个策略条目。第一策略条目可以指示:序列号为“10”;源角色为“Admin”;目的地角色为“Finance”;业务属性为“IP协议TCP”和“L4端口10-100”;以及动作为“允许”。第二策略条目可以指示:序列号为“20”;源角色为“Any”;目的地角色为“Finance”;业务属性为“IP协议TCP业务”和“L4端口80”;以及动作为“允许”。因此,表200描述了如何将策略应用于传入分组,以便基于用户角色对业务进行分段。

该系统可以从表200的用户配置的策略分阶段生成一组合成策略。在第一阶段,该系统可以对图2A的用户配置的策略进行数学建模以用于处理,该策略可以由系统在后续阶段中使用,如下面关于图2B和图2C所述。在第二阶段,该系统可以使用由第一阶段输出的矩阵(例如,图2C的转置矩阵)和该组匹配标准作为输入,以生成仅将源角色用于对传入业务的策略实施的一组合成策略(例如,图2D的“第一数据结构”)。在第二阶段,该系统还可以执行交叠的检测和处理以及匹配元素的内爆和修剪,如下面关于图2D、图2E和图2F所述。在第三阶段,该系统可以进一步处理由第二阶段输出的匹配元素(例如,图2F的“第二数据结构”),以通过合并和排序进行优化,如下面关于图2G所述(例如,最终的“第二组合成策略”)。

该系统可以表示使用数学模型的图2A的用户配置的GBP,该模型可以用作由算法定义的合成过程的输入。该系统可以将用户配置的GPBP集合标记为P,其可以是整个该组策略,表示为:

其中r=f(i)

其中r∈G表示具有相关联的GBP P的个体角色,并且其中n=|G|,其中G是参与基于GBP的分段的完整的该组角色。每个个体策略可以是多个策略条目的有序集合。与目的地角色r相关联的策略可以表示为:

P

每个策略条目E

M可以是定义要对用户业务执行的匹配的该组匹配元素。M可以通过检查策略中存在的匹配标准的用户配置的策略并且将每个唯一匹配元素添加到该组匹配元素M中来导出。注意,N可以是一组自然数,A可以是“动作”集合,该集合可以有两个元素(例如,“允许”和“拒绝”)。通配符条目可以用于源角色以及匹配元素。在这个阶段,通配符角色可能会内爆,并且一组策略条目可以被导出,其中每个策略条目可以表示给定目的地角色和源角色的策略。对于通配符源角色,该系统可以通过为所有可能的源角色复制相同条目来执行内爆。该系统可以在稍后阶段处理通配符条目的内爆。因此,该系统可以导出一组基于目的地/源角色对的策略条目,其中每个条目是匹配/动作对,并且可以表示为:

对于给定目的地/源角色对,可以存在多个策略条目,其中每个策略条目可以具有唯一匹配标准和动作。该系统可以生成这样的策略条目的有序列表,以获取给定目的地/源角色对的完整的一组策略条目。这组基于目的地/源角色对的策略条目可以表示为:

鉴于策略条目的这种表示,该系统可以将整个该组用户配置的策略表示为n x n矩阵,其中每个轴可以表示配置的角色。该矩阵中的行可以表示目的地角色,该矩阵中的列可以表示源角色。因此,整个策略集的二维矩阵表示可以表示为:

因此,该系统可以基于用户配置的策略的这种表示来生成决策模型。基于用户配置的策略的第一决策模型可以产生与基于合成策略的第二决策模型相同的处理分组的结果(如下所述)。如果在对相同业务和分组独立应用这两种模型时,根据所有可能的网络业务和分组的“允许/拒绝”动作策略,这两种决策模型可以被认为是“等效的”。因此,该系统可以使每个传入分组服从第一决策模型,以确定要对分组采取的最终动作,该动作可以是“允许”或“拒绝”。第一决策模型可以表示如下:

d=目的地的角色

s=源的角色

对于

对于E中的该组匹配元素T

其中k是在其上运行第一决策模型的传入分组,f

在第一阶段的这一点,该系统可以将该组用户配置的策略P表示为面向目的地角色的二维矩阵。也就是说,目的地角色是行,源角色是列。该系统可以使用该二维矩阵(下文结合图2B描述)来导出用于一对目的地/源角色的该组策略元素,以基于匹配的业务属性将策略应用于传入分组。

图2B示出了根据本申请的一个方面的表210,表210以矩阵形式指示用户配置的GBP。表210可以包括作为行的目的地角色(例如,Finance 214、Admin 215和Security 216)以及作为列的源角色(例如,Admin 211、Security 212和Finance 213)。表210的矩阵中的每个条目可以指示具有匹配业务属性的分组的一个或多个业务属性以及要采取的对应动作。例如,Security 216的目的地角色和Admin 211的源角色的条目217可以指示以下两个策略元素或业务属性和动作:“10IP协议UDP,L4端口Any,拒绝”;以及“30IP协议任意,L4端口Any,允许”。

该系统可以转置由表210表示的矩阵P以获取矩阵P

图2C示出了根据本申请的一个方面的表220,表220基于与图2B相关联的转置形式以矩阵形式指示用户配置的GBP。表220可以包括作为行的源角色(例如,Admin 224、Security 225和Finance 226)以及作为列的目的地角色(例如,Finance 221、Admin 222和Security 223)。表220的矩阵中的每个条目以转置格式对应于表210中的条目。例如,表220中用于Admin 224的源角色和Security 223的目的地角色的条目227可以对应于表210的条目217,并且可以指示相同的以下两个策略元素或业务属性和动作:“10IP协议UDP,L4端口Any,拒绝”;以及“30IP协议任意,L4端口Any,允许”。

第二阶段:将动作替换为目的地角色以获取变换后的动作

在第二阶段,该系统可以使用转置矩阵P

该系统可以将转置矩阵P

其中s=f(t),s为源角色,s∈G。此外,可以将每个策略视为源角色的一组策略条目。给定目的地角色可以表示为:

其中=f(j),d是目的地角色,d∈G。如上所述,源/目的地角色对

该系统可以通过丢弃目的地角色作为索引来开始转换策略元素,而是将目的地角色作为操作的一部分来承载原始用户配置的策略的意图。如果指示允许分组,该系统可以将每个元素的动作替换为目的地角色,而如果动作指示拒绝分组,则将每个元素的动作替换为空值。因此,转换后的策略元素可以表示为:

其中

因此,该系统可以将策略从意图“具有业务属性匹配m的从源角色s到目的地角色d的业务应当具有动作a”转换为意图“如果a是‘允许’,则具有业务属性匹配m的来自源角色s的业务在目的地角色d上应当被允许”。所得到的数据结构可以包括条目,该条目指示针对相应源角色的多个业务属性和针对相应业务属性的对应的一组允许目的地角色。该系统可以使用通配符“*”代替目的地角色d作为转换后的策略元素的上标,以指示相同的策略元素现在将匹配每个或任何目的地角色。下面结合图2D描述示出转换后的策略元素的示例。

图2D示出了根据本申请的一个方面的表230,表230指示具有变换后的动作的策略集。表230可以包括字段,包括:源角色231;(多个)匹配元素232;以及(多个)允许目的地角色集233。表230可以包括针对源角色的以下条目:Admin 234;Security 235;以及Finance236。作为示例,针对源角色Admin 234的行或条目可以包括多个业务属性以及针对相应业务属性的对应的一组允许目的地角色,包括:匹配元素232“10IP协议TCP,L4端口10-100”和对应的允许目的地角色集233“{Finance}”;匹配元素232“20IP协议TCP业务,L4端口80”和对应的允许目的地角色集233“{Finance}”;匹配元素232“20IP协议TCP,L4端口10-1000”和的对应允许目的地角色集233“{Admin}”;匹配元素232“10IP Protocol UDP,L4端口Any”和对应的允许目的地角色集233“{}”;以及匹配元素232“30IP Protocol Any,L4端口Any”和的对应允许目的地角色集233“{Security}”。

对于匹配给定策略元素的业务,在允许目的地角色集233(或“允许列表”)中未包括或未列出的任何角色都被隐式拒绝。因此,决策模型不需要“拒绝列表”或“拒绝目的地角色集”。但是,与允许列表类似,该系统可以为每个策略维护拒绝列表。拒绝列表可以包括在策略条目中具有显式“拒绝”动作的角色。该系统可以使用拒绝列表来修剪或移除不允许角色,同时合并具有冲突意图的策略条目,如下所述。

与相同源角色s相对应的各种转换后的策略元素

第二阶段:检测和处理交叠;内爆和修剪

该系统可以检测交叠并且合并常见的匹配条件以产生一组新的交叉策略元素(原始合成策略)。这组原始合成策略可以对应于第一决策模型的第二“等效”决策模型(其基于图2A的用户配置的策略)。该系统可以通过首先将所有值、范围和通配符转换为每个匹配元素中的一组可能的自然数来检测交叠。转换后的值可以产生仅包含该值的一组单个元素。该系统可以将通配符和范围转换为具有针对通配符字段或针对范围的所有可能值的元素集。

例如,如果通配符“Any”用于匹配传入分组的IP_PROTO字段,则该系统可以将该通配符条目表示为{0,...,2

图2E示出了根据本申请的一个方面的包括条目的通配符扩展和交叠检测与图2D相对应的表240。表240可以包括以下字段:源角色241;(多个)匹配元素242;以及(多个)允许目的地角色集243。表240可以包括源角色的以下条目:Admin 244(对应于Admin 234);Security 245(对应于Security 235);以及Finance 246(对应于Finance 236)。在表240中,不存在通配符条目,因为该系统已经将所有通配符条目替换为给定属性的适当范围(例如,将通配符元素237和238分别替换为元素247和248)。交叠的匹配元素条目以粗体突出显示,例如,对于管理员244:“20 IP协议TCP业务,L4端口80-80”;“10 IP协议UDP,L4端口1-65535”;以及“30 IP协议1-255,L4端口1-65535”。只有属于同一源角色的策略条目才能成为新交叉策略元素的候选,因为属于不同源角色的条目不会影响分组的决策模型(因为分组只能属于单个源角色)。

在表240中,该系统还可以将源角色添加到允许目的地角色集243以允许属于同一角色的客户端之间的业务(“角色内业务”),除非存在针对角色内业务的显式拒绝策略。例如,对于Security 245的源角色,TCP端口90的业务被拒绝,因此不包含角色“Security”。

在检测交叠时,该系统只能检查相同类型的属性,例如,在一个匹配条件中具有Ethertype的匹配元素将仅与在另一匹配条件中具有Ethertype的匹配元素检查交叠。部分或全部匹配元素之间或两个匹配条件之间可能发生交叠。匹配条件有两种可能的交叠:完全交叠,其中第一匹配条件完全被包含在第二匹配条件中;以及部分交叠,其中匹配集的仅一部分是共同的。当且仅当

具体地,匹配集A和B完全交叠的一对匹配条件可以分解为三个匹配集X、Y、Z,使得

匹配集A和B部分交叠的一对匹配条件可以分解为三个匹配集X、Y、Z,使得

由于交叠而以这种方式拆分的每个元素都可以替换为多个匹配元素。属于同一匹配条件的多个匹配元素可以被拆分。该系统可以通过使用匹配集Y创建新的交叉策略元素来开始交叉策略元素。对于两种类型的交叠(完全和部分),Y是公共匹配集,因此Y可以有助于生成交叉策略要素。匹配元素由集合Y定义,并且两个匹配元素中最小的序列号可以用作交叉匹配元素的序列号。对于与新的交叉策略元素相关联的扩展级别,可以使用类似的方法。该系统可以使用策略条目C和D的允许目的地角色集中的角色的并集来导出新交叉策略元素的动作。但是,该系统将从新的允许目的地角色集中移除策略条目的显式拒绝列表中扩展级别较低(即,具有更具体的匹配)的任何条目。

因此,该系统可以从两个交叠的策略元素中移除集合Y,因为来自两个策略的匹配集Y的意图可以被新的交叉策略元素覆盖。这可以通过使用这种交叉方法创建新的交叉策略元素来消除这对策略元素之间的交叠。

单个匹配元素中的某些匹配集可以被替换为多个匹配集。这可能需要匹配元素的内爆,因为每个匹配元素必须为一个业务属性设置一个匹配集。可以通过采用这些匹配集的所有组合为匹配条件中存在的每个业务属性创建具有单个匹配集的匹配元素来创建新策略元素。这对应于单个策略元素的相同匹配条件内的匹配元素的内爆,如下面关于图2F所描绘的。该系统可以通过使用来自父策略元素的每个匹配元素来创建这些内爆策略元素。这些内爆策略元素可以携带或存储其他参数,诸如序列号、扩展级别和来自原始匹配元素的动作。

但是,并非这些内爆匹配元素的所有组合都可能对最初配置的匹配条件有效,即使对匹配元素有贡献的个体匹配集个体地有效。因此,该系统必须对照原始策略元素检查所有这些内爆策略元素的有效性,以确定其匹配集中的匹配元素的组合是否有效。可以从新创建的策略元素列表中剪除未导致针对原始策略成功验证的所有策略元素,使得只有有效策略元素保留在内爆列表中。该内爆列表(无效策略元素已经被修剪或移除)可以用于替换父策略元素,如下面关于图2F和图2G所描绘的。

该系统可以对作为交叠处理一部分的该对中的两个元素执行相同的处理。在处理该对的两个元素之后,该系统可以通过创建很多新的内爆策略元素和一个交叉策略元素来消除该对之间的所有交叠。该系统可以对整个策略元素集合执行相同的过程,直到该集合中的所有对都已经检查并且它们的匹配条件中的可能交叠已经被处理。在系统完成该交叉、内爆和修剪过程之后,该系统可以确定多个非交叠策略元素,其动作表示为匹配分组的一组允许目的地角色。这些非交叠策略元素可以产生与原始用户配置的策略集(“第一决策模型”)等效的决策输出(“第二决策模型”)。

该系统可以对通配符条目的交叉采取更优化的方法。由于通配符条目将作为所有策略条目的交叠匹配,因此该系统不会使用上述方法拆分通配符条目。相反,通配符条目可以被视为交叠,并且通配符目的地角色的并集总是可以被包括在更具体的条目中,除非更具体的条目导致冲突(即,包括存在于通配符的允许目的地角色集中的目的地角色的“拒绝”策略)。

图2F示出了根据本申请的一个方面的包括源角色“Admin”的条目的内爆和修剪的与图2E相对应的表250。表250可以包括以下字段:源角色251;(多个)匹配元素252;以及(多个)允许目的地角色集253。表250可以包括用于源角色Admin 254(对应于Admin 244)的(多个)匹配元素252。表250可以包括用于源角色Admin 254的所有内爆条目,虚线框255中的策略条目被指示为由于针对原始用户配置的策略的验证失败而需要修剪,并且以粗体列出的策略条目由于针对原始用户配置的策略成功验证而被保留。

该第二处理阶段可以以导出这些非交叠并且有效的策略元素集作为第一合成策略集而结束。该系统现在可以使用这组第一合成策略来实施用户配置的GBP,即使对于未知流也是如此,因为这组第一合成策略可以在策略元素的动作中提供允许目的地角色列表。

第三阶段:通过合并和排序进行优化

在第三处理阶段,该系统可以执行若干操作,包括:优化合成的第一组策略;确保对可能具有相同序列号但定义冲突决定的元素进行正确排序;并且将原始合成策略元素转换为适当的策略语法

该系统可以通过检查属于一个源角色的所有策略元素以进行可能的合并来开始第三处理阶段。如果两个策略元素的匹配元素包含彼此相同或连续的匹配集,则该系统可以合并两个策略元素。如果确定合并,则该系统可以合并两个策略元素以在新的策略元素中形成新的范围。新策略元素的动作可以通过来自两个策略元素的两个允许目的地角色集的并集来定义。表250的虚线框256中的策略条目是合并的候选条目的示例,因为它们的匹配集彼此相邻。该系统可以在框256中从这些候选条目的合并中创建单个策略条目,如下面关于图2G所描绘的。

因为在导出合成策略集时可能会发生属于不同目的地角色的策略元素的融合,所以用户配置的序列号可能不会产生显著影响。这是因为用户配置的序列号先前已经指定了与一个目的地角色相关联的一类条目的相对优先级。因为该系统可以移除策略元素之间的所有交叠(如上所述),所以分组现在只能匹配单个策略元素,并且因此序列号可能不再与第二决策模型相关。

但是,该序列号重要性的一个例外是通配符条目。为了实现更优化的条目内爆,不会移除与通配符条目的交叠。该系统可以使用扩展级别来确定相对排序,不太具体的通配符条目的序列号高于更具体的条目(即,匹配优先级更低)。这可以确保通配符条目不会错误地覆盖由更具体的策略管理的业务。具有较低扩展级别的元素可以表示更具体的条目,因此系统可以为这些元素在合成策略集中分配较低的序列号。该系统可以将该合成策略集称为P′。类似地,该系统可以将包括这些策略元素的匹配条件的导出匹配元素的集合表示为M′。

图2G示出了根据本申请的一个方面的基于图2A的用户配置的策略和图2B-图2F中描绘的处理的结果的合成策略的表。

该系统可以将该组优化策略条目(如表260中)转换为用户可读的策略语法。该系统可以首先对每个策略元素中的匹配集执行反向变换。表示完整匹配空间的每个匹配集可以替换为字符串“any”。具有单个元素的每个匹配集可以转换为单个值而不是集合。表示一组连续值的每个列表可以转换为带有“a:b”符号的范围。在该系统执行匹配集的这种转换之后,可以如下所述执行使用实际策略语法将合成的策略元素转换为策略条目。

策略元素可以表示为:

其中L是一组目的地角色,表示合成策略元素的导出动作。该系统可以使用策略语法来表示该策略元素,诸如:“具有匹配条件m的源角色s的策略序列号n允许到目的地角色集L的业务”。

这组优化合成策略的决策模型(“第二决策模型”)可以首先标识传入分组k的源角色s。然后该系统可以检索与源角色s相关联的该组策略条目。第二决策模型可以表示为:

s=源的角色

对于

对于E中的该组匹配元素T

对于导致“match”==TRUE的第一策略元素E’,该系统可以将与特定策略条目相关联的动作应用于分组k。合成策略元素中的动作不是动作集A的成员,而是由一组允许目的地角色表示的允许列表,业务将被允许到达该目的地角色。该系统可以将每个目的地角色集表示为“角色策略感知分发列表”(或RPADL),其中可以包括端口列表。如果通过给定端口连接的至少一个客户端属于目的地角色集中的角色中的一个,则该系统可以在目的地角色集的RPADL中包括给定端口。这可以指示,只有当端口属于与策略元素的动作相对应的RPADL时,才能允许与策略元素E′(如上所述)匹配的分组在端口上被转发。

一旦该系统为传入分组导出了RPADL,该系统就可以允许该分组通过转发管线,从而做出独立于GBP的转发决策。一旦该系统做出转发决策并且基于转发查找对传入分组执行可能的复制,该系统就可以将每个复制的分组传递到出口管线以进行出口处理。在这个阶段,每个复制的分组可以在分组元数据中携带RPADL信息。在系统最终决定是否在特定端口上转发分组之前,该系统可以在分组上应用RPADL以确定是否允许该端口作为传入分组的出口分组,即,符合任何配置的GBP。

所描述的方面提供了一种解决方案,该解决方案为流创建允许分发列表或目的地角色集(例如,通过该组合成策略,如图2G所示),并且可以从传入分组的分发中屏蔽被禁止的端口。如果存在具有针对流的允许角色的客户端,则所描述的方面允许端口上的业务,因此如果多个客户端存在于属于不同角色的单个端口上,则该系统不能进一步过滤业务。因为该系统在结构的边缘执行基于角色的策略执行,所以在属于不同角色的单个端口上的多个客户端的问题可能不是所描述方面的实际限制,因为可能不期望多个客户端在单个端口上。

因此,该系统的所述方面可以提供第二决策模型与第一决策模型的等价性。也就是说,对于给定源角色和业务属性(如在第一决策模型中)直接应用基于目的地角色的策略而被丢弃的分组现在可以从包含仅属于该角色的客户端的端口中屏蔽掉(如在第二决策模型中)。

用于促进策略合成以对未知流实施GBP的方法

图3呈现了流程图300,流程图300示出了根据本申请的一个方面的促进策略合成以向未知流实施GBP的方法。在操作期间,该系统确定在处理分组时为交换机定义的第一组策略,其中策略包括基于目的地角色的至少一个策略条目,并且其中至少一个策略条目包括分组的源角色、业务属性,以及要采取的动作(操作302)(如上面关于图2A所述)。第一组策略中的策略可以是用户配置的策略或基于组的策略(GBP)。该系统将策略表示为矩阵,其中矩阵中的第一条目对应于作为行的源角色和作为列的目的地角色,并且指示至少一个策略条目的业务属性和动作(操作304)(如上面关于图2B和图2C所述)。在第一条目中,如果动作指示允许分组,则该系统将动作替换为目的地角色,而如果动作指示拒绝分组,则该系统将动作替换为空值,以获取具有条目的第一数据结构,该条目指示相应源角色的多个业务属性和相应业务属性的对应的一组允许目的地角色(操作306)(如上面关于图2D所述)。

该系统解析包括第一数据结构中的多个业务属性中的第一业务属性和第二业务属性的交叠对以获取第二数据结构(操作308)(如上面关于图2E和图2F所述)。该系统确定第二数据结构中源角色的第三组业务属性和对应的一组允许目的地角色与策略(例如,用户配置的策略或GBP)不匹配(操作310),并且从第二数据结构中移除第三组业务属性和对应的该组允许目的地角色以获取第二组合成策略,其中基于第一组策略的第一决策模型产生与基于第二组合成策略的第二决策模型相同的处理分组的结果(操作312)(如上面关于图2F和图2G所述)。

图4A呈现了流程图400,流程图400示出了根据本申请的一个方面的促进策略合成以对未知流实施GBP的方法,包括内爆、交叠检测和处理、修剪和合并。流程图400中的操作为流程图300中的操作提供了附加细节。该系统将第一业务属性的通配符值转换为具有第一业务属性的所有可能值的一组元素(操作422)。该系统在第一业务属性中指示与转换后的通配符值相关联的扩展级别(操作424)。该系统基于以下中的至少一项检测交叠对:在第一业务属性或第二业务属性中使用的通配符;在第一业务属性或第二业务属性中使用的值的范围;完全交叠;以及部分交叠(操作406)。该系统通过标识三个集合来解决交叠对,该三个集合包括:非交叠业务属性和相关联的允许目的地角色的两个集合;以及包括基于与第一业务属性和第二业务属性相对应的允许目的地角色的并集而导出的交叉策略元素的一个集合(操作408)。该系统在所标识的三个集合中的每个集合中指示与相应非交叠业务属性、第一业务属性和第二业务属性中的至少一个相关联的扩展级别(操作410),并且操作继续到图4B的标签A。

图4B呈现了流程图420,流程图420示出了根据本申请的一个方面的促进策略合成以对未知流实施GBP的方法,包括内爆、交叠检测和处理、修剪和合并。该系统向交叉策略元素分配第三序列号,该第三序列号包括第一业务属性的第一序列号和第二业务属性的第二序列号中的较低者(操作422)。该系统将交叠对替换为所标识的三个集合以获取第二数据结构(操作424)。该系统确定第二数据结构中的第四业务属性和第五业务属性彼此相同或连续(操作426)。该系统将第四业务属性和第五业务属性合并为新业务属性,该新业务属性对应于与第四和第五业务属性相对应的允许目的地角色的并集(操作428),并且操作返回。

计算机系统和装置

图5示出了根据本申请的一个方面的促进策略合成以向未知流实施GBP的计算机系统。计算机系统500包括处理器502、易失性存储器506和存储设备508。在一些方面,计算机系统500可以包括控制器504(由虚线指示)。易失性存储器506可以包括例如随机存取存储器(RAM),该RAM用作受管理存储器并且可以用于存储一个或多个存储器池。存储设备508可以包括可以经由处理器502(或控制器504)来管理或访问的持久存储。此外,计算机系统500可以耦合到外围输入/输出(I/O)用户设备510,例如显示设备511、键盘512、和定点设备514。存储设备508可以存储操作系统516、内容处理系统518和数据536。

内容处理系统518可以包括指令,该指令在由计算机系统500执行时可以引起计算机系统500或处理器502执行本公开中描述的方法和/或过程。具体地,内容处理系统518可以包括用于接收和传输数据分组、请求和响应的指令(通信模块520)。

内容处理系统518还可以包括用于确定在处理分组时为交换机定义的第一组策略的指令,其中策略包括基于目的地角色的至少一个策略条目,并且其中至少一个策略条目包括分组的源角色、业务属性和要采取的动作(GBP管理模块522)。内容处理系统518可以包括用于将策略表示为矩阵的指令,其中矩阵中的第一条目对应于作为行的源角色和作为列的目的地角色,并且指示至少一个策略条目的业务属性和动作(数据变换模块524)。内容处理系统518可以包括用于以下操作的指令:在第一条目中,如果动作指示允许分组,则将动作替换为目的地角色,而如果动作指示拒绝分组,则将动作替换为空值,以获取具有条目的第一数据结构,条目指示相应源角色的多个业务属性和相应业务属性的对应的一组允许目的地角色(数据变换模块524)。内容处理系统518还可以包括用于解析包括第一业务属性和第二业务属性的交叠对以获取第二数据结构的指令(交叠管理模块526)。内容处理系统518可以包括用于确定第二数据结构中源角色的第三业务属性与策略不匹配并且从第二数据结构中移除第三业务属性以获取第二组合成策略的指令(策略修剪模块528和合成策略管理模块534)。

内容处理系统518可以另外包括用于以下各项的指令:检测和处理交叠(交叠管理模块526)、内爆策略元素(数据内爆模块532)、修剪策略元素(策略修剪模块528)和合并策略(策略合并模块530),包括以上关于图4A和图4B描述的操作。内容处理系统518可以包括用于基于第二组合成策略创建第二决策模型的指令,其中基于第一组策略的第一决策模型产生与基于第二组合成策略的第二决策模型相同的处理分组的结果(合成策略管理模块534)。

数据536可以包括通过本公开中描述的方法和/或过程作为输入而需要或作为输出而生成的任何数据。具体地,数据536至少可以存储:数据;请求;相应;策略;用户配置的策略;基于组的策略;一组策略;策略条目;源角色;目的地角色;业务属性;匹配元素;匹配条件;动作;矩阵;转置矩阵;条目;被替换的动作;空值;允许目的地角色;交叠对;已解决的交叠对;第一数据结构;第二数据结构;转换后的数据结构;合成策略;一组合成策略;通配符;通配符值;扩展级别;一组非交叠业务属性;交叉策略要素;允许目的地角色的并集;序列号;用户配置的序列号;匹配优先级;值的范围;完全交叠;部分交叠;一组不允许目的地角色;允许列表;拒绝列表;网络协议;端口号;交换机的配置信息;网络业务的特性;第一决策模型;第二决策模型;输入;以及输出。

图6示出了根据本申请的一个方面的促进策略合成以向未知流实施GBP的装置600。装置600可以包括多个单元或装置,这些单元或装置可以以有线、无线、量子光或电通信信道彼此通信。装置600可以使用一个或多个集成电路来实现,并且可以包括比图6所示的更少或更多的单元或装置。此外,装置600可以集成在计算机系统中,或实现为能够与其他计算机系统和/或设备通信的一个或多个单独的设备。

装置600还可以包括非易失性存储系统或存储器管理单元。装置600可以包括模块或单元602-616,模块或单元602-616被配置为执行类似于图5的计算机系统500的模块520-534的功能或操作,包括:通信单元602;GBP管理单元604;数据变换单元606;交叠管理单元608;策略修剪单元610;策略合并单元612;数据内爆单元614;以及合成策略管理单元616。

通常,所公开的方面提供了一种促进策略合成以向未知流实施GBP的系统。在本申请的一个方面中,该系统确定在处理分组时为交换机定义的第一组策略,其中策略包括基于目的地角色的至少一个策略条目,其中至少一个策略条目包括分组的源角色、业务属性和要采取的动作。该系统将策略表示为矩阵,其中矩阵中的第一条目对应于作为行的源角色和作为列的目的地角色,并且指示至少一个策略条目的业务属性和动作。在第一条目中,如果动作指示允许分组,则该系统将动作替换为目的地角色,而如果动作指示拒绝分组,则该系统将动作替换为空值,以获取具有条目的第一数据结构,条目指示相应源角色的多个业务属性和相应业务属性的对应的一组允许目的地角色。该系统解析包括第一业务属性和第二业务属性的交叠对以获取第二数据结构。该系统确定第二数据结构中源角色的第三业务属性与策略不匹配。该系统从第二数据结构中移除第三业务属性以获取第二组合成策略,其中基于第一组策略的第一决策模型产生与基于第二组合成策略的第二决策模型相同的结果。

在这个方面的变体中,在解析第一数据结构中的交叠对之前,该系统执行以下操作。该系统将第一业务属性的通配符值转换为具有第一业务属性的所有可能值的一组元素,并且在第一业务属性中指示与转换后的通配符值相关联的扩展级别。扩展级别基于以下中的至少一项:基于精确值导出的列表;基于值的范围而导出的列表;以及基于通配符值而导出的列表。

在另一变体中,该系统通过以下方式解析第一数据结构中的交叠对:标识三个集合,这三个集合包括:非交叠业务属性和相关联的允许目的地角色的两个集合;以及一个集合,包括基于与第一业务属性相对应的第一组允许目的地角色和与第二业务属性相对应的第二组允许目的地角色的并集而导出的交叉策略元素。该系统在所标识的三个集合中的每个集合中,指示与相应非交叠业务属性、第一业务属性和第二业务属性中的至少一个相关联的扩展级别。该系统将交叠对替换为所标识的三个集合以获取第二数据结构。

在另一变体中,相应业务属性与用户配置的序列号相关联。该系统向交叉策略元素分配第三序列号,第三序列号包括与第一业务属性相关联的第一用户配置序列号和与第二业务属性相关联的第二用户配置序列号中的较低者。

在另一变体中,该系统基于所指示的扩展级别,向第二组合成策略中的相应策略元素或业务属性分配序列号给相应策略元素或业务属性。与具有较高扩展级别和较高序列号的第二策略元素相比,具有较低扩展级别和较低序列号的第一策略元素指示更具体的策略,并且较高序列号指示针对源角色的第二组合成策略中的较低匹配优先级。

在另一变体中,该系统基于以下中的至少一项来检测交叠对:在第一业务属性或第二业务属性中使用的通配符;在第一业务属性或第二业务属性中使用的值的范围;完全交叠,其中第一业务属性被包含在第二业务属性中;以及部分交叠,其中第一业务属性的一部分匹配第二业务属性的一部分。

在另一变体中,在从第二数据结构中移除第三业务属性之后,该系统从第二数据结构中移除对应的第三组允许目的地角色。响应于确定第二数据结构中的第四业务属性和第五业务属性彼此相同或连续,该系统将第四业务属性和第五业务属性合并为新业务属性,新业务属性对应于与第四业务属性相对应的第四组允许目的地角色和与第五业务属性相对应的第五组允许目的地角色的并集。

在另一变体中,第一数据结构中的条目还指示相应源角色和相应业务属性的对应的一组不允许目的地角色。该系统基于对应的一组不允许目的地角色确定第三业务属性与策略不匹配。

在另一变体中,业务属性包括与以下中的至少一项相关联的多个属性:网络协议;端口号;与交换机配置相关的信息;以及网络业务的特性。

在另一变体中,第一决策模型将传入分组的源角色、目的地角色和业务属性作为输入,并且返回传入分组的动作作为输出。第二决策模型将传入分组的策略序列号、源角色和业务属性作为输入,并且返回一组允许目的地角色作为输出。

在另一变体中,第一组策略中的策略包括以下中的至少一项:用户配置的策略;以及基于组的策略。

在另一变体中,在将策略表示为矩阵之前,该方法还包括,该系统执行以下操作。该系统将第一组用户配置的策略表示为初始矩阵,其中初始矩阵中的第一条目对应于作为行的源角色和作为列的目的地角色,并且指示至少一个策略条目的业务属性和动作。该系统对初始矩阵进行转置以获取矩阵,其中初始矩阵中的第一条目指示与矩阵中的第一条目相同的信息。

本详细描述中描述的数据结构和代码通常存储在计算机可读存储介质上,该存储介质可以是可以存储代码和/或数据以供计算机系统使用的任何设备或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储设备,诸如磁盘驱动器、磁带、CD(压缩盘)、DVD(数字多功能盘或数字视频盘)、或能够存储现在已知或以后开发的计算机可读介质的其他介质。

详细描述部分中描述的方法和过程可以体现为代码和/或数据,该代码和/或数据可以存储在如上所述的计算机可读存储介质中。当计算机系统读取并且执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行体现为数据结构和代码并且存储在计算机可读存储介质内的方法和过程。

此外,上述方法和过程可以被包括在硬件设备或装置中。例如,硬件设备或装置可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件程序或代码的专用或共享处理器、以及现在已知或以后开发的其他可编程逻辑设备。当硬件设备或装置被激活时,硬件模块执行其中包括的方法和过程。

仅出于说明和描述的目的而呈现了对各方面的前述描述。它们并非旨在穷举或将本文中描述的方面限制为所公开的形式。因此,对于本领域技术人员来说,很多修改和变化将是很清楚的。此外,上述公开内容并非旨在限制本文所述的方面。本文所述的方面的范围由所附权利要求限定。

技术分类

06120115927624