SMART DATA TRAFFIC TRANSFER IN A WIDESPACE NETWORK
A network orchestrator with machine learning capabilities dynamically adjusts routing to address unpredictable network performance in SD-WANs, enhancing adaptability and maintaining SLAs without manual intervention.
Patent Information
- Application Number
- DE102021109176
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-09-11
- Filing Date
- 2021-04-13
- Publication Date
- 2025-04-17
- Estimated Expiration
- 2041-04-13
AI Technical Summary
Existing SD-WAN technologies struggle with unpredictable network performance due to manual configuration of data streams, leading to potential network failures and violations of service-level agreements (SLAs) when conditions change, especially in large company networks with complex traffic patterns.
Implementing a network orchestrator that uses machine learning to dynamically adjust routing decisions through Dynamic Path Selection (DPS) configurations, predicting SLAs and adapting bandwidth reservations based on real-time network operating data to maintain optimal performance.
Enhances network adaptability and reduces administrative effort by automatically adjusting routing to meet SLAs, ensuring consistent quality of service across varying network conditions.
Smart Images

Figure 00000016_0000 
Figure 00000017_0000 
Figure 00000018_0000
Abstract
Description
BACKGROUNDA wide area network (WAN) may extend across multiple network locations (e.g., geographically, logically). The locations of the WAN are interconnected so that devices at one location can access resources at another location. In some topologies, many services and resources are installed at kernel locations (e.g., data centers, headquarters), and many branch offices (e.g., regional offices, retail stores) connect client devices (e.g., laptops, smart phones, Internet of Things devices) to the WAN. These types of topologies are frequently used by companies in constructing their enterprise network.Each network site has its own local area network (LAN) connected to the other LANs of the other sites for WAN. Network infrastructures such as switches and routers are used to route network traffic through the individual LANs, through the WAN as a whole, and between the WAN and the Internet. The LAN of each network site is connected to the larger network (e.g., the WAN or the Internet) via a gateway router. Branch Office Gateways (BGs) connect branches to the wider network, and headend gateways (also referred to as virtual Internet Gateways) connect core sites to the wider network.Frequently, WANs are implemented using SD-WAN technology (software defined wide area network). SD-WAN decouples (logically or physically) the control aspects of switching and routing from the physical routing of the network traffic. In some SD-WAN implementations, each gateway (BGs and headend gateways) controls certain aspects of routing for its respective LAN, but a network orchestrator controls all switching and routing over the WAN.One of the disadvantages of switching from private managed connections (e.g. MPLS) to public unmanaged connections (e.g. DSL, cellular, broadband, etc.) is that the performance of the public connections is not guaranteed. The manual assignment of application data streams by a network administrator to the connections may be successful for a period of time, but often results in network performance degradation and failures if the assumptions made by the network administrator do not apply. A simple example: A branch exchange network configured by the administrator to route video conferencing traffic over a particular uplink may function properly under normal operating conditions (relatively small number of video conferencing streams that are active simultaneously). However, the static configuration may not work well when the entire branch office participates in an enterprise-wide conference call because a large number of active video conferencing streams overload the dedicated uplink. The network administrator may establish service level agreements (SLAs), i.e., requests for network state and bandwidth thresholds for transmission of data associated with particular applications, and violation of the SLAs for performing video conferencing through the uplink is reported to the network administrator for manual reconfiguration.US 20180359172A1 relates to a method and apparatus for network path prediction and selection using machine learning.Against this background, the present invention has for its object to at least partially overcome the disadvantages of the known devices and methods for forwarding the network traffic. In particular, the present invention has for its object to provide devices and methods for intelligently forwarding the network traffic in a wide area network. This object is achieved by a network orchestrator according to independent claim 1 carrying an initial dynamic path selection (DPS) configuration and a network infrastructure apparatus according to independent claim 8 receiving an initial DPS configuration from a network orchestrator. The DPS introduces flexibility into the routing decision. Rather than requiring the network manager to predict all different conditions of network traffic, it may configure the SLAs for the applications. However, rather than merely emitting a warning when the SLA is violated, the network (typically via a network orchestrator or branch gateway) may reorganize the traffic such that an imminent or occurred SLA violation is compensated for or otherwise remedied. This object is also achieved by a method according to claim 15 which receives an initial DPS configuration at a network infrastructure device of a local network and from a network orchestrator. Embodiments of the invention are the subject of the respective dependent claims 2 to 7, 9 to 14 and 16 to 20.BRIEF DESCRIPTION OF THE DRAWINGSFor a more complete understanding of the present disclosure, examples in accordance with the various features described herein may be better understood by reference to the following detailed description taken in conjunction with the accompanying drawings, in which like reference numerals designate like structural elements, and in which: FIG. 1 shows an example of a software-defined wide area network; FIG. 2 is a dataflow diagram illustrating operation of an example software-defined wide area network; FIG. 3 is a flow chart showing an example of a method for configuring a software-defined wide area network; FIG. 4 shows an example of a network infrastructure apparatus; FIG. 5 shows an example of a network orchestrator.Certain examples include features that are present in addition to or instead of the features shown in the above figures. Certain labels may be omitted from certain figures for clarity.DETAILED DESCRIPTIONAlthough dynamic path selection (DPS) increases the adaptability of connections between a local area network (LAN) and a wider wide area network (WAN), while reducing network administrator effort, significant manual configuration effort is still required for the administrator at the "demand side" of the bandwidth equation. In a DPS solution, service level agreements (SLAs) are manually configured per application and then statically configured and applied as DPS policies once a data connection is established for the application in question. As a result, the uplink bandwidth cannot be used sufficiently, and the network administrator must continue to intervene to optimize the network.Although the state of the network varies over time, there are often patterns in the behavior of the network that correlate with trends in the network state. Some of these patterns may be relatively simple (e.g., bandwidth usage in a California branch is higher during business hours in California), but often the patterns are more complex and the superposition of multiple patterns makes it difficult, if not impossible, for a network administrator to understand the state trends of a network, particularly in a large enterprise network. Conventional solutions such as rule-based reconfiguration of the network are only limitedly able to detect complicated network and application traffic patterns, react to unexpected changes in the network and are very costly for the network administrators, especially on a large scale.An exemplary implementation of the invention described in this disclosure will be described below. To better detect complicated network and application patterns, a machine learning model on a network orchestrator collects relevant network operating data from a branch gateway and generates updated DPS configuration information, including DPS policies, configured to account for the expected application traffic (based on predicted SLAs and the expected network state and available bandwidth of the uplinks of the branch gateway). DPS policies include information used by network infrastructure devices to identify flows and route them over an appropriate WAN route. The machine learning model may be placed centrally and serve multiple branch LANs via the WAN. Therefore, the trained and updated models for differently configured branch LANs may differ from each other. For example, a branch in Los Angeles may have a SLA for Microsoft Office 365 traffic defining a certain maximum latency of X and a certain maximum jitter of Y. Another branch in Rio de Janeiro may have difficulty identifying an appropriate uplink or a combination of uplinks when the same static SLA of X maximum latency and Y maximum jitter is applied to the office 365 data there. This may result in the relevant DPS policy performing the office 365 sessions an unnecessary "trapping" (switching between uplinks), degrading end user experience.In this example, the network operating data from Rio de Janeiro is sent to a centralized network orchestrator (e.g., a cloud network controller) where the network operating data is input to the machine learning model to which the LAN from Rio de Janeiro has been assigned. The machine learning model periodically predicts application SLAs for Rio de Janeiro, generates DPS policies corresponding to the predicted SLAs, and transmits these DPS policies to a controller (e.g., a branch gateway) at the location Rio as part of a DPS configuration. For example, the machine learning model may obtain network operating data from Rio that indicates that the current SLA is not met most of the time for office 365 applications. The new predicted SLA for office 365 applications may change from X maximum latency and Y maximum jitter to X+Z maximum latency and Y+Z maximum jitter, which is more likely to be met by the uplinks at location Rio. This new predicted SLA is used to create a DPS policy for routing office 365 traffic at location Rio, and the DPS policy is transmitted as part of a DPS configuration update to the gateway of the branch office in Rio. Once the DPS policy is implemented by the branch gateway in Rio, office 365 traffic is routed according to the DPS policy.As mentioned above, several variables must be considered in solving a WAN uplink "problem". The adaptation of SLAs is a way to improve routing performance, but the SLAs are often tied to real limits. For example, a streaming video application may operate with and adapt to some increased latency, but from some point on, an increase in latency results in a perceptible degradation of the end user's experience. Also, the forward error correction may reassembly a certain number of lost packets, but from that certain number the data is lost. Therefore, adaptation of SLAs is often considered a technique that is used with larger network problems, while the network resorts to other techniques to optimize networks with less large problems.Another technique used in this example in addition to SLA updates is bandwidth reservation. Instead of manually establishing rules that independently adjust the route each flow takes based on uplink state information, each uplink is classified by a machine learning model and per DPS policy, depending on how well the respective application SLA is fulfilled. In this example, there are 5 bucket sides, A, B, C, D, E, which form a spectrum from "satisfies SLA consistent with large margin" to "satisfies SLA consistent with large margin". From this information, the network orchestrator can automatically select the best uplink or the best uplinks to update and prefer the corresponding DPS policy. The machine learning model also predicts the amount of available bandwidth for each uplink and reserves a portion of the bandwidth based on the individual application types. This bandwidth reservation is taken into account in creating the DPS policies and may result in some applications not being routed over the "best" uplink, measured at the SLA bucket. Rather, SLA bucketing is matched to the bandwidth availability of each uplink when it is determined which flows are routed over which uplinks. Continuing with the above example, the location Rio de Janeiro has three uplinks (uplink 1, uplink 2, and uplink 3), and uplink 1 is in bucket B for office 365 traffic, uplink 2 is bucket D for office 365 traffic, and uplink 3 is bucket E for office 365 traffic. Assuming there are no problems in reserving the required bandwidth, the network orchestrator provides a DPS policy that prefers office 365 flows to be routed over uplink 1 to utilize the uplink that consistently but closely satisfies the SLA. In further iterations of training the machine learning model using network operating information, the bucking of the rio uplinks with respect to office 365 traffic may change, resulting in a change in the DPS policy for office 365 traffic for the rio branch gateway. It should be noted that additional iterations provide additional data to the machine learning model that may improve the accuracy and predictive capability of the model.Taken together, the techniques used in this example function as follows. Over relatively short periods of time (e.g., 10 minute steps), the uplinks are sized into buckets per policy, and the DPS policies are adjusted, if appropriate. If the network has difficulty in meeting the SLA for application across all uplinks over longer periods of time (or the SLA constantly meets the SLA with a large margin across all uplinks), the SLA is adjusted to either reduce the requirements of the application (if the network has difficulty in meeting the SLA for the application) or increase the buffer beyond the minimum requirements of the application (if the network constantly meets the SLA with a large margin across all uplinks).As one of ordinary skill in the art can appreciate, many of the components, algorithms, thresholds, and processes could be configured differently, yet provide similar advantages over conventional WAN networking solutions. A non-exhaustive, non-limiting list of such prospective changes includes the use of prediction algorithms other than machine learning models, the provision of components of the invention on various devices, including in distributed form, the application of the invention to LAN, data center, or other network areas and segments, the change in schedule durations, the change in thresholds, the change in data points input to the machine learning model, the ability to manually override in part or in whole, the grouping and exclusion of uplinks from consideration by the machine learning model, etc. As the examples focus on a particular configuration in this disclosure, these examples are not to be understood as limiting, but are merely for the purposes of clarity and readability of this document.FIG. 1 shows an example of a software defined wide area network (SD-WAN). The SD WAN 100 includes a branch gateway (GW) 102, a local area network (LAN) 104, a wide area network (WAN) 106, client devices 108 a- c, WAN uplinks 110 a- b, a network orchestrator 112, and a machine learning model 114. SD-WAN 100 may be an enterprise network, e.g., a network operated by an enterprise having one or more locations of employees. GW 102, LAN 104 and client devices 108 a- ctogether form a branch site of the SD-WAN 100. While the term "branch office" is named after an enterprise branch office, it has a broader meaning that includes LANs 104 that primarily house client devices 108 and not servers and other data-providing devices.The SD WAN 100 has two WAN uplinks, uplink 110a and uplink 110b. These uplinks may be various technologies, e.g., digital subscriber lines (DSL), fiber optics (FloS), cellular (3G, 4G, 5G, etc.), or any other suitable technology. Although two uplinks are shown in FIG. 1, any number of uplinks is conceivable, and each uplink 110 may also represent a group of uplinks that are treated together. Each client device 108a-c is directly or indirectly connected to the GW 102 via the LAN 104. The LAN 104 may be as simple as an Ethernet cable connecting each client device 108 a- cto GW 102, or as complicated as a multi-layer switching and routing topology. The client devices 108 a- cmay interact with network hosted applications hosted via the WAN 106. The network hosted applications may be hosted at a data center in another portion of the WAN 106, in the cloud, or on a public server on the Internet. When application-related traffic is transmitted over the WAN 106 from a client device 108a destined for a device, the GW 102 classifies the traffic into a flow. For example, traffic destined for a microsoft word online server may be classified into an office 365 flow. The flow corresponds to a corresponding dynamic path selection (DPS) policy that causes the flow to be forwarded over a particular route described in the policy. In particular, the policy selects a preferred uplink 110 over which the data traffic is forwarded. DPS policies may include various ranges. In some examples, DPS policies may be defined for each differentiable application that transports data across the network. In other examples, only a small number (5 or less) of DPS policies are defined and the applications are sorted into broad application classes. As one of ordinary skill in the art can appreciate, the scope of DPS policies may include application classes of any size and combinations of any number of application class sizes. In addition to these automatically generated DPS policies, manually configured DPS policies may also exist. In some examples, the DPS policies include bandwidth thresholds, latency thresholds, jitter thresholds, and a list of applications included in the respective application category.Upon initialization of the network (or branch or after a reset of GW 102), the network orchestrator 112 generates a DPS configuration for GW 102 and transmits the DPS configuration to GW 102. The source information used to generate the DPS configuration depends on whether the network or branch is new or whether there is historical or current operating information about the operation of that branch.If historical or current operating information is not available, the DPS configuration is created based on initialization data that may include initial DPS policies for the application classes, initial scheduling information for iteratively updating the DPS configuration, and initial service level agreements (SLAs) for the application classes. Service level agreements are power requirements for the uplinks 110 in order to be able to pass through the data traffic associated with the respective application class. For example, when the client device 108 atakes part in a video conference, an initial SLA associated with application traffic for the video conference may require a maximum latency of 50 ms, a maximum jitter of 15 ms, and a maximum packet loss of 2%.When historical or current operating information is available, the DPS configuration is generated by a machine learning model 114, which uses historical and current operating information as input, and outputs a prediction of the per uplink state, available bandwidth per uplink, and per application SLAs used to generate the DPS configuration.As the applications handle their traffic over the WAN 106, GW 102 collects network operating information about the behavior of the traffic for each application as it passes through the WAN uplinks 110. Periodically (as configured in the DPS configuration), GW 102 transmits the collected network operating information to network orchestrator 112. The network orchestrator 112 may also receive additional network operating information from other branch office gateways of other branches. In some examples, each branch point has a unique machine learning model 114 associated with the branch point. In some other examples, branch points are grouped based on their similarity, and similar branch points share machine learning models 114. In examples where the network orchestrator 112 is a cloud service shared by multiple tenants, the machine learning models 114 may or may not be shared by the tenants as preference is. The machine learning model 114 receives the network operating information as input and predicts parameters used in creating a DPS configuration.The network operation information may include various parameters for measuring the state of the uplink connection (e.g., latency, jitter, packet loss, etc.), the available bandwidth of the uplink connection, responses to active probes transmitted from GW 102 over the WAN uplinks 110, application traffic information passively collected by GW 102 while transmitting the application traffic, SLA violations, the geographical location of the branch site, the Internet service provider for each uplink connection, and other applicable metrics.The machine learning model 114 is updated by training with the information on network operation. Then, the machine learning model 114 predicts SLA profiles per application for the branch, predicts the state of the connection and available bandwidth per uplink for the branch, and generates a DPS configuration for the branch. The DPS configuration may include DPS policies, SLAs, probe profiles for the active probes over the WAN uplinks 110, and scheduling configurations for the acquisition and transmission of the network operating information. The network orchestrator 112 then transmits the DPS configuration to the GW 102, which implements the DPS configuration at the branch office. In some examples, the machine learning model 114 includes one or more forest regression models to predict application SLAs, predict available bandwidth, and / or create DPS configurations. As one of ordinary skill in the art can appreciate, the machine learning model 114 could be another type of model as appropriate in the particular context. In some examples, GW 102 receives the DPS configuration and implements the configurations without network administrator intervention, including applying the DPS policies of the DPS configuration to the branch site.In certain examples, the network orchestrator 112 also transmits the DPS configuration to another GW in a LAN similar to the LAN 104. Generally, in some examples, similar branches may be grouped and operate with a single DPS configuration generated by a single machine learning model 114.To achieve accurate results, the machine learning model 114 preprocesses certain network operating information. In some examples, the information used as inputs to the pre-processing algorithm (per application and per uplink) includes the total percentage of bandwidth used by the DPS policy associated with the respective application class, the percentage of underlay traffic used, the percentage of overlay traffic used, the percentage of overlay traffic used per headend gateway, the number of headend gateways that complete WAN connections for the application type, and the average percentage of total bandwidth available for the respective uplink. The machine learning model 114 then classifies each DPS policy uplink combination based on how well the SLA is satisfied. For example, the machine learning model 114 may classify each policy and each uplink into one of five categories: A, B, C, D, E. Bucket A is for uplinks that consistently satisfy the SLA with a large margin (e.g., +50% and more) or a medium margin (e.g., +10% to +50%). Bucket B is for uplinks that constantly satisfy the SLA with a small margin (e.g., 0% to + 10%). Bucket C is for uplinks that frequently fluctuate above and below the SLA (e.g., at least 3X in the last 30 minutes). Bucket D is for uplinks that do not sustain the SLA throughout, but with a low margin (e.g., -10% to 0%). Bucket E is for uplinks that do not consistently satisfy the SLA with a medium range (e.g., -50% to -10%) or a large range (-50% and below).As mentioned previously, there are several techniques for adapting the network, some techniques more severely affecting network activities than others. One such potentially disruptive technique is to modify the SLA for an application. Thus, the machine learning model 114 may compare the classification results for each application class to a set of thresholds before deciding whether to change the SLA from the current values. The thresholds for the change in SLA for an application class may be, for example, such that the SLA is changed when (1) all uplinks are in bucket E (for the application class) in the last 30 minutes and the SLA thresholds are increased by 20% (i.e., the difficulty in meeting the SLA is decreased); (2) all uplinks are in bucket D and / or E in the last 30 minutes and the SLA is increased by 10%; (3) all uplinks are in bucket A in the last three hours and the SLA is decreased by 10%. This example illustrates a philosophy that can be used to complement the techniques for matching the DPS policy and the SLA matching. Within the SLA thresholds (if the SLA is not changed by the machine learning model 114), the DPS policies are adjusted to route application traffic efficiently over the uplinks. If the DPS policy adaptation is unable to efficiently route traffic for an application class over a longer period of time, the SLA is adapted for that application class to better conform to network conditions.FIG. 2 is a dataflow diagram illustrating operation of an example software-defined wide area network. The dataflow diagram illustrates the flow of information through the network system. The vertical lines represent the client device 200, branch exchange gateway (GW) 202, WAN 204, orchestrator 206, and branch exchange gateway (for a similar branch exchange location) 208. The time runs from top to bottom.In block 210 a, the orchestrator 206 receives initial configuration information. This configuration information may include initial SLAs for a set of application classes, scheduling information for the periodic updates of the machine learning model, threshold information for the techniques for optimizing the network, probing configuration information for the active probes of the WAN uplinks, etc. In some examples, the initial configuration information is input from a network administrator. In some other examples, portions of the initial configuration information are input from a network administrator, and portions of the initial configuration information are preconfigured in the network orchestrator 206.At block 210 b, the orchestrator 206 trains a machine learning model based in part on the initial configuration information. In some examples, the machine learning model may be pre-trained with information about the initial configuration, and this initial training is not required. In some other examples, the initial configuration information is used to train a machine learning model and generate a DPS configuration for the branch site with the GW 202. In certain examples, the orchestrator 206 determines that other branch locations are similar to the branch location with GW 202, e.g., the branch location with GW 208. The machine learning model may be any suitable model type, e.g., a forest regression model. The machine learning model is configured to generate DPS configurations by predicting application class SLAs, uplink state, and available uplink bandwidth.In block 210 c, the orchestrator 206 generates a DPS configuration from the output of the machine learning model. In some examples, the machine learning model output is a DPS configuration that can be communicated to GW 202. In some other examples, the machine learning model output must be post-processed to generate the DPS configuration. For example, the machine learning model may output multiple values (e.g., SLAs for application classes, DPS policies, predictions of available bandwidth in the uplink, etc.), and a post-processing algorithm consolidates the outputs into a DPS configuration.In block 210d, the DPS configuration is transmitted from the orchestrator 206 to GW 202 and GW 208. Each GW 202 and 208 then implements the DPS configuration. In some examples, this includes implementing DPS policies, SLAs, probe configurations, schedule configurations, etc. In certain examples, some portions of the DPS configuration are unchanged from the current configuration of the GW 202 or 208, such that that portion of the GW configuration is not updated.In block 210e, client device 200 sends and receives application traffic destined for a device in WAN 204. This device may be a data center server, an Internet server, a cloud server, or other relevant WAN goal. LAN routing rules route the application traffic to the GW 202 identifying the application. In some examples, the GW 202 may forward a portion of the application traffic (e.g., a packet, a set of packets / frames) to a separate device for application identification. In certain examples, GW 202 forwards the application traffic to the orchestrator 206, which identifies the application directly or by forwarding to another device (e.g., an application identifier, a third party application identification service). Once the application is identified, the further data traffic associated with the respective network session is automatically associated with the respective flow and routed without requiring additional identification.In block 210f, GW 202 assigns the application traffic to a flow and selects a route for the application traffic based on the corresponding DPS policy. The DPS policy includes one uplink from the set of uplinks that connect the GW 202 to the WAN 204 and over which the application traffic is to be routed.In block 210g, GW 202 forwards the application traffic to WAN 204 over the uplink included in the corresponding DPS policy. Depending on the specific destination of the application traffic, the next hop of the route may be a head end gateway of another WAN location, or the application traffic may "disconnect" from the WAN and be routed directly (i.e., without further WAN hops) over the Internet to its destination.In block 210h, the WAN 204 provides network operating information to the GWs 202 and 208, including responses to active probes transmitted to the WAN 204 over uplinks between the respective GWs and WAN 204. In some examples, the network operating information is generated at one or more head end gateways in the WAN 204. The network operating information includes parameters indicative of the state of the network including, but not limited to, response information from active uplink probes, passive application traffic information, bandwidth per uplink, operating parameters of network infrastructure devices, SLA violations, geographic location, and Internet service providers per uplink.In block 210 i, GW 202 aggregates network operation information associated with the operation of GW 202 and associated uplinks including the network operation information of WAN 204 as well as the network operation information measured at GW 202, and forwards the aggregated network operation information to the orchestrator 206. Similarly, GW 208 aggregates network operating information and forwards it to the orchestrator 206.Since GW 202 and GW 208 are located on similar LANs and use the same machine learning model to generate their DPS configurations, in block 210j, the orchestrator 206 uses the aggregated network operation information of GW 202 and the aggregated network operation information of GW 208 to update the machine learning model. Updating the machine learning model may include training the machine learning model using the aggregated network operating information to generate new predictions as described above.In block 210k, an updated DPS configuration is generated by the updated machine learning model. Depending on the specific network state and other factors, the updated DPS configuration may adjust DPS policies to route applications other than before, adjust SLAs to decrease or increase bandwidth reservation for applications on the uplinks, change the configuration of probes or the scheduling of updates, or make other changes to the DPS configuration to improve operation.FIG. 3 is a flow chart showing an example of a method for configuring a software-defined wide area network. The method 300 may be implemented as instructions on a computer readable medium executed by processing circuits.In block 302, a network infrastructure device of a LAN within a WAN receives an initial DPS configuration from a network orchestrator. In some examples, the initial DPS configuration is preconfigured at the network orchestrator because there is little information about the operation and topology of the LAN. In some other examples, information about initial network operation and topology is collected from the LAN and input to a machine learning model to generate the initial DPS configuration. In certain examples, the initial DPS configuration includes some initial configurations input from a network administrator. In certain other examples, the DPS initial configuration includes some preconfigured initial configurations, and no configuration by the network administrator is required to generate the DPS initial configuration.At block 304, an initial DPS policy is configured on the network infrastructure device for a class of applications based on the initial DPS configuration. In some examples, the initial DPS policy is included in the initial DPS configuration, and the initial DPS policy is configured by copying the policy from the initial DPS configuration to a policy repository within the network infrastructure device. In some other examples, information from the initial DPS configuration (e.g., SLAs) is combined with information from the network infrastructure device (e.g., network topology) to configure the initial DPS policy.In block 306, the probes are transmitted from the network infrastructure device over a plurality of network connections (i.e., uplinks) that connect the network infrastructure device to other devices in the WAN. In some examples, the uplinks extend over the Internet to other LANs of the WAN in an SD-WAN topology. The probes may traverse the underlay network (the physical connections and network devices of the network) selected as the path for the overlay route (the logical connection between the network infrastructure device, which may be a branch gateway of a branch LAN, and another network infrastructure device, which may be a head end gateway of a core location LAN) of the uplink to determine the state of the uplink. The determination of the state of the uplink may be done by collecting information and meta-information from the responses to the probes. Parameters for the uplink state may include jitter, latency, and packet loss, both overall for the entire uplink connection and per class of application.In block 308, the network traffic associated with the application class (i.e., the application class flow) is routed by the network infrastructure facility over the associated uplink as described in the initial DPS policy. In some examples, a network session used to transmit the network traffic is deemed associated with the application class after an initial set of network traffic has been inspected to determine which application it is associated with. In some examples, the DPS configuration may include a list of applications associated with each application class.In block 310, the network infrastructure device collects network operating information. Some of the network operating information may be measured in the network infrastructure device. Other network operating information may be received from other devices, including other network infrastructure devices of the LAN, client devices of the LAN, other network infrastructure devices of other LANs within the WAN, and network infrastructure devices of the Internet, as well as data server devices of the LAN, WAN, or Internet. Some network operating information may be application specific, while other network operating information relates to the state of the network as a whole.In block 312, the aggregated network operating information is transmitted from the network infrastructure device to the network orchestrator. The network orchestrator may collect network operating information from many LANs within the WAN and from LANs in various WANs similar to the LAN in which the network infrastructure apparatus described in method 300 resides. In some examples, the network orchestrator operates and manages a machine learning model shared by LANs with similar topology and / or state. In some examples, the network operating information is used to train the machine learning model periodically.In block 314, an updated DPS configuration is received from the network orchestrator at the network infrastructure device. In some examples, the network orchestrator receives the network operating information from the network infrastructure device and network infrastructure devices on similar LANs to the network infrastructure devices described in method 300 and inputs the network operating information to a machine learning model. The machine learning model predicts the uplink state, the available bandwidth of the uplink connection, and the SLAs for application classes and generates the updated DPS configuration based in part on these predictions. In some examples, the machine learning model uses Wald regression models to predict the SLAs, the state of the uplink, and the available bandwidth.At block 316, an updated DPS policy for the application class is configured on the network infrastructure device based on the updated DPS configuration. In some examples, the updated DPS policy is included in the updated DPS configuration, and the updated DPS policy is configured by copying the policy from the updated DPS configuration to a policy repository within the network infrastructure device. In some other examples, information from the updated DPS configuration (e.g., SLAs) is combined with information from the network infrastructure device (e.g., network topology) to configure the updated DPS policy.In block 318, the network traffic associated with the application class (i.e., the application class flow) is routed by the network infrastructure facility over an associated uplink, as described in the updated DPS policy. In some examples, a network session used to transmit the network traffic is deemed associated with the application class after an initial set of network traffic has been inspected to determine which application it is associated with. In some examples, the updated DPS configuration may include a list of applications associated with each application class.In some examples, the method 300 includes an additional block in which each uplink of the plurality of network connections is classified at the network orchestrator based on how consistently the connection satisfies the application SLAs for the network traffic transmitted over the respective connection as well as what margin the connection satisfies the application SLAs.In some examples, the method 300 includes an additional block in which updated DPS policies are periodically generated at the network orchestrator for the network infrastructure device to reduce the number of network connections that are classified as non-compliant or non-compliant throughout for their respective assigned application SLAs.In some examples, the method 300 includes an additional block in which an application SLA is periodically updated by the network orchestrator if all associated uplinks are deemed not to satisfy the current application SLA for a particular period of time. In some examples, the application SLA is also updated periodically when all associated uplinks are ranked to satisfy the application SLA over a certain large margin period of time.FIG. 4 shows an example of a network infrastructure apparatus. The network infrastructure apparatus 400 includes processing circuitry 402, WAN uplinks 404, and memory 406. The memory 406 may be a non-transitory computer readable medium storing instructions 408 that, when executed by the processing circuit 402, cause the network infrastructure device 400 to perform certain actions. In some examples, network infrastructure device 400 is a branch exchange gateway.Instructions 408a cause device 400 to configure initial DPS policies. In some examples, the initial DPS policies are received from a network orchestrator. The initial DPS policies are each associated with a particular application class from a set of application classes and direct the device 400 to route the network traffic of the respective application class over a selected uplink of the WAN uplinks 404.The instructions 408 bcause the device 400 to transmit a plurality of probes over the WAN uplinks 404 and receive responses from target devices over the links. For example, the WAN uplinks 404 may be coupled to one or more headend gateways of different LAN locations, and the responses received from the headend gateways may include information and meta-information that may be used to determine the state and available bandwidth of each uplink.The instructions 408 ccause the device 400 to collect information about networking, including information collected from responses to the multiple probes, information measured by the device 400, and information collected from devices on the LAN connected to the device 400. This aggregated network operating information includes many parameters that can be used by a network orchestrator to determine the network topology, the state of the connection, the available bandwidth, and application class-specific network state information. The device 400 may also forward the network operating information to the network orchestrator.The instructions 408 dcause the device 400 to receive a DPS configuration from a network orchestrator. In some examples, the DPS configuration includes updated DPS policies for the application classes. Additional updated information may be included, e.g., updated application class SLAs, updated probe configuration, updated uplink thresholds, and updated scheduling configuration.Instructions 408e cause device 400 to update its DPS policies based on the received DPS configuration. In some examples, certain DPS policies may remain the same for certain application classes, while other DPS policies are changed for other application classes. In addition to updating the DPS policies, the device 400 may also update other configurations and parameters based on the information included in the DPS configuration.Additional instructions 408 fmay cause device 400 to perform other actions, including many described above in this disclosure. For example, device 400 may forward application traffic based on the original DPS policies, forward application traffic based on the updated DPS policies, and transmit information from a new network session to a device classifying the application type of the session.FIG. 5 shows an example of a network orchestrator. The network orchestrator 500 includes processing circuitry 502 and memory 504. The memory 504 may be a non-transitory computer readable medium storing instructions 506, which when executed by the processing circuitry 502, cause the network orchestrator 500 to perform certain actions. In some examples, the network orchestrator 500 is a cloud hosted network controller.Instructions 506a cause the orchestrator 500 to transmit an initial DPS configuration to a network infrastructure device of a LAN. In some examples, the initial DPS configuration is preconfigured. In some other examples, some preliminary information is collected by the network infrastructure device and used as inputs to a machine learning model to generate the initial DPS configuration. In certain examples, a network administrator configures aspects of the DPS configuration manually, but in other examples, no action of the network administrator is required to generate and transmit the DPS configuration.The instructions 506 bcause the orchestrator 500 to receive network operating information from the network infrastructure device. The network operating information includes parameters that can be input to the machine learning model to predict application class SLAs, uplink state, and available uplink bandwidth. In some examples, network operating information from multiple network infrastructure devices of similar LANs is all input to the machine learning model as training data to train the machine learning model.The instructions 506 ccause the orchestrator 500 to update the machine learning model using the received network operating information. The model then outputs a DPS configuration that can be used on each of the network infrastructure devices. In some examples, the orchestrator 500 includes a plurality of machine learning models, each associated with one or more network infrastructure devices and grouped according to LAN similarity.The instructions 506 dcause the orchestrator 500 to transmit an updated DPS configuration to the network infrastructure device. The updated DPS configuration may include updated DPS policies for each application class, updated SLAs for each application class, updated probe configurations, updated uplink thresholds, and updated scheduler configurations.Additional instructions 506e may cause the orchestrator 500 to perform other actions, including many described above in this disclosure. For example, the orchestrator 500 may receive information from a network infrastructure device, including information from a new network session, to classify the application type of the session.Flows are groups of network traffic in an SDN network that are routed based on flow specific rules. For example, a flow may include all network traffic identified as being associated with social media applications. All network traffic identified as being associated with social media applications may be subject to low quality of service requirements compared to video or audio streaming. Moreover, network traffic in the social media flow may be subject to additional security checking (e.g., firewall), role-based restrictions (e.g., only the marketing department has access to social media while in the enterprise network), or other routing settings.Routes are paths through a network. Often, "flows" and "routes" are used almost as synonyms. "flows" include one or both classifications of packets into a flow pattern as well as the path that these classified packets take through the SDN overlay network. "routes" typically refer to the path that these packets take through the physical underlay network.Branch Office Gateways are network infrastructure devices that are placed at the edge of a branch office LAN. Often branch gateway routers interface the LAN and a wider network, whether directly to other LANs of the WAN via dedicated network connections (e.g., MPLS) or to the other LANs of the WAN via the Internet through connections provided by an Internet Service Provider. Many branch exchange gateways may establish multiple uplinks to the WAN, both to multiple other LAN sites and redundant uplinks to a single other LAN site. Branch exchange gateways often also include network controllers for the branch exchange LAN. In such examples, a branch gateway used in an SD WAN may include a network controller logically separated from an included router. The network controller may control the network infrastructure devices of the branch LAN and receive routing commands from a network orchestrator.Headend gateways (sometimes also referred to as VPN concentrators) are network infrastructure devices placed at the edge of a central site LAN. Frequently, head end gateways are routers that interface the LAN with a wider network, whether directly to other LANs of the WAN via dedicated network connections (e.g., MPLS), or to the other LANs of the WAN via the Internet through connections provided by an Internet Service Provider. Many head end gateways may establish multiple uplinks to the WAN, both to multiple other LAN sites and redundant uplinks to a single other LAN site. Headend gateways often also include network controllers for the core site LAN. In such examples, a head end gateway used in an SD WAN may include a network controller logically separated from an included router. The network controller may control the infrastructure devices of the core LAN and receive routing commands from a network orchestrator.A network orchestrator is a service (e.g., instructions stored on a non-transitory computer readable medium and executed by processing circuitry) that executes on a computing device and orchestrates switching and routing via an SD-WAN. In some examples, the network orchestrator executes on a computing device on a core LAN of the SD-WAN. In some other examples, the network orchestrator executes on a cloud computing device. The network orchestrator may be provided to the SD-WAN as a service (aaS). The network orchestrator collects network operating information from various network infrastructure devices of the SD-WAN, including information regarding network traffic load, network topology, network usage, etc. The network orchestrator then transmits commands to various network infrastructure devices of the SD-WAN to modify the network topology and routing to achieve various goals regarding network efficiency and effectiveness.A network administrator is a person, network service, or combination thereof, who / she has administrative access to network infrastructure devices and configures devices to conform to a network topology.A client device is a computing device that is operated by or accessed by a network user. The client devices include laptop / desktop computers, tablets / phones / PDAs, servers, Internet of Things devices, sensors, etc.A virtual local area network (VLAN) is a logical partition of a portion of a WAN. A VLAN may be included in a particular LAN of the WAN or may span multiple LANs of the WAN. VLANs are implemented in layer 2 of the OSI model (the data link layer) and, among other advantages, improve network configurability as the size of the network increases. VLAN-enabled network infrastructure devices may assign port-based VLANs or provide particular data frames with information that links the frames to their respective VLANs. VLANs can be used to group related devices, balance load on certain network infrastructure devices, apply broad-based security and routing policies, implement quality of service (QoS), etc.A network infrastructure device is a device that receives network traffic and forwards the network traffic to a destination. Network infrastructure devices may include, but are not limited to, controllers, access points, switches, routers, bridges, and gateways. Certain network infrastructure devices may be SDN capable, i.e., may receive network commands from a controller or orchestrator and adjust operation based on the received network commands. Some network infrastructure devices perform packet services such as application classification and deep packet inspection for particular network traffic arriving at the network infrastructure device. Some network infrastructure devices monitor load parameters for various physical and logical resources of the network infrastructure device and report load information to a controller or or orchestrator.Processing circuits are circuits that receive instructions and data and execute the instructions. The processing circuits may include application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), microcontrollers (μCs), central processing units (CPUs), graphics processing units (GPUs), microprocessors, or other suitable circuits that can receive commands and data and execute the commands. The processing circuits may include one processor or multiple processors. The processing circuits may include caches. The processing circuitry may be connected to other components of a device, including memory, network interfaces, peripherals, supporting circuitry, data buses, or other suitable components. Processors of a processing circuit may communicate with each other via a shared cache, inter-processor communication, or other suitable technology.A memory is one or more non-transitory computer readable media capable of storing instructions and data. The memory may include random access memory (RAM), read only memory (ROM), processor cache, removable media (e.g., CD-ROM, USB flash drive), storage drive (e.g., hard disk drive (HDD), solid state drive (SSD)), network storage (e.g., network attached storage (NAS)), and / or cloud storage. In this disclosure, unless otherwise indicated, all references to memory and instructions and data stored in the memory may refer to instructions and data stored on any non-transitory computer readable medium that can store instructions and data, or any combination of such non-transitory computer readable media.A software defined network (SDN) is a network that overlays a physical network and allows a device, e.g., a network orchestrator, to dynamically configure the topology of the SDN overlay by routing flows to particular routes through the underlying physical network. The dynamic configuration may include changes to the network topology that are based on many factors including network state and performance, data type, application type, quality of service constraints (e.g., service level agreements), device load, available bandwidth, business cost, and other factors.A software defined wide area network (SD-WAN) is an SDN that controls the interaction between different sites of a WAN. Each site may have one or more LANs interconnected via WAN uplinks. Some WAN uplinks are leased lines (e.g., MPLS), others are shared routes through the Internet (e.g., DSL, T1, LTE, 5G, etc.). A SD WAN dynamically configures the WAN uplinks and the data traffic passing over the WAN uplinks to effectively utilize the resources of the WAN uplinks.The features of the present disclosure may be implemented with a variety of specific devices that include a variety of different technologies and features. For example, features including instructions to be executed by a processing circuit may store the instructions in a cache of the processing circuits, in a random access memory (RAM), in a hard drive, in a removable drive (e.g., CD-ROM), in a field programmable gate array (FPGA), in a read-only memory (ROM), or in another non-transitory computer readable medium as appropriate for the specific device and example implementation. As will be appreciated by those of ordinary skill in the art, the features of the present disclosure are not altered by the technology, whether known or unknown, and the characteristics of the specific devices on which the features are implemented. Any modifications or changes that would be required to implement the features of the present disclosure on a particular device or example would be apparent to those of skill in the art.Although the present disclosure has been described in detail, various changes, substitutions, and alterations can be made without departing from the spirit and scope of the disclosure. Any use of the words "may" or "may" with respect to features of the disclosure means that certain examples include the feature and certain other examples do not include the feature, as the context requires. The use of the words "or" and "and" in reference to features of the disclosure means that the examples may include any combination of the listed features as the context requires.Terms and parentheses beginning with "e.g." or "i.e." are merely illustrative of examples. It is not intended to limit the disclosure by the examples recited in these phrases and parentheses. The scope and understanding of this disclosure may include particular examples that are not given in these phrases and brackets.
Claims
A network orchestrator (112, 206, 500) comprising: processing circuitry (502) and a memory (504) including instructions (506) that, when executed by the processing circuitry, cause the network orchestrator to: transmit an initial dynamic path selection configuration (DPS) generated by a machine learning model (114) to a first set of network infrastructure devices (400); receive network operation information from each of the first set of infrastructure devices; update the machine learning model by training the machine learning model using the network operation information received from each of the first set of infrastructure devices; transmitting an updated DPS configuration generated by the updated machine learning model to the first set of network infrastructure devices, wherein the updated DPS configuration adjusts service level agreements, SLAs, to decrease or increase bandwidth reservation for uplink applications.The network orchestrator of claim 1, wherein the network operating information comprises: active uplink probe response information, passive application traffic information, bandwidth per uplink, service level agreement (SLA) violations, geographic location, and internet service providers per uplink.The network orchestrator of claim 1, wherein the initial and updated DPS configurations include at least one of DPS policies, SLAs, test profiles, or uplink scheduling configurations.The network orchestrator of claim 3, wherein the machine learning model uses forest regression models to predict application SLAs and uplink state and available bandwidth for use in generating DPS configurations.The network orchestrator of claim 3, wherein the DPS policies include a list of applications within the respective application category and one or more of the following values: bandwidth threshold, latency threshold, or jitter threshold.The network orchestrator of claim 1, wherein upon receipt of the updated DPS configuration, the first set of network infrastructure devices updates their respective DPS policies without any action of the network administrator.The network orchestrator of claim 1, further comprising instructions that cause the network orchestrator to update a second machine learning model with network operating information received from a second set of network infrastructure devices, wherein the local area networks (LANs) of the second set of network infrastructure devices are characterized as being similar to each other and different from the LANs of the first set of network infrastructure devices.A network infrastructure apparatus (400) comprising: a plurality of network connections (404) over a wide area network (WAN) (106); processing circuitry (402); and memory (406) including instructions (408) that, when executed by the processing circuitry, cause the network infrastructure apparatus to: receive an initial DPS configuration from a network orchestrator (112, 206, 500); transmit a plurality of probes over the plurality of network connections and receive a plurality of responses to the plurality of probes; transmitting network operating information, including the plurality of responses, passively captured application traffic information, uplink available bandwidth information, application bandwidth utilization information, and service level agreement (SLA) violations according to application category, to the network orchestrator; receiving an updated DPS configuration from the network orchestrator, wherein the updated DPS configuration adjusts service level agreements, SLAs, to decrease or increase bandwidth reservation for applications on the plurality of network connections.The network infrastructure apparatus of claim 8, wherein the network operating information further comprises: geographic location, Internet service providers per uplink, and seasonality of the traffic.The network infrastructure apparatus of claim 8, wherein the initial DPS configuration and the updated DPS configuration are generated by a machine learning model (114) of the network orchestrator.The network infrastructure apparatus of claim 10, wherein the machine learning model uses forest regression models to predict SLAs and uplink state and available bandwidth for use in generating DPS configurations.The network infrastructure apparatus of claim 8, further comprising instructions that cause the network infrastructure apparatus to: route traffic of a first application over a first uplink of the plurality of network connections based on an initial DPS policy associated with the first application.The network infrastructure apparatus of claim 12, further comprising instructions that cause the network infrastructure apparatus to: route traffic of a first application over a second uplink of the plurality of network connections based on an updated DPS policy associated with the first application.The network infrastructure apparatus of claim 13, further comprising instructions that cause the network infrastructure apparatus to: route data traffic of a second application over the first uplink and the second uplink of the plurality of network connections based on an updated DPS policy associated with the second application.A method comprising: receiving an initial dynamic path selection configuration (DPS) at a network infrastructure device (400) of a local area network (LAN) (104) and from a network orchestrator (112, 206, 500); configuring an initial DPS policy for a class of applications based on the initial DPS configuration on the network infrastructure device; transmitting probes from the network infrastructure device over a plurality of network connections over a wide area network (WAN) (106) including the LAN; routing the network traffic associated with the application class over the plurality of network connections based on the initial DPS policy; collecting network operating information at the network infrastructure device, including responses to the transmitted probes, passively collected application traffic information, available uplink bandwidth information, application bandwidth usage information, and service level agreement (SLA) violations according to application category; transmitting the network operating information from the network infrastructure device to the network orchestrator; receiving an updated DPS configuration from the network orchestrator at the network infrastructure device, wherein the updated DPS configuration adjusts service level agreements, SLAs, to decrease or increase bandwidth reservation for applications on the plurality of network connections; configuring an updated DPS policy for the application class based on the updated DPS configuration at the network infrastructure device; and routing the network traffic associated with the application class across the plurality of network connections based on the updated DPS policy.The method of claim 15, further comprising: classifying each uplink of the plurality of network connections at the network orchestrator based on how consistently the connection satisfies the application SLAs for the network traffic transmitted over the respective connection, as well as what margin the connection satisfies the application SLAs; periodically generating updated DPS policies for the network infrastructure device at the network orchestrator to reduce the number of network connections classified as not satisfying or not continuously satisfying for their respective assigned application SLAs; and periodically updating an application SLA by the network orchestrator if all associated uplinks are classified as not satisfying the current application SLA.The method of claim 16, further comprising periodically adjusting an application SLA when all associated uplinks are classified to satisfy the application SLA with a large margin.The method of claim 15, wherein the updated DPS configuration received from the network orchestrator is generated based on prediction of an SLA for each application class and prediction of the uplink state and available bandwidth for the network infrastructure device using a machine learning model (114).The method of claim 18, wherein the machine learning model uses forest regression models to predict the SLAs and uplink state as well as available bandwidth.The method of claim 18, wherein the machine learning model is periodically trained using the network operating information from the network infrastructure device as well as the network operating information from network infrastructure devices of LANs similar to the LAN of the network infrastructure device.
Citation Information
Patent Citations
Network path prediction and selection using machine learning
US20180359172A1