Overlay multicast orchestration in software-defined wide area network
View Patent ↗Examples described herein relate to a centralized overlay multicast orchestrator in a software-defined wide area network (SD-WAN). The overlay multicast orchestrator receives and maintains state information from multicast agents deployed on overlay network nodes. Based on the state information, the overlay multicast orchestrator identifies a first set of overlay network nodes connected to a source and a second set of overlay network nodes connected to hosts requesting a multicast stream. The overlay multicast orchestrator computes and distributes a multicast tree representing a path for transmission of the multicast stream to the requesting hosts.
1 . A method comprising:
receiving, by a multicast orchestrator in a software-defined wide area network (SD-WAN) comprising overlay network nodes, state information from the overlay network nodes;
based on the state information, identifying, by the multicast orchestrator from the overlay network nodes, a first overlay network node connected to a multicast source of a multicast stream and a second overlay network node connected to a host, wherein the second overlay network node comprises a first interface connected to the first overlay network node and a second interface connected to the host;
based on the identifying, computing, by the multicast orchestrator, a partially populated multicast table representing a multicast tree comprising a path connecting the first overlay network node and the second overlay network node, the partially populated multicast table comprising:
a first entry identifying respective interfaces of the first overlay network node connected to the multicast source and the second overlay network node, and
a partially populated second entry comprising a populated first interface field identifying the first interface connected to the first overlay network node, and an empty second interface field that is without information identifying the second interface connected to the host;
distributing, by the multicast orchestrator, the partially populated multicast table to the first and second overlay network nodes to allow transmission of the multicast stream to the host; and
updating, by the second overlay network node, the partially populated second entry of the partially populated multicast table received from the multicast orchestrator at the second overlay network node by adding, to the empty second interface field, the information identifying the second interface connected to the host.
2 . The method of claim 1 , wherein the first overlay network node includes a virtual private network concentrator (VNPC), and the second overlay network node includes a branch gateway.
3 . The method of claim 1 , wherein the host is a first host, the method further comprising:
identifying, by the multicast orchestrator, a third overlay network node connected to a second host, wherein the multicast tree comprises paths connecting the first overlay network node and the second and third overlay network nodes, and wherein the partially populated multicast table further comprises a partially populated third entry comprising a populated first interface field identifying a first interface of the third overlay network node connected to the first overlay network node, and an empty second interface field that is without information identifying a second interface of the third overlay network node connected to the second host;
distributing, by the multicast orchestrator, the partially populated multicast table to the third overlay network node; and
updating, by the third overlay network node, the partially populated third entry of the partially populated multicast table received at the third overlay network node by adding, to the empty second interface field of the partially populated third entry, the information identifying the second interface of the third overlay network node connected to the second host.
4 . The method of claim 1 , wherein the partially populated second entry of the partially populated multicast table further comprises a multicast source identifier of the multicast source, and a multicast group identifier of a multicast group associated with the multicast stream.
5 . The method of claim 1 , wherein the identifying of the first overlay network node comprises:
selecting, by the multicast orchestrator, a subset of overlay network nodes associated with a first multicast group identifier; and
identifying, by the multicast orchestrator from the subset of overlay network nodes, the first overlay network node that is associated with a first local area network identifier, wherein the first local area network identifier is associated with a core site.
6 . The method of claim 5 , wherein the identifying of the second overlay network node comprises:
identifying, by the multicast orchestrator from the subset of overlay network nodes, the second overlay network node that is associated with a second local area network identifier, wherein the second local area network identifier is associated with a customer site.
7 . The method of claim 1 , wherein the computing of the partially populated multicast table comprises:
including, in the populated first interface field, information identifying the first interface of the second overlay network node; and
not including, in the empty second interface field, the information identifying the second interface of the second overlay network node.
8 . The method of claim 7 , wherein the information identifying the first interface comprises information of a tunnel between the second overlay network node and the first overlay network node, and the information identifying the second interface comprises information of a link between the second overlay network node and the host.
9 . A first overlay network node of a software-defined network, comprising:
a processing resource comprising one or more processors; and
a non-transitory machine-readable medium storing instructions executable by the processing resource to:
identify a host seeking to join a multicast stream;
send state information of the first overlay network node to a multicast orchestrator;
receive, at the first overlay network node from the multicast orchestrator, a partially populated multicast table comprising state information of overlay network nodes allowed to forward the multicast stream, wherein the partially populated multicast table comprises:
a first entry identifying respective interfaces of a second overlay network node connected to a multicast source of the multicast stream and the first overlay network node, and
a partially populated second entry for the first overlay network node, the partially populated second entry comprising a populated first interface field containing information of a first interface of the first overlay network node, and an empty second interface field that is without information of a second interface of the first overlay network node, the first interface connected to the second overlay network node, and the second interface connected to the host;
update, at the first overlay network node, the partially populated second entry of the partially populated multicast table to form an updated multicast table by adding, to the empty second interface field, the information of the second interface of the first overlay network node;
forward the multicast stream according to the updated multicast table.
10 . The first overlay network node of claim 9 , wherein the partially populated second entry of the partially populated multicast table further comprises a multicast group identifier for the multicast stream.
11 . The first overlay network node of claim 9 , wherein the partially populated multicast table further comprises a partially populated third entry for a third overlay network node connected between a further host and the second overlay network node, the partially populated third entry comprising a populated first interface field containing information of a first interface of the third overlay network node connected to the second overlay network node, and an empty second interface field that is without information of a second interface of the third overlay network node connected to the further host.
12 . The first overlay network node of claim 9 , wherein the first overlay network node is a branch gateway, and the second overlay network node is a virtual private network concentrator (VPNC).
13 . The first overlay network node of claim 11 , wherein the partially populated third entry in the updated multicast table as updated by the first overlay network node remains unpopulated with the information of the second interface of the third overlay network node after the updating at the first overlay network node.
14 . The first overlay network node of claim 9 , wherein the instructions are executable by the processing resource to:
receive, from the host, a join request including a multicast group identifier associated with the multicast stream; and
determine that the host seeks to join the multicast stream based on the join request.
15 . The first overlay network node of claim 14 , wherein the instructions are executable by the processing resource to:
receive, from the host, a leave request to leave the multicast stream, wherein the leave request includes the multicast group identifier; and
in response to the leave request, remove the information of the second interface from the updated multicast table.
16 . A non-transitory machine-readable medium comprising instructions executable by a processing resource in a system for a software-defined wide area network (SD-WAN) to:
receive, at a multicast orchestrator, state information from overlay network nodes of the SD-WAN;
based on the state information, identify, from the overlay network nodes, a first overlay network node connected to a multicast source of a multicast stream and a second overlay network node connected to a host, wherein the second overlay network node comprises a first interface connected to the first overlay network node and a second interface connected to the host;
based on the identifying, compute a partially populated multicast table representing a multicast tree comprising a path connecting the first overlay network node and the second overlay network node, the partially populated multicast table comprising:
a first entry identifying respective interfaces of the first overlay network node connected to the multicast source and the second overlay network node, and
a partially populated second entry comprising a populated first interface field identifying the first interface connected to the first overlay network node, and an empty second interface field that is without information identifying the second interface connected to the host; and
distribute the partially populated multicast table to the first and second overlay network nodes to allow transmission of the multicast stream to the host; and
update, at the second overlay network node, the partially populated second entry of the partially populated multicast table received at the second overlay network node by adding, to the empty second interface field, the information identifying the second interface connected to the host.
17 . The non-transitory machine-readable medium of claim 16 , wherein the partially populated second entry comprises a multicast source identifier of the multicast source, and a multicast group identifier of a multicast group associated with the multicast stream.
18 . The non-transitory machine-readable medium of claim 16 , wherein the information identifying the first interface comprises information of a tunnel between the first overlay network node and the second overlay network node.
19 . The non-transitory machine-readable medium of claim 16 , wherein the second overlay network node is a branch gateway, and the first overlay network node is a virtual private network concentrator (VPNC).
20 . The non-transitory machine-readable medium of claim 18 , wherein the information identifying the second interface comprises information of a link between the second overlay network node and the host.