Modern networks include different kinds of network devices, both physical and virtual, that may have multiple network functions and dynamic states. Intent-based management has been developed to manage networks by using network intents which are a desired outcome driven by business objectives in terms of “what we need” for a target network instead of low level implementations (i.e., “how to do”) to increase scalability and flexibility.
Various examples will be described below by referring to the following figures:
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements. The figures are not necessarily to scale, and the size of some parts may be exaggerated to more clearly illustrate the example shown. Moreover, the drawings provide examples and/or implementations consistent with the description; however, the description is not limited to the examples and/or implementations provided in the drawings.
Network administrators or operators may configure a managed network based on business goals or requirements using a set of network policies (e.g., security, performance, authentication, fault, etc.). However, these network policies are typically written with low-level identifiers (e.g., IP/Mac address, network protocols, etc.) to configure devices in the network. A low-level configuration defines “how” to configure the network (e.g., each network device) to accomplish the objective. For example, to configure a wireless network using low-level configurations or information to allow temporary visitors to access the network, all access points have to be configured manually with subtext information, access controls, performance metrics, etc. Low-level configurations may be difficult to maintain as the size of the network increases. To overcome these limitations, intent-based management has been developed to manage networks using network intents as the input from an administrator or operator. A network intent is a high level business policy or objective, namely, “what we need” for the target network. For example, to configure a wireless network to allow temporary access to the network, a network intent “configure networks for guests” may be defined without specifying all of the low-level configurations. A network intent will not need to be changed because of changes to the target network such as increasing the number of access points.
Networks may include a large number of network devices which may have multiple network functions and dynamic states. For intent-based management of a network, application of network intents involves the translation of the network intents to low-level configurations for each device. Typically, network intents may be expressed with technology-agnostic terms such as logical labels/tags (e.g., “configure networks for guests”) and low-level configurations may be implemented with technology-specific data such as IP/Mac address, CLI network command, etc. A network intent verification system and method may be provided to verify whether the current network configurations and rules can satisfy the given set of network intents. The verification system and method may, for example, use network intents from administrators and the current network configurations from the network devices. Accordingly, network administrators may check for violations of the desired network intents with the configurations of the target network. In one example, the network intent verification system and method may be used to check if the network intents are correctly translated or that the target network is working in an intentional manner. For example, for a network intent to allow Internet access from any device in a guest network, all network devices such as switches or firewalls should be set up to allow http/https traffic for any device in the guest network to the Internet. Devices may be dynamically presented in the guest network and may require a determination as to whether the low-level configurations are violated against the original network intent. In another example, the network intent verification system and method may be used to determine if the current configuration of the network devices are satisfying the network intents (e.g., if there is a change in the configuration of a network device for optimization such as optimizing by reducing overlapping header spaces).
A method for verifying network intents may comprise decomposing at least one network intent into a plurality of sub-verification tasks, generating a set of normalized configurations for a plurality of network devices in a target network based on a set of current configurations for the plurality of network devices, and generating a network graph based on the set of normalized configurations and a topology of the target network. The method may further comprise analyzing the plurality of sub-verification tasks and the network graph to determine if the set of current configurations for the plurality of network devices satisfies the at least one network intent. If the at least one network intent is not satisfied, a report may be generated indicating that the target network is not in compliance. If the at least one network intent is satisfied, information may be provided indicating that target network is in compliance.
A system for verifying network intents may comprise a decomposer to decompose at least one network intent into a plurality of sub-verification tasks, a configuration normalizer to generate a set of normalized configurations for a plurality of network devices in a target network based on a set of current configurations for the plurality of network devices and a network graph builder coupled to the configuration normalizer. The network graph builder may be used to generate a network graph based on the set of normalized configurations and a topology of the target network. The system may further comprise an SMT solver coupled to the decomposer and the network graph builder. The SMT solver may be used to analyze the set of normalized configurations and the network graph to determine violations of the at least one network intent by the set of current configurations for the plurality of network devices. The system may further comprise a violation analyzer coupled to the SMT solver. The violation analyzer may be used to generate a report identifying the violations.
Intent management service 104 is used by an administrator or operator to define network intents using logical labels rather than using low-level identifiers (e.g., IP/Mac addresses, machine ID, network protocols, etc.). A network intent may also be restricted by certain conditions (e.g., ACL rules, service type). The use of logical labels may provide a better abstraction and portability to the network intent expression and deployment. For example, a user A may have multiple network devices each of which has its own IP address. Without a logical label, all policies must be defined for all of the network devices of user A. However, a network intent may be defined using a logical label with the label “user A.” If, for example, the IP addresses of the network device are changed dynamically, the logical-label based network intent does not need to be updated to reflect the new IP addresses.
The label management service 108 may be used to manage available logical labels, to map the labels to real low-level addresses (e.g., IP/Mac addresses or machine ID) or other low-level instantiation information and to update labels dynamically. Labels 110 from the label management service 108 are provided as an input to the network intent verification system 102. For example, the example labels in
Network intent verification system 102 includes a decomposer 118, a configuration normalizer 124, a network graph builder 128, an SMT (Satisfiability Modulo Theories) solver 134 and a violation analyzer 138. Decomposer 118 receives as inputs the network intents 106 from intent management service 104 and label information 110 from label management service 108. Decomposer 118 is configured to decompose the network intents into multiple sub-verification tasks 130 that are provided as an input to the SMT solver 134. The sub-verification tasks 130 are generated by the decomposer 118 using slicing and segmentation. Accordingly, decomposer 118 may include a slicer 120 and a segmenter 122. Slicer 120 is configured to identify what portions of the network intent to check for intent verification. The process of slicing a network intent is described further below with respect
The configuration normalizer 124 receives current configurations 114 for the network devices in a target network from the network management system 112 and converts the current configurations 114 into normalized configuration 126 using a data modeling language (for example, YANG) to create a common information model. The normalized configurations 126 are input to a network graph builder 128. The network graph builder 128 is configured to construct a graph model based on the normalized configurations 126 and the topology 116 provided from the network management system 112. In an example, the network graph builder 128 builds a first order logic representation graph model 132 of the network that is provided as an input to the SMT solver 134. The SMT solver 134 is configured to check for violations using the sub-verification tasks 130 and the graph model 132. In an example, the SMT solver 134 is a Z3 SMT solver. If the SMT solver 134 identifies a violation of the network intents (e.g., the current configuration is not in compliance with the network intents), the SMT solver 134 will provide the violations to the violation analyzer 138. If ether is no violation, the network verification system 102 may provide information indicating the target network is verified. The violation analyzer 138 is configured to analyze any violation(s) 136 and to generate a report that may be, for example, used by an administrator to find a root cause for the violation(s).
Segmentation further reduces the size of the verification task by dividing the target network into multiple segments which do not have any dependency. If any previous node's state affects the next node, it has a dependency. Each segment may then be verified step-by-step as discussed further below.
Returning to
Extensions to the data modeling language may be designed to cover, for example, typical functions for both simple open source and advanced commercial network functions.
Returning to FIG.2, at block 206 a network graph of the target network is generated (or built) based on the normalized configurations and a network topology provided by, for example, a network management system. In an example, the network graph is a first order logic representation graph model of the target network. The network graph includes nodes and edges where, for example, the nodes may represent network devices such as a switch or network function (e.g., a firewall, load balancer) and the edges indicate the connections between nodes. The network graph may, for example, provide all connectivity and consistency information with first order logic.
Returning to
F= Λ ¬ Eqn. 1
Where N is the sub-verification tasks and P is the normalized configurations. In an example, each of the normalized configurations may be tagged with a corresponding network intent using the data modeling language (e.g., YANG). The tags may be used to trace back the intent that generates the configuration. If the SMT solver determines that there are no violations (i.e., the network intents are satisfied by the current configurations) at block 210, information may be provided to, for example, an administrator, that indicates the target network is verified. If the SMT solver identifies a violation or multiple violations at block 210, the SMT solver may, for example, generate a counter example that identifies the problematic configuration. At step 212, the violation(s) may be analyzed and a report generates that may be used by, for example, an administrator to identify a root cause of the violation(s).
Although the present disclosure has been described with reference to example implementations, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the claimed subject matter. For example, although different example implementations may have been described as including one or more features providing one or more benefits, it is contemplated that the described features may be interchanged with one another or alternatively be combined with one another in the described example implementations or in other alternative implementations. Because the technology of the present disclosure is relatively complex, not all changes in the technology are foreseeable. The present disclosure described with reference to the example implementations and set forth in the following claims is manifestly intended to be as broad as possible. For example, unless specifically otherwise noted, the claims reciting a single particular element also encompass a plurality of such particular elements. The terms “first”, “second”, “third” and so on in the claims merely distinguish different elements and, unless otherwise stated, are not to be specifically associated with a particular order or particular numbering of elements in the disclosure.