Auto-grouping and routing platform
Systems and methods are provided for automatically grouping branch devices based on device information (e.g., IPSec tunnel connectivity, etc.). The devices with similar branch gateways which would customarily receive similar route information and/or properties (e.g., AS-PATH, cost, MED, Metric1, Metric2, community/extended community) and/or devices with similar connectivity graphs can be grouped together. This can reduce the number of electronic communications transmitted throughout the network and increase computational efficiency for the controller and devices.
1 . A control system comprising:
one or more processors; and
a non-transitory machine-readable storage medium comprising instructions executable by the one or more processors to:
receive, from a plurality of nodes, route advertisement information of connectivity links between the plurality of nodes and Virtual Private Network Concentrators (VPNCs);
determine groups of the plurality of nodes based on the connectivity links between the plurality of nodes and the VPNCs;
based on at least one performance factor, compute a first performant route and a first alternative performant route for a first group of the groups, and compute a second performant route and a second alternative performant route for a second group of the groups;
associate a primary VPNC and a secondary VPNC with the first group, and associate a primary VPNC and a secondary VPNC with the second group, wherein the primary VPNC associated with the first group is different from the primary VPNC associated with the second group;
download the first performant route and the first alternative performant route to the first group comprising nodes of the plurality of nodes, and download the second performant route and the second alternative performant route to the second group comprising nodes of the plurality of nodes; and
update a route definition in accordance with the connectivity links, wherein the plurality of nodes are to route data packets in accordance with the route definition, and wherein a node of the first group is to switch from the first performant route to the first alternative performant route responsive to a network disruption.
2 . The control system of claim 1 , wherein the instructions are executable by the one or more processors to:
determine which nodes of the first group is to receive connectivity information from a further node of the first group.
3 . The control system of claim 2 , wherein the instructions are executable by the one or more processors to:
perform a single route computation for the first group, the single route computation comprising computing the first performant route and the first alternative performant route; and
download the first performant route and the first alternative performant route from the control system to the further node of the first group that is to communicate the first performant route and the first alternative performant route to other nodes of the first group.
4 . The control system of claim 1 , wherein the instructions are executable by the one or more processors to:
perform a first single route computation for the first group, wherein the first single route computation comprises computing the first performant route and the first alternative performant route; and
perform a second single route computation for the second group, wherein the second single route computation comprises computing the second performant route and the second alternative performant route.
5 . The control system of claim 1 , wherein a first node of the first group comprises a primary branch gateway connected to the primary VPNC associated with the first group, and a second node of the first group comprises a secondary branch gateway connected to the secondary VPNC associated with the first group.
6 . The control system of claim 1 , comprising a software defined wide area network (SDWAN) control system.
7 . The control system of claim 1 , wherein the instructions are executable by the one or more processors to:
transmit the route definition to the plurality of nodes.
8 . The control system of claim 1 , wherein the at least one performance factor comprises at least one of route speed or number of hops.
9 . A non-transitory computer-readable storage medium comprising instructions executable by a control system to:
receive, from a plurality of nodes, route advertisement information of connectivity links between the plurality of nodes and Virtual Private Network Concentrators (VPNCs);
determine groups of the plurality of nodes based on the connectivity links between the plurality of nodes and the VPNCs;
based on at least one performance factor, compute a first performant route and a first alternative performant route for a first group of the groups, and compute a second performant route and a second alternative performant route for a second group of the groups;
associate a primary VPNC and a secondary VPNC with the first group, and associate a primary VPNC and a secondary VPNC with the second group, wherein the primary VPNC associated with the first group is different from the primary VPNC associated with the second group;
download, from the control system, the first performant route and the first alternative performant route to the first group comprising nodes of the plurality of nodes, and download, from the control system, the second performant route and the second alternative performant route to the second group comprising nodes of the plurality of nodes; and
update a route definition in accordance with the connectivity links, wherein the plurality of nodes are to route data packets in accordance with the route definition, and wherein a node of the first group is to switch from the first performant route to the first alternative performant route responsive to a network disruption.
10 . The non-transitory computer-readable storage medium of claim 9 , wherein the instructions are executable by the control system to:
determine which nodes of the first group is to receive connectivity information from a further node of the first group.
11 . The non-transitory computer-readable storage medium of claim 10 , wherein the instructions are executable by the control system to:
perform a single route computation for the first group, the single route computation comprising computing the first performant route and the first alternative performant route; and
download, from the control system, the first performant route and the first alternative performant route to the further node of the first group that is to communicate the first performant route and the first alternative performant route to other nodes of the first group.
12 . The non-transitory computer-readable storage medium of claim 9 , wherein the instructions are executable by the control system to:
perform a first single route computation for the first group, wherein the first single route computation comprises computing the first performant route and the first alternative performant route; and
perform a second single route computation for the second group, wherein the second single route computation comprises computing the second performant route and the second alternative performant route.
13 . The non-transitory computer-readable storage medium of claim 9 , wherein a first node of the first group comprises a primary branch gateway connected to the primary VPNC associated with the first group, and a second node of the first group comprises a secondary branch gateway connected to the secondary VPNC associated with the first group.
14 . The non-transitory computer-readable storage medium of claim 9 , wherein the at least one performance factor comprises at least one of route speed or number of hops.
15 . The non-transitory computer-readable storage medium of claim 9 , wherein the instructions are executable by the control system to:
transmit the route definition to the plurality of nodes.
16 . A method comprising:
receiving, by a control system comprising a hardware processor from a plurality of nodes, route advertisement information of connectivity links between plurality of nodes and Virtual Private Network Concentrators (VPNCs);
determining, by the control system, groups of the plurality of nodes based on the connectivity links between the plurality of nodes and the VPNCs;
based on at least one performance factor, computing, a first performant route and a first alternative performant route for a first group of the groups, and computing a second performant route and a second alternative performant route for a second group of the groups;
associating, by the control system, a primary VPNC and a secondary VPNC with the first group, and associating, by the control system, a primary VPNC and a secondary VPNC with the second group, wherein the primary VPNC associated with the first group is different from the primary VPNC associated with the second group;
downloading, by the control system, the first performant route and the first alternative performant route to the first group comprising nodes of the plurality of nodes, and downloading, by the control system, the second performant route and the second alternative performant route to the second group comprising nodes of the plurality of nodes; and
updating, by the control system, a route definition in accordance with the connectivity links, wherein the plurality of nodes are to route data packets in accordance with the route definition, and wherein a node of the first group is to switch from the first performant route to the first alternative performant route responsive to a network disruption.
17 . The method of claim 16 , comprising:
determining, by the control system, which nodes of the first group is to receive connectivity information from a further node of the first group.
18 . The method of claim 17 , comprising:
performing, by the control system, a single route computation for the first group, the single route computation comprising computing the first performant route and the first alternative performant route; and
downloading, by the control system, the first performant route and the first alternative performant route to the further node of the first group that is to communicate the first performant route and the first alternative performant route to other nodes of the first group.
19 . The method of claim 16 , comprising:
detecting, by the node of the first group, the network disruption; and
switching, by the node of the first group, from the first performant route to the first alternative performant route based on detecting the network disruption.
20 . The method of claim 16 , wherein a first node of the first group comprises a primary branch gateway connected to the primary VPNC associated with the first group, and a second node of the first group comprises a secondary branch gateway connected to the secondary VPNC associated with the first group.