CN112219382A - 网络中的安全规则的保证 - Google Patents

网络中的安全规则的保证 Download PDF

Info

Publication number
CN112219382A
CN112219382A CN201980037120.XA CN201980037120A CN112219382A CN 112219382 A CN112219382 A CN 112219382A CN 201980037120 A CN201980037120 A CN 201980037120A CN 112219382 A CN112219382 A CN 112219382A
Authority
CN
China
Prior art keywords
epg
compliance
network
selector
traffic
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
Application number
CN201980037120.XA
Other languages
English (en)
Other versions
CN112219382B (zh
Inventor
阿德维特·迪克西特
纳夫涅特·亚达夫
纳夫乔蒂·夏尔玛
拉马纳·拉奥·孔佩拉
卡蒂克·莫汉拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN112219382A publication Critical patent/CN112219382A/zh
Application granted granted Critical
Publication of CN112219382B publication Critical patent/CN112219382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

用于保证网络中的规则的系统、方法和计算机可读介质。示例方法可以包括创建合规要求,该合规要求包括第一端点组(EPG)选择器、第二EPG选择器、流量选择器和通信操作器,第一EPG选择器和第二EPG选择器表示EPG集合,并且通信操作器为与第一EPG选择器和第二EPG选择器以及流量选择器相关联的流量定义通信条件。方法可以包括:为每个不同的EPG对,创建表示不同的EPG对、通信操作器和流量选择器的第一相应数据结构;创建表示网络的逻辑模型的第二相应数据结构;确定第一相应数据结构是否包含在第二相应数据结构中以产生包含检查;以及基于包含检查来确定网络上的策略是否符合合规要求。

Description

网络中的安全规则的保证
相关申请的交叉引用
本申请要求下列申请的权益和优先权:于2018年6月27日提交的、序列号为62/690,446的、题为“网络中的安全规则的保证(ASSURANCE OF SECURITY RULES IN ANETWORK)”的美国临时专利申请;以及于2018年12月12日提交的、序列号为16/217,559的、题为“网络中的安全规则的保证(ASSURANCE OF SECURITY RULES IN A NETWORK)”的美国非临时专利申请;它们的内容通过引用以其整体明确地并入本文。
本申请与下列申请相关:于2018年12月12日提交的、序列号为16/217,500的、题为“网络中的安全规则的保证(ASSURANCE OF SECURITY RULES IN A NETWORK)”的美国非临时专利申请;以及于2018年12月12日提交的、序列号为16/217,607的、题为“网络中的安全规则的保证(ASSURANCE OF SECURITY RULES IN A NETWORK)”的美国非临时专利申请,它们两者通过引用以其整体明确地并入本文。
技术领域
本技术涉及网络中的安全规则的保证。
背景技术
计算机网络变得越来越复杂,通常涉及网络的各个层的低级和高级配置。例如,计算机网络通常包括许多安全、路由和服务策略,它们共同定义了网络的行为和操作。网络运营商具有多种配置选项,以用于根据用户需求定制网络。虽然不同的配置选项为网络运营商提供了极大的灵活性和对网络的控制,但是它们也增加了网络的复杂性。此外,网络运营商通常会在网络的整个生命周期内添加、删除和编辑策略。鉴于网络的高度复杂性以及通常在网络中实施的大量策略和策略更改,跟踪网络中的策略、避免网络中的策略之间的冲突、以及确保网络中的策略符合网络的预期行为和操作可能是极其困难的。
附图说明
为了描述可以获得本公开的上述以及其他优点和特征的方式,将通过参考在附图中示出的本公开的特定实施例来呈现对以上简要描述的原理的更具体描述。应当理解,这些附图仅描绘本公开的示例性实施例,并且因此不应被认为是对本公开的范围的限制,通过使用附图,利用附加特征和细节来描述和解释本文的原理,在附图中:
图1A和图1B示出了示例网络环境;
图2A示出了示例网络的示例对象模型;
图2B示出了来自图2A的示例对象模型中的租户对象(tenant object)的示例对象模型;
图2C示出了来自图2A的示例对象模型中的各个对象的示例关联;
图2D示出了基于来自图2A的示例对象模型实现的示例模型的示意图;
图3A示出了示例保证设备系统(assurance appliance system);
图3B示出了用于网络保证的示例系统图;
图4示出了用于基于网络的逻辑模型来构建特定于设备的逻辑模型的示例图;
图5A示出了示例策略分析器的示例输入和输出的示意图;
图5B示出了用于确定不同网络模型之间的等效(equivalence)的等效图;
图5C示出了用于执行等效检查和标识冲突规则的示例架构;
图6A至图6C示出了示例归约有序二元决策图(Reduced Ordered BinaryDecision Diagram);
图7示出了用于网络保证的示例方法;
图8示出了用于访问保证合规工具(assurance compliance tool)的保证合规菜单的示例用户界面;
图9示出了示例合规要求(compliance requirement)管理界面,其允许用户管理合规要求;
图10示出了用于创建合规要求的示例合规要求界面;
图11示出了用于选择用于安全合规要求的EPG(端点组)选择器的示例EPG选择器界面;
图12示出了在用户从EPG选择器界面选择和选取EPG选择器之后的合规要求界面的示例配置;
图13示出了用于使得用户能够选择用于安全合规要求的通信操作器的合规要求界面的示例配置;
图14示出了用于在合规要求定义视图中选择EPG选择器以及特定EPG选择器的相关联属性的合规要求界面的示例配置;
图15示出了用于选择用于合规要求的EPG选择器的示例EPG选择器界面;
图16示出了示例合规要求界面,其描绘了通过合规要求界面创建的合规要求的示例配置;
图17A至图17C示出了用于创建合规要求的合规要求界面的示例配置;
图18A至图18E示出了用于创建用于安全合规要求的流量选择器的流量选择器界面的示例配置;
图19示出了用于创建用于安全合规要求的EPG选择器的示例EPG选择器界面;
图20A至图20D示出了合规要求集合界面的示例配置;
图21示出了标识与合规要求集合相关联的合规要求的示例合规要求界面;
图22示出了用于配置合规要求的示例定义方案的图示;
图23A和图23B示出了合规分数界面的示例配置;
图24A和图24B示出了合规分析界面的示例视图;
图25示出了用于搜索合规事件的示例界面;
图26示出了用于创建和验证安全合规要求的示例方法;
图27示出了用于创建安全合规要求并且检查与相同的网络上下文上的对象相关联的策略的合规的示例方法;
图28示出了用于创建安全合规要求并且检查与不同的网络上下文上的对象相关联的策略的合规的示例方法;
图29示出了示例网络设备;并且
图30示出了示例计算系统架构。
具体实施方式
下面详细讨论本公开的各种实施例。虽然讨论了具体实现方式,但应该理解,仅是出于说明目的而这样做的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以使用其他组件和配置。因此,以下描述和附图是说明性的而不应被解释为限制性的。描述了许多具体细节以提供对本公开的透彻理解。然而,在某些情形下,没有描述众所周知的或传统的细节以避免模糊本描述。在本公开中参考一个实施例或参考实施例可以是参考相同的实施例或任意实施例;并且,这样的参考指的是实施例中的至少一个。
对“一个实施例”或“实施例”的参考意味着结合该实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。在说明书中各处出现的短语“在一个实施例中”不一定都指代相同的实施例,也不是与其他实施例互斥的单独或替代的实施例。此外,描述了可以由一些实施例而不由其他实施例展示的各种特征。
本说明书中使用的术语在本公开的上下文中以及在其中每个术语被使用的特定上下文中通常具有其在本领域中的普通含义。替代语言和同义词可以用于本文所讨论的任何一个或多个术语,并且本文是否详述或论述某一术语不应被看作具有特殊意义。在一些情况下,提供了某些术语的同义词。对一个或多个同义词的记载不排除对其他同义词的使用。在本说明书中任何地方对示例(包括本文所讨论的任何术语的示例)的使用仅是说明性的,并且不旨在进一步限制本公开或任何示例术语的范围和含义。同样地,本公开不限于本说明书中给出的各种实施例。
不意图限制本公开的范围,下面给出根据本公开的实施例的工具、装置、方法、及其相关结果的示例。注意,为了方便读者,可能在示例中使用标题或副标题,这绝不应限制本公开的范围。除非另有定义,否则本文使用的技术和科学术语具有本公开所属领域的普通技术人员通常理解的含义。在发生冲突的情况下,以包括定义的本文档为准。
将在下面的描述中阐述本公开的其他特征和优点,并且其部分将从描述中变得清晰可见,或者可以通过实践本文公开的原理来进行学习。借助于所附权利要求中具体指出的工具和组合,可以实现和获得本公开的特征和优点。根据以下描述和所附权利要求,本公开的这些和其他特征将变得更加完全地显现出来,或者可以通过实践本文阐述的原理来进行学习。
概述
在独立权利要求中陈述了本发明的方面,并在从属权利要求中陈述了优选特征。一个方面的特征可以单独地或与其他方面结合地应用于每个方面。
软件定义的网络(SDN)和数据中心(例如,以应用为中心的基础设施(ACI)网络)可以通过一个或多个集中式元件(例如,ACI网络中的应用策略基础设施控制器(APIC)或其他SDN网络中的网络管理器)来管理。网络运营商可以为网络定义各种配置、对象、规则等,这可以由一个或多个集中式元件来实现。网络运营商提供的配置可以反映网络运营商对网络的意图,即网络运营商意图如何运行网络及其组件。这样的用户意图可以以编程方式封装在存储在集中式元件处的网络模型中。这些模型可以表示用户意图并反映网络的配置。例如,模型可以表示由用户意图和/或集中式元件为特定网络定义的对象和策略全集(例如,端点、租户、端点组、上下文、应用简档、策略等)。
在许多情况下,网络中的各种节点和/或控制器可以包括网络和网络状态的相应信息或表示。例如,不同的控制器可以存储网络的不同逻辑模型,并且网络结构中的每个节点可以包括其自己的网络模型。本文阐述的方法提供了对网络中的契约(contract)或策略的保证。网络运营商可以指定合规要求,并且检查该合规要求是否在整个网络中得到准确实施,并且与网络中的其他规则不冲突。例如,网络运营商可以指定安全规则,该安全规则指示特定端点组(EPG)应该或不应该与哪些EPG通信,以及可以如何进行这类通信(如果允许的话)。网络保证设备可以检索和分析网络的一个或多个逻辑、具体和/或硬件模型,以确定是否违反、满足、应用(一个或多个)指定安全规则等。网络保证设备可以生成事件,该事件指示是否违反、满足、应用(一个或多个)指定安全规则等,以及在这类情况下如何违反或不执行(一个或多个)安全规则。
本文公开了用于保证网络中的规则和策略(包括与相同的网络上下文(例如,相同的虚拟路由和转发实例,相同的私有网络、相同的网络地址域等)相关联的规则和策略)的系统、方法和计算机可读介质。在一些示例中,系统或方法可以包括为网络创建合规要求,该合规要求包括第一端点组(EPG)选择器、第二EPG选择器、流量选择器和通信操作器。第一EPG选择器和第二EPG选择器可以表示EPG集合。流量选择器可以包括标识与流量选择器相对应的流量的流量参数,并且通信操作器可以为与第一EPG选择器和第二EPG选择器以及流量选择器相关联的流量定义通信条件。
系统或方法可以包括为来自EPG集合的每个不同的EPG对,创建表示不同的EPG对、通信操作器和流量选择器的第一相应数据结构。不同的EPG对可以包括来自第一EPG选择器和第二EPG选择器中的每一者的相应EPG。系统或方法还可以包括:创建表示网络的逻辑模型的第二相应数据结构;确定第一相应数据结构是否包含在第二相应数据结构中以产生包含检查;以及基于包含检查来确定网络上配置的策略是否符合合规要求。
在一些方面,系统或方法可以包括确定来自EPG集合的至少一个不同的EPG对中的每个EPG与相同的网络上下文相关联。相同的网络上下文可以包括虚拟路由和转发(VRF)实例、私有网络、网络地址域等。第二相应数据结构可以至少部分地基于逻辑模型中与相同的网络上下文相关联的策略,和/或可以表示与相同的网络上下文相关联的策略。在一些情况下,确定策略是否符合合规要求可以包括:确定与相同的网络上下文相关联的策略是否满足、违反、或应用合规要求。
在一些方面,第一相应数据结构和第二相应数据结构可以包括二元决策图(BDD)、归约有序二元决策图(ROBDD)、n位向量等。在一些情况下,系统或方法可以包括生成指示策略是否符合合规要求的一个或多个合规保证事件。生成一个或多个合规保证事件可以包括:呈现合规结果,该合规结果指示合规要求是否被网络上配置的策略中的一个或多个策略满足、违反、或未应用。
在一些示例中,合规结果可以包括:对满足、违反或未应用合规要求的原因的指示,和/或对合规事件严重性、合规问题的数量、合规分数、按类别的合规问题的计数、以及按类别的相应合规分数等的指示。类别可以包括合规要求类型、受影响的资源类型、受影响的策略对象等。对原因的指示可以标识策略对象集合和/或一个或多个安全策略。策略对象集合可以包括消费者EPG、供应商EPG、契约、过滤器、租户、虚拟路由和转发(VRF)对象、网络上下文、应用简档等。
在一些方面,系统或方法可以包括通过以下操作来确定网络的状态是否符合合规要求:将表示合规要求的一个或多个第一数据结构与表示网络中的网络设备上配置的硬件策略条目的一个或多个第二数据结构进行比较,以及基于比较来确定网络中的网络设备上配置的硬件策略条目是否满足、违反或应用合规要求。
在一些方面,网络可以包括多个网络结构,并且系统或方法可以包括:基于附加配置数据为网络创建附加合规要求,该附加配置数据包括相应EPG选择器、相应流量选择器和相应通信操作器;对附加合规要求进行分组以产生合规要求集合;将合规要求集合与多个网络结构的子集相关联;以及确定与多个网络结构的子集相关联的策略是否符合合规要求集合。
示例实施例
本技术涉及用于保证网络中的规则和策略(包括与相同的网络上下文相关联的规则或策略)的系统、方法和计算机可读介质。本技术将在下面的公开内容中描述如下。讨论开始于对网络和合规保证的讨论,以及对示例计算环境(如图1A和图1B所示)的描述。然后将是对用于网络保证的网络模型(如图2A到图2D所示)以及网络建模和保证系统(如图3A-图3B、图4、图5A-图5C、图6A-图6C和图7所示)的讨论。讨论以对示例安全合规要求以及用于创建和检查安全合规要求的方法和技术(如图8到图28所示)的描述继续进行。讨论以对示例网络和计算设备(如图29和图30所示)的描述结束,这些设备包括适合于托管软件应用和执行计算操作的示例硬件组件。本公开现在转向对网络和合规保证的讨论。
网络保证是确保或确定网络正在按照网络运营商的意图行动并且已经被恰当配置(例如,网络正在实现其意图的动作)。意图可以涵盖各种网络操作,例如桥接、路由、安全、服务链接、端点、合规、QoS(服务质量)、审核等。意图可以体现在为网络和各个网络元件(例如,交换机、路由器、应用、资源等)定义的一个或多个策略、配置等中。在一些情况下,由网络运营商定义的配置、策略等可能无法准确地反映在网络的实际行为中。例如,网络运营商为一种类型的流量指定配置A,但是后来发现网络实际上正在将配置B应用于该流量,或者以与配置A不一致的方式处理该流量。这可能是许多不同原因的结果,例如硬件错误、软件错误、变化的优先级、配置冲突、错误配置的设置、设备不适当的规则呈现、升级、配置更改、失败等。作为另一示例,网络运营商为网络定义配置C,但是网络中的一个或多个配置使得网络以与配置C所反映的意图不一致的方式行动。
本文中的方法可以允许通过以下方式来提供网络合规保证:对网络的各个方面进行建模,执行一致性、合规和/或其他网络保证检查。可以在各种类型的网络中实现本文的网络保证方法,这些网络包括私有网络,例如局域网(LAN);企业网络;独立的或传统的网络,例如数据中心网络;包括物理或底层以及逻辑或覆盖层的网络,例如VXLAN或SDN网络(例如,以应用为中心的基础设施(ACI)或VMware NSX网络);等等。
可以针对网络构建网络模型并且针对网络保证实现网络模型。网络模型可以提供对网络的一个或多个方面的表示,包括但不限于网络的策略、配置、要求、安全、路由、拓扑、应用、硬件、过滤器、契约、访问控制列表、基础设施,等等。例如,网络模型可以提供网络中的配置的数学表示。如下面将进一步解释的,可以为网络生成不同类型的模型。
可以实现这样的模型以确保网络的行为将与通过由网络运营商实现的具体配置(例如,策略、设置、定义等)所反映的预期行为一致(或保持一致)。与涉及发送和分析数据分组并观察网络行为的传统网络监视不同,可以通过建模来执行网络保证,而不必摄取分组数据或监视流量或网络行为。这可产生先见之明、洞悉、和后见之明:可以在问题发生之前加以预防,在发生问题时识别问题,以及在问题发生后立即修复问题。
因此,网络保证可以涉及网络的建模性质以确定性地预测网络的行为。如果(一个或多个)模型指示适当的行为(例如,没有不一致、冲突、错误等),则可以确定网络是健康的。如果建模指示适当的行为但有点不一致,则可以确定网络是可实现功能的,但不是完全健康的。如果建模指示不适当的行为和错误,则可以确定网络是不能实现功能的并且不健康。如果通过建模检测到不一致或错误,则对相应的(一个或多个)模型的详细分析可以允许非常准确地识别出一个或多个基础或根本问题。
本文中的方法还使得网络管理员或运营商能够指定(一个或多个)合规要求,并且检查指定的(一个或多个)合规要求在整个网络上强制执行,并且没有被网络中其他规则或策略违反或与其相矛盾。例如,网络管理员可以指定安全规则,该安全规则指示特定EPG应该或不应该被允许或被获准与哪些EPG进行通信,以及特定EPG应该如何与以下EPG进行通信:特定EPG应该被允许或被获准进行通信的那些EPG。网络保证设备可以检索和分析网络的逻辑、具体和/或硬件模型,以基于指定的(一个或多个)安全规则和(一个或多个)网络模型(例如,逻辑、具体和/或硬件模型)的比较,来确定指定的(一个或多个)安全规则是否被违反、被满足、被应用等。网络保证设备可以生成事件,这些事件指示指定的(一个或多个)安全规则是否符合网络模型并且在网络中是否被违反、被满足、被应用等。网络管理员或运营商可以(例如,经由用户界面)指定在网络中应该或不应该被满足、被应用、被违反等的一个或多个安全或策略要求(例如,规则、条件、节点等),并且迅速接收到指示这类安全或策略要求是否正在被应用、被违反、被满足等的合规结果。
定义安全要求
网络管理员可以定义安全要求,该安全要求例如包括要求名称、要求描述、要求类型、第一EPG集合、通信操作器、第二EPG集合以及流量选择器或通信过滤器。合规保证系统然后可以检查或验证安全要求和相关联的参数在网络中是否正在被违反、被强制执行、被应用、被满足等。
为了定义EPG集合,网络管理员可以指定一个或多个EPG、租户、域名、VRF(虚拟路由和转发实例)、应用简档、桥接域、EPG标签/类别、或其他EPG容器/组或其他参数。网络管理员可以明确包括或排除某些EPG。因为某些分组(例如,应用简档、VRF等)中的EPG可以是动态的并且在各个时期之间变化,所以保证设备可以在每个被保证的时期中标识出EPG集合中的EPG。
通信操作器可以包括例如以下条件:例如,不得对话、必须对话、可以对话等。必须对话条件可以意味着一者必须能够在所有指定的端口上进行对话,而可以对话条件可以意味着一者可以在一个或多个指定的端口上进行对话。
流量选择器或通信过滤器可以包括例如用于通信的以太网协议或以太网类型(例如,IPv6、IPv4、MPLS单播、ARP、MAC安全等);IP协议(例如,ICMP、IGMP、IGP、TCP、UDP等);TCP会话状态;一个或多个用于通信的端口;网络中用于间接通信的步伐(step)/跃程(hop)的数量(例如,少于5个跃程、多于1个跃程等),其可以用于检查通信通过中间盒(例如,防火墙)进行路由;从一个EPG到另一EPG的跃程;等等。
例如,网络管理员可以创建名为“安全要求1”的安全要求,并且将该安全要求定义为“EPG集合1必须在TCP端口80-100上与EPG集合2对话”。这里,安全要求包括:名称、对哪些EPG集合与安全要求相关联的指示、指示一个EPG集合必须与另一EPG集合进行对话的条件或通信操作器、以及用于这类通信的特定协议和端口。
一旦保证设备接收到安全规则,保证设备就可以从网络中检索配置数据(例如,经由诸如APIC之类的网络控制器)。配置数据可以包括例如契约、设置、硬件(例如,三元内容可寻址存储器)规则等。在一些情况下,配置数据还可以包括转发平面配置数据,例如,一个或多个网络设备(例如,一个或多个叶节点交换机)上的FIB(转发信息库)条目、一个或多个桥接域(BD)的子网配置、和/或网络控制器(例如,APIC等)上的EPG。保证设备可以检查配置数据是否符合安全规则。基于检查,保证设备可以生成事件,这些事件指定网络中的配置是否违反、满足、应用等安全规则。在一些情况下,可以在每个EPG的基础上生成事件。例如,对于上面的“安全要求1”示例,如果EPG集合1包含3个EPG并且EPG集合2包含5个EPG,则保证设备可以生成15个事件,这些事件指定从EPG集合1中的每个EPG到EPG集合2中的每个EPG的通信是否满足或违反安全要求1。
为了检查是否符合安全规则,保证设备可以检索(例如,经由诸如APIC之类的网络控制器)用于网络的一个或多个网络模型(例如,逻辑、具体和/或硬件模型,在下面进一步解释),以检查安全规则是否符合一个或多个网络模型中的规则或策略。在一些实现方式中,还可以检查诸如叶节点之类的结构节点中的硬件规则(例如,TCAM规则)是否符合安全规则。取决于检查哪个策略定义或实现级别(例如,逻辑模型、具体模型、TCAM/硬件模型等),可以生成不同的事件和/或事件的类型。
在一些示例中,网络管理员还可以指定包括一个或多个安全要求的要求集合。例如,要求集合1可以包括以下安全要求:安全要求1、安全要求5和安全要求7。网络管理员还可以指定应将要求集合应用于哪些网络结构。例如,网络管理员可以指定应将要求集合1应用于结构1和结构3。
检查是否符合安全要求
用于检查是否符合一个或多个安全要求的过程可以包括获得网络模型,例如标识网络中指定的契约、VRF、EPG等的逻辑模型。该过程可以涉及检查EPG集合中的EPG-EPG对。可以实现建模库以执行实际检查。可以检查每个契约、禁忌、VRF模式、EPG模式等,并且将其用于构建BDD(二元决策图)或ROBDD(归约有序二元决策图),该BDD或ROBDD用于检查是否符合安全要求,例如本文进一步描述。(一个或多个)网络模型中的各种契约可以转换为简单的规则列表。BDD或ROBDD可以用于将契约中的每个规则/动作表示为布尔函数,该布尔函数然后可以被用于执行规则/动作之间的合规检查。
以下是示例合规案例:
示例1-EPG1和EPG2在相同的VRF中
系统为该VRF构建两个ROBDD,包括表示在VRF中允许的流量的ROBDD(VRF_permit_ROBDD)和表示在VRF中拒绝的流量的ROBDD(VRF_deny_ROBDD),以及用于安全要求的ROBDD(Sec_ROBDD)。系统然后检查Sec_ROBDD是否包含在VRF_deny_ROBDD或VRF_permit_ROBDD中。例如,在一些情况下,如果安全要求指定了拒绝要求,则系统可以检查Sec_ROBDD是否包含在VRF_deny_ROBDD中,以及如果安全要求指定了允许要求,则系统可以检查Sec_ROBDD是否包含在VRF_permit_ROBDD中。
基于该合规检查,系统可以确定是否满足安全要求以及哪些契约满足或不满足安全要求。为了说明,假设安全要求指定“EPG1不得与EPG2对话”。系统可以检查指定“EPG1不得与EPG2对话”的安全要求的Sec_ROBDD是否包含在与VRF相关联的VRF_deny_ROBDD中,以确定是否满足或违反了安全要求。相反,假设安全要求指定“EPG1必须与EPG2对话”。系统可以检查指定“EPG1必须与EPG2对话”的安全要求的Sec_ROBDD是否包含在与VRF相关联的VRF_permit_ROBDD中,以确定是否满足或违反了安全要求。
该示例案例可以具有多个子用例,例如(1)强制VRF模式或非强制VRF模式;(2)强制EPG模式或非强制EPG模式;禁忌契约与许可契约;等等。
示例2-EPG1和EPG2在分离的VRF中
系统确定EPG1和EPG2在不同的VRF中。然后,系统确定哪个VRF包含用于EPG1和EPG2之间的流量的规则。
假设EPG1是VRF1中的消费者EPG,EPG2是VRF2中的供应商EPG,并且系统确定用于EPG1和EPG2之间的流量的规则在VRF1中。这里,系统构建用于VRF1的ROBDD(VRF1_ROBDD),并且构建用于安全要求的ROBDD(Sec_ROBDD)。系统然后检查Sec_ROBDD是否包含在VRF1_ROBDD中。基于该合规检查,系统可以确定是否满足安全要求以及哪些契约满足或违反了安全要求。
报告合规
基于合规检查,保证设备可以生成界面,该界面显示用于安全规则的EPG对以及每个EPG对是否符合安全规则。该合规检查和报告系统具有明显优势。
在设计网络结构时,网络管理员可以知道或了解应该如何配置网络结构中的通信、应该如何限制通信或限制哪些通信、网络应该如何运行等。然而,在网络操作期间,该信息可能变得不清楚、被遗忘、过时、不正确、或不适当,尤其是在网络复杂性增长、网络变化或发展、以及网络策略被添加或删除时。保持跟踪网络的规则、行为、状态和要求确实非常困难。作为结果,可能很难确保网络配置被尊重(例如,被强制执行、被满足、不被违反等),并且几乎没有保护网络中的配置或限制的保护措施。
本技术允许将网络的配置指定为网络的不变量(invariant)。例如,可以在一个或多个安全规则/要求中指定这些不变量。鉴于网络的当前状态(例如,当前网络配置和策略),本技术允许测试或检查这类不变量以确定这类不变量是否正在被执行、被满足、被违反等。因此,网络管理员或运营商可以简单地定义应该在网络中强制执行或满足的特定规则或要求,并且运行检查以确定这样的规则或要求是否确实由网络强制执行或满足。这允许网络管理员或运营商能够确保网络持续按其应有的方式运作,并且标识可能使得网络以其他方式运作的任何冲突、过时、或不适当的规则或策略,即使在网络中随着时间的推移网络复杂性增长、旧的策略被删除或被遗忘、新的策略被实现、或进行其他更改时。
已经描述了网络和合规保证的各个方面,本公开现在转向对用于网络和合规保证的示例网络环境的讨论。
图1A示出了示例网络环境100(例如,数据中心)的图示。网络环境100可以包括可以表示网络环境100的物理层或基础设施(例如,底层)的结构120。结构120可以包括脊节点(spine)102(例如,脊路由器或交换机)和叶节点(leaf)104(例如,叶路由器或交换机),它们可以互连以在结构120中路由或交换流量。脊节点102可以互连结构120中的叶节点104,并且叶节点104可以将结构120连接到网络环境100的覆盖或逻辑部分,其可以包括应用服务、服务器、虚拟机、容器、端点等。因此,结构120中的网络连通性可以从脊节点102流向叶节点104,反之亦然。叶节点104和脊节点102之间的互连可以是冗余的(例如,多个互连)以避免路由失败。在一些示例中,叶节点104和脊节点102可以完全连接,使得任何给定的叶节点都连接到每个脊节点102,并且任何给定的脊节点都连接到每个叶节点104。叶节点104可以是例如架顶式(top-of-rack,“ToR”)交换机、聚合交换机、网关、入口和/或出口交换机、供应商边缘设备、和/或任何其他类型的路由或交换设备。
叶节点104可以负责路由和/或桥接租户或客户分组以及应用网络策略或规则。网络策略和规则可以由一个或多个控制器116驱动,和/或由诸如叶节点104之类的一个或多个设备实现或实施。叶节点104可以将其他元件连接到结构120。例如,叶节点104可以将服务器106、管理程序108、虚拟机(VM)110、应用112、网络设备114等与结构120连接。这些元件可以驻留在一个或多个逻辑或虚拟层或网络中,例如覆盖网络。在一些情况下,叶节点104可以对去往和来自这种元件(例如,服务器106)的分组进行封装和解封装,以便使得能够在整个网络环境100和结构120内进行通信。叶节点104还可以向任何其他设备、服务、租户、或工作负载提供对结构120的访问。在一些情况下,连接到叶节点104的服务器106可以类似地对去往和来自叶节点104的分组进行封装和解封装。例如,服务器106可以包括一个或多个虚拟交换机或路由器或隧道端点,用于在由服务器106托管或连接到服务器106的覆盖层或逻辑层与由结构120表示并通过叶节点104访问的底层之间用隧道传输分组。
应用112可以包括软件应用、服务、容器、设备、功能、服务链等。例如,应用112可以包括防火墙、数据库、CDN服务器、IDS/IPS、深度分组检查服务、消息路由器、虚拟交换机等。来自应用112的应用可以由多个端点(例如,服务器106、VM 110等)分发、链接或托管,或者可以完全从单个端点运行或执行。
VM 110可以是由管理程序108托管的虚拟机或在服务器106上运行的虚拟机管理器。VM 110可以包括在相应服务器上的访客操作系统上运行的工作负载。管理程序108可以提供创建、管理和/或运行VM 110的软件、固件和/或硬件层。管理程序108可以允许VM 110共享服务器106上的硬件资源,并且允许服务器106上的硬件资源显示为多个单独的硬件平台。此外,服务器106上的管理程序108可以托管一个或多个VM 110。
在一些情况下,VM 110和/或管理程序108可以迁移到其他服务器106。服务器106可以类似地迁移到网络环境100中的其他位置。例如,连接到叶节点的服务器可以改变为连接到不同的或额外的叶节点。此类配置或部署更改可涉及对应用于正在迁移的资源以及其他网络组件的设置、配置和策略的修改。
在一些情况下,一个或多个服务器106、管理程序108和/或VM 110可以表示或驻留在租户空间中。租户空间可以包括与一个或多个客户端或订户相关联的工作负载、服务、应用、设备、网络和/或资源。因此,可以基于特定租户策略、协议、配置等来路由网络环境100中的流量。此外,寻址可以在租户之间变化。在一些配置中,租户空间可以被划分为逻辑段和/或网络,并且与跟其他租户相关联的逻辑段和/或网络分开。租户之间的寻址、策略、安全性和配置信息可以由控制器116、服务器106、叶节点104等管理。
可以在逻辑级、硬件级(例如,物理级)和/或这两者处实现网络环境100中的配置。例如,可以通过软件定义的网络(SDN)框架(例如,以应用为中心的基础设施(ACI)或VMWARENSX),基于端点或资源属性(例如,端点类型和/或应用组或简档)来在逻辑和/或硬件级处实现配置。为了说明,一个或多个管理员可以通过控制器116在逻辑级(例如,应用或软件级)处定义配置,控制器116可以通过网络环境100来实现或传播这样的配置。在一些示例中,控制器116可以是ACI框架中的应用策略基础设施控制器(APIC)。在其他示例中,控制器116可以是与其他SDN解决方案相关联的一个或多个管理组件,例如,NSX管理器。
这样的配置可以定义用于在网络环境100中路由和/或分类流量的规则、策略、优先级、协议、属性、对象等。例如,这样的配置可以定义用于基于端点组(EPG)、安全组(SG)、VM类型、桥接域(BD)、虚拟路由和转发实例(VRF)、租户、优先级、防火墙规则等来分类和处理流量的属性和对象。下面进一步描述其他示例网络对象和配置。可以基于流量的标签、属性或其他特性来实施流量策略和规则,诸如与流量相关联的协议、与流量相关联的EPG、与流量相关联的SG、与流量相关联的网络地址信息等。这样的策略和规则可以由网络环境100中的一个或多个元件(例如,叶节点104、服务器106、管理程序108、控制器116等)实施。如前所述,可以根据一个或多个特定软件定义的网络(SDN)解决方案(例如,CISCO ACI或VMWARENSX)来配置网络环境100。下面简要描述这些示例SDN解决方案。
ACI可以通过可缩放的分布式实施来提供以应用为中心或基于策略的解决方案。ACI支持在针对网络、服务器、服务、安全性、要求等的声明性配置模型下集成物理和虚拟环境。例如,ACI框架实现EPG,EPG可以包括共享通用配置要求(例如,安全性、QoS、服务等)的端点或应用的集合。端点可以是虚拟/逻辑或物理设备,例如,连接到网络环境100的VM、容器、主机或物理服务器。端点可以具有一个或多个属性,例如,VM名称、访客OS名称、安全标签、应用简档等。应用配置可以以契约的形式在EPG之间应用,而不是直接应用于端点之间。叶节点104可以将传入的流量分类为不同的EPG。分类可以基于例如网络分段标识符,例如,VLAN ID、VXLAN网络标识符(VNID)、NVGRE虚拟子网标识符(VSID)、MAC地址、IP地址等。
在一些情况下,ACI基础设施中的分类可以由应用虚拟交换机(AVS)实现,其可以在诸如服务器或交换机之类的主机上运行。例如,AVS可以基于指定的属性对流量进行分类,并且对具有不同标识符(例如,网络分段标识符(例如,VLAN ID))的不同属性EPG的分组进行标记。最后,叶节点104可以基于其标识符和实施策略来将分组与其属性EPG捆绑,这可以由一个或多个控制器116实现和/或管理。叶节点104可以对来自主机的流量属于哪个EPG进行分类并且相应地实施策略。
另一示例SDN解决方案基于VMWARE NSX。使用VMWARE NSX,主机可以运行分布式防火墙(DFW),其可以对流量进行分类和处理。考虑将三种类型的VM(即,应用、数据库和webVM)放入单个第2层网络分段的情况。可以基于VM类型在网络分段内提供流量保护。例如,可以在web VM之间允许HTTP流量,并且在web VM与应用或数据库VM之间不允许HTTP流量。为了对流量进行分类并实现策略,VMWARE NSX可以实现安全组,该安全组可用于对特定VM(例如,web VM、应用VM、数据库VM)进行分组。可以配置DFW规则以实现针对特定安全组的策略。为了说明,在先前的示例的上下文中,DFW规则可以被配置为阻止web、应用和数据库安全组之间的HTTP流量。
回到图1A,网络环境100可以通过叶节点104、服务器106、管理程序108、VM 110、应用112和控制器116来部署不同的主机,例如VMWARE ESXi主机、WINDOWS HYPER-V主机、裸金属物理主机等。网络环境100可以与各种管理程序108、服务器106(例如,物理和/或虚拟服务器)、编排平台等进行互操作。网络环境100可以实现声明性模型以允许其与应用设计和整体网络策略的集成。
控制器116可以提供对软件定义的网络(SDN)基础设施的结构信息、应用配置、资源配置、应用级配置建模的集中访问,与管理系统或服务器的集成等。控制器116可以形成通过上行(northbound)API与应用平面进行接口,并且通过下行(southbound)API与数据平面进行接口的控制平面。
如前所述,控制器116可以定义和管理网络环境100中的针对配置的(一个或多个)应用级模型。在一些情况下,还可以由其他组件来管理和/或定义应用或设备配置。例如,管理程序或虚拟设备(例如,VM或容器)可以运行服务器或管理工具来管理网络环境100中的软件和服务,包括虚拟设备的配置和设置。
如上所示,网络环境100可以包括一个或多个不同类型的SDN解决方案、主机等。为了清楚和解释的目的,将参考ACI框架描述本公开中的各种示例,并且控制器116可以可互换地被称为控制器、APIC或APIC控制器。然而,应该注意,本文的技术和概念不限于ACI解决方案,并且可以在其他架构和场景中实现,包括其他SDN解决方案以及可以不部署SDN解决方案的其他类型的网络。
此外,如本文所引用的,术语“主机”可以指代服务器106(例如,物理的或逻辑的)、管理程序108、VM 110、容器(例如,应用112)等,并且可以运行或包括任何类型的服务器或应用解决方案。“主机”的非限制性示例可以包括虚拟交换机或路由器,例如分布式虚拟交换机(DVS)、应用虚拟交换机(AVS)、向量分组处理(VPP)交换机;VCENTER和NSX管理器;裸金属物理主机;HYPER-V主机;VM;DOCKER容器;等等。
图1B示出了网络环境100的另一示例。在该示例中,网络环境100包括连接到结构120中的叶节点104的端点122。端点122可以是物理和/或逻辑或虚拟实体,诸如服务器、客户端、VM、管理程序、软件容器、应用、资源、网络设备、工作负载等。例如,端点122可以是表示下列项的对象:物理设备(例如,服务器、客户端、交换机等)、应用(例如,web应用、数据库应用等)、逻辑或虚拟资源(例如,虚拟交换机、虚拟服务设备、虚拟化网络功能(VNF)、VM、服务链等)、运行软件资源的容器(例如,应用、设备、VNF、服务链等)、存储设备、工作负载或工作负载引擎等。端点122可以具有地址(例如,身份)、位置(例如,主机、网络分段、虚拟路由和转发(VRF)实例、域等)、一个或多个属性(例如,名称、类型、版本、补丁级别、OS名称、OS类型等)、标签(例如,安全标签)、简档等。
端点122可以与相应的逻辑组118相关联。逻辑组118可以是包含根据以下各项分组在一起的端点(物理和/或虚拟)的逻辑实体:一个或多个属性(例如,端点类型(例如,VM类型、工作负载类型、应用类型等)),一个或多个要求(例如,策略要求、安全要求、QoS要求、客户要求、资源要求等),资源名称(例如,VM名称、应用名称等),简档,平台或操作系统(OS)特性(例如,包括访客和/或主机OS的OS类型或名称等),关联的网络或租户,一个或多个策略,标签等。例如,逻辑组可以是表示分组在一起的端点集合的对象。为了说明,逻辑组1可以包含客户端端点,逻辑组2可以包含web服务器端点,逻辑组3可以包含应用服务器端点,逻辑组N可以包含数据库服务器端点等。在一些示例中,逻辑组118是ACI环境中的EPG和/或另一SDN环境中的其他逻辑组(例如,SG)。
可以基于逻辑组118对去往端点122和/或来自端点122的流量进行分类、处理、管理等。例如,逻辑组118可以用于对去往端点122或者来自端点122的流量进行分类,将策略应用于去往端点122或者来自端点122的流量,定义端点122之间的关系,定义端点122的角色(例如,端点是消费服务还是提供服务等),将规则应用于去往端点122或来自端点122的流量,对去往端点122或来自端点122的流量应用过滤器或访问控制列表(ACL),为去往端点122或来自端点122的流量定义通信路径,实施与端点122相关联的要求,实现与端点122相关联的安全性以及其他配置等。
在ACI环境中,逻辑组118可以是用于在ACI中定义契约的EPG。契约可以包括指定EPG之间发生什么通信和如何发生通信的规则。例如,契约可以定义提供服务的是什么,消费服务的是什么以及什么策略对象与该消费关系相关。契约可以包括定义如下内容的策略:通信路径以及端点或EPG之间的通信或关系的所有相关元素。例如,Web EPG可以提供客户端EPG所消费的服务,并且该消费可以受制于过滤器(ACL)和包括一个或多个服务(例如,防火墙检验服务和服务器负载平衡)的服务图。
图2A示出了诸如网络环境100之类的SDN网络的示例方案的图示。该方案可以定义与SDN网络相关联的对象、属性和关系。在该示例中,该方案是管理信息模型200,如下所述。然而,在其他配置和实现方式中,该方案可以是与不同类型的网络相关联的不同模型或规范。
以下对管理信息模型200的讨论提及了各种术语,在整个公开中也将使用这些术语。因此,为清楚起见,本公开首先将在下面提供术语列表,随后将对管理信息模型200进行更详细的讨论。
如本文所使用的,“别名(Alias)”可以指代给定对象的可变名称。即使对象的名称一旦创建就无法更改,别名也可以是可以更改的字段。术语“别名化(Aliasing)”可以指代与其他规则重叠的规则(例如,契约、策略、配置等)。例如,如果在网络的逻辑模型中定义的契约1与在网络的逻辑模型中定义的契约2完全重叠,则可以说契约1别名化契约2。在此示例中,通过别名化契约2,契约1使得契约2冗余或不可操作。例如,如果契约1具有比契约2更高的优先级,则这种别名化可基于契约1的重叠和更高优先级特性而致使契约2冗余。
如本文所使用的,术语“APIC”可以指代ACI框架中的一个或多个控制器(例如,控制器116)。APIC可以为ACI多租户结构提供统一的自动化和管理点、策略编程、应用部署、健康监控。APIC可以实现为单个控制器,分布式控制器,或复制的、同步的和/或集群的控制器。
如本文所使用的,术语“BDD”可以指代二元决策图,并且术语“ROBDD”可以指代归约有序二元决策图。二元决策图或归约有序二元决策图可以是表示变量和/或函数(例如,布尔函数)的数据结构。
如本文所使用的,术语“BD”可以指代桥接域。桥接域可以是一组共享相同洪泛或广播特性的逻辑端口。与虚拟LAN(VLAN)一样,桥接域可以跨越多个设备。桥接域可以是第2层构建。
如本文所使用的,“消费者”可以指代消费服务的端点、资源和/或EPG。
如本文所使用的,“上下文”可以指代地址或网络域,例如第3层(L3)地址域。在一些情况下,上下文可以允许路由表的多个实例存在并同时工作。这通过允许在不使用多个设备的情况下对网络路径进行分段来提高功能性。上下文的非限制性示例可以包括虚拟路由和转发(VRF)实例、私有网络等。
如本文所使用的,术语“契约”可以指代指定在网络中进行什么通信以及如何进行通信(例如,允许、拒绝、过滤、处理通信等)的规则或配置。在ACI网络中,契约可以指定端点和/或EPG之间的通信如何发生。在一些示例中,契约可以提供类似于访问控制列表的规则。
如本文所使用的,术语“可辨别名称”(DN)可以指代描述诸如MO之类的对象并且定位其在管理信息模型200中的位置的唯一名称。在一些情况下,DN可以是(或等同于)全限定域名(FQDN)。
如本文所使用的,术语“端点组”(EPG)可以指代与端点的集合或组相关联的逻辑实体或对象,如先前参考图1B所描述的。
如本文所使用的,术语“过滤器”可以指代用于允许通信的参数或配置。例如,在默认情况下通信被阻止的白名单模型中,必须给予通信明确的许可,以防止此类通信被阻止。过滤器可以定义针对一个或多个通信或分组的(一个或多个)许可。因此,过滤器的功能可以类似于ACL或防火墙规则。在一些示例中,过滤器可以在分组(例如,TCP/IP)头部字段(header field)中实现,例如,L3协议类型、L4(第4层)端口等,其例如用于允许端点或EPG之间的入站或出站通信。
如本文所使用的,术语“L2输出”可以指代桥接连接。桥接连接可以连接同一网络的两个或更多个分段,使得它们可以通信。在ACI框架中,L2输出可以是ACI结构(例如,结构120)和外部第2层网络(例如,交换机)之间的桥接(第2层)连接。
如本文所使用的,术语“L3输出”可以指代路由连接。路由第3层连接使用一组协议,该组协议确定数据所遵循的路径以便跨网络地从其源行进到其目的地。路由连接可以根据所选协议(例如,BGP(边界网关协议)、OSPF(开放式最短路径优先)、EIGRP(增强型内部网关路由协议)等)来执行转发(例如,IP转发)。
如本文所使用的,术语“管理对象”(MO)可以指代在网络(例如,网络环境100)中管理的对象的抽象表示。对象可以是具体对象(例如,交换机、服务器、适配器等)或逻辑对象(例如,应用简档、EPG、故障等)。
如本文所使用的,术语“管理信息树”(MIT)可以指代包含系统的MO的分层管理信息树。例如,在ACI中,MIT包含ACI结构(例如,结构120)的MO。MIT也可以被称为管理信息模型(MIM),例如管理信息模型200。
如本文所使用的,术语“策略”可以指代用于控制系统或网络行为的某些方面的一个或多个规范。例如,策略可以包括命名实体,该命名实体包含用于控制系统行为的一些方面的规范。为了说明,第3层外部网络策略可以包含BGP协议,以在将结构120连接到外部第3层网络时使能BGP路由功能。
如本文所使用的,术语“简档”可以指代与策略相关联的配置细节。例如,简档可以包括命名实体,该实体包含用于实现策略的一个或多个实例的配置细节。为了说明,针对路由策略的交换机节点简档可以包含特定于交换机的配置细节以实现BGP路由协议。
如本文所使用的,术语“供应商”指代提供服务的对象或实体。例如,供应商可以是提供服务的EPG。
如本文所使用的,术语“主体”指代用于定义通信的契约中的一个或多个参数。例如,在ACI中,契约中的主体可以指定什么信息可以被传送以及如何被传送。主体的功能类似于ACL。
如本文所使用的,术语“租户”指代网络中的隔离单元。例如,租户可以是安全且排他的计算环境。租户可以是从策略角度看的隔离单元,但不一定代表私有网络。实际上,ACI租户可以包含多个私有网络(例如,VRF)。租户可以代表服务供应商设置中的消费者、企业设置中的组织或领域、或仅代表策略组。
如本文所使用的,术语“VRF”指代虚拟路由和转发实例。VRF可以定义第3层地址域,其允许路由表的多个实例存在并同时工作。这通过允许在不使用多个设备的情况下对网络路径进行分段来提高功能性。其也被称为情境或私有网络。
已经描述了各种术语,本公开返回到对图2A中的管理信息模型(MIM)200的讨论。如前所述,MIM 200可以是分层管理信息树或MIT。此外,MIM 200可以由控制器116(例如,ACI中的APIC)管理和处理。控制器116可以通过将其可管理特性呈现为可以根据对象在模型的分层结构内的位置而继承的对象性质来实现对被管理资源的控制。
MIM 200的分层结构从位于顶部(根)的策略全集202开始并且包含双亲(parent)节点和子节点116、204、206、208、210、212。树中的节点116、202、204、206、208、210、212表示管理对象(MO)或对象组。结构(例如,结构120)中的每个对象具有唯一的可辨别名称(DN),其描述对象并定位其在树中的位置。节点116、202、204、206、208、210、212可以包括如下所述的各种MO,其包含统管系统的操作的策略。
控制器116(例如,APIC控制器)可以为结构120提供管理、策略编程、应用部署和健康监控。
节点204包括用于使管理员能够执行基于域的访问控制的策略的租户容器。租户的非限制性示例可以包括:
-用户租户,由管理员根据用户的需求定义。它们包含统管资源(例如,应用、数据库、web服务器、网络附接存储设备、虚拟机等)的操作的策略。
-共同租户,由系统提供但可以由管理员配置。它包含统管所有租户可访问资源(例如,防火墙、负载平衡器、第4层到第7层服务、入侵检测设备等)的操作的策略。
-基础设施租户,由系统提供但可以由管理员配置。它包含统管基础设施资源(例如,结构覆盖(例如,VXLAN))的操作的策略。它还使得结构供应商能够选择性地将资源部署到一个或多个用户租户。基础设施租户策略可由管理员进行配置。
-管理租户,由系统提供但可以由管理员配置。它包含统管结构管理功能的操作的策略,这些功能用于对结构节点的带内和带外配置。管理租户包含用于控制器/结构内部通信的私有界外(out-of-bound)地址空间,该地址空间位于通过交换机的管理端口提供访问的结构数据路径之外。管理租户使能与VM控制器的通信的发现和自动化。
节点206可以包含统管交换机访问端口的操作的访问策略,交换机访问端口提供到诸如存储、计算、第2层和第3层(桥接和路由)连通性、虚拟机管理程序、第4层到第7层设备等之类的资源的连接。如果租户需要除默认链路、思科发现协议(Cisco DiscoveryProtocol,CDP)、链路层发现协议(LLDP)、链路聚合控制协议(LACP)或生成树协议(STP)中提供的接口配置以外的接口配置,则管理员可以配置访问策略以在叶节点104的访问端口上使能此类配置。
节点206可以包含统管交换机结构端口的操作的结构策略,包括诸如网络时间协议(NTP)服务器同步、中间系统到中间系统协议(IS-IS)、边界网关协议(BGP)路由反射器、域名系统(DNS)等之类的功能。结构MO包含诸如电源、风扇、底座等之类的对象。
节点208可以包含VM域,其将具有类似的联网策略要求的VM控制器聚集起来。VM控制器可以共享虚拟空间(例如,VLAN或VXLAN空间)和应用EPG。控制器116与VM控制器进行通信以发布网络配置,例如随后应用于虚拟工作负载的端口组。
节点210可以包含第4层到第7层服务集成生命周期自动化框架,其使得系统能够在服务在线或离线时动态地做出响应。策略可以提供服务设备包和库存管理功能。
节点212可以包含统管结构120的用户权限、角色和安全域的访问、认证和计费(AAA)策略。
分层策略模型可以很好地适合API,例如REST API接口。调用时,API可以读取或写入MIT中的对象。URL可以直接映射到标识MIT中的对象的可辨别名称。例如,MIT中的数据可以被描述为以XML或JSON编码的自包含结构化树文本文档。
图2B示出了用于MIM 200的租户部分的示例对象模型220。如前所述,租户是用于使管理员能够执行基于域的访问控制的应用策略的逻辑容器。因此,租户代表了从策略角度看的隔离单元,但不一定代表私有网络。租户可以代表服务供应商设置中的客户、企业设置中的组织或域、或者仅代表方便的策略组。此外,租户可以彼此隔离或可以共享资源。
MIM 200的租户部分204A可以包括各种实体,并且租户部分204A中的实体可以从双亲实体继承策略。租户部分204A中的实体的非限制性示例可以包括过滤器240、契约236、外部网络222、桥接域230、VRF实例234、和应用简档224。
桥接域230可以包括子网232。契约236可以包括主体238。应用简档224可以包含一个或多个EPG 226。一些应用可以包含多个组件。例如,电子商务应用可能需要web服务器、数据库服务器、位于存储区域网络中的数据、以及对允许实现金融交易的外部资源的访问。应用简档224包含与提供应用的能力在逻辑上相关的尽可能多(或少)的EPG。
EPG 226可以以各种方式来组织,例如基于它们提供的应用、它们提供的功能(例如基础设施)、它们在数据中心(例如DMZ)的位置、或者结构或租户管理员选择使用的任何组织原则。
结构中的EPG可以包含各种类型的EPG,例如,应用EPG、第2层外部网络外实例EPG、第3层外部网络外实例EPG、用于带外或带内访问的管理EPG等。EPG 226还可以包含属性228,例如基于封装的EPG、基于IP的EPG、或基于MAC的EPG。
如前所述,EPG可以包含具有共同特性或属性(例如,共同策略要求(例如,安全性、虚拟机移动性(VMM)、QoS、或第4层到第7层服务)的端点(例如,EP 122)。不是单独配置和管理端点,而是可以将它们放置在EPG中并作为群组进行管理。
策略应用于EPG,包括它们所包含的端点。EPG可以由管理员在控制器116中静态配置,或者由诸如VCENTER或OPENSTACK之类的自动系统动态地配置。
为在租户部分204A中激活租户策略,应配置结构访问策略并将其与租户策略相关联。访问策略使管理员能够配置其他网络配置,例如,端口信道和虚拟端口信道,诸如LLDP、CDP或LACP之类的协议,以及诸如监控或诊断之类的特征。
图2C示出了MIM 200中的租户实体和访问实体的示例关联260。策略全集202包含租户部分204A和访问部分206A。因此,租户部分204A和访问部分206A通过策略全集202相关联。
访问部分206A可以包含结构和基础设施访问策略。通常,在策略模型中,EPG与VLAN耦合。例如,为使流量流过,EPG被部署在具有在物理、VMM、L2输出、L3输出或光纤信道域中的VLAN的叶端口上。
因此,访问部分206A包含域简档236,其可以定义例如要与EPG相关联的物理、VMM、L2输出、L3输出或光纤信道域。域简档236包含VLAN实例简档238(例如,VLAN池)和可附接访问实体简档(AEP)240,它们直接与应用EPG相关联。AEP 240将关联的应用EPG部署到它所附接的端口,并自动执行分配VLAN的任务。虽然大型数据中心可以在数百个VLAN上配有数千个活动的VM,但结构120可以自动从VLAN池分配VLAN ID。与在传统数据中心中的中继(trunk down)VLAN相比,这节省了时间。
图2D示出了用于诸如网络环境100之类的网络的示例模型的示意图。可以基于与MIM 200中定义的各种对象、策略、属性和元素相关联的特定配置和/或网络状态参数来生成模型。模型可以被实现用于网络分析和保证,并且可以在网络的各个实现阶段和级别处提供网络描述。
如图所示,模型可以包括L_模型270A(逻辑模型)、LR_模型270B(逻辑呈现模型或逻辑运行时模型)、Li_模型272(针对i的逻辑模型)、Ci_模型274(针对i的具体模型)、和/或Hi_模型276(针对i的硬件模型)。
L_模型270A是网络(例如,网络环境100)中配置的MIM 200中的各种元素的逻辑表示,例如网络中配置的MIM 200中的对象、对象属性、对象关系、和其他元素。L_模型270A可以由控制器116基于在控制器116中针对网络输入的配置来生成,并且因此可以表示控制器116处的网络的逻辑配置。这是对在网络实体(例如,应用、租户等)的元素被连接并且结构120被控制器116配设时所期望的“最终状态(end-state)”表述的声明。因为L_模型270A表示输入在控制器116中的配置(包括MIM 200中的对象和关系),所以它还可以反映管理员的“意图”:管理员希望网络和网络元件如何运作。
L_模型270A可以是结构或网络范围的逻辑模型。例如,L_模型270A可以考虑来自每个控制器116的配置和对象。如前所述,网络环境100可以包括多个控制器116。在一些情况下,两个或更多个控制器116可以包括用于网络的不同配置或逻辑模型。在这类情况下,L_模型270A可以从控制器116获得任何配置或逻辑模型,并且基于来自所有控制器116的配置和逻辑模型来生成结构或网络范围的逻辑模型。L_模型270A因此可以合并控制器116之间的配置或逻辑模型以提供全面的逻辑模型。L_模型270A还可以解决或考虑可能由不同控制器116处的配置或逻辑模型产生的任何依赖关系、冗余、冲突等。
LR_模型270B是控制器116(例如,ACI中的APIC)从L_模型270A中解析出的抽象模型表述。LR_模型270B可以提供将被递送到物理基础设施(例如,结构120)以执行一个或多个策略的配置组件。例如,LR_模型270B可以被递送到结构120中的叶节点104,以将叶节点104配置用于与附接的端点122通信。LR_模型270B还可以合并状态信息以捕获网络(例如,结构120)的运行时状态。
在一些情况下,LR_模型270B可以提供L_模型270A的根据特定格式或表述进行规范化的表示,其可以被传播到结构120的物理基础设施(例如,叶节点104、脊节点102等),和/或可以被结构120的物理基础设施(例如,叶节点104、脊节点102等)理解。例如,LR_模型270B可以将L_模型270A中的元素与能够由结构120中的交换机解释和/或编译的特定标识符或标签(例如,用作分类器的硬件平面标识符)相关联。
Li_模型272是从L_模型270A和/或LR_模型270B获得的交换机级或特定于交换机的模型。Li_模型272可以将L_模型270A和/或LR_模型270B投影在特定交换机或设备i上,并且因此可以传达L_模型270A和/或LR_模型270B应当如何在特定交换机或设备i处出现或实现。
例如,Li_模型272可以将L_模型270A和/或LR_模型270B投影为与交换机i有关,来捕获L_模型270A和/或LR_模型270B在交换机i处的交换机级表示。为了说明,Li_模型272L1可以表示投影到叶节点1(104)或在叶节点1(104)处实现的L_模型270A和/或LR_模型270B。因此,对于结构120上的各个设备(例如,叶节点104),可以从L_模型270A和/或LR_模型270B生成Li_模型272。
在一些情况下,可以使用JSON(JavaScript对象表示法)来表示Li_模型272。例如,Li_模型272可以包括JSON对象,例如规则、过滤器、条目和范围。
Ci_模型274是在单独的结构成员i(例如,交换机i)处的实际状态内(in-state)配置。换句话说,Ci_模型274是基于Li_模型272的交换机级或特定于交换机的模型。例如,控制器116可以将Li_模型272递送到叶节点1(104)。叶节点1(104)可以采用Li_模型272(其可以特定于叶节点1(104)),并且叶节点1(104)可以将Li_模型272中的策略呈现为在叶节点1(104)上运行的具体模型Ci_模型274。例如,叶节点1(104)可以通过叶节点1(104)上的OS来呈现Li_模型272。因此,Ci_模型274可以类似于经编译的软件,因为它采用叶节点1(104)处的交换机OS可以执行的Li_模型272的形式。
在一些情况下,Li_模型272和Ci_模型274可以具有相同或相似的格式。例如,Li_模型272和Ci_模型274可以基于JSON对象。具有相同或相似的格式可以促进Li_模型272和Ci_模型274中的对象进行等效或一致性比较。如本文进一步描述的,这种等效或一致性检查可以用于网络分析和保证。
Hi_模型276也是针对交换机i的交换机级或特定于交换机的模型,但是基于针对交换机i的Ci_模型274。Hi_模型276是在单独的结构成员i(例如,交换机i)处的硬件或存储器(例如,TCAM存储器)上存储或呈现的实际配置(例如,规则)。例如,Hi_模型276可以表示叶节点1(104)基于叶节点1(104)处的Ci_模型274在叶节点1(104)的硬件(例如,TCAM存储器)上存储或呈现的配置(例如,规则)。叶节点1(104)处的交换机OS可以呈现或执行Ci_模型274,并且叶节点1(104)可以存储或呈现来自存储设备(例如,叶节点1(104)处的TCAM)中的Ci_模型274的配置。来自由叶节点1(104)存储或呈现的Hi_模型276的配置表示在处理流量时将由叶节点1(104)实现的配置。
虽然模型272、274、276被示出为特定于设备的模型,但是类似的模型可以针对结构120中的结构成员(例如,叶节点104和/或脊节点102)的集合而生成或聚合。当被组合时,特定于设备的模型(例如,模型272、模型274和/或模型276)可以提供超出特定设备的结构120的表示。例如,在一些情况下,可以组合或聚合与一些或所有各个结构成员(例如,叶节点104和脊节点102)相关联的Li_模型272、Ci_模型274和/或Hi_模型276,以基于各个结构成员来生成一个或多个聚合模型。
如本文所提及的,术语H模型、T模型和TCAM模型可以互换使用以指代硬件模型,例如Hi_模型276。例如,Ti模型、Hi模型和TCAMi模型可以互换使用,以指代Hi_模型276。
模型270A、270B、272、274、276可以提供网络的各个方面或MIM 200的各个配置阶段的表示。例如,模型270A、270B、272、274、276中的一个或多个可以用于生成表示结构120的一个或多个方面(例如,底层拓扑、路由等)的底层模型278,表示网络环境100的覆盖或(一个或多个)逻辑分段的一个或多个方面(例如,COOP、MPBGP、租户、VRF、VLAN、VXLAN、虚拟应用、VM、管理程序、虚拟交换等)的覆盖模型280,表示MIM 200中的租户部分204A的一个或多个方面(例如,安全性、转发、服务链、QoS、VRF、BD、契约、过滤器、EPG、子网等)的租户模型282,表示网络环境100中的一个或多个资源(例如,存储、计算、VM、端口信道、物理元件等)的资源模型284,等等。
通常,L_模型270A可以是存在于LR_模型270B中的内容的高级表述,其应当在具体设备上被呈现为Ci_模型274和Hi_模型276表述。如果模型之间存在间隙,则可能存在不一致的配置或问题。
图3A示出了用于网络保证的示例保证设备系统300的图示。在该示例中,保证设备系统300可以包括以集群模式操作的k个资源110(例如,VM)。资源110可以指VM、软件容器、裸金属设备、端点122、或任何其他物理或逻辑系统或组件。应当注意的是,例如,虽然图3A示出了集群模式配置,但是本文还设想了其他配置,例如单模式配置(例如,单个VM、容器或服务器)或服务链。
保证设备系统300可以在一个或多个服务器106、资源110、管理程序108、EP 122、叶节点104、控制器116或任何其他系统或资源上运行。例如,保证设备系统300可以是在网络环境100中的一个或多个资源110上运行的逻辑服务或应用。
保证设备系统300可以包括数据框架308(例如,APACHE APEX、HADOOP、HDFS、ZOOKEEPER等)。在一些情况下,保证检查可以被编写为驻留在数据框架308中的个体操作器(operator),或者由驻留在数据框架308中的个体操作器提供。这允许实现本地水平扩展架构,其能够扩展到结构120(例如,ACI结构)中的任意数量的交换机。
保证设备系统300可以以可配置的周期性(例如,时段)轮询结构120。在一些示例中,分析工作流可以被设置为操作器310的DAG(有向无环图),其中数据从一个操作器流向另一操作器,并且最终生成结果并且针对每个间隔(例如,每个时段)将结果永久保存到数据库302。
上层(north-tier)实现API服务器(例如,APACHE TOMCAT、SPRING框架等)304和Web服务器306。图形用户界面(GUI)经由暴露给客户的API进行交互。客户还可以使用这些API来从保证设备系统300收集数据,以进一步集成到其他工具中。
数据框架308中的操作器310可以一起支持保证操作。以下是保证设备系统300可以通过操作器310执行的保证操作的非限制性示例。
安全策略遵守
保证设备系统300可以检查以确保来自L_模型270A的、能够反映用户对网络的意图的配置或规范(包括例如安全策略和契约)被正确地实现和/或呈现在Li_模型272、Ci_模型274和Hi_模型276中,并且因此由结构成员(例如,叶节点104)适当地实现和呈现,并且报告发现的任何错误、契约违反或不规则。
静态策略分析
保证设备系统300可以检查用户的一个或多个意图的规范中的问题(例如,识别L_模型270A中的矛盾或冲突的策略)。保证设备系统300可以基于网络的意图规范来识别线头(lint)事件。线头和策略分析可以包括对网络的(一个或多个)意图规范的语义和/或语法检查。
TCAM利用率
TCAM是结构(例如,结构120)中的稀缺资源。然而,保证设备系统300可以通过网络数据(例如,最长前缀匹配(LPM)表、路由表、VLAN表、BGP更新等)、契约、逻辑组118(例如,EPG)、租户、脊节点102、叶节点104、和网络环境100中的其他维度和/或MIM 200中的对象来分析TCAM利用率,以向网络运营商或用户提供对该稀缺资源的利用率的可见性。这对规划和其他优化目的有很大帮助。
端点检查
保证设备系统300可以验证结构(例如,结构120)在所注册的端点信息中没有不一致(例如,两个叶节点宣告相同的端点、重复的子网等),以及其他这样的检查。
租户路由检查
保证设备系统300可以验证BD、VRF、子网(内部和外部两者)、VLAN、契约、过滤器、应用、EPG等被正确地编程。
基础设施路由
保证设备系统300可以验证基础设施路由(例如,IS-IS协议)没有导致黑洞、环路、振荡(flap)的收敛问题和其他问题。
MP-BGP路由反射检查
网络结构(例如,结构120)可以与其他外部网络接口连接,并通过一个或多个协议(例如,边界网关协议(BGP)、开放式最短路径优先(OSPF)等)提供到它们的连接。通过例如MP-BGP在网络结构内通告已获知的路由。这些检查可以保证通过例如MP-BGP(例如,来自边界叶节点)的路由反射服务不具有健康问题。
逻辑线头和实时变化分析
保证设备系统300可以验证网络的规范(例如,L_模型270A)中的规则是完整的并且没有不一致或其他问题。可以由保证设备系统300通过在L_模型270A和/或MIM 200中的MO的相关联的配置上执行的语法和语义检查来检查MIM 200中的MO。保证设备系统300还可以验证不必要的、陈旧的、未使用的或冗余的配置(例如契约)被移除。
图3B示出了诸如保证设备系统300之类的用于网络保证的示例系统350的架构图。在一些情况下,系统350可以对应于先前关于图3A所讨论的操作器310的DAG。
在该示例中,拓扑探测器312与控制器116(例如,APIC控制器)通信,以便发现或以其他方式构建结构120的综合拓扑视图(例如,脊节点102、叶节点104、控制器116、端点122、和任何其他组件及其互连)。虽然各种架构组件以单个盒装方式来表示,但是应理解,给定的架构组件(例如,拓扑探测器312)可对应于一个或多个个体操作器310,并且可以包括一个或多个节点或端点,例如一个或多个服务器、VM、容器、应用、服务功能(例如,服务链中的功能或虚拟化网络功能)等。
拓扑探测器312被配置为发现结构120中的节点,例如,控制器116、叶节点104、脊节点102等。拓扑探测器312还可以检测在控制器116之间执行的多数选举,并确定控制器116之间是否存在规定数量(quorum)。如果不存在规定数量或多数,则拓扑探测器312可以触发事件并警告用户控制器116之间存在配置或其他错误,其阻止达到规定数量或多数。拓扑探测器312可以检测作为结构120的一部分的叶节点104和脊节点102,并将其相应的带外管理网络地址(例如,IP地址)发布到下游服务。这可以是在拓扑探测器312发现时段(例如,5分钟或某个其他指定间隔)结束时发布到下游服务的拓扑视图的一部分。
在一些示例中,拓扑探测器312可以接收与网络/结构(例如,结构120)相关联的控制器116(例如,APIC控制器)的列表作为输入。拓扑探测器312还可以接收相应凭证以登录到每个控制器。拓扑探测器312可以使用例如REST调用来从每个控制器检索信息。拓扑探测器312可以从每个控制器获得该控制器知道的节点(例如,叶节点104和脊节点102)的列表及其相关属性。拓扑探测器312可以从控制器116获得节点信息,包括但不限于IP地址、节点标识符、节点名称、节点域、节点URI、节点_dm、节点角色、节点版本等。
拓扑探测器312还可以确定控制器116是否在规定数量内,或者在它们之间是否充分通信耦合。例如,如果有n个控制器,则当(n/2+1)个控制器彼此相互知道和/或通信耦合时,可以满足规定数量条件。拓扑探测器312可以通过解析从控制器返回的数据,并标识其组成节点之间的通信耦合,来确定规定数量(或标识任何故障节点或控制器)。拓扑探测器312可以标识网络中每个节点的类型,例如脊节点、叶节点、APIC等,并将该信息包括在生成的拓扑信息(例如,拓扑图或模型)中。
如果不存在规定数量,则拓扑探测器312可以触发事件并警告用户需要重新配置或适当的注意。如果存在规定数量,则拓扑探测器312可以将网络拓扑信息编译为JSON对象,并将其向下游传递给其他运营商或服务,例如统一收集器314。
统一收集器314可以从拓扑探测器312接收拓扑视图或模型,并使用拓扑信息以收集来自结构120的用于网络保证的信息。统一收集器314可以轮询结构120中的节点(例如,控制器116、叶节点104、脊节点102等)以从节点收集信息。
统一收集器314可以包括一个或多个收集器(例如,收集器设备、运营商、应用、VM等),其被配置为从拓扑探测器312和/或结构120中的节点收集信息。例如,统一收集器314可以包括收集器的集群,并且每个收集器可以被分配给拓扑模型和/或结构120内的节点子集,以便从其分配的节点子集收集信息。为了性能,统一收集器314可以以并行的、多线程的方式运行。
统一收集器314可以跨收集器来执行负载平衡,以合理化整个收集过程的效率。可以通过管理节点子集到收集器的分布来优化负载平衡,例如,通过将节点随机散列到收集器。
在一些情况下,保证设备系统300可以运行统一收集器314的多个实例。这还可以允许保证设备系统300通过分片和/或负载平衡来分发为拓扑(例如,包括脊节点102、叶节点104、控制器116等的结构120)中的每个节点收集数据的任务,并且将收集任务和/或节点映射到统一收集器314的特定实例,其中跨节点的数据收集由统一收集器314的各种实例并行执行。在给定节点内,命令和数据收集可以串行执行。保证设备系统300可以控制统一收集器314的每个实例用来轮询来自结构120的数据的线程数量。
统一收集器314可以收集来自控制器116的模型(例如,L_模型270A和/或LR_模型270B)、来自结构120中的节点(例如,叶节点104和/或脊节点102)的交换机软件配置和模型(例如,Ci_模型274)、来自结构120中的节点(例如,叶节点104和/或脊节点102)的硬件配置和模型(例如,Hi_模型276)等。统一收集器314可以收集来自各个节点或结构成员(例如,叶节点104和脊节点102)的Ci_模型274和Hi_模型276,以及来自网络环境100中的一个或多个控制器(例如,控制器116)的L_模型270A和/或LR_模型270B。
统一收集器314可以轮询拓扑探测器312发现的设备,以从结构120(例如,从结构的组成成员)收集数据。统一收集器314可以使用由控制器116和/或交换机软件(例如,交换机OS)暴露的接口(包括例如表示状态转移接口和安全外壳接口)来收集数据。
在一些情况下,统一收集器314经由REST API收集L_模型270A、LR_模型270B和/或Ci_模型274,并且经由SSH、使用交换机软件所提供的实用程序(例如,用于访问交换机命令行接口(CLI)的虚拟壳(VSH或VSHELL)或用于访问线卡的运行时状态的VSH_LC壳)来收集硬件信息(例如,配置、表、结构卡信息、规则、路由等)。
统一收集器314可以轮询来自控制器116的其他信息,包括但不限于:拓扑信息、租户转发/路由信息、租户安全策略、契约、接口策略、物理域或VMM域信息、结构中的节点的OOB(带外)管理IP等。
统一收集器314可以轮询来自结构120中的节点(例如,叶节点104和脊节点102)的信息,包括但不限于:用于VLAN、BD和安全策略的Ci_模型274;节点(例如,叶节点104和/或脊节点102)的链路层发现协议(LLDP)信息;来自EPM/COOP的端点信息;来自脊节点102的结构卡信息;来自结构120中的节点的路由信息库(RIB)表;来自结构120中的节点的安全组硬件表(例如,TCAM表);等等。
在一些情况下,统一收集器314可以从网络获得运行时状态,并且将运行时状态信息合并到L_模型270A和/或LR_模型270B中。统一收集器314还可以从控制器116获得多个逻辑模型,并且基于逻辑模型生成综合的或网络范围的逻辑模型(例如,L_模型270A和/或LR_模型270B)。统一收集器314可以比较来自控制器116的逻辑模型,解决依赖性,去除冗余等,并且为整个网络或结构生成单个L_模型270A和/或LR_模型270B。
统一收集器314可以跨控制器116和结构节点或成员(例如,叶节点104和/或脊节点102)收集整个网络状态。例如,统一收集器314可以使用REST接口和SSH接口来收集网络状态。统一收集器314收集的该信息可以包括与链路层、VLAN、BD、VRF、安全策略等有关的数据。如前所述,状态信息可以在LR_模型270B中表示。统一收集器314然后可以将收集到的信息和模型发布给对这类信息感兴趣或需要这类信息的任何下游运营商。统一收集器314可以在接收到信息时发布信息,以便将数据流式传输到下游运营商。
统一收集器314所收集的数据可以被压缩并发送到下游服务。在一些示例中,统一收集器314可以以在线或实时方式收集数据,并随着数据被收集,向下游发送数据以供进一步分析。在一些示例中,统一收集器314可以以离线方式收集数据,并且编译数据以供稍后分析或传输。
保证设备系统300可以联系控制器116、脊节点102、叶节点104和其他节点以收集各种类型的数据。在一些场景中,保证设备系统300可能经历失败(例如,连通性问题、硬件或软件错误等),这使其在一段时间内无法收集数据。保证设备系统300可以无缝地处理这种失败,并基于这样的失败生成事件。
交换机逻辑策略生成器316可以从统一收集器314接收L_模型270A和/或LR_模型270B,并且为结构120中的每个网络设备i(例如,交换机i)计算Li_模型272。例如,交换机逻辑策略生成器316可以接收L_模型270A和/或LR_模型270B并通过为结构120中的每个单独节点i(例如,脊节点102和/或叶节点104)投射逻辑模型来生成Li_模型272。交换机逻辑策略生成器316可以为结构120中的每个交换机生成Li_模型272,从而为每个交换机创建基于L_模型270A和/或LR_模型270B的交换机逻辑模型。
每个Li_模型272可以表示在结构120中的网络设备i(例如,交换机i)处投影或应用的L_模型270A和/或LR_模型270B。在一些情况下,可以用与网络设备兼容的方式对Li_模型272进行规范化或格式化。例如,Li_模型272可以用网络设备能够读取或执行的方式进行格式化。为了说明,Li_模型272可以包括能够由相应网络设备解释的特定标识符(例如,控制器116用作分类器的硬件平面标识符等等)或标签(例如,策略组标签)。在一些情况下,Li_模型272可以包括JSON对象。例如,Li_模型272可以包括JSON对象,用于表示规则、过滤器、条目、范围等。
Li_模型272所使用的格式可以与Ci_模型274的格式相同或一致。例如,Li_模型272和Ci_模型274都可以基于JSON对象。相似或匹配的格式可以使得Li_模型272和Ci_模型274能够进行等效或一致性比较。如本文进一步解释的,这种等效检查可以帮助进行网络分析和保证。
交换机逻辑配置生成器316还可以执行变化分析并生成针对在L_模型270A和/或LR_模型270B中发现的问题的线头事件(lint event)或记录。线头事件或记录可用于为用户或网络运营商生成警报。
策略操作器318可以针对每个交换机从统一收集器314接收Ci_模型274和Hi_模型276,并且针对每个交换机从交换机逻辑策略生成器316接收Li_模型272,并且基于Ci_模型274、Hi_模型276和Li_模型272执行保证检查和分析(例如,安全遵守检查、TCAM利用率分析等)。策略操作器318可以通过比较一个或多个模型来逐个交换机地执行保证检查。
返回到统一收集器314,统一收集器314还可以将L_模型270A和/或LR_模型270B发送到路由策略解析器320,并且将Ci_模型274和Hi_模型276发送到路由解析器326。
路由策略解析器320可以接收L_模型270A和/或LR_模型270B,并解析(一个或多个)模型以获得与下游操作器(例如,端点检查器322和租户路由检查器324)相关的信息。类似地,路由解析器326可以接收Ci_模型274和Hi_模型276,并解析每个模型以获得针对下游操作器(端点检查器322和租户路由检查器324)的信息。
在解析Ci_模型274、Hi_模型276、L_模型270A和/或LR_模型270B之后,路由策略解析器320和/或路由解析器326可以将清理的协议缓冲区(Proto Buff)发送到下游操作器(端点检查器322和租户路由检查器324)。然后,端点检查器322可以生成与端点违规相关的事件(例如,重复的IP、APIPA等),并且租户路由检查器324可以生成与BD、VRF、子网、路由表前缀等的部署相关的事件。
图4示出了用于基于诸如网络环境100之类的网络的逻辑模型270来构建特定于节点的逻辑网络(例如,Li_模型272)的示例图400。逻辑模型270可以包括L_模型270A和/或LR_模型270B,如图2D所示。逻辑模型270可以包括要推送到结构120中的设备(例如,叶节点104)的网络的对象和配置。逻辑模型270可以提供网络的网络范围的表示。因此,逻辑模型270可以用于为结构120中的节点(例如,叶节点104)构建特定于节点的逻辑模型(例如,Li_模型272)。
逻辑模型270可以适用于每个节点(例如,叶节点104),以便为每个节点生成相应逻辑模型,该相应逻辑模型表示和/或对应于来自逻辑模型270中的与该节点有关的(一个或多个)部分和/或信息,和/或来自逻辑模型270中的应该位于该节点处、和/或在该节点处被推送、被存储和/或被呈现的(一个或多个)部分和/或信息。每个特定于节点的逻辑模型Li_模型272可以包含来自逻辑模型270中的与特定节点有关的那些对象、属性、配置、数据等,包括来自逻辑模型270中的当逻辑模型270指定的网络范围的意图传播或投影到各个节点时在特定节点上投影或呈现的任何(一个或多个)部分。换句话说,为了执行在逻辑模型270中指定的意图,各个节点(例如,叶节点104)可以实现逻辑模型270的相应部分,使得各个节点可以一起执行在逻辑模型270中指定的意图。
图5A示出了用于网络(例如,网络环境100)中的策略分析的示例系统的示意图。策略分析器504可以执行保证检查,以检测配置违规、逻辑线头事件、矛盾或冲突的策略、未使用的契约、不完整的配置、路由检查、呈现错误、错误的规则等。策略分析器504可以检查L_模型270A(或如图4所示的逻辑模型270)中用户的一个或多个意图的规范,以确定控制器116中是否有任何配置与用户的一个或多个意图的规范不一致。
策略分析器504可以包括在保证设备系统300中执行或托管的操作器310中的一个或多个。然而,在其他配置中,策略分析器504可以运行与操作器310和/或保证设备系统300分开的一个或多个操作器或引擎。例如,策略分析器504可以经由VM、软件容器、VM或软件容器的集群、端点、端点集合、服务功能链等(其中任一者可以与保证设备系统300分开)来实现。
策略分析器504可以接收逻辑模型集合502作为输入,逻辑模型集合502可以包括如图4所示的逻辑模型270;和/或如图2D所示的L_模型270A、LR_模型270B和/或Li_模型272。策略分析器504还可以接收规则508作为输入。规则508可以例如基于来自逻辑模型集合502的一个或多个逻辑模型中的每个特征(例如,每个对象、每个对象属性、每个契约、每个规则等)而被定义。规则508可以基于对象、关系、定义、配置、以及MIM 200中的任何其他特征。规则508可以指定条件、关系、参数、和/或用于标识配置违规或问题的任何其他信息。
规则508可以包括用于标识语法违规或问题的信息。例如,规则508可以包括用于执行语法检查的一个或多个语句和/或条件。语法检查可以验证逻辑模型和/或逻辑模型集合502的配置是否完整,并且可以帮助标识来自逻辑模型和/或逻辑模型集合502的未使用的配置或规则。语法检查还可以验证分层MIM 200中的配置是否已经在逻辑模型集合502中正确地或完整地定义,并且标识定义但未使用的任何配置。为了说明,规则508可以指定:在逻辑模型集合502中定义的每个租户都应该具有配置的上下文;逻辑模型集合502中的每个契约都应该指定供应商EPG和消费者EPG;逻辑模型集合502中的每个契约都应该指定主体、过滤器和/或端口;等等。
规则508还可以包括用于执行语义检查和标识语义违规的信息。语义检查可以检查冲突的规则或配置。例如,规则1和规则2可能重叠并且产生别名化问题,规则1可能比规则2更加具体并且产生冲突,规则1可能掩盖规则2或基于相应优先级无意地否决规则2,等等。因此,规则508可以定义可能产生别名化规则、冲突规则等的条件。为了说明,规则508可以指示:如果针对两个对象之间的通信的允许策略的优先级高于针对两个对象之间的相同通信的拒绝策略,则该允许策略可能与该拒绝策略相冲突。规则508可以指示:由于别名化和/或优先级,针对对象的一个规则使得另一规则显得不必要。作为另一示例,规则508可以指示契约中的QoS策略与存储在节点上的QoS规则相冲突。
策略分析器504可以将规则508应用于逻辑模型集合502,以基于检测到的任何问题来检查逻辑模型集合502中的配置并且输出配置违规事件506(例如,警报、日志、通知等)。配置违规事件506可以包括语义或语义问题,例如,不完整的配置、冲突的配置、别名化规则、未使用的配置、错误、策略违反、错误配置的对象、不完整的配置、不正确的契约范围、不恰当的对象关系等。
在一些情况下,策略分析器504可以迭代地遍历基于逻辑模型集合502和/或MIM200生成的树中的每个节点,并且在树中的每个节点上应用规则508,以确定是否有任何节点发生违规(例如,不完整的配置、不恰当的配置、未使用的配置等)。当策略分析器504检测到任何违规时,它可以输出配置违规事件506。
图5B示出了网络模型的示例等效图510。在该示例中,可以将逻辑模型270与从结构120中的一个或多个叶节点104获得的Hi_模型276进行比较。该比较可以提供等效检查,以便确定在(一个或多个)控制器116处的网络环境100的逻辑配置是否与在一个或多个叶节点104上呈现的规则(例如,在诸如TCAM之类的存储设备中的规则和/或配置)一致或冲突。为了说明的目的,逻辑模型270和Hi_模型276被示出为在图5B的等效检查示例中比较的模型。然而,应该注意,在其他示例中,可以检查其他模型以对那些模型执行等效检查。例如,等效检查可以将逻辑模型270与Ci_模型274和/或Hi_模型276进行比较,将Li_模型272与Ci_模型274和/或Hi_模型276进行比较,将Ci_模型274与Hi_模型276进行比较等等。
等效检查可以标识网络运营商配置的意图是否与网络的实际行为一致,以及在网络中的模型和/或设备之间传播的信息是否一致、冲突、包含错误等等。例如,网络运营商可以从(一个或多个)控制器116定义网络环境100的对象和配置。(一个或多个)控制器116可以存储来自网络运营商的定义和配置,并且构建网络环境100的逻辑模型(例如,L_模型270A)。(一个或多个)控制器116可以将由网络运营商提供的并且在逻辑模型中反映的定义和配置推送到结构120中的每个节点(例如,叶节点104)。在一些情况下,(一个或多个)控制器116可以推送逻辑模型的特定于节点的版本(例如,Li_模型272),该版本反映网络的逻辑模型(例如,L_模型270A)中与该节点有关的信息。
结构120中的节点可以接收这类信息,并且在节点的软件(例如,操作系统)上呈现或编译规则。可以将在节点的软件上呈现或编译的规则/配置构建为构建模型(例如,Ci_模型274)。然后,可以将构建模型中的规则从节点的软件推送到节点的硬件(例如,TCAM),并且作为规则在节点的硬件上存储或呈现。可以将在节点的硬件上存储或呈现的规则构建为该节点的硬件模型(例如,Hi_模型276)。
各种模型(例如,逻辑模型270和Hi_模型76)因此可以在网络运营商输入的定义和配置被推送通过每个阶段时,表示每个阶段处的规则和配置(例如,(一个或多个)控制器116处的意图规范、在节点的软件上进行呈现或编译、在节点的硬件上进行呈现或存储等)。因此,可以使用各种模型(例如,逻辑模型270和Hi_模型276、Li_模型272和Ci_模型274或Hi_模型276、Ci_模型274和Hi_模型276等)的等效检查,来确定定义和配置在与各种模型相关联的任何阶段处是否正确地被推送、被呈现/或被存储。
如果模型通过了等效检查,则可以将检查阶段处的定义和配置(例如,(一个或多个)控制器116、节点上的软件、节点上的硬件等)验证为准确且一致。相反,如果等效检查中存在错误,则可以在一个或多个特定阶段处检测到错误配置。各种模型之间的等效检查也可以用于确定问题或错误配置所发生的位置(例如,在哪个阶段)。例如,可以基于哪个(或哪些)模型等效检查失败,来确定问题或错误配置所发生的阶段。
逻辑模型270和Hi_模型276可以在相应结构512A、512B中存储或呈现规则、配置、属性、定义等。例如,逻辑模型270可以在诸如文件或对象(例如,JSON、XML等)之类的数据结构512A中存储或呈现规则、配置、对象、属性等,并且Hi_模型276可以在诸如TCAM存储器之类的存储设备512B中存储或呈现规则、配置等。与逻辑模型270和Hi_模型276相关联的结构512A、512B可以影响所存储或所呈现的数据(例如,规则、配置、属性、定义等)的格式、组织、类型等。
例如,逻辑模型270可以将数据存储为对象和对象属性514A,例如EPG、契约、过滤器、租户、上下文、BD、网络范围的参数等。Hi_模型276可以将数据存储为值和表514B,例如值/掩码对、范围表达式、辅助表等。
作为结果,可以对逻辑模型270和Hi_模型276中的数据进行规范化,典型化、制图、建模、重新格式化、平整等操作,以执行逻辑模型270和Hi_模型276之间的等效。例如,可以使用位向量、布尔函数、ROBDD等对数据进行转换,以执行逻辑模型270和Hi_模型276之间的等效的数学检查。
图5C示出了用于执行模型的等效检查的示例架构520。不使用蛮力来确定输入模型的等效,网络模型可以替代地被表示为特定数据结构,例如归约有序二元决策图(ROBDD)和/或位向量。在该示例中,输入模型表示为ROBDD,其中每个ROBDD对于输入规则及其优先级顺序都是典型的(唯一的)。
首先将每个网络模型转换为优先级排序的规则的简单列表。在一些示例中,契约可以是特定于EPG的并且因此可以定义EPG之间的通信,并且规则可以是这类契约的特定节点到节点实现方式。架构520包括形式分析引擎522。在一些情况下,形式分析引擎522可以是策略分析器504和/或保证设备系统300的一部分。例如,形式分析引擎522可以托管在策略分析器504和/或保证设备系统300内,或由策略分析器504和/或保证设备系统300执行。为了说明,可以经由策略分析器504和/或保证设备系统300上的一个或多个操作器、VM、容器、服务器、应用、服务功能等来实现形式分析引擎522。在其他情况下,形式分析引擎522可以与策略分析器504和/或保证设备系统300分开。例如,形式分析引擎522可以是独立引擎、在多个系统或网络上托管的引擎的集群、在一个或多个系统或网络上托管的服务功能链、VM、软件容器、VM或软件容器的集群、基于云的服务等。
形式分析引擎522包括ROBDD生成器526。ROBDD生成器526接收输入524,该输入524包括用于模型272、274、276的优先级排序的规则的简单列表,如图2D所示。这些规则可以表示为布尔函数,其中每个规则包括动作(例如,允许、允许_日志、拒绝、拒绝_日志(Permit,Permit_Log,Deny,Deny_Log))和将触发该动作的一组条件(例如,一个或多个流量配置,例如,分组源、目的地、端口、头部、QoS策略、优先级标记等)。例如,规则可以被设计为允许端口80上的所有流量。在一些示例中,每个规则可以是具有m个键-值对字段的n位字符串。例如,每个规则可以是具有13个键-值对字段的147位字符串。
作为简化示例,考虑Li_模型272中的优先级排序的规则L1、L2、L3和L4的简单列表,其中L1是最高优先级规则,并且L4是最低优先级规则。首先对照规则L1检查给定分组。如果L1被触发,则根据规则L1中包含的动作来处理分组。否则,然后对照规则L2检查分组。如果L2被触发,则根据规则L2中包含的动作来处理分组。否则,然后对照规则L3检查分组,依此类推,直到分组触发规则或到达规则列表的末尾。
ROBDD生成器526可以为一个或多个模型的组成规则L1-L4计算一个或多个ROBDD或BDD(二元决策图)。可以为由规则L1-L4编码的每个动作或能够由规则L1-L4编码的每个动作,生成ROBDD,使得多个动作和所生成的多个ROBDD或BDD之间存在一一对应的关系。例如,规则L1-L4可以用于生成BDD 540,包括L_允许BDD、L_允许_日志BDD、L_拒绝BDD和L_拒绝_日志BDD
通常,ROBDD生成器526从接收到的规则列表中的输入524的最高优先级规则开始计算。继续Li_模型272中的规则L1-L4的示例,ROBDD生成器526从规则L1开始。基于规则L1指定的动作(例如,允许、允许_日志、拒绝、拒绝_日志),将规则L1添加到用于该动作的相应ROBDD。接下来,将规则L2添加到用于其指定的动作的相应ROBDD。在一些示例中,可以使用L2的简化形式,由L1’L2给出,其中L1’表示L1的逆(inverse)。然后对规则L3和L4重复该过程,规则L3和L4具有简化形式,分别由(L1+L2)’L3和(L1+L2+L3)’L4给出。
显然,L_允许BDD和每个其他特定于动作的ROBDD对每个组成规则L1、L2、L3、L4的未被较高优先级规则捕获的部分进行编码。即,L1’L2表示规则L2的与规则L1不重叠的部分,(L1+L2)’L3表示规则L3的与规则L1或L2都不重叠的部分,并且(L1+L2+L3)’L4表示规则L4的与规则L1或L2或L3都不重叠的部分。这种简化形式可以独立于由重叠或较高优先级规则指定的动作,并且可以基于将使得触发较高优先级规则的条件进行计算。
ROBDD生成器526同样可以为与输入524相关联的剩余模型(例如,该示例中的Ci_模型274和Hi_模型276,或ROBDD生成器526接收到的任何其他模型)的每个相关联的动作生成ROBDD。根据生成的ROBDD,可以经由等效检查器528来检查模型的任何两个或更多个ROBDD的形式等效,该等效检查器528建立输入ROBDD之间的冲突的冲突ROBDD编码区域。
在一些示例中,被比较的ROBDD将与相同的动作相关联。例如,等效检查器528可以通过计算L_允许BDD和H_允许BDD之间的不包含性析取(exclusive disjunction),来检查L_允许BDD相对于H_允许BDD的形式等效。更具体地,计算了L_允许BDD⊕H_允许BDD(即,L_允许BDDXOR H_允许BDD),但是应当理解,以下描述也适用于其他网络模型(例如,逻辑模型270、L_模型270A、LR_模型270B、Li_模型272、Ci_模型274、Hi_模型276等)以及相关联的动作(允许、允许_日志、拒绝、拒绝_日志等)。
图6A中示出了示例计算,图6A示出了针对L_允许BDD和H_允许BDD计算的允许冲突ROBDD 600A的简化表示。如图所示,L_允许BDD包括唯一部分602(阴影)和重叠604(非阴影)。类似地,H_允许BDD包括唯一部分606(阴影)和相同的重叠604。
允许冲突ROBDD 600A包括唯一部分602和唯一部分606,该唯一部分602表示包含在L_允许BDD内但不包含在H_允许BDD内(即,计算为L_允许BDD*H_允许BDD’)的分组配置和网络动作的集合,并且该唯一部分606表示包含在H_允许BDD内但不包含在L_允许BDD内(即,计算为L_允许BDD’*H_允许BDD)的分组配置和网络动作的集合。注意,非阴影重叠604不是允许冲突ROBDD 600A的一部分。
从概念上讲,示出L_允许BDD的完整圆圈(例如,唯一部分602和重叠604)表示包含在由输入模型Li_模型272编码的允许规则内(或触发由输入模型Li_模型272编码的允许规则)的分组配置的完整枚举集合。例如,假设Li_模型272包含以下规则:
L1:端口=[1-3]允许
L2:端口=4允许
L3:端口=[6-8]允许
L4:端口=9拒绝
其中“端口”表示接收到的分组的端口号,然后示出L_允许BDD的圆圈包含具有允许的端口=[1-3]、4、[6-8]的所有分组的集合。该完整圆圈之外的所有内容表示以下分组条件和/或动作的空间,这些分组条件和/或动作不同于Li_模型272中包含的允许规则所指定的那些分组条件和/或动作。例如,规则L4编码port=9拒绝,并且将落由在L_允许BDD划出的区域之外。
类似地,示出H_允许BDD的完整圆圈(例如,唯一部分606和重叠604)表示包含在由输入模型Hi_模型276编码的允许规则内(或触发由输入模型Hi_模型276编码的允许规则)的分组配置和网络动作的完整枚举集合。假设Hi_模型276包含以下规则:
H1:端口=[1-3]允许
H2:端口=5允许
H3:端口=[6-8]拒绝
H4:端口=10拒绝_日志
在L_允许BDD和H_允许BDD之间的比较中,仅规则L1和H1是等效的,因为它们在分组条件和动作上都匹配。L2和H2是不等效的,因为即使它们指定了相同的动作(允许),该动作也是在不同的端口号(4与5)上触发的。L3和H3是不等效的,因为即使它们在相同的端口号(6-8)上触发,它们也会触发不同的操作(允许与拒绝)。L4和H4是不等效的,因为它们在不同的端口号(9与10)上触发,并且还触发不同的动作(拒绝与拒绝_日志)。这样,重叠604仅包含由允许规则L1和H1捕获的分组的集合,即,具有允许的端口=[1-3]的分组。唯一部分602仅包含由允许规则L2和L3捕获的分组的集合,而唯一部分606仅包含由允许规则H2捕获的分组的集合。这两个唯一部分编码Li_模型272将触发允许的分组条件与硬件渲染的Hi_模型276将触发允许的分组条件之间的冲突。因此,正是这两个唯一部分602和606构成了允许冲突ROBDD 600A。剩余规则L4、H3和H4不是允许规则,并且因此未在L_允许BDD、H_允许BDD或允许冲突ROBDD 600A中表示。
通常,任何两个模型之间的特定于动作的重叠都包含将触发相同动作(无论是应用第一模型的规则还是应用第二模型的规则)的分组的集合,而这相同的两个模型之间的特定于动作的冲突ROBDD包含通过在不同条件下触发、触发不同动作、或两者都发生的方式而产生冲突的分组的集合。
应该注意的是,在以上关于图6A描述的示例中,出于说明目的,将Li_模型272和Hi_模型276用作示例输入模型,但是可以类似地使用其他模型。例如,在一些情况下,可以基于逻辑模型270(如图4所示)和/或任意模型270A、270B、272、274、276(如图2D所示)来计算冲突ROBDD。
此外,为了在上面的讨论中清楚起见,允许冲突ROBDD 600A描绘了L_允许BDD和H_允许BDD作为单个实体,而不是说明每个单独规则的效果。相应地,图6B和图6C呈现了其中描述各个规则的允许冲突ROBDD。图6B呈现了在规则L1、L2、H1和H2的列表之间取得的允许冲突ROBDD 600B。图6C呈现了将规则H3添加到允许冲突ROBDD 600B的允许冲突ROBDD 600C。两幅图都保持与图6A中介绍的相同阴影约定,其中给定冲突ROBDD仅包括所示出的阴影区域。
转到图6B,示出了跨包括规则L1和L2的第二L_允许BDD以及包括规则H1和H2的第二H_允许BDD计算的允许冲突ROBDD 600B。如图所示,规则L1和H1是相同的,并且彼此完全重叠,这两个规则都包括重叠612和重叠613。重叠612在规则L1和H1之间是公共的,而重叠613在规则L1、H1和L2之间是公共的。为了后续解释的目的,假设规则L1和H1均由端口=[1-33]允许来定义。
规则L2和H2不相同。规则L2包括重叠613、唯一部分614和重叠616。规则H2仅包括重叠616,因为它完全包含在规则L2所包围的区域内。例如,规则L2可以是端口=[10-20]允许,而规则H2可以是端口=[15-17]允许。从概念上讲,这是网络保证检查可能遇到的错误的示例,其中由用户意图指定的Li_模型272规则(例如,L2)在节点的存储器(例如,交换机TCAM)中被错误地呈现为Hi_模型276规则(例如,H2)。具体地,所呈现的Hi_模型276规则H2的范围小于L2中包含的用户意图指定的意图范围。例如,如果交换机TCAM空间不足,并且没有足够的空闲条目来容纳Li_模型272规则的完整表示,则可能会出现这种情况。
无论原因如何,该错误通过将允许冲突ROBDD 600B构建为L_允许BDD⊕H_允许BDD来检测,其中该计算的结果由阴影的唯一部分614指示。该唯一部分614表示包含在L_允许BDD内但不包含在H_允许BDD内的分组配置和网络动作的集合。具体地,唯一部分614包含在规则L2所包围的区域内,但不包含在规则H1和H2所包围的任何区域内,并且具体包括由端口=[14,18-20]允许所定义的集合。
为了理解这是如何确定的,请记住规则L2是由端口=[10-20]允许来表示的。规则H1划出L2的由端口=[10-13]允许所定义的部分,其表示为重叠613。规则H2划出L2的由端口=[15-17]允许所定义的部分,其表示为重叠616。这仅留下端口=[14,18-20]允许作为L2所包围的区域的非重叠部分,或者换句话说,唯一部分614包括允许冲突ROBDD 600B。
图6C示出了允许冲突ROBDD 600C,该允许冲突ROBDD 600C与允许冲突ROBDD 600B相同,除了新添加的第三规则H3:端口=[19-25]允许。规则H3包括重叠部分628,其表示包含在规则H3和L2两者中的条件和动作的集合,并且规则H3还包括唯一部分626,其表示仅包含在规则H3中的条件和动作的集合。从概念上讲,这可以表示错误,其中由用户意图指定的Li_模型272规则(例如,L2)在节点存储器中被错误地呈现为两个Hi_模型276规则(例如,H2和H3)。不存在将单个Li_模型272规则表示为多个Hi_模型276规则的固有故障。而是,这里的故障在于以下事实:两个相应Hi_模型276规则不能充分捕获允许规则L2所包围的分组配置的集合的全部范围。规则H2与规则L2相比太窄,如上面关于图6B所讨论的,并且规则H3太窄并且不正确地延伸超过规则L2所包围的区域的边界。
与先前情况一样,该错误通过将冲突ROBDD 600C构建为L_允许BDD⊕H_允许BDD来检测,其中该计算的结果由阴影的唯一部分624以及阴影的唯一部分626指示,该阴影的唯一部分624表示包含在L_允许BDD内但不包含在H_允许BDD内的分组配置和网络动作的集合,并且该阴影的唯一部分626表示包含在H_允许BDD内但不包含在L_允许BDD内的分组配置和网络动作的集合。具体地,唯一部分624仅包含在规则L2之内,并且包括由端口=[14,18]允许所定义的集合,而唯一部分626仅包含在规则H3之内,并且包括由端口=[21-25]允许所定义的集合。因此,允许冲突ROBDD 600C包括由端口=[14,18,21-25]允许所定义的集合。
上面仅参考了允许冲突ROBDD,但是可以理解,为与给定模型相关联的每个动作生成了冲突ROBDD。例如,对上述Li_模型272和Hi_模型276的完整分析可能需要使用ROBDD生成器526生成八个ROBDD(L_允许BDD、L_允许_日志BDD、L_拒绝BDD和L_拒绝_日志BDD,H_允许BDD、H_允许_日志BDD、H_拒绝BDD和H_拒绝_日志BDD),并且然后使用等效检查器528生成允许冲突ROBDD、允许_日志冲突ROBDD、拒绝冲突ROBDD、和拒绝_日志冲突ROBDD。
通常,等效检查器528基于输入网络模型或来自ROBDD生成器526的输入ROBDD,来生成特定于动作的冲突ROBDD。如图5C所示,等效检查器528接收输入对(LBDD,HBDD)、(LBDD,CBDD)、(CBDD,HBDD),尽管应当理解,这些表示是为了清楚起见,并且可以利用上面讨论的任何特定于动作的ROBDD来替换。根据这些特定于动作的冲突ROBDD,等效检查器528可以确定输入之间不存在冲突,即,给定的特定于动作的冲突ROBDD是空的。在图6A-图6C的示例的上下文中,空的冲突ROBDD将对应于不存在阴影部分。在该确定是针对给定的特定于动作的冲突ROBDD做出的情况下,等效检查器528可以生成相应的特定于动作的“通过”指示530,其可以从形式分析引擎522外部发送。
然而,如果等效检查器528确定输入之间存在冲突,并且给定的特定于动作的冲突ROBDD不是空的,则等效检查器528将不会生成通过指示530,并且可以替代地发送给定的特定于动作的冲突ROBDD 532到冲突规则标识器534,其标识存在的特定冲突规则。在一些示例中,可以为确定为空的每个特定于动作的冲突ROBDD生成特定于动作的“通过”指示530。在一些示例中,仅在每个特定于动作的冲突ROBDD都被确定为空之后,才可以生成和/或发送“通过”指示530。
如果接收到一个或多个特定于动作的冲突ROBDD,则冲突规则标识器534可以接收在每个冲突ROBDD 532中表示的优先级排序的规则的简单列表作为输入。例如,如果冲突规则标识器534接收到与L_允许BDD⊕H_允许BDD相对应的允许冲突ROBDD,则还接收用于生成L_允许BDD和H_允许BDD的优先级排序的规则Li、Hi的简单列表作为输入。
冲突规则标识器534然后从优先级排序的规则的每个列表中标识特定冲突规则,并且建立冲突规则列表536。为了做到这一点,冲突规则标识器534遍历给定列表中包含的规则,并且计算每个给定规则所包围的分组配置和网络动作的集合与特定于动作的冲突ROBDD所包围的集合之间的交集。例如,假设使用j个规则的列表来生成L_允许BDD。对于每个规则j,冲突规则标识器534计算:
(L_允许BDD⊕H_允许BDD)*Lj
如果该计算等于零,则给定规则Lj不是冲突ROBDD的一部分,并且因此不是冲突规则。然而,如果该计算不等于零,则给定规则Lj是允许冲突ROBDD的一部分,并且因此是添加到冲突规则列表536中的冲突规则。
例如,在图6C中,允许冲突ROBDD 600C包括阴影部分624和626。从用于生成L_允许BDD的两个规则L1、L2开始,可以计算出:
(L_允许BDD⊕H_允许BDD)*L1=0
因此,规则L1与允许冲突ROBDD 600C不重叠,并且因此不是冲突规则。然而,可以计算出:
(L_允许BDD⊕H_允许BDD)*L2≠0
意味着规则L2在重叠部分624处确实与允许冲突ROBDD 600C重叠,并且因此是冲突规则,并且被添加到冲突规则列表536。
相同形式的计算也可以应用于用来生成H_允许BDD的规则H1、H2、H3的列表。可以计算出:
(L_允许BDD⊕H_允许BDD)*H1=0
因此,规则H1与允许冲突ROBDD 600C不重叠,并且因此不是冲突规则。还可以计算出:
(L_允许BDD⊕H_允许BDD)*H2=0
因此,规则H2与允许冲突ROBDD 600C不重叠,并且因此不是冲突规则。最后,可以计算出:
(L_允许BDD⊕H_允许BDD)*H3≠0
意味着规则H2在重叠部分626处确实与允许冲突ROBDD 600C重叠,并且因此是冲突规则,并且可以被添加到冲突规则列表552。在本示例的上下文中,从允许冲突ROBDD600C导出的完整的冲突规则列表536为{L2,H3},因为这些规则中的一者或两者已经被错误地配置或呈现。
在一些示例中,与输入524相关联的模型中的一个模型可以被视为参考或标准,这意味着该模型内包含的规则被假设为正确的。这样,冲突规则标识器536仅需要计算给定的特定于动作的冲突ROBDD与来自非参考模型的相关联的特定于动作的规则的集合的交集。例如,Li_模型272可以被视为参考或标准,因为它直接来自用于定义L_模型270A、270B的用户输入。另一方面,Hi_模型276在呈现在节点的硬件中之前会经过几次转换,并且因此更容易出错。因此,对于Hi_模型276中的每个规则(或每个允许规则)j,冲突规则标识器534将仅计算:
(L_允许BDD⊕H_允许BDD)*Hj
这可以显著减少所需的计算时间。
另外,冲突规则标识器534不需要计算特定于动作的冲突ROBDD与每个规则的整体的交集,而是可以替代地使用每个规则的优先级简化形式。换句话说,这是在ROBDD中表示规则的形式。例如,规则H2的优先级简化形式是H1’H2,或者规则H2的贡献减去规则H1已经捕获的部分。规则H3的优先级简化形式为(H1+H2)’H3,或规则H3的贡献减去规则H1或H2已经捕获的部分。规则H4的优先级简化形式为(H1+H2+H3)’H4,或规则H4的贡献减去规则H1和H2和H3已经捕获的部分。
这样,对于Hi_模型276中包含的每个规则(或每个允许规则)j,计算替代地简化为:
(L_允许BDD⊕H_允许BDD)*(H1+…+Hj-1)’Hj
虽然与以下简单计算相比:
(L_允许BDD⊕H_允许BDD)*Hj
上面的等式中引入了其他术语,优先级简化形式实际上在计算上更高效。对于每个规则j,与非简化形式Hj相比,优先级简化形式(H1+…+Hj-1)’Hj包含分组配置和网络动作的较小集合,或者包含相等大小的集合。针对冲突ROBDD执行相交计算的集合越小,计算效率越高。
在一些情况下,冲突规则标识器534可以将冲突规则列表536(无论是从两个输入模型生成的,还是从仅单个非参考输入模型生成的)输出到形式分析引擎522外部的目的地。例如,可以将冲突规则536输出给用户或网络运营商,以便更好地理解模型之间发生冲突的具体原因。
在一些示例中,可以在冲突规则标识器534与外部输出之间布置返回注释器538。返回注释器538可以将来自冲突规则列表536中的每个给定规则与使得生成给定规则的特定双亲契约或其他高级意图相关联。以这种方式,不仅根据冲突的特定规则向用户解释了形式等效失败,而且还根据输入到网络中并且最终创建了冲突规则的高级用户动作、配置或意图向用户解释了等效失败。以这种方式,用户可以通过在冲突规则的源或双亲处调整或以其他方式处理冲突规则,来更有效地解决冲突规则。
在一些示例中,冲突规则列表536可以在内部被维护和/或被发送到形式分析引擎522,以使得能够进行进一步的网络保证分析和操作,例如,事件生成、反示例生成、QoS保证等。
现在,本公开转向图7,图7示出了用于一般网络保证的示例方法。通过示例的方式提供了方法,因为存在多种执行方法的方式。另外,虽然以特定顺序的框或步骤示出了示例方法,但是本领域普通技术人员将理解,图7以及其中所示出的框可以以任何顺序执行,并且可以包括比所示出的更少或更多的框。
图7中所示出的每个框表示一个或多个步骤、过程、方法、或方法中的例程。为了清楚和说明的目的,图7中的框参考图1A-图1B、图2D、图3A、图5A和图5C中所示出的网络环境100、保证设备系统300、和网络模型270、270A-B、272、274、276、策略分析器504、以及形式等效引擎522来描述。
参考图7,在步骤700处,保证设备系统300可以收集数据并且获得与网络环境100相关联的模型。模型可以包括逻辑模型270(如图4所示),和/或任意模型270A-B、272、274、276(如图2D所示)。数据可以包括结构数据(例如,拓扑、交换机、接口策略、应用策略等)、网络配置(例如,BD、VRF、L2输出、L3输出、协议配置等)、QoS策略(例如,DSCP、优先级、带宽、排队、传输速率、SLA规则、性能设置等)、安全配置(例如,契约、过滤器等)、应用策略(例如,EPG契约、应用简档设置、应用优先级等)、服务链配置、路由配置等。收集或获得的信息的其他非限制性示例可以包括网络数据(例如,RIB/FIB、VLAN、MAC、ISIS、DB、BGP、OSPF、ARP、VPC、LLDP、MTU、网络或流状态、日志、节点信息、路由等)、规则和表(例如,TCAM规则、ECMP表、路由表等)、端点动态(例如,EPM、COOP EP DB等)、统计数据(例如,TCAM规则命中、接口计数器、带宽、分组、应用使用情况、资源使用模式、错误率、延迟、丢失的分组等)。
在步骤702处,保证设备系统300可以分析和建模接收到的数据和模型。例如,保证设备系统300可以执行形式建模和分析,这可以涉及确定模型之间的等效,包括配置、策略等。保证设备系统300可以分析和/或建模数据和模型的一些或全部部分。例如,在一些情况下,保证设备系统300可以分析和建模契约、策略、规则和状态数据,但排除可用信息的其他部分。
在步骤704处,保证设备系统300可以生成一个或多个智能事件。保证设备系统300可以使用深度对象分层结构来生成智能事件以用于详细分析,例如租户、交换机、VRF、过滤器、前缀、端口、契约、主体等。
在步骤706处,保证设备系统300可以使智能事件、分析和/或模型可视化。保证设备系统300可以在用户友好的GUI中显示问题和警报以用于分析和调试。
图8示出了用于访问保证合规工具的保证合规菜单802-812的示例用户界面800。在该示例中,保证合规菜单802-812包括:控制面板菜单802,其可以被选择来访问控制面板页面、界面、工具、子菜单等;变更管理菜单804,其可以被选择来访问变更管理页面、界面、工具、子菜单等;验证和诊断菜单806,其可以被选择来访问用于验证和诊断功能和信息的页面、界面、工具、子菜单等;优化菜单808,其可以被选择来访问用于查看和/或实现保证和/或网络优化的页面、界面、工具、子菜单等;合规和审核菜单810,用于访问诸如页面、界面、工具、子菜单、功能等之类的合规和审核特征;以及智能事件菜单812,用于访问智能事件和/或智能事件页面、界面、工具、子菜单等。
合规和审核菜单810可以包括合规分析菜单814A以及审核和保证菜单814B。合规分析菜单814A包括菜单子项816A-B,其包括用于访问合规分析特征的合规分析菜单子项816A和用于管理合规要求的管理合规要求菜单子项816B。审核和保证菜单814B包括菜单子项818A-B,其包括用于下载保证数据的下载保证数据菜单子项818A和用于生成保证报告的报告菜单子项818B。
图9示出了合规要求管理界面900,其允许用户管理合规要求。合规要求管理界面900可以通过图8中所示出的用户界面800的合规和审核菜单810中的合规分析菜单814A中的管理合规要求菜单子项816B来访问。合规要求管理界面900包括用于管理合规要求的各种选项卡902-908。选项卡902-908可以是菜单、导航链接、导航页面或工具、可选界面元素等。选项卡902-908可以包括合规要求集合选项卡902、合规要求选项卡904、EPG选择器选项卡906、和流量选择器选项卡908。
合规要求集合选项卡902可以用于访问、修改和/或创建合规要求的集合或组。在一些情况下,合规要求集合选项卡902允许用户查看已经配置的任何合规要求集合,包括其相应名称、描述、状态(例如,活动、不活动等)、设置(例如,合规要求、合规要求详细信息和策略等)等等。可以使用系统中配置的合规要求来创建合规要求集合(例如,经由合规要求选项卡904)。
合规要求选项卡904允许用户访问、修改和/或创建合规要求;EPG选择器选项卡906允许用户访问、修改和/或创建EPG选择器,该EPG选择器定义用于确定哪些EPG包括或排除在与EPG选择器相关联的特定EPG集合中的规则和/或属性;以及流量选择器选项卡908允许用户访问、修改和/或创建流量选择器,该流量选择器提供流量过滤器和/或参数,例如流量协议、端口等。下面将进一步描述合规要求管理界面900中的选项卡902-908的更详细描述。
图10示出了用于创建合规要求的合规要求界面1000。可以从合规要求管理界面900中的合规要求选项卡904访问合规要求界面1000。合规要求界面1000包括新合规要求部分1002,用于提供合规要求定义或设置以创建新合规要求。
新合规要求部分1002包括合规要求名称字段1004(用户可以在其中提供要创建的新合规要求的名称)以及合规要求描述字段1006(用户可以在其中提供新合规要求的描述)。新合规要求部分1002还可以包括合规类型字段1008,用户可以在其中定义要创建的合规要求的类型,例如流量分段要求、流量限制要求、资源属性要求、命名约定要求等。在该示例中,合规类型字段1008指示为新合规要求选择的合规类型是分段1008A。
新合规要求部分1002还包括合规要求定义视图1010,其描绘了表示与新合规要求相关联的合规定义1018A-C的节点1012-1016。例如,节点1012表示用于EPG选择器A的EPG选择器定义1018A,该EPG选择器A被选择或将被选择用于新合规要求。节点1016表示用于EPG选择器B的EPG选择器定义1018C,该EPG选择器B是被选择或将被选择用于新合规要求的另一EPG选择器。节点1014表示用于定义与节点1012和1016中的EPG选择器相关联的流量的通信操作器的通信操作器定义1018B。
在一些情况下,可以用互连和/或根据用于创建合规要求的配置任务或定义的顺序或流程,来描述合规要求定义视图1010中的节点1012-1016。例如,节点1012可以是表示用于创建合规要求的第一定义或配置任务(例如,为EPG选择器A选择EPG选择器)的第一节点,节点1014可以是表示下一个定义或配置任务(例如,选择通信操作器)的后续节点,并且节点1016可以是表示用于创建合规要求的最后一个定义或配置任务(例如,为EPG选择器B选择EPG选择器)的最后一个节点。在一些情况下,可以在定义节点1012-1016时(或之后),针对节点1012-1016显示或填充合规定义1018A-C。在一些情况下,节点1012-1016中的每个节点都可以描述(例如,经由文本或标签、检查标记、或在节点1012-1016中或与节点1012-1016一起显示的其他可视指示符等)已经为该节点选择了哪个合规定义(如果有的话)、和/或该节点的合规定义选择或配置过程是否已经完成。
新合规要求部分1002包括EPG选择器部分1020,用于为EPG选择器A(即,节点1012)选择EPG选择器和相关联的属性。EPG选择器部分1020包括用于选择EPG选择器的EPG选择器选项1022。EPG选择器选项1022可以是例如但不限于用户可以在其中选择EPG选择器的下拉菜单、指向用户可以在其中选择EPG选择器的弹出窗口或界面的链接、EPG选择器浏览功能等。
EPG选择器部分1020还可以包括消费者/供应商标签字段1024,其允许用户为在EPG选择器选项1022中选择的EPG选择器选择消费者或供应商标签。消费者和供应商标签允许将EPG或EPG选择器分类为消费者或供应商,这定义了EPG或EPG选择器与合规要求之间的关系。因此,EPG选择器选项1022允许用户为EPG选择器A(即,节点1012)选择EPG选择器,并且消费者/供应商标签字段1024允许用户将消费者或供应商标签施加到用于EPG选择器A的所选EPG选择器。然而,请注意,在一些情况下,消费者/供应商标签字段1024可以是可选的,并且用户可以在不应用或选择消费者或供应商标签的情况下完成EPG选择器A(即,节点1012)的配置。
图11示出了用于选择EPG选择器的EPG选择器界面1110。可以通过合规要求界面1000中的EPG选择器选项1022来访问EPG选择器界面1110,并且允许用户为EPG选择器A(即,节点1012)选择EPG选择器。EPG选择器界面1110包括EPG列1112(其列出了用户可以选择的EPG选择器1116)以及描述列1114(其包括针对在EPG列1112中列出的EPG选择器1116的可选描述1118)。描述列1114可以包括或可以不包括针对在EPG列1112中列出的每个EPG选择器1116的描述(1118)。
在该示例中,EPG选择器界面1110示出了从EPG选择器1116中的选择1120,在这种情况下是EPG选择器圣何塞(San Jose)。这指示用户已经选择EPG选择器圣何塞作为用于EPG选择器A(即,节点1012)的EPG选择器。EPG选择器界面1110可以包括选择选项1122,用户可以在其中基于选择1120来选择EPG选择器圣何塞,并且继续进行将EPG选择器圣何塞作为用于EPG选择器A(即,节点1012)的EPG选择器。
图12示出了在用户从EPG选择器界面1110为EPG选择器A(即,节点1012)选择并选取EPG选择器之后的合规要求界面1000的配置1200。如合规要求界面1000的配置1200中所示,新合规要求部分1002中的合规要求定义视图1010已经被更新以标识用于EPG选择器A(即,节点1012)的所选EPG选择器1202,在该示例中是EPG选择器圣何塞。因此,合规要求界面1000的配置1200示出,已经在对应于EPG选择器A的节点1012处选择了EPG选择器圣何塞。
一旦已经为EPG选择器A(即,节点1012)选择了EPG选择器,用户可以为新合规要求选择通信操作器(即,节点1014)。图13示出了用于使得用户能够为新合规要求选择通信操作器的合规要求界面1000的配置1300。这里,合规要求界面1000的配置1300包括通信操作器部分1302,该通信操作器部分1302具有用户可以为新合规要求选择的通信操作器选项1304-1308。在该非限制性示例中,通信操作器选项1304-1308包括不得对话选项(1304)、只能对话选项(1306)和必须对话选项(1308)。应当注意,除了图13中所描绘的那些通信操作器选项之外,还可以包括其他通信操作器选项,并且一些实现方式可以包括其他(一个或多个)类型和/或不同数量(或多或少)的通信操作器选项。
在配置1300中,合规要求定义视图1010示出了被选择作为用于新合规要求的通信操作器(即,节点1014)的不得对话运营商1308。如前所述,可以经由通信操作器部分1302中的通信操作器选项1304来选择不得对话运营商1308。配置1300还示出了用于EPG选择器A(即,节点1012)的所选EPG选择器1202(EPG选择器圣何塞)已经被分配了消费者标签,指示EPG选择器圣何塞是消费者EPG选择器。用户可以经由合规要求界面1000的EPG选择器部分1020中的消费者/供应商标签字段1024来分配消费者标签,如图10和图12所示。
图14示出了合规要求界面1000的配置1400,用于为在合规要求定义视图1010中示出的EPG选择器B(即,节点1016)选择EPG选择器和相关联的属性。配置1400包括EPG选择器部分1402,用于为EPG选择器B(即,节点1016)选择EPG选择器和相关联的属性。EPG选择器部分1402包括用于选择EPG选择器的EPG选择器选项1404。EPG选择器选项1404可以是例如但不限于用户可以在其中选择EPG选择器的下拉菜单、指向用户可以在其中选择EPG选择器的弹出窗口或界面的链接、EPG选择器浏览功能等。
EPG选择器部分1402还可包括消费者/供应商标签字段1406,用于为在EPG选择器选项1404中选择的EPG选择器选择消费者或供应商标签。在该示例中,消费者/供应商标签字段1406示出了为EPG选择器B(即,节点1016)选择的供应商标签1408。因此,由用户经由EPG选择器选项1404选择的EPG选择器将接收将其分类为供应商的供应商标签1408。
图15示出了用于为EPG选择器B(即,节点1016)选择EPG选择器的EPG选择器界面1500。可以响应于如合规要求界面1000的配置1400中所示出的在EPG选择器部分1402中对EPG选择器选项1404的选择,来生成或呈现EPG选择器界面1500。EPG选择器界面1500包括EPG列1502(其列出了用户可以选择的EPG选择器1506)以及描述列1504(其包括与在EPG列1502中列出的EPG选择器1506相对应的可选描述1508)。
在该示例中,EPG选择器界面1500示出了从EPG选择器1506中的针对EPG选择器B(即,节点1016)的选择1510,在这种情况下是EPG选择器帕洛阿尔托(Palo Alto)。这指示用户已经选择EPG选择器帕洛阿尔托作为用于EPG选择器B(即,节点1016)的EPG选择器。EPG选择器界面1500可以包括选择选项1512,用户可以在其中选择选择1120(EPG选择器帕洛阿尔托),并且继续进行将EPG选择器帕洛阿尔托作为用于EPG选择器B(即,节点1016)的EPG选择器。
一旦用户经由选择选项1512选择了用于EPG选择器B(即,节点1016)的EPG选择器帕洛阿尔托,用户将返回到合规要求界面1000,该合规要求界面1000被更新以反映针对EPG选择器B(即,节点1016)已经选择了EPG选择器帕洛阿尔托。参考图16,合规要求界面1000的合规要求定义视图1010将EPG选择器帕洛阿尔托标识为用于EPG选择器B(即,节点1016)的所选EPG选择器1602,并且指示EPG选择器帕洛阿尔托已经被选择为供应商。合规要求定义视图1010还反映出已经选择或配置了用于节点1012-1016的合规定义1018A-C。至此,用户已经完成了创建新合规要求。
图17A示出了合规要求界面1000的配置1700,其描绘了用于创建不同的合规要求的各种特征。在该示例中,合规要求是SLA(服务水平协议)要求,如合规类型字段1008中的SLA选择1702所反映的。
合规要求定义视图1010包括用于选择EPG选择器A(1018A)、选择通信操作器(1018B)和选择EPG选择器B(1018C)的合规定义1018A-C。合规要求定义视图1010还包括附加合规定义,即用于选择流量选择器的合规定义1704。另外,合规要求定义视图1010包括分别与合规定义1018A-C相对应的节点1012-1016,以及与用于选择流量选择器的合规定义1704相对应的节点1706。
合规要求定义视图1010包括以下指示:在与节点1014相关联的合规定义1018B中,必须对话运营商1708已经被选择或被配置为通信操作器。可以如先前在图13中所描述地选择或配置用于合规定义1018B的必须对话运营商1708。在图17A中,尚未选择或配置与节点1012、1016和1706相对应的合规定义1018A、1018C和1704。因此,可以选择或配置合规定义1018A、1018C和1704,以完成合规要求。
配置1700中的合规要求界面1000包括EPG选择器部分1020,用于为EPG选择器A(即,节点1012)选择EPG选择器和相关联的属性。EPG选择器部分1020包括用于选择EPG选择器的EPG选择器选项1022,以及用于为EPG选择器选择消费者或供应商标签的消费者/供应商标签字段1024。通过EPG选择器部分1020,用户可以为合规定义1018A选择或配置EPG选择器。用户还可以为合规定义1018C选择EPG选择器和任何相关联的属性,如前所述。
图17B示出了合规要求界面1000的配置1750,用于为与节点1706相关联的合规定义1704选择流量选择器。这里,流量选择器部分1756包括用于选择流量选择器类型1758的流量选择选项1758A-C。在该非限制性示例中,流量选择选项1758A-C包括用于选择全部流量的选项(1758A)、用于选择任意流量的选项(1758B)、以及用于选择特定流量选择器的选项(1758C)。
在图17B中,用户已经在流量选择选项1758A-C中选择了全部流量选项(1758A)。因此,与节点1706相对应的流量选择器的合规定义1704反映出所选流量选择器1754是全部流量。所选流量选择器1754规定,合规定义1018A-C应该适用于与为合规定义1018A和1018C配置的EPG选择器相关联的全部流量,该合规定义1018A和1018C定义了针对合规要求的EPG选择器A和EPG选择器B。在该示例中,合规定义1018A-C和1704规定,消费者EPG选择器圣何塞(1202)在全部流量(1754)上必须对话(1708)供应商EPG选择器纽约(1752)。
用于选择特定流量选择器的选项(1758C)可以允许用户从系统中已经配置和/或可供选择的流量选择器中进行选择。在一些情况下,相对于全部流量选择器选项或任意流量选择器选项,用于选择特定流量选择器的选项可以允许用户选择具有更详细规范、不同的过滤器(例如,协议过滤器、IP过滤器、名称过滤器、属性过滤器、端口过滤器等)等等的流量选择器。
图17C示出了为合规定义1704选择的不同流量选择器和为新合规要求选择的不同合规类型1008的示例。这里,合规类型1008已经更改为流量限制1762(与先前示例中的SLA1702相对),并且通过选择流量选择器选项1758C已经选择了不同的流量选择器(流量选择器1760)。在该示例中,流量选择器1760被配置为仅应用于特定流量,与流量选择器选项1758A和1758B中提供的全部流量或任意流量相对。例如,流量选择器1760可以仅应用于特定协议、端口、以太网类型等上的流量。通过选择流量选择器选项1758C选择了流量选择器1760之后,合规要求定义视图1010现在将所选流量选择器1760反映为针对与节点1706相关联的合规定义1704配置的流量选择器。
先前示例示出了用于创建新合规要求的各个方面。然而,在创建新合规要求之前,可以配置一个或多个流量选择器和EPG选择器以用于创建新合规要求。图18A-图18E示出了用于创建流量选择器的各个方面,并且图19示出了用于创建EPG选择器的各个方面。
参考图18A,可以从流量选择器选项卡908访问新流量选择器界面1800。新流量选择器界面1800可以包括创建新流量选择器部分1802,其可以包括流量选择器名称字段1804、流量选择器描述字段1806和流量选择器配置部分1808。
流量选择器配置部分1808可以允许用户为与正在创建的流量选择器相关联的流量配置规则和/或过滤器。例如,流量选择器配置部分1808可以允许用户定义与流量选择器相关联的流量的属性,例如协议、端口、以太网类型等。在该示例中,流量选择器配置部分1808包括流量属性字段1812和1814,该流量属性字段1812和1814允许用户定义用于流量的以太网类型(例如,IPv4、ARP、IPv6、LACP、MPLS、SRP等)(例如,经由流量属性字段1812)和用于流量的IP协议(例如,TCP、UDP、OSPF等)(例如,经由流量属性字段1814)。流量选择器配置部分1808还可以包括运营商1810,该运营商1810标识应用于具有在流量属性字段1812和1814中定义的属性的流量的通信动作(例如,对话或通信)。
流量选择器配置部分1808可以包括添加对话链接1816,用户可以选择该添加对话链接1816以添加用于流量选择器的附加流量规则或过滤器。图18B示出了在用户已经配置了流量属性字段1812和1814并且经由添加对话链接1816添加了流量配置集合1822之后的新流量选择器界面1800。
流量配置集合1822包括操作器1824以及流量属性字段1826和1828。操作器1824和流量属性字段1826和1828为流量选择器提供附加标准或过滤器(即,除了经由操作器1810和流量属性字段1812和1814定义的标准或过滤器之外)。在该示例中,流量属性字段1826和1828允许用户为流量定义另一以太网类型(1826)和IP协议(1828),并且操作器1824是And操作器,指示流量配置集合1822还应该应用于具有在流量属性字段1826和1828中定义的属性的流量通信。
此外,图18B中的流量属性字段1812和1814被配置为包括IPv41818作为流量属性字段1812中的以太网类型,以及OSPF(开放式最短路径优先)1820作为流量属性字段1814中的IP协议。因此,操作器1810和流量属性字段1812和1814一起指示流量选择器还对应于在IPv4(1818)和OSPF(1820)上通信的流量。
图18C示出了新流量选择器界面1800中的基于方向的流量配置部分1830,用于为流量配置集合1822提供附加配置选项。基于方向的流量配置部分1830中的附加配置选项允许用户为每个流量方向(例如,从EPG选择器A到EPG选择器B,反之亦然)提供附加条件或配置。
基于方向的流量配置部分1830可以包括用于每个流量方向1834和1836的配置字段1838-1842。例如,基于方向的流量配置部分1830可以包括用于指定流量源端口的源端口字段(1838)、用于指定流量目的地端口的目的地端口字段(1840)、以及用于确认设置了日志标志的日志标志设置字段(1842)。基于方向的流量配置部分1830可以包括针对每个流量方向1834和1836(在该示例中,这包括从EPG选择器A到EPG选择器B的流量(流量方向1834),以及从EPG选择器B到EPG选择器A的流量(流量方向1836))的源端口字段(1838)、目的地端口字段(1840)、和日志标志设置字段(1842)。因此,通过基于方向的流量配置部分1830中的配置字段1838-1842,用户可以为每个特定流量方向1834和1836(例如,从EPG选择器A到EPG选择器B,以及从EPG选择器B到EPG选择器A)配置属性或条件。
基于方向的流量配置部分1830还可以包括反转端口选项1832,用户可以选择、激活、使能等该反转端口选项1832,来使得端口(例如,源端口和目的地端口)或两个流量方向1834和1836的源端口字段(1838)和目的地端口字段(1840)中的端口值反转。
图18C还示出了针对流量属性字段1826和1828的示例以太网类型和IP协议选择(1844和1846)。在图18C中,用于以太网类型的流量属性字段1826被设置为IPv4(1844),并且用于IP协议的流量属性字段1828被设置为用户数据报协议(1846)或UDP。流量选择器配置部分1808的流量属性字段1812-1814和1826-1828中的选择(1818、1820、1844、1846)(包括流量配置集合1822)一起规定,创建的流量选择器应用于具有IPv4(1818)以太网类型(1812)和OSPF(1820)IP协议(1814)的流量和具有IPv4(1844)以太网类型(1826)和UDP(1846)IP协议(1828)的流量。
参考图18D,用户可以添加流量选择器配置部分1850(例如,经由添加链接1816),用于为创建的新流量选择器提供附加配置、条件、过滤器等。流量选择器配置部分1850可以是流量选择器配置部分1808之外的和/或与流量选择器配置部分1808分离的,并且可以允许用户配置附加和/或替代的条件、过滤器、设置等。
在添加流量选择器配置部分1850时,用户可以选择能够用作逻辑或布尔操作器(例如,AND、OR等)的操作器1844,以指定是否还应该应用流量选择器配置部分1850中的配置或属性(除了(例如,AND)或替代(例如,OR)流量选择器配置部分1808中的配置或属性)。在图18D的示例中,操作器1844是OR操作器。因此,操作器1844规定,在图18D中创建的新流量选择器应该应用于具有在流量选择器配置部分1808中指定的特性或条件的流量或具有在流量选择器配置部分1850中指定的特性或条件的流量。
流量选择器配置部分1850可以包括流量属性字段1846和1848,其允许用户在流量选择器配置部分1850中为新流量选择器定义流量属性。在该示例中,流量属性字段1846和1848允许用户为流量定义以太网类型(1846)和IP协议(1848)。图18D示出了用于流量属性字段1846和1848的示例选择1818和1852,包括用于以太网类型字段(1846)的IPv4(1818)和用于IP协议字段(1848)的TCP(1852)。
流量选择器配置部分1850还可以包括基于方向的流量配置部分1854,用于为每个流量方向(例如,从EPG选择器A到EPG选择器B,以及从EPG选择器B到EPG选择器A)提供附加配置选项。基于方向的流量配置部分1854可以包括用于每个流量方向1834和1836的配置字段1838-1842。例如,基于方向的流量配置部分1854可以包括用于指定流量源端口的源端口字段(1838)、用于指定流量目的地端口的目的地端口字段(1840)、以及用于确认设置了日志标志的日志标志设置字段(1842)。基于方向的流量配置部分1854可以包括针对每个流量方向1834和1836(在该示例中,这包括从EPG选择器A到EPG选择器B的流量(流量方向1834),以及从EPG选择器B到EPG选择器A的流量(流量方向1836))的源端口字段(1838)、目的地端口字段(1840)、和日志标志设置字段(1842)。
如前所述,基于方向的流量配置部分1854还可以包括反转端口选项1832。基于方向的流量配置部分1854还可以包括针对每个流量方向1834和1836(例如,从EPG选择器A到EPG选择器B,以及从EPG选择器B到EPG选择器A)的检查TCP标志选项1856。检查TCP标志选项1856是能够提供的特定于TCP的配置选项,因为例如用户在流量属性字段1848中选择了TCP(1852)作为IP协议。因此,在流量配置部分(例如1808、1850)中可用的选项、设置、属性、条件、字段等可以基于在流量属性字段(例如,1812-1814、1826-1828、1846-1848)中选择的内容而变化,以包括特定于所选属性(例如,以太网类型或IP协议)的选项、设置、属性、条件、字段等。在该示例中,用户在流量属性字段1848中选择了TCP(1852),并且检查TCP标志选项1856是特定于所提供的TCP的选项,因为在流量属性字段1848中已经选择了TCP作为IP协议。
在图18D中,用于流量方向1834(从EPG选择器A到EPG选择器B)的检查TCP标志选项1856尚未被选择或启用,而用于流量方向1836(从EPG选择器B到EPG选择器A)的检查TCP标志选项1856已经被选择或启用。因为用于流量方向1836的检查TCP标志选项1856已经被选择或启用,所以基于方向的流量配置部分1854可以提供与所选择或启用的检查TCP标志选项1856有关的附加配置选项。例如,当检查TCP标志选项1856被选择或启用时,基于方向的流量配置部分1854可以提供TCP标志设置字段1858A(用户可以在其中指定应该检查哪些设置的TCP标志(例如,ACK标志、SYN标志、FIN标志、URG标志、PSH标志、RST标志、ECE标志、CWR标志等))、以及TCP标志未设置字段1858B(用户可以在其中指定应该检查哪些未设置的TCP标志)。
图18E示出了用于创建新流量选择器的新流量选择器界面1800和创建新流量选择器部分1802的另一示例配置。创建新流量选择器部分1802包括流量选择器名称字段1804和流量选择器描述字段1806。另外,创建新流量选择器部分1802包括以太网类型字段1860,用户可以在其中指定或选择以太网类型。在该示例中,以太网类型字段1860中的以太网类型值1862已经设置为“任意”,这意味着任意以太网类型都可以满足以太网类型字段1860中的以太网类型条件或定义。
创建新流量选择器部分1802可以包括例外选项1864,当该例外选项1864被选择或启用时,允许用户通过流量选择器例外部分1870提供或定义例外。因此,例外选项1864允许用户为以其他方式满足在创建新流量选择器部分1802的以太网类型字段1860中指定的以太网类型条件或定义(例如,1862)的场景定义例外。
在图18E中,例外选项1864已经被选择或启用。此外,提供了流量选择器例外部分1870,以允许用户定义与(一个或多个)例外相对应的特定配置或属性。这里,流量选择器例外部分1870包括属性字段1866-1868,在该示例中,这包括以太网类型字段(1866)和协议字段(1868)。为属性字段1866-1868指定的属性字段选择1872-1874是用于以太网类型(属性字段1866)的IP(1872)和用于协议字段(属性字段1868)的TCP(1874)。
流量选择器例外部分1870包括为流量方向1834和1836两者(例如,从EPG选择器A到EPG选择器B,并且反之亦然)中的流量选择的反转端口选项1832。流量选择器例外部分1870还可以包括针对每个流量方向1834和1836的标志设置部分1876、源端口字段1838、目的地端口字段1840和日志选项1890(例如,用于记录统计数据、事件等),用于允许用户为每个流量方向提供特定配置或属性。
标志设置部分1876涉及TCP标志设置,在一些实施方式中,响应于用户在协议字段(例如,属性字段1868)中选择TCP(1874),该TCP标志设置被提供作为选项。标志设置部分1876可以包括已建立选项1878(其适用于已经建立TCP会话或标志(例如,ACK、RST等)的情况)、以及未建立选项1880(其适用于未建立TCP会话或标志的情况)。在未建立选项1880的情况下,标志设置部分1876可以包括标志选项1882-1888,其允许用户选择或指定与未建立选项1880(例如,具有未建立的状态或情形)相对应的特定TCP标志(例如,SYN、ACK、RST、FIN等)。
图19示出了用于创建EPG选择器的新EPG选择器界面1900。如先前所解释的,为了创建合规要求,用户可以首先创建能够用于配置合规要求的(一个或多个)EPG选择器和(一个或多个)流量选择器。新EPG选择器界面1900提供用户可以在其中创建新EPG选择器并为该EPG选择器定义特定配置或属性的界面。
新EPG选择器界面1900包括创建新EPG选择器部分1902,用户可以在其中输入针对正在创建的EPG选择器的特定属性、值、条件、设置等。创建新EPG选择器部分1902可以包括EPG选择器名称字段1904(用户可以在其中提供正在创建的EPG选择器的名称)以及EPG选择器描述字段1906(用户可以在其中输入对EPG选择器的描述)。
创建新EPG选择器部分1902可以包括被包括的EPG链接1908A(用于访问被包括的EPG和/或被包括的EPG部分1910)、以及被排除的EPG链接1908B(用于访问被排除的EPG和/或被排除的EPG部分1940)。被包括的EPG部分1910允许用户定义用于确定哪些EPG应该被包括在EPG选择器中的属性或标准,而被排除的EPG部分1940允许用户定义用于确定哪些EPG(如果有的话)应该从EPG选择器中被排除的属性或标准。
被包括的EPG部分1910可以包括一个或多个包括标准集合1912、1920,用于指定在确定哪些EPG应该被包括在EPG选择器中时所使用的参数、属性和/或标准。例如,包括标准集合1912可以包括包括参数1914,EPG应该满足该包括参数1914以被包括在EPG选择器中。包括参数1914可以包括对象定义1916A-C和表达式1918A-C,该表达式1918A-C定义与对象定义1916A-C相关联的特性或属性。对象定义1916A-C可以指定或定义特定对象,例如EPG、租户、专有名称(DN)、应用简档(AP)、VRF、EPG标签等,并且表达式1918A-C可以定义与对象定义1916A-C中定义的对象相关联的特定特性或属性。对象定义1916A-C和表达式1918A-C可以提供用于确定哪些EPG应该被包括在EPG选择器中的标准或参数。
例如,对象定义1916A包括EPG、DN和租户对象,并且表达式1918A包括值或表达式“安全”。这里,对象定义1916A和表达式1918A一起规定,具有DN/tn-(例如,租户名称)“安全”的EPG应该被包括在EPG选择器中。此外,对象定义1916B包括AP(应用简档),并且表达式1918B包括值或表达式“任意”,这意味着任意应用简档应该被包括在EPG选择器中。对象定义1916C对应于EPG名称,并且表达式1918C包括值或表达式“PCI”,这意味着具有名称“PCI”的EPG应该被包括在EPG选择器中。因此,基于对象定义1916A-C和表达式1918A-C,包括参数1914规定,EPG将与对象定义1916A-C和表达式1918A-C中的条件或参数进行匹配,并且该EPG在具有DN/tn-安全、与任意应用简档相关联、以及具有名称为“PCI”时将被包括在EPG选择器中。
被包括的EPG部分1910可以包括附加包括标准集合(例如,1920)。在图19中,被包括的EPG部分1910还包括包括标准集合1920,其是另一个包括标准集合。在该示例中,包括标准集合1920包括包括参数1922、1924和1926。包括参数1924和1926是嵌套或“AND”参数,这意味着除了包括参数1922之外,还应该满足包括参数1924和1926,而不是替代或替换。因此,要基于包括参数1922、1924、1926被包含在EPG选择器中,EPG应该满足或达到所有包括参数1922、1924、1926。
在该示例中,包括参数1922包括对象定义1928和表达式1930。对象定义1928包括租户、DN、和tn-或租户名称,并且表达式1930包括值“安全”。因此,对象定义1928和表达式1930规定,在EPG被包括在具有DN/tn-安全的租户中(例如,EPG在具有DN和租户名称“安全”的租户中)时,该EPG应该被包括在EPG选择器中。
包括参数1924包括对象定义1932A(VRF、DN、tn-)和表达式1934A(“公共”),以及对象定义1932B(上下文)和表达式1934B(“默认”)。根据包括参数1924,要被包括在EPG选择器中,除了满足包括参数1914之外,EPG还应该在具有DN/tn-公共和上下文“默认”(ctx-默认)的VRF中。
包括参数1926包括对象定义1936(EPG-标签)和表达式1938(“任意”)。因此,基于包括参数1926,要被包括在EPG选择器中,除了满足包括参数1914和1924之外,EPG还应该具有EPG标签“任意”(例如,任意EPG标签)。
被包括的EPG部分1910还可以包括移除元素1946,其可以被选择或用于移除一个或多个参数。例如,包括标准集合1920中的包括参数1924和1926可以包括移除元素1946,用户可以使用移除元素1946来移除包括参数1924和1926中提供的任意或所有参数。为了说明,如果用户确定不必要或应该删除包括参数1926,则用户可以选择与包括参数1926相对应的移除元素1946(例如,与包括参数1926相邻或最接近的移除元素1946、与包括参数1926相关联的移除元素、和/或被配置为允许用户指定用户要移除的内容的移除元素)。被包括的EPG部分1910还可以包括使得用户能够添加包括或排除参数和/或标准集合的添加元素1948。
被排除的EPG部分1940允许用户提供排除标准集合1944。每个排除标准集合可以包括具有与被包括的EPG部分1910相似的对象定义和表达的排除参数,以及任何其他标准或标准类型。
图20A示出了合规要求集合界面2000的示例配置2020。可以从合规要求集合选项卡902中访问合规要求集合界面2000。合规要求集合界面2000可以显示表2010(该表2010标识在系统中配置的合规要求集合2012,并且可以用于访问、修改、添加或删除与系统上的合规要求集合2012相关联的信息)。表2010可以包括名称列2002、状态列2004(其指示合规要求集合是活动的还是不活动的)、相关联列2006(其指示合规要求集合是否与保证组(例如,合规要求集合的组)相关联)、以及动作列2008。
因此,在表2010中按照名称、状态(例如,活动的、不活动的)、相关联(例如,与保证组相关联,不与保证组或合规要求集合的组相关联)、以及动作来显示配置2020中的合规要求集合2012。例如,表2010的行1(2016)包括具有名称“要求集合1”、活动状态、以及与保证组的相关联的合规要求集合。
合规要求集合界面2000中的表2010还可以包括过滤器字段2014A-C,用户可以在其中输入或选择过滤标准或值,以用于过滤在表2010中显示的合规要求集合2012。例如,合规要求集合界面2000可以包括名称过滤器字段2014A(用户可以在其中按照名称来过滤合规要求集合)、状态过滤器字段2014B(用户可以在其中按照状态来过滤合规要求集合)、以及相关联过滤器字段2014C(用户可以在其中按照相关联(或缺少相关联)来过滤合规要求集合)。
合规要求集合界面2000可以包括设置功能2018,其允许用户修改表2010和/或合规要求集合界面2000中呈现的列和/或信息。例如,如前所述,在合规要求集合界面2000的示例配置2020中的表2010包括名称列2002、状态列2004、相关联列2006和动作列2008。设置功能2018允许修改表2010中的列以包括更多或更少的列或信息,包括一个或多个不同或相同的列。
例如,参考图20B,当用户选择或启用设置功能2018时,合规要求集合界面2000可以呈现界面元素2022(例如,窗口、屏幕、框架、图形、框、提示、弹出窗口等),其呈现了能够添加到表2010或从表2010中移除的列2024。能够从界面元素2022添加到表2010中的列(2024)的非限制性示例包括:合规要求集合描述列、合规要求列(其标识针对在表2010中呈现的每个合规要求集合配置的合规要求)、相关联的保证组列(其标识与在表2010中呈现的合规要求集合(2012)相关联的保证组(如果有的话))、指示自从每个合规要求集合针对相关联的保证组获得命中以来的时间的列、指示合规要求集合获得命中的最后一个时期的列、指示合规要求集合是否在当前时期中使用的列、指示最后启用合规要求集合的时间或事件的一个或多个列、指示最后更改合规要求集合的时间或事件的一个或多个列等。
图20C示出了在表2010中的列经由通过设置功能2018访问的界面元素2022已经被添加和移除之后的合规要求集合界面2000和表2010。在该示例中,合规要求集合描述列2030和合规要求列2032已经被添加到表2010,并且动作列2008已经从表2010中移除。
合规要求集合描述列2030包括对在表2010中显示的合规要求集合2012的描述,并且合规要求列2032包括用于查看针对表2010中的合规要求集合2012配置的合规要求的链接或列表。合规要求集合描述列2030和合规要求列2032可以包括过滤器2014D-E,用于基于合规要求集合描述来过滤合规要求集合(例如,过滤器2014D)和/或一个或多个配置的合规要求来过滤合规要求集合(例如,过滤器2014E)。
图20D示出了合规要求集合界面2000的视图,其描绘了与从图20A-图20C所示的表2010中的合规要求集合2012中选择的合规要求集合相关联的属性和/或统计的表2040。表2040包括保证组列2042(其标识相关联的保证组)、列2044(其标识自从合规要求集合针对当前保证组获得命中以来的时间)、列2046(其标识合规要求集合获得命中的最后一个时期)、以及列2048(其标识合规要求集合是否在当前时期中使用)。
表2040可以包括针对列2042-2048的信息的行2050。此外,列2042-2048可以包括用于过滤表2040中的信息的过滤器2052A-D。例如,列2042可以包括用于过滤来自列2042的信息的过滤器2052A,列2044可以包括用于过滤来自列2044的信息的过滤器2052B,列2046可以包括用于过滤来自列2046的信息的过滤器2052C,并且列2048可以包括用于过滤来自列2048的信息的过滤器2052D。
回到图20C,当用户从合规要求列2032中选择以查看与在合规要求集合界面2000的表2010中设置的合规要求相关联的合规要求时,系统可以呈现显示所选合规要求的界面或视图(例如,屏幕、框架、窗口、选项卡等)。例如,如果用户从表2010的合规要求列2032中选择查看列表链接2034,则系统将显示与对应于查看列表链接2034的合规要求集合相关联的合规要求。
为了说明,参考图21,当用户选择查看列表链接2034时,系统可以呈现合规要求界面2100,其标识与和查看列表链接2034相关联的合规要求集合相关联的合规要求(和相关联信息)。合规要求界面2100包括合规要求2118的表2120。表2120包括与合规要求2118相关联的信息的各种列2102-2114,并且列2102-2114可以包括用于过滤表2120中的合规要求信息的过滤器2136A-G。
在该示例中,表2120包括合规要求名称列2102(其包括合规要求2118的名称)、合规要求描述列2104(其包括合规要求2118的描述)、合规要求类型列2106(其标识合规要求2118的合规要求(例如,分段要求、流量限制要求、命名约定要求、资源或对象属性要求、SLA要求等)的类型)、EPG选择器A列2108(其标识针对合规要求2118被选择为EPG选择器A的EPG(例如,源EPG或目的地EPG))、通信操作器列2110(其标识针对合规要求2118配置的通信操作器(例如,可以对话、必须对话、不得对话等))、EPG选择器B列2112(其标识针对合规要求2118被选择为EPG选择器B的EPG(例如,源EPG或目的地EPG))、以及流量选择器列2114(其标识针对合规要求2118配置的特定流量选择器)。
表2120中的各个列2102-2114包括与表2120中包括的合规要求2118有关的相应信息。为了说明,在表2120的行1(2138)中,合规要求名称列2102中的名称条目2122指示与行1(2138)相关联的合规要求的名称为“要求21”,合规要求描述列2104中的描述条目2124包括与行1(2138)相关联的合规要求的描述“描述21”,合规要求类型列2106中的类型条目2126指示与行1(2138)相关联的合规要求的类型是“分段”,EPG选择器A列2108中的EPG条目2128表示针对与行1(2138)相关联的合规要求被选择为EPG选择器A的EPG是“EPG-21”,通信操作器列2110中的操作器条目2130指示与行1(2138)相关联的合规要求的通信操作器是“可以对话”,EPG选择器B列2112中的EPG条目2132指示针对与行1(2138)相关联的合规要求被选择为EPG选择器B的EPG是“EPG-1”,并且流量选择器列2114中的流量选择器条目2134指示针对与行1(2138)相关联的合规要求配置的流量选择器是“流量选择器Fl”。
图22示出了用于配置合规要求的示例定义方案2200的图示。定义方案2200首先包括表示用于合规要求的EPG选择器A的EPG选择器对象2202。这里用户可以为EPG选择器对象2202提供定义,以配置用于合规要求的EPG选择器A。定义集合2212提供针对EPG选择器对象2202设置的定义2214-2226的示例。定义2214-2226提供了用于确定哪个(哪些)EPG应该在EPG选择器对象2202中(例如,要包括在用于合规要求的EPG选择器A中的(一个或多个)EPG)的定义(例如,属性、条件、表达式、过滤器、标准、参数等)。定义2214-2226可以包括用于在EPG选择器对象2202中包括和/或排除(一个或多个)EPG的定义。定义集合2212中的示例定义(2214-2226)包括用于基于与EPG相关联的租户、与EPG相关联的VRF、与EPG相关联的EPG标签、与EPG相关联的桥接域(BD)等来选择或包括EPG的标准。
定义方案2200还包括表示用于合规要求的通信操作器的通信操作器对象2204。通信操作器对象2204可以包括用于通信操作器对象2204的通信操作器定义(例如,可以对话、必须对话、不得对话等)。定义方案2200包括表示用于合规要求的EPG选择器B的EPG选择器对象2206。EPG选择器对象2206可以包括定义集合,该定义集合具有用于确定将哪个(哪些)EPG包括在EPG选择器B中的定义,例如与和EPG选择器A相关联的EPG选择器对象2202相关联的定义集合2212中的定义2214-2226。
定义方案2200还包括流量选择器范围对象2208和流量选择器对象2210。流量选择器对象2210表示用于合规要求的流量选择器,并且可以包括用于标识用于合规要求的(一个或多个)流量选择器的定义。流量选择器范围对象2208可以包括指定范围或规则的定义,这些范围或规则用于确定针对流量选择器对象2210配置的哪些流量选择器可以或必须满足或符合合规要求。例如,流量选择器范围对象2208可以包括(一个或多个)定义,该(一个或多个)定义指定哪些流量选择器(例如,2210)应该满足或符合为通信操作器对象2204以及EPG选择器对象2202和2206定义的要求(例如,EPG选择器A可以与EPG选择器B对话,EPG选择器A必须与EPG选择器B对话,EPG选择器A不得与EPG选择器B对话等等)。
为了说明,流量选择器范围对象2208可以指定,与为通信操作器对象2204和EPG选择器对象2202和2206定义的要求相匹配的通信必须在与流量选择器对象2210相关联的所有或任意流量选择器上被允许/拒绝。例如,流量选择器范围对象2208可以指定,EPG选择器A(例如,2202)可以、必须或不得在所有流量选择器(例如,2210)上与EPG选择器B对话。作为另一示例,流量选择器范围对象2208可以指定,EPG选择器A(例如,2202)可以、必须或不得在任意流量选择器(例如,2210)上与EPG选择器B对话。因此,流量选择器范围对象2208可以定义哪些流量选择器必须应用/符合合规要求,包括例如是否所有流量选择器都必须应用/符合,是否仅流量选择器的子集或任意流量选择器(例如,至少一个流量选择器)必须应用/符合等。
图23A示出了合规分数界面2302的示例配置2300。合规分数界面2302可以显示合规分数和统计数据。合规分数界面2302中呈现的合规分数或统计数据可以通过以下方式来导出:使用如前所述定义的任何合规要求来执行保证操作,以用于基于网络中实现的策略和/或配置(例如,在网络控制器(例如,APIC控制器)中编程的ACI策略、在网络中的设备上编程的硬件(例如,TCAM)规则等等)来确定合规要求是否被满足(全部或部分)、被应用或强制执行、被违反(全部或部分)等。
在一些实施方式中,可以针对特定类型或类别的合规要求来显示合规分数和统计数据。例如,合规分数界面2302可以包括整体菜单2304(用于访问整体合规分数(例如,针对所有类型的合规要求的合规分数))、分段菜单2306(用于访问或查看针对分段要求的合规分数)、SLA要求菜单2308(用于访问或查看针对SLA要求的合规分数)、具有流量限制的SLA要求菜单2310(用于访问或查看针对具有流量限制的SLA要求的合规分数)、命名约定要求菜单2312(用于访问或查看针对命名约定要求的合规分数)、或配置要求菜单2314(用于访问或查看针对特定配置要求的合规分数)。
在图23A中的示例配置2300中,合规分数界面2302在整体菜单2304下显示合规分数信息。这里,合规分数界面2302包括合规分数图形2320A(其显示指示策略2316A的合规的合规分数2318A)以及合规分数图形2320B(其显示指示状态2316B的合规的合规分数2318B)。
该示例中的合规分数图形2320A-B是划分为切片2322-2326的饼图,该切片2322-2326表示或示出了部分或完全违反(切片2322)、未应用(切片2324)以及完全满足(切片2326)的合规要求的数量比例。因此,合规分数图形2320A-B可以提供总合规分数(例如,2318A和2318B)以及对违反(部分或全部)、未应用或未完全满足的合规要求的数量或比例的指示。该信息可以提供对网络的配置和/或行为符合或满足合规要求的程度的指示。
图23B示出了合规分数界面2302的另一配置2350,其中合规分数图形2320A的切片(例如,2322-2326)按照要求类型或类别被细分。例如,表示违反(部分或全部)的合规要求的切片2322被细分为切片2322A-F,其中每个切片(2322A-F)对应于特定合规要求类型或类别,例如分段要求、SLA要求、具有流量限制的SLA要求、命名约定要求、资源属性要求、特定配置要求等。此外,表示未应用的合规要求的切片2324被细分为切片2324A-F,其中每个切片(2324A-F)对应于特定合规要求类型或类别。此外,表示完全满足的合规要求的切片2326被细分为切片2326A-F,其中每个切片(2326A-F)对应于特定合规要求类型或类别。
在一些情况下,图23A和图23B中的合规分数图形2320A-B和/或切片(2322、2324、2326、2322A-F、2324A-F、2326A-F)可以是动态的,并且可以被选择来向下钻取(例如,访问更具体的细节)相关联的信息。例如,用户可以选择表示针对特定合规要求类型或类别(例如,分段要求、SLA要求等)违反(部分或全部)的合规要求的切片2322A,以访问与该切片(即,切片2322A)相关联的其他信息或统计数据,例如每个违反的时间戳或时期、所违反的(一个或多个)特定合规要求、产生合规要求违反的特定网络策略或条件、与合规要求违反相关联的任何模式、与合规要求违反相关联的项目(例如,对象、网络分段、网络设备、网络配置或策略、分组或流等)、与合规要求违反有关的信息(例如,描述、通知、统计数据、合规或配置建议、违反元凶、要求信息、合规要求违反期间的网络状况、与和合规违反相关联的对象(例如VRF或EPG等)有关的信息)、和/或任何其他相关信息。
虽然图23A-图23B中的合规分数图形2320A-B被示出为饼图,但是应当注意,出于说明的目的,这种配置或实现方式被提供为非限制性示例,并且本文还考虑了合规分数图形2320A-B的其他类型或配置和/或用于呈现合规分数信息的其他方式。例如,在一些实现方式中,除了或代替由合规分数图形2320A-B描述的饼图,可以以列表、报告、条形图、表格、日志、热图和/或以任何其他方案或配置来呈现合规分数信息。
图24A示出了合规分析界面2402的示例视图2400。合规分析界面2402中呈现的合规和分析信息可以通过以下方式来导出:使用如前所述定义的任何合规要求来执行保证操作,以用于基于网络中实现的策略和/或配置来确定合规要求是否被满足(全部或部分)、被应用或强制执行、被违反(全部或部分)等。
在视图2400中,合规分析界面2402包括按照严重性来标识合规事件的部分2404,包括严重违反2406A、重大违反2406B、次要违反2406C、警告2406D、强制执行2406E和总计2406F。合规分析界面2402还可以包括按照合规类型来标识合规违反的部分2408,包括对通信要求2410A、资源属性要求2410B和命名约定要求2410C的违反。
合规分析界面2402还可以包括按照通信合规问题来标识不健康的资源的部分2412,包括租户(2414A)、应用简档(2414B)和EPG(2414C)。此外,合规分析界面2402可以包括按照资源属性合规问题来标识不健康的资源的部分2416,包括租户(2414A)、VRF(2414D)、EPG(2414C)、BD(2414D)和子网(2414E)。合规分析界面2402还可以包括按照命名约定合规问题来标识不健康的资源的部分2420,包括租户(2414A)、VRF(2414D)、EPG(2414C)、BD(2414D)和子网(2414E)。在该示例中,部分2412、2416和2420可以为部分2408中的每种合规类型提供特定于资源或对象的违反或问题。因此,部分2412、2416和2420可以提供针对部分2408中的每种合规类型而标识的违反或问题的不同或更详细的视图。
图24B示出了合规分析界面2402的另一视图2430,包括合规信息和统计数据的各种表2432-2442。在该示例中,合规分析界面2402包括表2432(其按照EPG计数违反来呈现顶部租户)、表2434(其按照通信合规问题来呈现顶部租户)、表2436(其按照资源属性问题来呈现顶部租户)、表2438(其按照命名约定问题来呈现顶部租户)、表2440(其按照资源属性问题类型来呈现顶部租户)、以及表2442(其按照合规要求集合和合规要求来呈现合规违反和强制执行)。
按照EPG计数违反来呈现顶部租户的表2432可以包括租户列2444(其标识针对每行统计数据或信息的租户)、通信要求计数列2446(其包括针对租户列2444中每个租户的通信合规要求违反的数量)、资源属性计数列2448(其包括针对租户列2444中每个租户的资源属性合规要求违反的数量)、以及命名约定计数列2450(其包括针对租户列2444中每个租户的命名约定合规要求违反的数量)。
按照通信合规问题来呈现顶部租户的表2434可以包括租户列2444以及列2452-2456(其包括针对各种类型的事件(例如,严重事件(2452)、重大事件(2454)和次要事件(2456))的通信合规问题(例如,流量选择器问题、流量合规问题等)的数量)。例如,列2452可以显示针对租户列2444中每个租户的严重事件(例如,通信合规严重事件)的数量,列2454可以显示针对租户列2444中每个租户的重大事件(例如,通信合规重大事件)的数量,并且列2456可以显示针对租户列2444中每个租户的次要事件(例如,通信合规次要事件)的数量。
按照资源属性合规问题来呈现顶部租户的表2436可以包括租户列2444以及列2452-2456(其包括针对各种类型的事件(例如,严重事件(2452)、重大事件(2454)和次要事件(2456))的资源属性合规问题的数量)。例如,列2452可以显示针对租户列2444中每个租户的严重事件(例如,资源属性合规严重事件)的数量,列2454可以显示针对租户列2444中每个租户的重大事件(例如,资源属性合规重大事件)的数量,并且列2456可以显示针对租户列2444中每个租户的次要事件(例如,资源属性合规次要事件)的数量。
按照命名约定问题来呈现顶部租户的表2438可以包括租户列2444以及列2452-2456(其包括针对各种类型的事件(例如,严重事件(2452)、重大事件(2454)和次要事件(2456))的命名约定合规问题的数量)。例如,列2452可以显示针对租户列2444中每个租户的严重事件(例如,命名约定合规严重事件)的数量,列2454可以显示针对租户列2444中每个租户的重大事件(例如,命名约定合规重大事件)的数量,并且列2456可以显示针对租户列2444中每个租户的次要事件(例如,命名约定合规次要事件)的数量。
按照资源属性问题类型来呈现顶部租户的表2440可以包括租户列2444以及列2458-2468(其包括针对各种资源属性问题类型(例如,泛洪属性(列2458)、端点学习属性(列2460)、DHCP中继属性(列2462)、网关属性(列2464)、隐私属性(列2466)和VRF属性(列2468)的合规问题的数量)。
按照合规要求集合和合规要求来呈现合规违反和强制执行的表2442可以包括合规要求集合列2470(其标识表2442中的特定合规要求集合)、合规要求列2472(其标识表2442中列出的合规要求集合中的特定合规要求)、合规要求类型列2474(其标识表2442中的特定合规要求类型)、违反和强制执行列2476(其标识表2442中的特定合规要求集合是否被违反或强制执行)、以及未应用列2478(其标识表2442中的特定合规要求集合是否已经被应用)。
图25示出了示例合规事件搜索界面2500。合规事件搜索界面2500允许用户搜索基于如前所述定义的合规要求或合规要求集合而生成或计算的特定合规事件。合规事件搜索界面2500可以包括搜索界面2502,用户可以在其中输入搜索标准并基于该搜索标准来执行搜索。搜索界面2502包括搜索输入区域2504(用户可以在其中输入或选择过滤器(例如,搜索标准))以及搜索过滤器区域2506(其包括或标识已经被添加或配置用于搜索的每个搜索过滤器)。搜索过滤器的非限制性示例可以包括事件严重性过滤器(例如,严重、重大、次要、警告等)、事件类型过滤器(例如,合规要求事件或问题的类型)、事件描述过滤器、事件名称过滤器、对象过滤器(例如,EPG、VRF、租户、BD、应用简档、EPG标签等)等等。
合规事件搜索界面2500可以包括搜索结果部分2510,其呈现基于在搜索输入区域2504中提供的过滤器(例如,2506)而执行的搜索的结果2522。结果2522可以包括与搜索中实现的过滤器相匹配的事件以及与该事件相关联的信息,例如,严重性、描述、事件名称、事件类型、事件计数、与事件相关联的EPG合规要求集合等。
搜索结果部分2510可以包括聚合事件选项2508A(其用于显示聚合事件)和个体事件选项2508B(其用于显示个体事件)。在该示例中,结果2522包括基于聚合事件选项2508A的聚合事件。
搜索结果部分2510可以包括作为结果2522的一部分而呈现的信息的各个列2512-2520。例如,搜索结果部分2510可以包括严重性列2512(其指示结果2522中的每个事件的严重性(例如,严重、重大、次要、警告等))、事件名称列2514(其标识每个事件的名称)、事件子类别列2516(其指示相关联的事件子类别)、计数列2518(其指示每个事件的计数)以及事件描述列2520(其包括每个事件可用的任何描述(如果有的话))。搜索结果部分2510还可以包括过滤器2524A-C,用于将特定过滤器应用于结果2522。
在公开了示例系统组件和概念之后,本公开现在转向用于创建和验证安全合规要求的示例方法,如图26-图28所示。本文概述的步骤是示例,并且可以以任何组合来实现,包括排除、添加或修改某些步骤的组合。
参考图26,在步骤2602处,用于在网络中创建安全合规要求并验证安全合规要求的方法可以包括:经由用户界面来接收EPG包括规则(例如,1914、1922、1924、1926、1944),该EPG包括规则定义网络(例如,网络环境100)上的哪些EPG应该包括在多个EPG选择器(例如,EPG选择器1116、EPG选择器1506)中的每一者中。多个EPG选择器可以表示满足EPG包括规则的相应EPG集合。
可以经由例如用户界面的部分、段或界面(其允许用户创建和/或配置EPG选择器,例如新EPG选择器界面1900)来接收EPG包括规则。此外,EPG包括规则可以包括用于将EPG包括在EPG选择器中以及从EPG选择器中排除EPG的规则、标准、参数、条件等(例如,1914、1916A-C、1918A-C、1922、1924、1926、1928、1930、1932A-B、1934A-B、1936、1938、1944)。例如,EPG包括规则可以包括过滤器,用于基于下列项来选择网络中的EPG以供包括在EPG选择器中:与EPG相关联的VRF、与EPG相关联的租户、与EPG相关联的应用简档、与EPG相关联的名称(或名称的一部分)、与EPG相关联的标志(例如,EPG标志)、与EPG相关联的标签、和/或与EPG相关联的任何其他标准或属性。
在步骤2604处,方法可以包括:选择满足EPG包括规则的相应EPG集合以供包括在多个EPG选择器中。在一些示例中,可以基于与相应EPG集合相关联或应用于相应EPG集合的EPG包括规则的相应部分,来选择每个相应EPG集合。例如,可以基于EPG包括规则中应用于相应EPG集合和/或定义与相应EPG集合相匹配的标准(例如,参数、过滤器、条件、属性等)的那些规则,来选择每个相应EPG集合。
在步骤2606处,方法可以包括基于相应EPG集合来创建多个EPG选择器。每个相应EPG集合可以包括一个或多个EPG,并且多个EPG选择器中的每一者可以包括相应EPG集合中的一者或多者。
在步骤2608处,方法可以包括创建包括通过用户界面接收到的流量参数(例如,1818、1820、1832、1834、1842、1844、1846、1852、1856、1858A、1858B、1862、1864、1872、1874、1876、1890)的流量选择器。可以如图18A-图18E所示经由与用户界面相关联的流量选择器界面(例如,新流量选择器界面1800)来创建流量选择器。流量选择器可以表示或包括例如特定流量,包括(一个或多个)特定类型的流量、(一个或多个)特定类别的流量、(一个或多个)特定分类的流量、具有特定属性的流量等。
流量选择器所表示的流量可以通过流量参数来定义。例如,流量参数可以用于识别、分类、选择、过滤等要包括在流量选择器中、要添加到流量选择器中、要与流量选择器相关联、要映射到流量选择器、要应用于流量选择器等的特定流量。流量参数可以包括例如与流量选择器相关联的流量的流量属性、标准、类别、过滤器等。流量参数的非限制性示例包括流量协议(例如,OSPF、EGP、IGP、TCP、UDP、ICMP、IGMP、EIGRP、PIM等)、以太网类型(例如,IPv6、IPv4、MPLS、Trill、ARP、FCOE、MAC安全、未指定等)、端口(例如,源端口、目的地端口)、例外、标志、基于流量方向的流量设置、地址、状态(例如,会话状态、协议状态等)、端口范围、流量优先级值等,可以使用上述任一者通过将流量与流量参数进行匹配或比较来对流量进行识别、选择、分类、关联、包括等。可以将与流量选择器的流量参数相匹配的流量与流量选择器相关联、添加到流量选择器、或分配给流量选择器。
在步骤2610处,方法可以包括基于下列项来为网络创建安全合规要求:来自多个EPG选择器的第一EPG选择器(例如,如图17C所示的针对EPG选择器A的所选EPG选择器1202)、来自多个EPG选择器的第二EPG选择器(例如,如图17C所示的针对EPG选择器B的所选EPG选择器1752)、流量选择器、和为与第一EPG选择器、第二EPG选择器和流量选择器相关联的流量定义通信条件(1708)的通信操作器(例如,通信操作器定义1018B)。可以使用用户界面来创建和配置安全合规要求。
为了说明,如图17A-图17C所示,用户可以访问合规要求界面1000以创建安全合规要求。使用合规要求界面1000,用户可以通过以下方式来配置安全合规要求:例如但不限于,为安全合规要求选择EPG选择器(例如,EPG选择器A和EPG选择器B),为安全合规要求指定通信操作器(例如,与通信操作器定义1018B相关联的通信操作器1708),以及为安全合规要求选择流量选择器(例如,与合规定义1704相关联的所选流量选择器1754、与合规定义1704相关联的所选流量选择器1760)。
通信操作器为与安全合规要求相关联的EPG选择器(例如,第一EPG选择器和第二EPG选择器)中的EPG之间的流量定义通信条件或要求。通信操作器的非限制性示例包括“可以对话”条件、“只能对话”条件、“必须对话”条件和“不得对话”条件。例如,针对安全合规要求配置的通信操作器可以指定,第一EPG选择器可以在流量选择器上与第二EPG选择器对话,第一EPG选择器只能在流量选择器上与第二EPG选择器对话,第一EPG选择器必须在流量选择器上与第二EPG选择器对话,或者第一EPG选择器不得在流量选择器上与第二EPG选择器对话。
安全合规要求可以定义在网络中针对安全合规要求的EPG选择器中的EPG之间的流量应该被强制执行、被应用、被满足等的安全要求,该安全要求与安全合规要求所指定的属性、标准等(例如,为针对安全合规要求定义的(一个或多个)通信操作器和(一个或多个)流量选择器提供的条件)相匹配。安全合规要求可以用于在网络中执行合规或保证验证(例如,经由本文中进一步描述的保证、合规或包含检查)。合规或保证验证可以确定网络的策略、状态和/或配置是符合(例如,应用、满足等)安全合规要求,还是以其他方式违反(全部或部分)或无法应用/强制执行安全合规要求。
在步骤2612处,方法可以包括确定网络上的安全策略(例如,规则、契约、策略设置、过滤器、访问控制列表条目等)(例如,在控制器116、叶节点104上配置的安全策略等)是否符合(例如,满足、违反、应用、强制执行等)安全合规要求。在一些情况下,该确定可以涉及将网络上的安全策略与安全合规要求进行比较,以确定安全策略是否满足(完全或部分)、违反(全部或部分)、应用或强制执行安全合规要求。
在一些实施方式中,合规系统(例如,保证设备系统300、策略分析器504、形式分析引擎522)可以获得安全合规要求,并且通过比较安全合规要求(或其表示)与网络上的安全策略(或其表示)以确定安全策略是否符合安全合规要求,来执行检查(例如,等效、保证或合规检查)。例如,合规系统可以在安全策略和安全合规要求之间执行检查,如图5A-图5C和图6A-图6C所示。
在一些示例中,合规系统(例如,保证设备系统300)可以使用网络的模型(例如,逻辑模型270、硬件模型276等)来确定网络上的策略(例如,在模型中表示的策略)是否符合安全合规要求。例如,合规系统可以生成表示逻辑模型270(和/或其中的策略和配置)的数据结构(例如,BDD(例如,540)、ROBDD(例如,600A、600B、600C)、n位向量或字符串、规则的简单列表等)、以及针对来自第一EPG选择器和第二EPG选择器的每个EPG对(例如,每个EPG对包括来自第一EPG选择器的一个EPG和来自第二EPG选择器的一个EPG)的表示该EPG对、通信操作器和流量选择器的数据结构。
合规系统然后可以对每个EPG对的数据结构执行包含检查,以确定每个EPG对的数据结构是否包含在表示逻辑模型270的数据结构中。如果每个EPG对的数据结构包含在表示逻辑模型270的数据结构中,则合规系统可以确定网络中的策略满足安全合规要求。如果一个或多个EPG对的数据结构没有(完全和/或部分)包含在表示逻辑模型270的数据结构中,则合规系统可以确定网络中的策略违反或没有应用安全合规要求。
例如,假设第一EPG选择器包括EPG1和EPG2,并且安全合规要求的第二EPG选择器包括EPG3和EPG4。进一步假设通信操作器包括条件“必须对话”,并且流量选择器包括流量参数TCP协议和以太网类型IPv6。基于第一EPG选择器和第二EPG选择器、通信操作器和流量选择器,该示例中的安全合规要求规定EPG1和EPG 2(即,第一EPG选择器)必须使用TCP协议和IPv6与EPG 3和EPG 4(即,第二EPG选择器)对话。
为了确定网络中的策略是否符合该示例安全合规要求,合规系统可以创建表示EPG1、EPG3、通信操作器和流量选择器的BDD;表示EPG1、EPG4、通信操作器和流量选择器的BDD;表示EPG2、EPG3、通信操作器和流量选择器的BDD;以及表示EPG2、EPG4、通信操作器和流量选择器的BDD。这里,合规系统已经为第一EPG选择器和第二EPG选择器中的每个EPG对创建了BDD,该BDD表示与每个EPG对有关的安全合规要求。合规系统然后可以通过确定每个BDD是否包含在为逻辑模型270创建的BDD中来对每个BDD执行包含检查。为逻辑模型270创建的BDD可以表示网络的策略和配置。
如果为逻辑模型270创建的BDD中包含所有EPG对的BDD,则合规系统可以确定网络中的策略符合安全合规要求。另一方面,如果为逻辑模型270创建的BDD中没有完全包含与一个或多个EPG对相对应的一个或多个BDD,则合规系统可以确定网络中的策略至少部分违反或没有完全应用安全合规要求。
为了说明,假设逻辑模型270包含用于EPG1和EPG2之间流量的以下策略:
R1:源=EPG1;目的地=EPG2;协议=TCP;类型=IPv4;端口=80;操作=允许。
R2:源=EPG1;目的地=EPG2;协议=*;类型=*;端口=*;动作=拒绝。
另外,假设安全合规要求已经针对EPG1和EPG2之间的流量创建有以下安全要求:
S1:EPG1只能在协议TCP、以太网类型IPv4和端口80上与EPG2对话;
其中,EPG1是来自EPG选择器A的EPG,EPG2是来自EPG选择器B的EPG,“必须对话”表示与安全合规要求相关联的通信操作器,并且流量参数“只能在协议TCP、以太网类型IPv4和端口80上”表示与安全合规要求相关联的流量选择器。
为了在规则S1与R1和R2之间执行包含检查,方法可以创建用于S1、R1和R2的相应数据结构(例如,BDD),并且确定用于S1的BDD是否包含在用于R1和R2的BDD内。在该示例中,R1规定,EPG1和EPG2之间的通过TCP、IPv4和端口80传输的流量被允许;而R2规定,EPG1和EPG2之间的所有流量均被拒绝。因为R1具有比R2更高的优先级,所以结果是EPG1和EPG2之间的通过TCP、IPv4和端口80传输的流量被允许并且EPG1和EPG2之间的所有其他流量被拒绝。R1和R2中的这些要求与S1中的要求一致。因此,包含检查将产生用于S1、R1和R2的相应数据结构之间的等效,指示逻辑模型270中针对EPG1和EPG2之间的流量的策略(即,R1和R2)满足与EPG1和EPG2有关的安全合规要求。
在步骤2614处,方法可以包括生成合规保证事件,该合规保证事件指示在网络上配置的安全策略是否符合安全合规要求。例如,在确定网络中的策略是否符合安全合规要求之后,合规系统可以基于来自步骤2612的检查结果来生成合规保证事件。合规系统可以针对每个合规结果或确定引发或生成事件,或者仅针对某些类型的合规结果或确定引发或生成事件,例如当安全合规要求被违反(完全和/或部分)、被满足(全部和/或部分)、未被应用或被强制执行等时。
在一些情况下,方法可以包括在显示器或界面(例如,2302、2402、2500)上呈现合规保证事件。所呈现的合规保证事件可以包括合规结果。合规结果可以指示安全合规要求是否被违反(部分或完全)、被满足(部分或完全)、被应用或被强制执行等。合规结果可以特定于执行合规检查的时期或时间段。然而,在一些情况下,例如,合规结果可以包括来自其他合规检查和/或时间段或时期的结果。
图形用户界面中呈现的合规保证事件和/或合规结果可以包括合规分数、事件计数(例如,违反、合规警告、通过的合规检查、强制执行事件等)、与检查的(一个或多个)安全合规要求有关的信息、与和一个或多个安全合规要求检查相关联的资源或对象(例如,EPG、VRF、租户、桥接域、子网、应用简档、契约、过滤器、工作负载、设备等)有关的信息、对与事件牵连的策略或对象(例如,使得事件引发的策略或对象)的指示等。
在一些情况下,针对合规保证事件和/或合规结果呈现的信息可以被分组为一个或多个类别,并且按照一个或多个类别呈现。例如,可以按照下列项来呈现合规保证事件和/或合规结果:安全合规要求的类型,结果的类型(例如,违反、强制执行、要求通过、警告等)、对象或资源的类型(例如,租户、EPG、VRF、租户、子网、服务器、资源或安全组等)、事件的严重性(例如,严重、重大、次要、警告等)、问题的类型、事件计数、资源属性(例如,泛洪属性、VRF属性、隐私属性、端点属性等)、特定策略或要求等。
此外,可以基于一个或多个因素(例如,用户偏好)以不同的方式来呈现信息。例如,可以基于合规保证事件和相关信息的特定组织或排序,来呈现合规保证事件和相关信息。为了说明,可以按照下列项来对合规保证事件进行排序和呈现:事件计数、时期(或任何间隔或时间表)、优先级、严重性、事件或资源排名、合规分数、合规要求类型、合规问题、资源或事件属性、特定策略、特定合规要求,合规要求集合等。
在一些情况下,合规保证事件可以与对引起事件的原因的指示一起被呈现。例如,合规保证事件可以与对满足、违反或不应用安全合规要求的原因的指示一起被呈现。在呈现原因时,还可以标识该原因所涉及和/或包括在安全合规要求中的特定对象和/或策略。例如,假设针对违反的安全合规要求生成了合规保证事件。标识违反的合规保证事件可以与下列项一起被呈现:对引起违反的策略、要求或对象的指示,和/或与安全合规要求、引起违反的一个或多个策略、和/或违反或合规检查所涉及的资源或对象相关联的策略构建(例如,EPG、VRF、应用简档、桥接域、租户、过滤器、契约等)的列表。例如,违反可以与对违反是由特定消费者EPG和特定供应商EPG之间的特定契约或规则引起的指示一起被呈现。
在一些情况下,方法可以包括将安全合规要求分组为包括多个安全合规要求的集合。此外,特定安全合规要求或安全合规要求集合可以与网络的特定结构或分段相关联,并且专门应用于网络的该特定结构或分段。例如,如果网络包括多个结构,则安全合规要求或安全合规要求集合可以与一个或多个结构相关联,并且用于检查一个或多个结构(或与一个或多个结构相关联的策略)是否符合这样的安全合规要求或安全合规要求集合。因此,可以基于一个或多个结构中的安全策略以及安全合规要求或安全合规要求集合来执行用于确定合规的步骤2612。
在一些情况下,方法可以包括确定网络的状态是否符合安全合规要求。例如,方法可以包括将安全合规要求与在网络中的网络设备(例如,交换机、路由器等)上编程的规则(例如,ACL)和/或在网络节点(例如,叶节点104)的硬件存储器(例如,TCAM)上编程的规则进行比较。为了说明,方法可以包括将表示安全合规要求的一个或多个第一数据结构(例如,BDD、ROBDD、向量、简单规则等)与表示在网络中的网络设备上配置的硬件策略条目(例如,TCAM条目)的一个或多个第二数据结构(例如,BDD、ROBDD、向量、简单规则等)进行比较(例如,通过执行包含或保证检查),并且基于比较来确定在网络设备上配置的硬件策略条目是否满足、违反或应用安全合规要求。
在一些实施方式中,可以基于为网络创建的一个或多个硬件模型(例如,硬件模型276)来创建表示在网络设备上配置的硬件策略条目的一个或多个第二数据结构。例如,与网络中的交换机相关联的硬件模型可以用于构建一个或多个BDD,该一个或多个BDD可以表示在交换机中反映的网络状态的一部分(例如,在交换机上编程的用于在网络中实现或强制执行安全策略的规则),并且该一个或多个BDD可以用于确定网络状态的一部分是否符合安全合规要求。可以使用与网络中的其他交换机相关联的硬件模型来执行类似的包含检查,并且聚合结果可以指示网络的状态是否符合安全合规要求。在一些情况下,这可以包括通过以下方式来执行包含检查:检查针对安全合规要求而创建并表示安全合规要求的一个或多个BDD是否包含在从表示网络状态的(一个或多个)硬件模型构建的一个或多个BDD中。
图27示出了用于创建安全合规要求并且确定涉及相同的网络上下文上的对象的策略的合规的示例方法。这些对象可以包括例如,EPG、应用简档、契约、网络域、过滤器、租户、策略、策略构建等。此外,网络上下文可以包括例如,私有网络、网络域、VRF、子网、桥接域等。在该示例方法中,对象是EPG,并且网络上下文是VRF。然而,在其他示例中,对象和/或网络上下文可以包括其他类型的对象、策略构建和/或网络上下文,例如,安全组、子网、桥接域、网络上下文、组策略对象等。
在步骤2702处,方法可以包括为网络(例如,100)创建安全合规要求(例如,经由如图17A-图17C所示的合规要求界面1000),该安全合规要求包括表示相应EPG集合的第一EPG选择器(例如,如图17C所示的用于EPG选择器A的所选EPG选择器1202)和第二EPG选择器(例如,如图17C所示的用于EPG选择器B的所选EPG选择器1752)、流量选择器和通信操作器(例如,通信操作器定义1018B)。
如前所述,可以基于EPG包括规则(例如,1914、1922、1924、1926、1944)来选择或确定与第一EPG选择器和第二EPG选择器相关联的相应EPG集合。流量选择器可以包括标识与流量选择器相关联的流量的流量参数(例如,1818、1820、1832、1834、1842、1844、1846、1852、1856、1858A、1858B、1862、1864、1872、1874、1876、1890)。流量参数可以用于使流量与流量选择器相匹配和/或标识哪个流量对应于流量选择器。通信操作器可以为与第一EPG选择器和第二EPG选择器以及流量选择器相关联的流量定义通信条件(例如,1708),例如“可以对话”条件、“必须对话”条件、“不得对话”条件、“只能对话”条件等。
在步骤2704处,方法可以包括为来自相应EPG集合的每个不同的EPG对,创建表示不同的EPG对、通信操作器和流量选择器的第一相应数据结构。该不同的EPG对可以包括来自第一EPG选择器和第二EPG选择器中的每一者的相应EPG(例如,每个EPG对可以包括来自第一EPG选择器的一个EPG和来自第二EPG选择器的一个EPG)。第一相应数据结构可以是例如表示不同的EPG对、通信操作器和流量选择器的BDD(例如,540)、ROBDD(例如,600A、600B、600C)、n位向量或字符串、规则的简单列表等。例如,第一相应数据结构可以是表示与不同的EPG对、通信操作器和流量选择器相关联的一个或多个变量、规则、值、布尔函数等的BDD。图5A-图5C和图6A-图6C及其随附描述提供了为示例对象和/或规则生成的并且用于执行保证或包含检查的示例数据结构(例如,ROBDD)。
在步骤2706处,方法可以包括创建表示网络的模型(例如,逻辑模型270)的第二相应数据结构。第二相应数据结构可以是例如BDD(例如,540)、ROBDD(例如,600A、600B、600C)、n位向量或字符串、规则的简单列表等,其表示网络的模型(例如,逻辑模型270)和/或其中的策略和配置。
在步骤2708处,方法可以包括确定第一相应数据结构是否包含在第二相应数据结构中以产生包含检查。例如,诸如保证设备系统300之类的合规系统可以对每个第一相应数据结构(例如,为每个不同的EPG对创建的数据结构)执行包含检查,以确定每个第一相应数据结构是否包含在表示网络的模型的第二相应数据结构中。
在步骤2710处,方法可以包括基于包含检查来确定在网络上配置的安全策略是否符合(例如,满足、违反或应用)安全合规要求。例如,如果每个不同的EPG对的第一相应数据结构包含在表示网络的模型(例如,逻辑模型270)的第二相应数据结构中,则合规系统(例如,保证设备系统300)可以确定网络中的策略满足安全合规要求。如果每个不同的EPG对的第一相应数据结构没有(完全和/或部分)包含在表示网络的模型的第二相应数据结构中,则合规系统可以确定网络中的策略违反或未应用安全合规要求。如果仅一些第一相应数据结构没有(完全和/或部分)包含在第二相应数据结构中,则合规系统可以确定仅网络中的一些策略违反或未应用安全合规要求。
在一些情况下,合规系统可以基于包含检查来确定网络中的哪些策略和/或由第一相应数据结构表示的哪些策略构建或策略违反或未应用安全合规要求。例如,合规系统可以标识哪些第一相应数据结构未包含在第二相应数据结构中,并且基于该确定来标识哪些策略和/或策略构建与失败的包含检查相关联。
在一些情况下,方法可以包括确定来自EPG集合的至少一个不同的EPG对中的每个EPG与相同的网络上下文(例如,相同的VRF)相关联。例如,在一些情况下,用于执行包含检查的过程可以根据由第一相应数据结构表示的EPG对中的EPG是处于相同的网络上下文(例如,相同的VRF)中还是不同的网络上下文中而变化。为了说明,当EPG在相同的网络上下文(例如,相同的VRF)中时,步骤2710可以包括确定与网络上下文(例如,VRF)相关联的策略是否满足、违反或应用安全合规要求,如本文所述。
另一方面,如果EPG对中的EPG位于不同的网络上下文中,则包含检查过程可以包括确定与该EPG对相关联的策略可能位于何处(例如,哪个网络上下文),如下参考图28所述。例如,在一些情况下,与不同的网络上下文中的EPG对相关联的策略可以被设置在或者位于网络上下文中的仅一者中、网络上下文中的两者中、或不在网络上下文中。因此,为了执行合规检查,方法可以包括确定在何处(例如,哪个或哪些网络上下文)查找或检查策略。为了说明,在一些情况下,与消费者EPG和供应商EPG相关联的策略可以位于或者被设置在与消费者EPG相关联的网络上下文中。因此,策略可以不位于或者不被设置在与供应商EPG相关联的网络上下文中。因此,为了对与消费者和供应商EPG相关联的策略执行包含检查,方法可以包括在与消费者EPG相关联的网络上下文中定位策略。下面参考图28提供了用于执行涉及在不同的网络上下文中的EPG的包含检查的示例方法的附加细节和描述。
参考图27,在该示例方法中,EPG位于相同的VRF中。如前所述,在一些示例中,与相同的网络上下文(例如,VRF)中的EPG相关联的策略可以包含在网络上下文中。因此,在该示例中,可以至少部分地基于模型中与EPG的VRF相关联的策略来创建第二相应数据结构。因此,第二相应数据结构可以表示与VRF相关联的策略。因此,包含检查可以包括检查每个第一相应数据结构是否包含在表示与VRF相关联的策略的第二相应数据结构中。
在其他示例中,尽管EPG处于相同的网络上下文中,但是可以基于模型(例如,逻辑模型270)中的所有策略或与该模型的任何其他部分相关联的策略来创建第二相应数据结构。因此,包含检查可以包括检查每个第一相应数据结构是否包含在表示模型中的所有策略或与模型的任何其他部分相关联的策略的第二相应数据结构中。
在一些情况下,方法可以包括生成指示安全策略是否符合安全合规要求的一个或多个合规保证事件。一个或多个合规保证事件可以基于步骤2710中的合规结果。例如,在确定网络中的策略是否符合安全合规要求之后,合规系统可以基于来自步骤2710的检查结果来生成合规保证事件。合规系统可以针对每个合规结果或确定引发或生成事件,或者仅针对某些类型的合规结果或确定引发或生成事件,例如当安全合规要求被违反(完全和/或部分)、被满足(完全和/或部分)、未被应用或被强制执行等。
在一些情况下,方法可以包括在显示器或界面(例如,2302、2402、2500)上呈现一个或多个合规保证事件。所呈现的合规保证事件可以包括合规结果。合规结果可以指示安全合规要求是否被违反(部分或完全)、被满足(部分或完全)、被应用或被强制执行等。合规结果可以特定于执行合规检查的时期或当前时间段。然而,在一些情况下,合规结果可以包括来自其他合规检查的结果,例如,在不同时间段或时期执行的合规检查。
当呈现合规保证事件和/或合规结果时,所呈现的信息可以包括合规分数、事件计数、与所检查的(一个或多个)安全合规要求有关的信息、与和一个或多个安全合规要求检查相关联的资源或对象有关的信息、对与事件等牵连的策略或对象的指示。在一些情况下,针对合规保证事件和/或合规结果呈现的信息可以被分组为一个或多个类别,并且按照一个或多个类别来呈现。例如,可以按照安全合规要求的类型、结果的类型、对象或资源的类型、事件的严重性、问题的类型、事件计数、资源属性、特定策略或要求等来呈现合规保证事件和/或结果。
此外,可以基于诸如用户偏好之类的一个或多个因素以不同的方式和配置来呈现信息。例如,可以基于合规保证事件和相关信息的特定组织或排序,来呈现合规保证事件和相关信息。在一些情况下,如先前参考图26所描述的,合规保证事件可以与对引起安全合规要求的原因的指示一起被呈现。
在一些情况下,方法可以包括将安全合规要求分组为包括多个安全合规要求的集合。此外,方法可以包括将一个或多个特定安全合规要求或安全合规要求集合与网络的特定结构或分段相关联,以及将一个或多个特定安全合规要求或安全合规要求集合专门应用于网络的该相关联的结构或分段。例如,如果网络(例如,网络环境100)包括多个结构,则安全合规要求集合可以与一个或多个结构相关联,并且用于检查一个或多个结构(或相关联的策略)是否符合安全合规要求集合。
在一些情况下,方法可以包括确定网络的状态是否符合安全合规要求。例如,方法可以包括将安全合规要求与在网络中的网络设备(例如,交换机、路由器等)上编程的规则(例如,ACL)和/或在网络中的网络设备(例如,叶节点104)的硬件存储器(例如,TCAM)上编程的规则进行比较。为了说明,方法可以包括将表示安全合规要求的一个或多个第一数据结构与表示在网络中的网络设备上配置的硬件策略条目(例如,TCAM条目)的一个或多个第二数据结构进行比较(例如,通过执行包含或保证检查),并且基于比较来确定在网络设备上配置的硬件策略条目是否满足、违反或应用安全合规要求。
在一些实施方式中,可以基于为网络和/或网络设备创建的一个或多个硬件模型(例如,硬件模型276)来创建表示在网络设备上配置的硬件策略条目的一个或多个第二数据结构。例如,交换机的硬件模型可以用于构建一个或多个BDD,该一个或多个BDD可以表示与该网络设备有关的网络状态(例如,在网络设备上编程的实现或强制执行网络中的安全策略的规则),并且一个或多个BDD可以用于包含检查。
图28示出了用于创建涉及不同的网络上下文上的对象的安全合规要求并且确定与不同的网络上下文上的对象相关联的策略的合规的示例方法。这些对象可以包括例如EPG、应用简档、契约、网络域或构建、过滤器、租户、策略、策略构建等。此外,网络上下文可以包括例如,私有网络、网络域、VRF、子网、桥接域等。在该示例中,对象是EPG,并且私有网络是VRF。
在步骤2802处,方法可以包括为网络(例如,网络环境100)创建安全合规要求(例如,经由如图17A-图17C所示的合规要求界面1000),该安全合规要求包括表示相应EPG集合的EPG选择器(例如,用于EPG选择器A的所选EPG选择器1202和用于EPG选择器B的所选EPG选择器1752)、流量选择器和通信操作器(例如,通信操作器定义1018B)。
可以基于如前所述配置的EPG包括规则(例如,1914、1922、1924、1926、1944)来选择或确定与EPG选择器相关联的相应EPG集合。流量选择器可以包括标识与流量选择器相关联的流量的流量参数(例如,1818、1820、1832、1834、1842、1844、1846、1852、1856、1858A、1858B、1862、1864、1872、1874、1876、1890)。通信操作器可以为与EPG选择器和流量选择器相关联的流量定义通信条件(例如,1708),例如“可以对话”条件、“必须对话”条件、“不得对话”条件、“只能对话”条件等。
在步骤2804处,方法可以包括基于来自相应EPG集合的多个不同的EPG对,来确定一个或多个不同的EPG对中的相应EPG与网络中的不同网络上下文相关联。例如,方法可以包括确定EPG对中的EPG处于不同的VRF中。多个不同的EPG对中的每个EPG对可以包括来自EPG选择器的相应EPG。例如,不同的EPG对可以包括来自第一EPG选择器的EPG和来自第二EPG选择器的EPG。
在步骤2806处,方法可以包括针对一个或多个不同的EPG对中的每一者,确定(一个或多个)不同的网络上下文中的哪个网络上下文包含针对一个或多个不同的EPG对中的相应EPG之间的流量的安全策略。如前所述,当EPG对中的EPG位于不同的网络上下文中时,与该EPG对相关联的策略可以位于或被设置在不同的网络上下文中的一者中、网络上下文中的两者中、或不在网络上下文中。因此,为了对不同的网络上下文中的EPG对执行包含检查,方法可以包括找到与该EPG对相关联的策略所位于或被设置的位置(例如,哪个(哪些)网络上下文)以使用那些策略进行检查。
在一些情况下,针对包括消费者和供应商的EPG对的策略可以位于与消费者相关联的网络上下文上。因此,步骤2806可以包括标识消费者EPG,检查与消费者EPG相关联的网络上下文,并且确定策略是否在与消费者EPG相关联的网络上下文中。例如,在一些情况下,在与消费者EPG相关联的网络上下文中创建针对网络中在消费者与供应商EPG之间的流量的规则。因此,如果EPG1和EPG2之间的契约指定,EPG1是消费者并且EPG2是供应商,并且EPG1和EPG2在不同的网络上下文中,则可以在消费者(即,EPG1)的网络上下文中创建针对EPG1和EPG2之间的流量的规则。因此,可以在消费者(例如,EPG1)的网络上下文中完成对与EPG1和EPG2之间的流量相关联的策略的合规检查。
在一些实现方式中,为了在步骤2806处确定哪个网络上下文包含用于EPG对中的相应EPG之间的流量的安全策略,方法可以包括检查该EPG对中的每个EPG的标签。标签可以标识与其关联的EPG。标签可以是例如classID(类标识符)、pcTag(策略构建标签)或任何其他标签。在一些示例中,EPG的标签可以用于确定EPG是否为消费者EPG,与EPG相关联的网络上下文是否为消费者网络上下文,和/或与EPG相关联的网络上下文是否包含与该EPG相关联的策略。
例如,在一些情况下,标签可以包括全局和局部标签。全局标签可以是跨结构全局唯一的,而局部标签可以仅在上下文(例如,VRF)内唯一。全局标签和局部标签可以具有针对标签指定的相应编号。与全局标签和局部标签相关联的编号可以落在不同的编号范围内。例如,全局标签可以具有全局范围内的编号,例如1到16,385,而局部标签可以具有局部范围内的编号,例如16,386到65,535。因此,标签的编号可以根据其落入的范围来指示该标签是全局标签还是局部标签。此外,在一些情况下,为消费者EPG分配全局标签,而通常为供应商EPG分配局部标签。因此,在一些情况下,EPG的标签的编号可以用于确定或推断EPG是否为消费者EPG。因此,可以检查EPG对的标签以确定哪个EPG是消费者,并且因此确定与该EPG相关联的网络上下文是否可以包含用于该EPG对之间的流量的策略。
因此,为了在步骤2806处确定哪个网络上下文包含用于EPG对之间的流量的安全策略,方法可以包括标识该EPG对中的哪个EPG具有全局标签,并且确定具有全局标签的EPG是消费者EPG。方法还可以包括标识与消费者EPG相关联的网络上下文,以及确定用于该EPG对之间的流量的策略处于被标识为消费者的EPG的网络上下文中。在一些情况下,EPG对中的两个EPG都可以具有全局标签。如果该对中的供应商EPG是不同契约中的消费者EPG,并且先前被分配了全局标签作为针对该契约的消费者,则可以是这种情况。如果一对中的两个EPG都具有全局标签,则方法在步骤2806处可以确定可以在两个不同的网络上下文中创建策略,并且应当在两个不同的网络上下文上都进行包含检查(例如,下面的步骤2812)。
在其他情况下,EPG对中的两个EPG都可以具有局部标签。这里,方法在步骤2806处可以确定包含检查针对EPG对是不必要的,因为EPG对无法彼此通信,因为EPG对中没有EPG被设置为契约或策略中的消费者。因此,关于该EPG对的方法可以结束,而无需执行下面的步骤2808、2810、2812和/或2814。
在步骤2808处,方法可以包括针对来自一个或多个不同的EPG对的每个不同的EPG对,创建表示不同的EPG对、通信操作器和流量选择器的第一相应数据结构。第一相应数据结构可以是例如表示不同的EPG对、通信操作器和流量选择器的BDD(例如,540)、ROBDD(例如,600A、600B、600C)、n位向量或字符串、规则的简单列表等。可以如先前关于图27中的步骤2704所解释的那样创建第一相应数据结构。
当确定不同的网络上下文中的仅第一网络上下文中包含针对一个或多个不同的EPG对中的相应EPG之间的流量的策略时,在步骤2810处,方法可以包括创建表示网络的模型(例如,逻辑模型270)的第一部分的第二相应数据结构,模型的第一部分包含与不同的网络上下文中的第一网络上下文相关联的策略;以及在步骤2812处,方法可以包括确定第一相应数据结构是否包含在第二相应数据结构中以产生第一包含检查。第二相应数据结构可以是例如表示包含与(一个或多个)网络上下文相关联的策略的模型的第一部分(和/或其中的配置数据)的BDD(例如,540)、ROBDD(例如,600A、600B、600C)、n位向量或字符串、规则的简单列表等。因此,第二相应数据结构可以包括模型中与(一个或多个)网络上下文相对应的策略,以及因此与EPG对相关联的策略。可以如先前关于图27中的步骤2706所解释的那样创建第二相应数据结构。
当两个不同的网络上下文都被确定为包含针对一个或多个不同的EPG对中的相应EPG之间的流量的策略时,方法可以包括:在步骤2814处,创建第二相应数据结构和表示逻辑模型(例如,逻辑模型270)的第二部分的第三相应数据结构,逻辑模型的第二部分包含与不同的网络上下文中的第二网络上下文相关联的策略;以及在步骤2816处,确定第一相应数据结构是否包含在第二相应数据结构和/或第三相应数据结构中以产生第二包含检查。
可以针对每个不同的EPG对的第一相应数据结构,基于第二相应数据结构和/或第三相应数据结构,取决于针对一个或多个不同的EPG对中的相应EPG之间的流量的策略是否包含在不同的网络上下文中的一者或两者中,来在步骤2812和2816处执行第一包含检查或第二包含检查。上述在图27的步骤2708中描述了示例包含检查。
在步骤2818处,方法可以包括基于第一包含检查或第二包含检查来确定针对一个或多个不同的EPG对中的相应EPG之间的流量的安全策略是否符合(例如,满足、违反、适用)安全合规要求。在一些情况下,诸如保证设备300之类的合规系统可以基于第一包含检查或第二包含检查来确定网络中的哪些策略和/或哪些策略构建或策略满足、违反或未应用安全合规要求。例如,合规系统可以标识哪些第一相应数据结构未包含在第二相应数据结构中,并且基于该确定来标识哪些策略和/或策略构建违反、满足或未能应用安全合规要求。
在一些情况下,方法可以包括基于步骤2814中的合规结果来生成一个或多个合规保证事件。可以如先前关于图26和图27所描述的那样生成和/或显示一个或多个合规保证事件。此外,一个或多个合规保证事件可以呈现各种类型的信息,例如,对安全合规要求(和相关联的配置设置)的指示、对导致事件引发的策略和/或策略构建的指示、合规结果的原因(例如,合规违反、合规通过、未能应用安全合规要求等)、与事件相关联的时间段或时期等。上述关于图26和图27进一步描述了合规保证事件以及相关联的配置和事件呈现的附加细节和示例。
在一些情况下,方法可以包括将安全合规要求分组为包括多个安全合规要求的安全合规要求集合。此外,方法可以包括将一个或多个特定安全合规要求或安全合规要求集合与网络的特定结构或分段相关联,以及将一个或多个特定安全合规要求或安全合规要求集合应用于该相关联的结构或分段。
在一些情况下,方法可以包括确定网络的状态是否符合安全合规要求。例如,方法可以包括将安全合规要求与在网络中的网络设备(例如,交换机、路由器等)上编程的规则(例如,ACL)和/或在网络中的网络设备(例如,叶节点104)的硬件存储器(例如,TCAM)上编程的规则进行比较。为了说明,方法可以包括将表示安全合规要求的一个或多个第一数据结构与表示在网络中的网络设备上配置的硬件策略条目(例如,TCAM条目)的一个或多个第二数据结构进行比较(例如,通过执行包含或保证检查),并且基于比较来确定在网络设备上配置的硬件策略条目是否满足、违反或应用安全合规要求。
在一些实施方式中,可以基于为网络和/或网络设备创建的一个或多个硬件模型(例如,硬件模型276)来创建表示在网络设备上配置的硬件策略条目的一个或多个第二数据结构。例如,交换机的硬件模型可以用于构建一个或多个BDD,该一个或多个BDD可以表示与该网络设备有关的网络的状态(例如,在网络设备上编程的实现或强制执行网络中的安全策略的规则),并且一个或多个BDD可以用于包含检查。
在一些情况下,确定针对不同的EPG对中的相应EPG之间的流量的安全策略是否符合安全合规要求可以包括针对一些EPG对执行图27中的方法以及针对其他EPG对执行图28中的方法。例如,假设一些EPG对在相同的网络上下文中,而其他EPG对在不同的网络上下文中。为了确定针对不同的EPG对中的相应EPG之间的流量的安全策略是否符合安全合规要求,针对相同的网络上下文中的EPG对的包含检查可以如图27的方法中所描述的那样执行,并且针对不同的网络上下文中的EPG对的包含检查可以如图28的方法中所描述的那样执行。然后可以基于针对相同的网络上下文中的EPG对以及不同的网络上下文中的EPG对的包含检查的结果来执行确定。
已经参考EPG描述了图8-图28中的安全合规要求。然而,应当注意,出于说明目的,EPG在本文中用作非限制性示例,并且本文中设想了其他类型的对象或构建,并且这些其他类型的对象或构建可以用于创建和检查安全合规要求。例如,替代实现EPG选择器,在某些实现方式中,安全合规要求和保证或合规检查可以实现其他对象或构建选择器(附加或替代EPG选择器),例如,安全组、应用简档、契约或规则、网络域、过滤器、租户、策略构建、用户组、策略组、应用组、服务组、和/或具有一个或多个公共属性(例如,公共位置、公共SLA、公共地址域、公共标签、公共配置、公共安全要求等)的任意其他对象或元素组。
本公开现在转向图29和图30,其示出了示例网络设备和计算设备,例如,交换机、路由器、服务器、端点设备、客户端计算机等。
图29示出了适合于执行交换、路由、保证和包含检查、以及其他联网操作的示例网络设备2900。网络设备2900包括中央处理单元(CPU)2904、接口2902和连接2910(例如,PCI总线)。当在软件或固件的控制下动作时,CPU 2904负责执行分组管理、错误检测和/或路由功能。CPU 2904优选地在包括操作系统和任何适当的应用软件的软件的控制下完成所有这些功能。CPU 2904可以包括一个或多个处理器2908,例如来自INTEL X296系列微处理器的处理器。在一些情况下,处理器2908可以是专门设计的硬件,用于控制网络设备2900的操作。在一些情况下,存储器2906(例如,非易失性RAM、ROM、TCAM等)也形成CPU 2904的一部分。然而,有许多不同的方式可以将存储器耦合到系统。在一些情况下,网络设备2900可以包括与CPU 2904分离的存储器和/或存储硬件,例如TCAM。这样的存储器和/或存储硬件可以经由例如连接2910与网络设备2900及其组件耦合。
接口2902通常作为模块化接口卡(有时被称为“线卡”)提供。通常,它们控制通过网络发送和接收数据分组,并且有时支持与网络设备2900一起使用的其他外围设备。可以提供的接口包括以太网接口、帧中继接口、线缆接口、DSL接口、令牌环接口等等。此外,可提供各种非常高速的接口,例如,快速令牌环接口、无线接口、以太网接口、千兆以太网接口、ATM接口、HSSI接口、POS接口、FDDI接口、WIFI接口、3G/4G/5G蜂窝接口、CAN总线、LoRA等。一般而言,这些接口可以包括适合于与适当介质通信的端口。在一些情况下,它们还可以包括独立处理器,并且在一些情况下,还包括易失性RAM。独立处理器可以控制诸如分组交换、介质控制、信号处理、加密处理、和管理之类的此类通信密集型任务。通过为通信密集型任务提供分离的处理器,这些接口允许主微处理器2904高效地执行路由计算、网络诊断、安全性功能等。
虽然图29中所示的系统是本公开的一个特定网络设备,但是它决不是可以在其上实现本文概念的唯一网络设备架构。例如,可以使用具有处理通信以及路由计算等的单个处理器的架构。此外,其他类型的接口和介质也可以与网络设备2900一起使用。
无论网络设备的配置如何,它都可以采用一个或多个存储器(包括存储器2906),其被配置为存储用于本文所描述的漫游、路由优化和路由功能的通用网络操作和机制的程序指令。例如,程序指令可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器还可以被配置为存储诸如移动性绑定、注册和关联表等之类的表。存储器2906还可以保存各种软件容器和虚拟化的执行环境和数据。
网络设备2900还可以包括专用集成电路(ASIC),其可以被配置为执行路由、交换、和/或其他操作。例如,ASIC可以经由连接2910与网络设备2900中的其他组件通信,以交换数据和信号并协调网络设备2900的各种类型的操作,例如路由、交换、和/或数据存储操作。
图30示出了示例计算系统架构3000,该示例计算系统架构3000包括使用诸如总线之类的连接3005彼此电通信的组件。系统架构3000包括处理单元(CPU或处理器)3010和系统连接3005,系统连接3005将包括系统存储器3015在内的各种系统组件(例如,只读存储器(ROM)3020和随机存取存储器(RAM)3025)耦合到处理器3010。系统架构3000可以包括高速存储器的缓存,其与处理器3010直接连接、靠近处理器3010、或者集成作为处理器3010的一部分。系统架构3000可以将数据从存储器3015和/或存储设备3030复制到缓存3012以供处理器3010快速访问。以这种方式,缓存可以提供性能提升,避免处理器3010在等待数据时的延迟。这些和其他模块可以控制或被配置为控制处理器3010以执行各种动作。也可以使用其他系统存储器3015。存储器3015可以包括具有不同性能特性的不同类型的存储器。处理器3010可以包括任何处理器和被配置为控制处理器3010的硬件或软件服务(例如,存储在存储设备3030中的服务1 3032、服务2 3034和服务3 3036)以及其中将软件指令包含在实际的处理器设计中的专用处理器。处理器3010可以是完全自包含的计算系统,包含多个核或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或非对称的。
为了使能与系统架构3000的用户交互,输入设备3045可以表示任何数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。输出设备3035也可以是本领域技术人员已知的多种输出机构中的一种或多种。在一些情况下,多模式系统可以使用户能够提供多种类型的输入以与系统架构3000通信。通信接口3040通常可以控制和管理用户输入和系统输出。对任何特定硬件布置进行的操作没有限制,并且因此这里的基本特征可以很容易地随着改进的硬件或固件布置被开发而被替换为这些改进的硬件或固件布置。
存储设备3030是非易失性存储器,并且可以是硬盘或其他类型的计算机可读介质,其可以存储可由计算机访问的数据,例如磁带盒、闪存卡、固态存储器设备、数字通用盘、盒式磁带、随机存取存储器(RAM)3025、只读存储器(ROM)3020及其混合。
存储设备3030可以包括用于控制处理器3010的服务3032、3034、3036。可以预期其他硬件或软件模块。存储设备3030可以连接到系统连接3005。在一个方面,执行特定功能的硬件模块可以包括存储在与必要的硬件组件(例如,处理器3010、连接3005、输出设备3035等)连接的计算机可读介质中的软件组件以执行功能。
总之,描述了用于保证网络中的规则的系统、方法和计算机可读介质。示例方法可以包括创建合规要求,该合规要求包括第一端点组(EPG)选择器、第二EPG选择器、流量选择器和通信操作器,第一EPG选择器和第二EPG选择器表示EPG集合,并且通信操作器为与第一EPG选择器和第二EPG选择器以及流量选择器相关联的流量定义通信条件。方法可以包括:为每个不同的EPG对,创建表示不同的EPG对、通信操作器和流量选择器的第一相应数据结构;创建表示网络的逻辑模型的第二相应数据结构;确定第一相应数据结构是否包含在第二相应数据结构中以产生包含检查;以及基于包含检查来确定网络上的策略是否符合合规要求。
为了解释的清楚起见,在一些实例中,本技术可以被呈现为包括个体的功能块,其包括设备、设备组件、在软件中体现的方法中的步骤或例程、或者硬件和软件的组合。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的有线或无线信号。然而,当提及时,非暂态计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。
可以使用存储在计算机可读介质中或以其他方式可从计算机可读介质获得的计算机可执行指令来实现根据上述示例的方法。这样的指令可以包括例如使得或配置计算机或处理设备以执行特定功能或功能组的指令和数据。可以通过网络访问所使用的计算机资源的部分。计算机可执行指令可以是例如二进制指令、诸如汇编语言之类的中间格式指令、固件、或源代码。可用于存储指令和/或信息的计算机可读介质的示例包括磁盘或光盘、闪存、具有非易失性存储器的USB设备、联网的存储设备等等。
实现根据这些公开内容的方法的设备可以包括硬件、固件和/或软件,并且可以采用各种形式因子中的任何形式因子。示例形式因子包括膝上型计算机、智能电话、小型个人计算机、个人数字助理、机架设备、独立设备等。本文描述的功能可以实现在外围设备或附加卡中。这样的功能可以在不同芯片之间的电路板上实现,或者在设备中执行的过程中实现。指令、用于传达这些指令的介质、用于执行它们的计算资源以及用于支持这种计算资源的其他结构是用于提供这些公开内容中所描述的功能的手段。
虽然使用各种示例和信息来解释所附权利要求范围内的各个方面,但是不应基于这些示例中的特定特征或布置来暗示对权利要求的限制,因为普通技术人员将能够使用这些示例来导出各种各样的实现方式。虽然可能已经用特定于结构特征和/或方法步骤的示例的语言描述了一些主题,但是应该理解,权利要求中定义的主题不必限于这些描述的特征或动作。例如,这种功能可以在本文标识的那些组件之外的组件中以不同的方式分布或者在本文标识的那些组件之外的组件中执行。所描述的特征和步骤被公开为在权利要求范围内的组分的示例。
记载“……中的至少一个”的权利要求语言指的是集合中的至少一个,并且指示该集合中的一个成员或该集合中的多个成员满足该权利要求。例如,记载“A和B中的至少一个”的权利要求语言指的是A、B、或A和B。

Claims (23)

1.一种方法,包括:
为网络创建合规要求,所述合规要求包括第一端点组(EPG)选择器、第二EPG选择器、流量选择器和通信操作器,其中,所述第一EPG选择器和所述第二EPG选择器表示EPG集合,其中,所述流量选择器包括标识与所述流量选择器相对应的流量的流量参数,并且所述通信操作器为与所述第一EPG选择器和所述第二EPG选择器以及所述流量选择器相关联的流量定义通信条件;
为来自所述EPG集合的每个不同的EPG对,创建表示所述不同的EPG对、所述通信操作器、和所述流量选择器的第一相应数据结构,其中,所述不同的EPG对包括来自所述第一EPG选择器和所述第二EPG选择器中的每一者的相应EPG;
创建表示所述网络的逻辑模型的第二相应数据结构;
确定所述第一相应数据结构是否包含在所述第二相应数据结构中以产生包含检查;以及
基于所述包含检查来确定所述网络上配置的策略是否符合所述合规要求。
2.根据权利要求1所述的方法,其中,所述第一相应数据结构和所述第二相应数据结构包括二元决策图、归约有序二元决策图、和n位向量中的至少一者。
3.根据权利要求1或2所述的方法,还包括:
确定来自所述EPG集合的至少一个不同的EPG对中的每个EPG与相同的网络上下文相关联,所述相同的网络上下文包括虚拟路由和转发实例、私有网络、和网络地址域中的至少一者;并且
其中,创建所述第二相应数据结构至少部分地基于所述逻辑模型中与所述相同的网络上下文相关联的策略,其中,所述第二相应数据结构表示与所述相同的网络上下文相关联的策略。
4.根据权利要求3所述的方法,其中,确定所述策略是否符合所述合规要求包括:确定与所述相同的网络上下文相关联的策略是否满足、违反、或应用所述合规要求。
5.根据权利要求1至4中任一项所述的方法,还包括:
生成指示所述策略是否符合所述合规要求的一个或多个合规保证事件。
6.根据权利要求5所述的方法,其中,生成所述一个或多个合规保证事件包括呈现合规结果,所述合规结果指示所述合规要求是否被所述网络上配置的策略中的一个或多个策略满足、违反、或未应用。
7.根据权利要求6所述的方法,其中,所述合规结果包括以下各项中的至少一项:
对满足、违反或未应用所述合规要求的原因的第一指示,对所述原因的第一指示标识策略对象集合和一个或多个安全策略中的至少一者,所述策略对象集合包括消费者EPG、供应商EPG、契约、过滤器、租户、虚拟路由和转发对象、网络上下文、和应用简档中的至少一者;以及
对合规事件严重性、合规问题的数量、合规分数、按类别的合规问题的计数、以及按类别的相应合规分数中的至少一者的第二指示,其中,所述类别包括合规要求类型、受影响的资源类型、和受影响的策略对象中的至少一者。
8.根据权利要求1至7中任一项所述的方法,还包括通过以下操作来确定所述网络的状态是否符合所述合规要求:
将表示所述合规要求的一个或多个第一数据结构与表示所述网络中的网络设备上配置的硬件策略条目的一个或多个第二数据结构进行比较,所述一个或多个第一数据结构和所述一个或多个第二数据结构包括二元决策图、归约有序二元决策图、和n位向量中的至少一者;以及
基于所述比较,来确定所述网络中的网络设备上配置的硬件策略条目是否满足、违反或应用所述合规要求。
9.根据权利要求1至8中任一项所述的方法,其中,所述网络包括多个网络结构,所述方法还包括:
基于附加配置数据为所述网络创建附加合规要求,所述附加配置数据包括相应EPG选择器、相应流量选择器、和相应通信操作器;
对所述附加合规要求进行分组以产生合规要求集合;
将所述合规要求集合与所述多个网络结构的子集相关联;以及
确定与所述多个网络结构的子集相关联的策略是否符合所述合规要求集合。
10.一种系统,包括:
一个或多个处理器;以及
至少一个计算机可读存储介质,其中存储有指令,所述指令在由所述一个或多个处理器执行时,使得所述系统执行以下操作:
为网络创建合规要求,所述合规要求包括第一端点组(EPG)选择器、第二EPG选择器、流量选择器和通信操作器,其中,所述第一EPG选择器和所述第二EPG选择器表示EPG集合,其中,所述流量选择器包括标识与所述流量选择器相对应的流量的流量参数,并且所述通信操作器为与所述第一EPG选择器和所述第二EPG选择器以及所述流量选择器相关联的流量定义通信条件;
为来自所述EPG集合的每个不同的EPG对,创建表示所述不同的EPG对、所述通信操作器、和所述流量选择器的第一相应数据结构,其中,所述不同的EPG对包括来自所述第一EPG选择器和所述第二EPG选择器中的每一者的相应EPG;
创建表示所述网络的逻辑模型的第二相应数据结构;
确定所述第一相应数据结构是否包含在所述第二相应数据结构中以产生包含检查;以及
基于所述包含检查来确定所述网络上配置的策略是否符合所述合规要求。
11.根据权利要求10所述的系统,其中,所述第一相应数据结构和所述第二相应数据结构包括二元决策图、归约有序二元决策图、和n位向量中的至少一者。
12.根据权利要求10或11所述的系统,其中,所述至少一个计算机可读存储介质存储有附加指令,所述附加指令在由所述一个或多个处理器执行时,使得所述系统执行以下操作:
确定来自所述EPG集合的至少一个不同的EPG对中的每个EPG与相同的网络上下文相关联,所述相同的网络上下文包括虚拟路由和转发实例、私有网络、和网络地址域中的至少一者;并且
其中,创建所述第二相应数据结构至少部分地基于所述逻辑模型中与所述相同的网络上下文相关联的策略,其中,所述第二相应数据结构表示与所述相同的网络上下文相关联的策略。
13.根据权利要求12所述的系统,其中,确定所述策略是否符合所述合规要求包括:确定与所述相同的网络上下文相关联的策略是否满足、违反、或应用所述合规要求。
14.根据权利要求10至13中任一项所述的系统,其中,所述至少一个计算机可读存储介质存储有附加指令,所述附加指令在由所述一个或多个处理器执行时,使得所述系统执行以下操作:
生成指示所述策略是否符合所述合规要求的一个或多个合规保证事件。
15.根据权利要求14所述的系统,其中,生成所述一个或多个合规保证事件包括呈现合规结果,所述合规结果指示所述合规要求是否被所述网络上配置的策略中的一个或多个策略满足、违反、或未应用。
16.根据权利要求15所述的系统,其中,所述合规结果包括下列项中的至少一者:
对满足、违反或未应用所述合规要求的原因的第一指示,对所述原因的第一指示标识策略对象集合和一个或多个安全策略中的至少一者,所述策略对象集合包括消费者EPG、供应商EPG、契约、过滤器、租户、虚拟路由和转发(VRF)对象、网络上下文、和应用简档中的至少一者;以及
对合规事件严重性、合规问题的数量、合规分数、按类别的合规问题的计数、以及按类别的相应合规分数中的至少一者的第二指示,其中,所述类别包括合规要求类型、受影响的资源类型、和受影响的策略对象中的至少一者。
17.根据权利要求10至16中任一项所述的系统,其中,所述至少一个计算机可读存储介质存储有附加指令,所述附加指令在由所述一个或多个处理器执行时,使得所述系统通过以下操作来确定所述网络的状态是否符合所述合规要求:
将表示所述合规要求的一个或多个第一数据结构与表示所述网络中的网络设备上的硬件策略条目的一个或多个第二数据结构进行比较,所述一个或多个第一数据结构和所述一个或多个第二数据结构包括二元决策图、归约有序二元决策图、和n位向量中的至少一者;以及
基于所述比较,来确定所述网络中的网络设备上配置的硬件策略条目是否满足、违反或应用所述合规要求。
18.根据权利要求10至17中任一项所述的系统,其中,所述网络包括多个网络结构,并且其中,所述至少一个计算机可读存储介质存储有附加指令,所述附加指令在由所述一个或多个处理器执行时,使得所述系统执行以下操作:
基于接收到的附加配置数据为所述网络创建附加合规要求,所述附加配置数据包括相应EPG选择器、相应流量选择器、和相应通信操作器;
对所述附加合规要求进行分组以产生合规要求集合;
将所述合规要求集合与所述多个网络结构的子集相关联;以及
确定与所述多个网络结构的子集相关联的策略是否符合所述合规要求集合。
19.一种非暂态计算机可读存储介质,包括:
指令,存储在所述非暂态计算机可读存储介质中,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行以下操作:
为网络创建合规要求,所述合规要求包括第一端点组(EPG)选择器、第二EPG选择器、流量选择器和通信操作器,其中,所述第一EPG选择器和所述第二EPG选择器表示EPG集合,其中,所述流量选择器包括标识与所述流量选择器相对应的流量的流量参数,并且所述通信操作器为与所述第一EPG选择器和所述第二EPG选择器以及所述流量选择器相关联的流量定义通信条件;
为来自所述EPG集合的每个不同的EPG对,创建表示所述不同的EPG对、所述通信操作器、和所述流量选择器的第一相应数据结构,其中,所述不同的EPG对包括来自所述第一EPG选择器和所述第二EPG选择器中的每一者的相应EPG;
创建表示所述网络的逻辑模型的第二相应数据结构;
确定所述第一相应数据结构是否包含在所述第二相应数据结构中以产生包含检查;以及
基于所述包含检查来确定所述网络上配置的策略是否符合所述合规要求。
20.根据权利要求19所述的非暂态计算机可读存储介质,其中,至少一个计算机可读存储介质存储有附加指令,所述附加指令在由所述一个或多个处理器执行时,使得系统执行以下操作:
确定来自所述EPG集合的至少一个不同的EPG对中的每个EPG与相同的网络上下文相关联,所述相同的网络上下文包括虚拟路由和转发实例、私有网络、和网络地址域中的至少一者;
其中,创建所述第二相应数据结构至少部分地基于所述逻辑模型中与所述相同的网络上下文相关联的策略,所述第二相应数据结构表示与所述相同的网络上下文相关联的策略;并且
其中,所述第一相应数据结构和所述第二相应数据结构包括二元决策图、归约有序二元决策图、和n位向量中的至少一者。
21.一种设备,包括:
用于为网络创建合规要求的装置,所述合规要求包括第一端点组(EPG)选择器、第二EPG选择器、流量选择器和通信操作器,其中,所述第一EPG选择器和所述第二EPG选择器表示EPG集合,其中,所述流量选择器包括标识与所述流量选择器相对应的流量的流量参数,并且所述通信操作器为与所述第一EPG选择器和所述第二EPG选择器以及所述流量选择器相关联的流量定义通信条件;
用于为来自所述EPG集合的每个不同的EPG对创建表示所述不同的EPG对、所述通信操作器、和所述流量选择器的第一相应数据结构的装置,其中,所述不同的EPG对包括来自所述第一EPG选择器和所述第二EPG选择器中的每一者的相应EPG;
用于创建表示所述网络的逻辑模型的第二相应数据结构的装置;
用于确定所述第一相应数据结构是否包含在所述第二相应数据结构中以产生包含检查的装置;以及
用于基于所述包含检查来确定所述网络上配置的策略是否符合所述合规要求的装置。
22.根据权利要求21所述的设备,还包括:用于实现根据权利要求2至9中任一项所述的方法的装置。
23.一种计算机程序、计算机程序产品或计算机可读介质,包括指令,所述指令在由计算机执行时,使得所述计算机执行根据权利要求1至9中任一项所述的方法的步骤。
CN201980037120.XA 2018-06-27 2019-06-20 网络中的安全规则的保证 Active CN112219382B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862690446P 2018-06-27 2018-06-27
US62/690,446 2018-06-27
US16/217,559 US11218508B2 (en) 2018-06-27 2018-12-12 Assurance of security rules in a network
US16/217,559 2018-12-12
PCT/US2019/038265 WO2020005715A1 (en) 2018-06-27 2019-06-20 Assurance of security rules in a network

Publications (2)

Publication Number Publication Date
CN112219382A true CN112219382A (zh) 2021-01-12
CN112219382B CN112219382B (zh) 2023-04-04

Family

ID=67138254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980037120.XA Active CN112219382B (zh) 2018-06-27 2019-06-20 网络中的安全规则的保证

Country Status (4)

Country Link
US (1) US11218508B2 (zh)
EP (1) EP3815327A1 (zh)
CN (1) CN112219382B (zh)
WO (1) WO2020005715A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113411224A (zh) * 2021-08-19 2021-09-17 飞狐信息技术(天津)有限公司 数据处理方法、装置、电子设备及存储介质
WO2023070475A1 (zh) * 2021-10-28 2023-05-04 新华三技术有限公司 交换机之间的信息同步方法及装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10439875B2 (en) * 2017-05-31 2019-10-08 Cisco Technology, Inc. Identification of conflict rules in a network intent formal equivalence failure
US10862895B2 (en) * 2018-09-28 2020-12-08 Fortinet, Inc. Logical network abstraction for network access control
US11240204B2 (en) * 2019-01-23 2022-02-01 Vmware, Inc. Score-based dynamic firewall rule enforcement
EP3694173B1 (en) 2019-02-08 2022-09-21 Palantir Technologies Inc. Isolating applications associated with multiple tenants within a computing platform
US11528188B2 (en) * 2019-06-07 2022-12-13 Hewlett Packard Enterprise Development Lp Graphically managing a networking device configuration
US11496504B2 (en) * 2020-04-13 2022-11-08 Juniper Networks, Inc. SSL proxy whitelisting
US11336527B2 (en) * 2020-06-01 2022-05-17 Hewlett Packard Enterprise Development Lp Method and system for enhanced command management in a network
US20230254227A1 (en) * 2020-07-06 2023-08-10 Nippon Telegraph And Telephone Corporation Network monitoring device, network monitoring method, and network monitoring program
US11907376B2 (en) 2021-04-13 2024-02-20 Saudi Arabian Oil Company Compliance verification testing using negative validation
US11902282B2 (en) * 2021-05-28 2024-02-13 Capital One Services, Llc Validating compliance of roles with access permissions
US20230177435A1 (en) * 2021-12-03 2023-06-08 International Business Machines Corporation Modularized governance of continuous compliance
US11909819B1 (en) * 2022-11-28 2024-02-20 Hewlett Packard Enterprise Development Lp Synchronization of client IP binding database across extended networks leveraging BGP control plane

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070157286A1 (en) * 2005-08-20 2007-07-05 Opnet Technologies, Inc. Analyzing security compliance within a network
US20080301765A1 (en) * 2007-05-31 2008-12-04 The Board Of Trustees Of The University Of Illinois Analysis of distributed policy rule-sets for compliance with global policy
US20120102543A1 (en) * 2010-10-26 2012-04-26 360 GRC, Inc. Audit Management System
US20160218918A1 (en) * 2015-01-27 2016-07-28 Xingjun Chu Network virtualization for network infrastructure

Family Cites Families (192)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204829A (en) 1992-07-10 1993-04-20 Lsi Logic Corporation Interleaving operations in a floating-point numeric processor
US6763380B1 (en) 2000-01-07 2004-07-13 Netiq Corporation Methods, systems and computer program products for tracking network device performance
AU2002220049A1 (en) 2000-12-04 2002-06-18 Rensselaer Polytechnic Institute Fault detection and prediction for management of computer networks
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
ITTO20010180A1 (it) 2001-03-01 2002-09-01 Cselt Centro Studi Lab Telecom Procedimento e sistema per il controllo della configurazione dei nodidi una rete per telecomunicazione.
US7003562B2 (en) 2001-03-27 2006-02-21 Redseal Systems, Inc. Method and apparatus for network wide policy-based analysis of configurations of devices
DE10143101A1 (de) 2001-09-03 2003-04-03 Infineon Technologies Ag Verfahren zur Validierung von Simulationsergebnissen eines Systems sowie darauf aufbauender Äquivalenzvergleich digitaler Schaltungen
US7349961B2 (en) * 2001-12-07 2008-03-25 Hitachi, Ltd. Detecting configuration inconsistency in storage networks
US20030229693A1 (en) 2002-06-06 2003-12-11 International Business Machines Corporation Self-correcting monitor
US8073935B2 (en) 2002-07-25 2011-12-06 Oracle America, Inc. Pluggable semantic verification and validation of configuration data
ITTO20020742A1 (it) 2002-08-23 2004-02-24 Telecom Italia Lab Spa Procedimento e sistema per il controllo della
GB0224187D0 (en) 2002-10-17 2002-11-27 Mitel Knowledge Corp Interactive conflict resolution for personalised policy-based services
US7453886B1 (en) 2003-03-11 2008-11-18 Nortel Networks Limited Verification of communications paths between devices
US7089369B2 (en) 2003-03-31 2006-08-08 Sun Microsystems, Inc. Method for optimizing utilization of a double-data-rate-SDRAM memory system
KR100965437B1 (ko) 2003-06-05 2010-06-24 인터트러스트 테크놀로지즈 코포레이션 P2p 서비스 편성을 위한 상호운용 시스템 및 방법
US7559082B2 (en) * 2003-06-25 2009-07-07 Microsoft Corporation Method of assisting an application to traverse a firewall
US9264922B2 (en) 2003-08-05 2016-02-16 Mobileum Inc. Method and system for ensuring service continuity in case of a proxy profile gateway failure or interruption
US20050108389A1 (en) 2003-11-13 2005-05-19 International Business Machines Corporation Network endpoint health check
US7360064B1 (en) 2003-12-10 2008-04-15 Cisco Technology, Inc. Thread interleaving in a multithreaded embedded processor
US7609647B2 (en) 2004-05-12 2009-10-27 Bce Inc. Method and apparatus for network configuration validation
US8010952B2 (en) 2004-06-08 2011-08-30 Cisco Technology, Inc. Method and apparatus for configuration syntax and semantic validation
US7505463B2 (en) 2004-06-15 2009-03-17 Sun Microsystems, Inc. Rule set conflict resolution
US7698561B2 (en) 2004-08-12 2010-04-13 Cisco Technology, Inc. Method and system for detection of aliases in a network
JP4192877B2 (ja) 2004-09-29 2008-12-10 ブラザー工業株式会社 設定データ伝送プログラム、設定データ伝送装置、および設定データ伝送システム
US8024568B2 (en) * 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US7401305B2 (en) 2005-07-11 2008-07-15 International Business Machines Corporation Adaptive application of SAT solving techniques
US7619989B2 (en) 2005-08-26 2009-11-17 Alcatel Lucent Routing configuration validation apparatus and methods
US7765093B2 (en) 2005-09-19 2010-07-27 Itt Manufacturing Enterprises, Inc. Network modeling system and method of simulating network operation with configurable node models
US7805752B2 (en) * 2005-11-09 2010-09-28 Symantec Corporation Dynamic endpoint compliance policy configuration
US20070124437A1 (en) 2005-11-30 2007-05-31 Cisco Technology, Inc. Method and system for real-time collection of log data from distributed network components
JP2007241533A (ja) 2006-03-07 2007-09-20 Oki Electric Ind Co Ltd システム構成情報比較装置およびコンピュータプログラム
US8040895B2 (en) 2006-03-22 2011-10-18 Cisco Technology, Inc. Method and system for removing dead access control entries (ACEs)
US8239915B1 (en) * 2006-06-30 2012-08-07 Symantec Corporation Endpoint management using trust rating data
US20080031147A1 (en) 2006-08-01 2008-02-07 Siemens Communications, Inc. Network status determination
US8490163B1 (en) * 2006-09-08 2013-07-16 Intapp, Inc. Enforcing security policies across heterogeneous systems
EP2074528A4 (en) 2006-09-12 2012-04-04 Telcordia Tech Inc CHECKING AN IP NETWORK FOR WEAKNESSES AND GUIDANCE BY ANALYZING IP DEVICES
US20080117827A1 (en) 2006-11-17 2008-05-22 Nec Corporation Method and system for verifying connectivity of logical link
US8719375B2 (en) 2007-03-22 2014-05-06 Microsoft Corporation Remote data access techniques for portable devices
US8484693B2 (en) 2007-04-27 2013-07-09 Gregory W. Cox Efficient policy conflict detection
US8782182B2 (en) 2007-05-24 2014-07-15 Foundry Networks, Llc Generating device-specific configurations
US8499331B1 (en) 2007-06-27 2013-07-30 Emc Corporation Policy based network compliance
US7992201B2 (en) 2007-07-26 2011-08-02 International Business Machines Corporation Dynamic network tunnel endpoint selection
US7743274B2 (en) 2007-09-12 2010-06-22 International Business Machines Corporation Administering correlated error logs in a computer system
US8494977B1 (en) 2007-09-28 2013-07-23 Emc Corporation IT policy violation views
JP4872945B2 (ja) 2008-02-25 2012-02-08 日本電気株式会社 運用管理装置、運用管理システム、情報処理方法、及び運用管理プログラム
WO2009108943A2 (en) 2008-02-29 2009-09-03 Doyenz Incorporated Automation for virtualized it environments
US8082290B2 (en) 2008-03-19 2011-12-20 Verizon Patent And Licensing Inc. Intelligent establishment of peer-to-peer communication
US8839387B2 (en) 2009-01-28 2014-09-16 Headwater Partners I Llc Roaming services network and overlay networks
US20100011027A1 (en) * 2008-07-11 2010-01-14 Motorola, Inc. Policy rule conflict detection and management
US8554883B2 (en) 2008-08-06 2013-10-08 Cisco Technology, Inc. Apparatus and method for sharing a generic configuration across a group of network devices
US8479257B1 (en) 2008-08-08 2013-07-02 Redseal Networks, Inc. Method and apparatus for assessing policy compliance of as-built data networks
US8441941B2 (en) 2008-10-06 2013-05-14 Cisco Technology, Inc. Automating identification and isolation of loop-free protocol network problems
US8103480B2 (en) 2008-10-31 2012-01-24 Hewlett-Packard Development Company, L.P. Evaluating service level agreement violations
US8627328B2 (en) 2008-11-14 2014-01-07 Oracle International Corporation Operation control for deploying and managing software service in a virtual environment
WO2010068698A2 (en) 2008-12-09 2010-06-17 Glue Networks, Inc. System and method for providing virtual private networks
US20100198909A1 (en) 2009-02-03 2010-08-05 Fluke Corporation Method and apparatus for the continuous collection and correlation of application transactions across all tiers of an n-tier application
US8479267B2 (en) * 2009-06-30 2013-07-02 Sophos Limited System and method for identifying unauthorized endpoints
JP2011087302A (ja) 2009-10-19 2011-04-28 Ip Infusion Inc Bgp経路監視装置、bgp経路監視方法、およびプログラム
US8458301B1 (en) * 2009-10-30 2013-06-04 Bradford Networks, Inc. Automated configuration of network devices administered by policy enforcement
US8416696B2 (en) 2010-01-04 2013-04-09 Cisco Technology, Inc. CFM for conflicting MAC address notification
US8635319B1 (en) 2010-03-08 2014-01-21 Amazon Technologies, Inc. Operational status of network nodes
US8689307B2 (en) 2010-03-19 2014-04-01 Damaka, Inc. System and method for providing a virtual peer-to-peer environment
US8375117B2 (en) 2010-04-28 2013-02-12 Juniper Networks, Inc. Using endpoint host checking to classify unmanaged devices in a network and to improve network location awareness
US8606847B2 (en) 2010-05-28 2013-12-10 Juniper Networks, Inc. Application-layer traffic optimization service map updates
US8717895B2 (en) 2010-07-06 2014-05-06 Nicira, Inc. Network virtualization apparatus and method with a table mapping engine
US20120054163A1 (en) 2010-08-27 2012-03-01 Motorola, Inc. Policy conflict classifier
US9389993B1 (en) 2010-09-03 2016-07-12 Cisco Technology, Inc. System and method for whitelist management
US8910143B2 (en) 2010-09-20 2014-12-09 General Electric Company Conversion system and method for use in upgrading a monitoring system
EP2437470A1 (en) 2010-09-30 2012-04-04 British Telecommunications Public Limited Company Network element and method for deriving quality of service data from a distributed hierarchical naming system
CN103733194A (zh) 2011-01-27 2014-04-16 康姆普特奈科斯特有限公司 动态组织云计算资源以便于发现
US8589934B2 (en) 2011-04-01 2013-11-19 Arm Limited Controlling priority levels of pending threads awaiting processing
US8935389B2 (en) 2011-05-17 2015-01-13 Guavus, Inc. Method and system for collecting and managing network data
US8693344B1 (en) 2011-09-27 2014-04-08 Big Switch Network, Inc. Systems and methods for generating packet forwarding rules based on network policy
US8914843B2 (en) 2011-09-30 2014-12-16 Oracle International Corporation Conflict resolution when identical policies are attached to a single policy subject
US20130097660A1 (en) 2011-10-17 2013-04-18 Mcafee, Inc. System and method for whitelisting applications in a mobile network environment
US8930756B2 (en) 2011-12-22 2015-01-06 International Business Machines Corporation Grouping related errors in a distributed computing environment
US20130191516A1 (en) 2012-01-19 2013-07-25 Sungard Availability Services Lp Automated configuration error detection and prevention
US9106555B2 (en) 2012-01-25 2015-08-11 Cisco Technology, Inc. Troubleshooting routing topology based on a reference topology
US9405553B2 (en) 2012-01-30 2016-08-02 International Business Machines Corporation Processing element management in a streaming data system
EP2814205A4 (en) 2012-02-10 2015-09-16 Nec Corp COMPUTER SYSTEM AND METHOD FOR VISUALIZING A VIRTUAL NETWORK
US9705918B2 (en) 2012-05-22 2017-07-11 Sri International Security mediation for dynamically programmable network
US9571523B2 (en) 2012-05-22 2017-02-14 Sri International Security actuator for a dynamically programmable computer network
US9898317B2 (en) 2012-06-06 2018-02-20 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US8874704B2 (en) 2012-07-11 2014-10-28 Bmc Software, Inc. Semi-automatic discovery and generation of useful service blueprints
US9131014B2 (en) 2012-08-20 2015-09-08 Cisco Technology, Inc. Hitless pruning protocol upgrade on single supervisor network devices
US9571502B2 (en) 2012-09-14 2017-02-14 International Business Machines Corporation Priority resolution for access control list policies in a networking device
US9178807B1 (en) 2012-09-20 2015-11-03 Wiretap Ventures, LLC Controller for software defined networks
US9055000B1 (en) 2012-12-17 2015-06-09 Juniper Networks, Inc. Distributed network subnet
US8711855B1 (en) 2012-12-18 2014-04-29 Juniper Networks, Inc. Topology discovery, control channel establishment, and datapath provisioning within an aggregation network with centralized control
US9094337B2 (en) 2012-12-21 2015-07-28 Cieno Corporation Source identification preservation in multiprotocol label switching networks
US9900221B2 (en) 2013-01-30 2018-02-20 Hewlett Packard Enterprise Development Lp Controlling a topology of a network
US9860140B2 (en) 2013-02-05 2018-01-02 Cisco Technology, Inc. Dynamically adjusting a set of monitored network properties using distributed learning machine feedback
US8966637B2 (en) 2013-02-08 2015-02-24 PhishMe, Inc. Performance benchmarking for simulated phishing attacks
US9596141B2 (en) 2013-03-15 2017-03-14 Cisco Technology, Inc. Representing software defined networks using a programmable graph model
US10291515B2 (en) 2013-04-10 2019-05-14 Huawei Technologies Co., Ltd. System and method for a control plane reference model framework
US10021027B2 (en) 2013-04-30 2018-07-10 Comcast Cable Communications, Llc Network validation with dynamic tunneling
US9225601B2 (en) 2013-06-17 2015-12-29 The Board Of Trustees Of The University Of Illinois Network-wide verification of invariants
US20140379915A1 (en) 2013-06-19 2014-12-25 Cisco Technology, Inc. Cloud based dynamic access control list management architecture
US9246818B2 (en) 2013-06-24 2016-01-26 Cisco Technology, Inc. Congestion notification in leaf and spine networks
CN104348757B (zh) 2013-07-31 2018-03-16 华为技术有限公司 一种流表交互方法、交换机及系统
US9531676B2 (en) 2013-08-26 2016-12-27 Nicira, Inc. Proxy methods for suppressing broadcast traffic in a network
KR101455167B1 (ko) 2013-09-03 2014-10-27 한국전자통신연구원 화이트리스트 기반의 네트워크 스위치
US9553845B1 (en) 2013-09-30 2017-01-24 F5 Networks, Inc. Methods for validating and testing firewalls and devices thereof
US10693727B2 (en) 2013-10-13 2020-06-23 ZPE Systems, Inc. Non-intrusive device discovery and configuration cloning
US20150113143A1 (en) 2013-10-18 2015-04-23 Hewlett-Packard Development Company, L.P Network resource automation management
US9876715B2 (en) 2013-11-05 2018-01-23 Cisco Technology, Inc. Network fabric overlay
US9590914B2 (en) 2013-11-05 2017-03-07 Cisco Technology, Inc. Randomized per-packet port channel load balancing
US9374294B1 (en) 2013-11-05 2016-06-21 Cisco Technology, Inc. On-demand learning in overlay networks
US9686180B2 (en) 2013-11-05 2017-06-20 Cisco Technology, Inc. Managing routing information for tunnel endpoints in overlay networks
US9660897B1 (en) 2013-12-04 2017-05-23 Juniper Networks, Inc. BGP link-state extensions for segment routing
US20150180907A1 (en) * 2013-12-23 2015-06-25 Vmware, Inc. Detecting conflicts in a policy-based management system
US9747183B2 (en) 2013-12-31 2017-08-29 Ciena Corporation Method and system for intelligent distributed health monitoring in switching system equipment
CN103701926B (zh) 2013-12-31 2017-06-16 小米科技有限责任公司 一种获取故障原因信息的方法、装置和系统
US9729578B2 (en) 2014-01-10 2017-08-08 Arista Networks, Inc. Method and system for implementing a network policy using a VXLAN network identifier
US9660886B1 (en) 2014-03-07 2017-05-23 Google Inc. Scalable network route analysis
US10476698B2 (en) 2014-03-20 2019-11-12 Avago Technologies International Sales Pte. Limited Redundent virtual link aggregation group
US20150281276A1 (en) * 2014-03-26 2015-10-01 Juniper Networks, Inc. Monitoring compliance with security policies for computer networks
US9787559B1 (en) 2014-03-28 2017-10-10 Juniper Networks, Inc. End-to-end monitoring of overlay networks providing virtualized network services
US10020994B2 (en) 2014-04-15 2018-07-10 Virtual Instruments Corporation Automatically determining locations of network monitors in a communication network
US9654361B2 (en) 2014-05-13 2017-05-16 Cisco Technology, Inc. Dynamic collection of network metrics for predictive analytics
US9935831B1 (en) 2014-06-03 2018-04-03 Big Switch Networks, Inc. Systems and methods for controlling network switches using a switch modeling interface at a controller
WO2015199656A1 (en) 2014-06-24 2015-12-30 Hewlett-Packard Development Company, L.P. Determining code complexity scores
US9577927B2 (en) 2014-06-30 2017-02-21 Nicira, Inc. Encoding control plane information in transport protocol source port field and applications thereof in network virtualization
JP6490205B2 (ja) 2014-06-30 2019-03-27 華為技術有限公司Huawei Technologies Co.,Ltd. フローエントリ構成の方法、装置及びシステム
US10084795B2 (en) 2014-07-14 2018-09-25 Cisco Technology, Inc. Network-based real-time distributed data compliance broker
US10038703B2 (en) 2014-07-18 2018-07-31 The Regents Of The University Of Michigan Rating network security posture and comparing network maliciousness
US9813312B2 (en) 2014-07-21 2017-11-07 Big Switch Networks, Inc. Systems and methods for performing debugging operations on networks using a controller
CN104104615B (zh) 2014-07-21 2017-07-07 华为技术有限公司 策略冲突解决方法以及装置
US9497215B2 (en) 2014-07-23 2016-11-15 Cisco Technology, Inc. Stealth mitigation for simulating the success of an attack
US10050842B2 (en) 2014-07-23 2018-08-14 Cisco Technology, Inc. Network control and management using semantic reasoners in a network environment
EP3175579B1 (en) 2014-07-30 2019-02-27 Forward Networks, Inc. Systems and methods for network management
US20160164748A1 (en) 2014-12-04 2016-06-09 Belkin International, Inc. Identifying and resolving network device rule conflicts and recursive operations at a network device
US10484256B2 (en) 2014-08-12 2019-11-19 Arista Networks, Inc. Method and system for monitoring and correcting defects of a network device
US9497207B2 (en) 2014-08-15 2016-11-15 International Business Machines Corporation Securing of software defined network controllers
US20170214719A1 (en) 2014-09-09 2017-07-27 Hewlett Packard Enterprise Development Lp Auto-configuration and management of storage resources
CN105471830A (zh) 2014-09-10 2016-04-06 中国电信股份有限公司 用于消解安全策略冲突的方法、装置和系统
US9507932B2 (en) 2014-09-12 2016-11-29 Alcatel Lucent Policy enforcement in a topology abstraction system
US9641249B2 (en) 2014-09-18 2017-05-02 Lenovo Enterprise Solutions (Singapore) Pte, Ltd. Support for converged fiber channel over ethernet (FCoE) traffic on software defined networks (SDNs)
US9787572B2 (en) 2014-10-07 2017-10-10 Cisco Technology, Inc. Conflict avoidant traffic routing in a network environment
US9781004B2 (en) 2014-10-16 2017-10-03 Cisco Technology, Inc. Discovering and grouping application endpoints in a network environment
US9686162B2 (en) 2014-10-17 2017-06-20 International Business Machines Corporation Identifying configuration inconsistency in edge-based software defined networks (SDN)
US9690644B2 (en) 2014-11-06 2017-06-27 International Business Machines Corporation Cognitive analysis for healing an IT system
EP3216177B1 (en) 2014-11-06 2021-04-14 Hewlett Packard Enterprise Development LP Network policy graphs
US10116493B2 (en) 2014-11-21 2018-10-30 Cisco Technology, Inc. Recovering from virtual port channel peer failure
US9594640B1 (en) 2014-11-25 2017-03-14 VCE IP Holding Company LLC Backup/recovery system and method for a computing environment
US10425282B2 (en) 2014-11-28 2019-09-24 Hewlett Packard Enterprise Development Lp Verifying a network configuration
CN105721193B (zh) 2014-12-05 2020-04-28 方正国际软件(北京)有限公司 一种系统信息监控的方法和设备
WO2016093861A1 (en) 2014-12-12 2016-06-16 Nokia Solutions And Networks Oy Alarm correlation in network function virtualization environment
US9998247B1 (en) 2014-12-30 2018-06-12 Juniper Networks, Inc. Controller-based network device timing synchronization
US9686296B1 (en) 2015-01-06 2017-06-20 Blackpoint Holdings, Llc Systems and methods for providing network security monitoring
US9680875B2 (en) * 2015-01-20 2017-06-13 Cisco Technology, Inc. Security policy unification across different security products
CN105991332A (zh) 2015-01-27 2016-10-05 中兴通讯股份有限公司 告警处理方法及装置
US10437510B2 (en) 2015-02-03 2019-10-08 Netapp Inc. Monitoring storage cluster elements
WO2016130108A1 (en) 2015-02-10 2016-08-18 Hewlett Packard Enterprise Development Lp Network policy conflict detection and resolution
US10530697B2 (en) 2015-02-17 2020-01-07 Futurewei Technologies, Inc. Intent based network configuration
US10411966B2 (en) 2015-02-26 2019-09-10 Red Hat, Inc. Host network analyzer
US10504025B2 (en) 2015-03-13 2019-12-10 Cisco Technology, Inc. Parallel processing of data by multiple semantic reasoning engines
WO2016161127A1 (en) 2015-04-01 2016-10-06 Neutrona Networks International Llc Network management system with traffic engineering for a software defined network
US10148496B2 (en) 2015-05-05 2018-12-04 Citrix Systems, Inc. Systems and methods for configuring a device via a software-defined networking controller
WO2016186605A1 (en) * 2015-05-15 2016-11-24 Hewlett Packard Enterprise Development Lp Composition constraints for network policies
US10601642B2 (en) 2015-05-28 2020-03-24 Cisco Technology, Inc. Virtual network health checker
US9929949B2 (en) 2015-06-29 2018-03-27 Google Llc Systems and methods for inferring network topology and path metrics in wide area networks
US20170026292A1 (en) 2015-07-20 2017-01-26 Schweitzer Engineering Laboratories, Inc. Communication link failure detection in a software defined network
US10075343B2 (en) 2015-07-31 2018-09-11 Vmware, Inc. Policy store
US10511485B2 (en) 2015-08-11 2019-12-17 At&T Intellectual Property I, L.P. Dynamic virtual network topology discovery engine
US10243778B2 (en) 2015-08-11 2019-03-26 Telefonaktiebolaget L M Ericsson (Publ) Method and system for debugging in a software-defined networking (SDN) system
US10187321B2 (en) 2015-08-19 2019-01-22 Cisco Technology, Inc. Dynamic VPN policy model with encryption and traffic engineering resolution
CN106488487A (zh) 2015-08-27 2017-03-08 中兴通讯股份有限公司 故障检测方法及装置
EP3272073A4 (en) 2015-08-31 2018-11-14 Hewlett-Packard Enterprise Development LP Control channel usage monitoring in a software-defined network
US10148489B2 (en) 2015-09-01 2018-12-04 At&T Intellectual Property I, L.P. Service impact event analyzer for cloud SDN service assurance
US9929924B2 (en) 2015-09-25 2018-03-27 Telefonaktiebolaget Lm Ericsson (Publ) SDN controller logic-inference network troubleshooter (SDN-LINT) tool
US9882833B2 (en) 2015-09-28 2018-01-30 Centurylink Intellectual Property Llc Intent-based services orchestration
EP3357189A4 (en) 2015-09-28 2019-04-24 Evenroute, LLC AUTOMATIC QUALITY OF SERVICE (QOS) OPTIMIZATION IN NETWORK EQUIPMENT
US10291654B2 (en) 2015-09-30 2019-05-14 Symantec Corporation Automated construction of network whitelists using host-based security controls
CN106603264A (zh) 2015-10-20 2017-04-26 阿里巴巴集团控股有限公司 一种定位故障根源的方法和设备
US10643149B2 (en) 2015-10-22 2020-05-05 Oracle International Corporation Whitelist construction
US10419530B2 (en) 2015-11-02 2019-09-17 Telefonaktiebolaget Lm Ericsson (Publ) System and methods for intelligent service function placement and autoscale based on machine learning
US20170126727A1 (en) 2015-11-03 2017-05-04 Juniper Networks, Inc. Integrated security system having threat visualization
US10084833B2 (en) 2015-11-09 2018-09-25 Cisco Technology, Inc. Initiating a collaboration session between devices using an audible message
US10069646B2 (en) 2015-12-02 2018-09-04 Nicira, Inc. Distribution of tunnel endpoint mapping information
EP3366014A4 (en) 2015-12-17 2019-05-01 Hewlett-Packard Enterprise Development LP REDUCED SET OF ORTHOGONAL NETWORK POLICY SELECTIONS
US10979311B2 (en) 2016-01-05 2021-04-13 Schneider Electric USA, Inc. System and method for validating network configuration changes in a client environment
US10261858B2 (en) 2016-01-20 2019-04-16 Intel Corporation TCAM soft-error detection method and apparatus
CN105721297B (zh) 2016-01-28 2019-04-09 北京国电通网络技术有限公司 基于sdn网络中路由环路的检测方法及系统
US10193750B2 (en) 2016-09-07 2019-01-29 Cisco Technology, Inc. Managing virtual port channel switch peers from software-defined network controller
CN106130766B (zh) 2016-09-23 2020-04-07 深圳灵动智网科技有限公司 一种基于sdn技术实现自动化网络故障分析的系统和方法
US10218590B2 (en) 2016-12-12 2019-02-26 Juniper Networks, Inc. Subscriber-aware TWAMP data monitoring in computer networks
US20170187577A1 (en) 2017-03-14 2017-06-29 Nuviso Networks Inc System for configuring network devices
US10084825B1 (en) * 2017-05-08 2018-09-25 Fortinet, Inc. Reducing redundant operations performed by members of a cooperative security fabric
US11271950B2 (en) * 2018-04-04 2022-03-08 Sophos Limited Securing endpoints in a heterogenous enterprise network
US10601876B1 (en) * 2019-11-27 2020-03-24 Cyberark Software Ltd. Detecting and actively resolving security policy conflicts
US11088919B1 (en) * 2020-04-06 2021-08-10 Vmware, Inc. Data structure for defining multi-site logical network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070157286A1 (en) * 2005-08-20 2007-07-05 Opnet Technologies, Inc. Analyzing security compliance within a network
US20080301765A1 (en) * 2007-05-31 2008-12-04 The Board Of Trustees Of The University Of Illinois Analysis of distributed policy rule-sets for compliance with global policy
US20120102543A1 (en) * 2010-10-26 2012-04-26 360 GRC, Inc. Audit Management System
US20160218918A1 (en) * 2015-01-27 2016-07-28 Xingjun Chu Network virtualization for network infrastructure
CN107113208A (zh) * 2015-01-27 2017-08-29 华为技术有限公司 网络基础设施的网络虚拟化

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113411224A (zh) * 2021-08-19 2021-09-17 飞狐信息技术(天津)有限公司 数据处理方法、装置、电子设备及存储介质
CN113411224B (zh) * 2021-08-19 2021-11-23 飞狐信息技术(天津)有限公司 数据处理方法、装置、电子设备及存储介质
WO2023070475A1 (zh) * 2021-10-28 2023-05-04 新华三技术有限公司 交换机之间的信息同步方法及装置

Also Published As

Publication number Publication date
US11218508B2 (en) 2022-01-04
WO2020005715A1 (en) 2020-01-02
EP3815327A1 (en) 2021-05-05
CN112219382B (zh) 2023-04-04
US20200007583A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
CN112219382B (zh) 网络中的安全规则的保证
US11888603B2 (en) Assurance of security rules in a network
CN110741603B (zh) 拓扑探测器
CN110754064B (zh) 网络结构中的路由信息的验证
CN110692227B (zh) 识别网络意图形式对等性失败中的冲突规则
CN110612702B (zh) 针对不一致的意图规范检查
US11044273B2 (en) Assurance of security rules in a network
CN110612706B (zh) 网络中服务质量配置的保证
CN110521170B (zh) 网络的静态网络策略分析
CN110710159B (zh) 用于网络配置和故障排除的方法、系统、设备和介质
CN111034122B (zh) 分析网络节点内存利用率的系统、方法和计算机可读介质
CN110754062B (zh) 网络节点存储器利用率分析
CN110710161B (zh) 生成网络的设备级逻辑模型
CN110892685B (zh) 识别网络配置中用于移除的组件的方法、系统和介质
CN110785963B (zh) 从网络收集网络模型和节点信息
CN110710160B (zh) 生成用于网络策略分析的全网络逻辑模型的方法和系统
CN110741602B (zh) 响应于网络意图形式对等性失败的事件生成
CN112470431A (zh) 使用自动布尔学习的网络的模型的合成
CN110754063B (zh) 验证节点之间的端点配置
CN111684439A (zh) 网络保证数据库版本兼容性
CN110800259B (zh) 跨以应用为中心的维度的分布式故障代码聚合
US10805160B2 (en) Endpoint bridge domain subnet validation

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