Invented by Ravi Kumar Reddy Kottapalli, VMware Inc
The VMware Inc invention works as followsIn one instance, a nontransitory computer-readable storage medium can include instructions that when executed by a process, cause the process to obtain historical logs for a plurality available paths between a node source and destination. The historical logs can be obtained by routing data on the available paths according to a priority order and network characteristic parameters. The non-transitory storage medium can also include instructions for determining a modified version of the first priority order and the corresponding modified parameters in the network characteristics by analyzing historical logs with a machine learning algorithm and routing the data between the source and destination nodes based on this modified first order.
Background for Machine Learning-based Path Priority Determination for Routing Data in Software-Defined Networks
Wide area networks (WANs), for example, can be used to connect remote offices with datacenters or each other. Extending networks across multiple carrier networks and over significant distances can also present challenges, such as network congestion, jitter and packet loss. A software-defined wide-area network (SDWAN) can be used to overcome these challenges. SD-WAN is a particular application of SDN technology for WAN connections. SD-WANs, for example, may use centrally managed WAN Edge Devices placed in branch offices to establish logical links with other branch edge device across the WAN.
Embodiments” described herein can provide an enhanced computer and network-based technique and system to route data between nodes of a software defined network, based on the priority order between the nodes. A software-defined wide-area network (SDWAN) is an example of a software defined network. SD-WAN is a software-defined network (SDN) application that can be applied to WAN connections. It may be used, for example, to connect enterprise networks including branch offices and database centers over large geographical distances. SD-WAN simplifies the management and operation a WAN through decoupling its networking hardware from control mechanisms. SD-WANs can, for example, use centrally managed branch edge device placed in branch offices to establish logical links with other branch edge device across the WAN. SD-WANs may also have the ability to use different types of connectivity, such as private WANs (MPLS), Internet and cellular connectivity (e.g. 3G or Long-term Evolution (LTE)), to reach other branches, datacenters and cloud entities.
In an SD-WAN example deployment, SD-WAN can include multiple branch office edge devices (e.g. branch edge 1, branch edge 2, etc.) and a set cloud gateways (e.g. GW1 and GW2), as well as a node management (e.g. an orchestrator), to provide a managed functionality to the branch office edge devices (e.g. branch edge 1 & branch edge 2) via Cloud. In some cases, cloud gateways and hub edges, such as hub 1 and hub 2, may be used to provide secure communication between branch offices. To improve network resilience and redundancy, branch-to-branch communication can include multiple paths in order to reach the same destination. Consider that there are four possible paths to communicate between two branch offices, e.g. branch edge 1 & branch edge 2. Branch edge 1 can communicate with branch office 2 using path 1, hub 1, hub 2, path 3, GW1, and path 4.
In some cases, dynamic routing protocols like open shortest-path first (OSPF), or border gateway protocol, (BGP), may be used to establish connectivity between branches (e.g. branch edge 1 and edge 2). These dynamic routing protocols each have their own route metrics (e.g. cost, preference and route type) that are used to determine the best path for network traffic to be routed from branch edge to branch edge. The dynamic routing protocols, however, may not take into account real-time parameters of network characteristics (e.g. latency, jitter and delay) when determining the best path. The dynamic routing protocol may determine the optimal path, but it might not be accurate.
Further,” once the best route is determined, data can be sent via that path until it becomes unavailable or unreachable. The next best route may be activated when the best path becomes unavailable. Such methods, however, may not have the knowledge necessary to determine the optimal path in real time or to use the paths available between the branches at their maximum capacity. This may result in an unbalanced load distribution between the paths available.
In other examples, the user can statically select a path from the many available paths for routing the data. In this case, all applications on branch edge 1 could use the defined route to route data. The path could be constrained by bandwidth, and performance of applications could be adversely affected.
The examples described herein can route data between nodes in a software defined network (e.g. a source and destination node) based on the priority order of paths available. Examples described herein can dynamically determine the order of available paths using network characteristic parameters, and use all paths to their capacity without underutilizing any path.
Examples herein can dynamically determine the priority of available paths by analyzing historical data. They can also predict a path that is the best path available using machine learning algorithms and auto-correct in the event of an error in selecting the best path available. This is done by sending probe traffic regularly. In one example the historical logs of the paths available between the source and destination nodes in the software defined network can be obtained. For a given interval, the historical logs can be obtained by routing data on available paths according to a priority order and network characteristic parameters. A machine-learning model can be used to analyze the historical logs in order to determine a modified version of the first priority order and the modified network characteristics parameters. The data can also be routed based on a modified first priority order from the source to the destination.
System Overview with Examples of Operation”.
FIG. The block diagram 1 shows an example system 100 that uses a policy engine 118 with knowledge to route data from a source (i.e. an edge 110A), to a destination (i.e. an edge 110B), based on the priority of paths available. A software-defined networking may be used by example system 100 to communicate between source node (i.e., an edge 110A) and destination node (i.e., an edge 110B). SD-WAN is an example of a software-defined network. SD-WANs may allow enterprises to achieve application growth, increased network agility and simplified branch implementations. They can also provide optimized access to cloud applications, private datacenters and enterprise applications over broadband Internet as well as private links. SD-WAN can include, for example, a distributed network SD-WAN Gateways, a cloud based SD-WAN Orchestrator (e.g. management node 116) and a Branch Platform.
As shown in FIG. 1. System 100 can include a control plan 102 and data plane 104. Control plane 102 can refer to systems which decide where network traffic is sent (e.g. data) in SD-WAN. Data plane 104 can refer to systems that enable forwarding of network traffic to specific destinations.
Data plane 102 can include multiple branches (e.g., 106 and 108)”. Each branch office (e.g. branches 106 and 108) may establish logical connection with other branch offices using edge devices (e.g. edge 110A and edge 110B). In one example branch offices 106, 108 could represent virtual infrastructures (e.g. a virtual machine, an application, etc.) or physical infrastructures in different branch locations. Data plane 102 can also include multiple enterprise datacenters or central offices (e.g. hub 112 or hub 114), with edge or gateway devices communicatively linked to branch offices 106 or 108. Edges 110A or 110B can be used by branch offices 106 and 108 in this example. Multiple networks (e.g. Internet 122, MPLS 121, cellular network and others) may also be connected to the edges 110A or 110B. Edges 110C and110D can also connect enterprise datacenters 112 & 114 to multiple networks. “System 100 can also include a cloud of software as a services (SaaS), which is connected to multiple networks via respective gateway devices.
Further still, control plane 102 can include management node 110 coupled communicatively to edges 110A 110B 110C and 110D. In one example of management node, 116, it may be an infrastructure or management workload domain. Other examples include a centralized application that controls traffic intelligently and securely across the WAN.
Management node 116, for example, may be an orchestrator which coordinates the required network hardware and software to support applications and service. Management node 116 may configure end-to-end SD-WAN managed services between edges (e.g., 110A, 110B, 110C, and 110D) and the gateways over one or more underlay networks (e.g., Internet 122 and MPLS 120), setting up application-based forwarding over the networks based on security, quality of service (QoS), or business/intent-based policies.
In an example, the management node may monitor connections between gateways and edges in data plane 104 110A,110B,110C and 110D and define routing patterns. In one example the management node may be located in a cloud that has central management control of systems in dataplane. Clouds can be hybrid clouds, public clouds, or private clouds. The cloud can be used to deploy or provide various cloud services, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), etc.
As shown in FIG. Management node 116 can include knowledge-defined policies engine 118. Knowledge-defined policy engines 118, for example, may reside in central management stations such as a management node, SDDC manager, next-generation VMware cloud foundation central management orchestrator (VCF), or similar.
During operation, the knowledge-defined policy engines 118 can determine the available paths between the edge 110A (hereafter referred as source node node 110A), and the edge 110B, (i.e. hereafter referred as destination node node node node 110B), in the software defined network, using routing protocols, such as OSPF, BGP or the like. Each of the paths includes a communication link, which may be selected from Internet connection 122 or MPLS connection 120. In FIG., an example of a path is shown. 2.
Knowledge-defined policy engine (118) may first route the first sample data between source node Node 110A and node destination 110B over all available paths. Knowledge-defined policy engines 118 can also determine the first priority order for the available paths using the sample data. This is done by analyzing the network characteristics associated with the paths. The network characteristic parameters can be chosen from the group of latency (latency), jitter (jitter), round-trip time(RTT), loss of packets, and data rate/second).
Knowledge-defined policy engine may, after determining the priority order, route data between source node and destination node for a certain period of time (e.g. a predefined period) by using one or more paths available based on that priority order. Knowledge-defined policy engine may, for example, dynamically route data associated with various applications using the available paths depending on the priority of the application and the first priority order.
In an example, knowledge defined policy engine 118 maintains a routing table that includes the available paths and their first priority orders, as well as the network characteristic parameters corresponding to the paths. Knowledge-defined policy engines 118 can also route data from the source node to the destination node according to the routing table. FIG. 3A shows an example of a routing policy table. 3A.
In an example, the knowledge-defined policy engines 118 can derive policy-based routing rule based on routing policy table. Then they push the rules to the source node and destination node. Source node 110A can also route data according to the routing rules. “In another example, the knowledge-defined policy engines 118 can alter existing routing protocols based on routing policy tables to route data from source node node 110A to destination node node node 110B.
Click here to view the patent on Google Patents.