Multilateral EtherChannel (MEEC) creation and management
By using control nodes as LISP mapping servers and LACP state machines in the SDA structure, dynamically bundling and synchronizing the links between edge nodes and servers, the problem of limited NIC teaming methods is solved, efficient network performance and redundancy are achieved, and network topology changes are adapted to network topology changes.
Patent Information
- Application Number
- CN202180061069.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-07-16
- Filing Date
- 2021-06-28
- Publication Date
- 2025-08-19
- Estimated Expiration
- 2041-06-28
AI Technical Summary
In the prior art, the NIC teaming method is limited by physical stack or stack virtual network configuration, making it difficult to implement bundled functions in situations that are not expected in the network design stage, and synchronization and load balancing are difficult when the device/link is interrupted.
By using the control node as the LISP mapping server/mapping parser and the LACP state machine, dynamically bundle and synchronize the links between multiple edge nodes and servers, using the LISP and LACP protocols to achieve link aggregation, avoiding physical stacking and stack switching network configurations, and achieving load balancing of edge nodes.
Provides flexible NIC teaming support, improves network performance, ensures redundancy and data transmission effectiveness in the event of link failure, and supports dynamic network topology adjustment and expansion.
Smart Images

Figure CN116158063B_ABST
Abstract
Description
[0001] Related applications
[0002] This application claims priority to U.S. patent application No. 16 / 931,209, filed on July 16, 2020, the entire contents of which are incorporated herein by reference. Technical Field
[0003] The present disclosure generally relates to enabling Multi-Edge EtherChannel (MEEC) for software defined access (SDA) fabrics. More specifically, the present disclosure relates to providing support for teaming or bundling of network interface cards (NICs) of client hosts connected to edge nodes in an SDA fabric by using a control node that functions as a state machine and map server / map resolver (MSMR) device, rather than using a stack or stacked virtual network configuration. Background Art
[0004] Link aggregation (e.g., NIC teaming) involves combining or aggregating multiple network connections into a "bundle." This process may also be referred to as bundling. Bundling improves overall performance capabilities so that all links included in the bundle can be used for the same data processing requests between the end host and the network layer. In addition, bundling provides a degree of redundancy in the event of a failure in any link, device, or NIC within the network. For example, a stack of nodes such as switches can be implemented where the switches are physically stacked and communicatively coupled to each other in a ring topology using multiple cables. Similarly, a virtual stack of nodes can be implemented. Implementations can be used where individual bundles are distributed across different physical devices, allowing bundling operations during single device / link outage scenarios.
[0005] However, in practice, there may not always be stacks or stack-like virtual deployments available to users. Furthermore, even in cases where stacks or stack-like virtual deployments are available but not initially envisioned during the network design phase, it may not be practical to change the current network layout to introduce the functionality of bonding. This can present challenges during the implementation of NIC teaming for new end hosts that require the capabilities provided by bonding. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The following detailed description refers to the accompanying drawings. In the drawings, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears. The use of the same reference number in different drawings indicates similar or identical items. The systems shown in the drawings are not drawn to scale, and the components in the drawings may not be drawn to scale with respect to each other.
[0007] Figure 1 A system architecture diagram illustrating an example networked computing environment for performing bundling, synchronization, and load balancing of multiple edge nodes and control nodes within an SDA, according to an example of the principles described herein.
[0008] Figure 2 A network topology diagram including a Multilateral EtherChannel (MEEC) for an SDA fabric depicting bundling of edge nodes is shown, according to an example of the principles described herein.
[0009] Figure 3 A network topology diagram including a Multilateral EtherChannel (MEEC) for an SDA fabric is shown, depicting synchronization of edge nodes, according to an example of the principles described herein.
[0010] Figure 4 A network topology diagram including a Multilateral EtherChannel (MEEC) for an SDA fabric is shown, illustrating load balancing of network traffic, according to an example of the principles described herein.
[0011] Figure 5 is a component diagram of example components of an example edge node according to the principles described herein.
[0012] Figure 6 is a component diagram of example components of an example control node according to the principles described herein.
[0013] Figure 7 A flow chart is shown of an example method for creating a Multilateral EtherChannel (MEEC), according to an example of the principles described herein.
[0014] Figure 8 A flow chart illustrating an example method for managing MEEC, according to an example of the principles described herein.
[0015] Figure 9 A computing system diagram is shown that illustrates the configuration of a data center that can be used to implement aspects of the technology disclosed herein.
[0016] Figure 10 A computer architecture diagram is shown illustrating an example computer hardware architecture for implementing a computing device that can be used to implement aspects of the various techniques presented herein. DETAILED DESCRIPTION
[0017] Overview
[0018] Various aspects of the invention are set out in the independent claims, with preferred features set out in the dependent claims. Features of one aspect may be applicable to any aspect alone or in combination with other aspects.
[0019] The present disclosure describes technologies for providing a Multilateral EtherChannel (MEEC) solution for a Software Defined Access (SDA) fabric. MEEC, together with the systems and methods described herein, provides flexible and efficient support for network interface card (NIC) teaming of client hosts that can be communicatively coupled to any edge node in an SDA fabric. The systems and methods described herein also eliminate the limitations of multi-rack designs / deployments, such as using physical stacks or stacked virtual network configurations used in NIC teaming, and enable scalable and redundant solutions by leveraging protocols such as the Link Aggregation Control Protocol (LACP) between servers and multiple edge devices and the Locator / Identifier Separation Protocol (LISP) between edge nodes and control nodes.
[0020] Reference is made herein to bundling of links between multiple edge nodes within a MEEC. Bundling may refer to any type of link aggregation and may also be referred to as aggregating, teaming, trunking, bonding, channeling, and similar language. The control node functions as a Locator / ID Separation Protocol (LISP) Mapping Server / Mapping Resolver (MSMR). Additionally, the control node functions as a Link Aggregation Control Protocol (LACP) state machine for synchronization purposes.
[0021] The examples described herein provide for bundling links within an SDA fabric network. The system may include one or more processors, and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations. The operations include: utilizing a control node communicatively coupled to a plurality of edge nodes within the network, receiving a mapping registration message from a first edge node of the plurality of edge nodes via a control plane communication protocol. The mapping registration message includes first data and second data, wherein the first data defines a bundle of a plurality of links communicatively coupling a plurality of edge nodes and a first server via a data plane communication protocol, and the second data identifies a first server to which the plurality of edge nodes included in the bundle are communicatively coupled. The operations also include sending a mapping notification message to the first edge node. The mapping notification message defines a link state of at least the first edge node.
[0022] The operations also include synchronizing, using the control node, a mapping notification message defining multiple link states of multiple edge nodes within the bundle between the first edge node and at least a second edge node among the multiple edge nodes. The operations also include: identifying, using the control node, processing load capabilities of the multiple edge nodes; and balancing the processing load between at least the first edge node and at least the second edge node among the multiple edge nodes based on the processing load capabilities of the multiple edge nodes. The data plane communication protocol includes the Link Aggregation Control Protocol (LACP) or the Port Aggregation Protocol (PAgP). The control plane communication protocol includes the Locator / Identifier Separation Protocol (LISP), the Border Gateway Protocol (BGP), or the Ethernet protocol.
[0023] The operation also includes storing first data and second data of the plurality of edge nodes in a database of the control node, and creating a mapping agent registration message for propagation to the plurality of edge nodes, thereby registering the bundle of the plurality of links and the identification of the first server to the plurality of edge nodes. The operation also includes, using the control node, defining the state of at least the first edge node. The operation also includes, using the control node, receiving a mapping registration message from the first edge node via a control plane communication protocol, the mapping registration message also including a request for providing an indication of a first server, the first server being the destination to which the PDU packet from the second server is destined; sending a mapping reply message, the mapping reply message indicating load balancing data of at least a second edge node and a third edge node among the plurality of edge nodes, the first server being reachable via the second edge node and the third edge node; and sending the PDU packet to the first server via the second edge node or the third edge node based on the load balancing data. The indication of the first server includes an endpoint identifier (EID) of the first server and route locators (RLOCs) of the plurality of edge nodes within the bundle.
[0024] From the perspective of edge nodes, the examples described herein provide for bundling links within an SDA fabric network, synchronizing edge nodes within the network, and performing load balancing to ensure efficient transmission of data within the network. A system includes one or more processors and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations. The operations include: establishing a first communication session with a first server via a data plane communication protocol using a first edge node among a plurality of edge nodes within the network. The first communication session includes at least one protocol data unit (PDU) packet from the first server. The first edge node sends a mapping registration message to a control node communicatively coupled to the plurality of edge nodes via a control plane communication protocol. The mapping registration message includes a request for an indication of a second server to which the PDU packet is to be sent. The first edge node receives a mapping reply message indicating load balancing data for at least a second edge node and a third edge node among the plurality of edge nodes, the second server being reachable via the second edge node and the third edge node; and based on the load balancing data, sending the PDU packet to the second server via the second edge node or the third edge node.
[0025] The mapping registration message also includes first data and second data, wherein the first data defines at least one bundle of multiple links that communicatively couple multiple edge nodes and a second server, and the second data identifies the second server to which the multiple edge nodes included in the bundle are communicatively coupled. The operation also includes, using the first edge node, storing the first data and the second data in a database of the first edge node, and creating a forwarding information base (FIB) table, the FIB table including the first data, the second data, and third data defining a load capacity of at least the first edge node. The operation also includes receiving a mapping notification message from the control node, the mapping notification message defining a link status of at least the first edge node.
[0026] The operations also include receiving, by the first edge node, a mapping agent registration message. The mapping agent registration message includes the network address of the second server. The operations also include storing, by the first edge node, the network address of the second server in a database and a FIB table. The operations also include receiving the mapping agent registration message. The mapping agent registration message includes the status of at least a second edge node from the plurality of edge nodes. The operations also include storing the status of at least the second edge node in the database and the FIB table to synchronize the first edge node with the plurality of edge nodes.
[0027] From the perspective of a control node, the examples described herein provide a method for bundling links within an SDA fabric network, synchronizing edge nodes within the network, and performing load balancing to ensure efficient transmission of data within the network. The method includes: utilizing a control node communicatively coupled to a plurality of edge nodes within the network, receiving a mapping registration message from at least a first edge node among the plurality of edge nodes via a control plane communication protocol. The mapping registration message includes first data and second data, wherein the first data defines at least one bundle of a plurality of links communicatively coupling a plurality of edge nodes and a server, and the second data identifies a server to which the plurality of edge nodes included in the bundle are communicatively coupled. The method also includes sending a mapping agent registration message defining the states of a plurality of links of the plurality of edge nodes within the bundle to at least a second edge node, so as to synchronize the first edge node with respect to at least a second edge node among the plurality of edge nodes.
[0028] The method further includes registering first data and second data of the plurality of edge nodes in a database of the control node, and sending a mapping notification message to the first edge node, the mapping notification message defining a first link state of at least the first edge node. The method further includes identifying processing load capabilities of the plurality of edge nodes, and balancing processing loads between at least the first edge node and at least the second edge node of the plurality of edge nodes based on the processing load capabilities of the plurality of edge nodes.
[0029] The method also includes defining an ingress edge node among a plurality of edge nodes to receive data packets directed to the server, and receiving a mapping request from the ingress edge node to determine an endpoint identifier (EID) of the server and a route locator (RLOC) of a plurality of edge nodes within the bundle. The method also includes sending a mapping response message to the ingress edge node. The mapping response message includes third data, fourth data, and fifth data, wherein the third data defines the EID of the server, the fourth data defines the RLOCs of the plurality of edge nodes within the bundle, and the fifth data defines the processing load capacity of the plurality of edge nodes. The method also includes: receiving a routing indication for at least a second edge node among the plurality of edge nodes from the ingress edge node, based on the fifth data, the load-balanced traffic will be directed through the second edge node; and directing the data packet to the server based on the routing indication.
[0030] Therefore, the systems and methods described herein provide node devices that do not need to be physically stacked with associated stacking device wiring. This avoids stack-switched network configurations in which the node devices must additionally perform control plane processing for synchronization purposes. In addition, the systems and methods described herein use a "dedicated" protocol for LACP convergence to avoid LACP convergence between edge nodes to ensure that the edge nodes acting as state machines are synchronized. This processing is instead pushed to the control node 112, causing the control node 112 to function as a LISP map server / map resolver (MSMR) device as well as a LACP state machine.
[0031] Furthermore, the techniques described in this disclosure may be performed as a method and / or by a system having a non-transitory computer-readable medium storing computer-executable instructions that, when executed by one or more processors, perform the techniques described above.
[0032] Example Embodiments
[0033] As described above, bundling improves the overall performance capabilities within the SDA structure so that all links included in the bundle can be used for the same data processing requests between the end host and the network layer. In addition, bundling provides a degree of redundancy in the event of a failure in any link, device or NIC within the network. For example, a stack of nodes such as switches can be implemented, where the switches are physically stacked and communicatively coupled to each other in a ring topology using multiple cables. Similarly, a virtual stack of nodes can be implemented. These implementations can be used where individual bundles are distributed across different physical devices, allowing bundling operations to be performed during a single device / link outage scenario. If a device / link outage occurs, the ability to maintain the number of bundled links in the MEEC may prove difficult, and synchronization and load balancing between edge nodes may be compromised. Therefore, a control node that acts as a LISP mapping server / mapping resolver (MSMR) device and LACP state machine allows control plane operations to be released from the edge nodes and placed on the control node.
[0034] Thus, this disclosure describes techniques for creating and managing MEECs using a control node communicatively coupled to multiple edge nodes within an SDA fabric. The control node is capable of bundling links between edge nodes and computing resources, such as servers, and maintaining and managing the bundles, including adding or removing edge nodes from the bundles. Furthermore, the control node synchronizes state with the edge nodes. Furthermore, the control node performs load balancing of network traffic between nodes to efficiently transmit data packets within the network.
[0035] As used herein, the term "computing resource" may include one or more of the following: a computer, a server computer, a virtual machine, a virtual server, a router, a switch (e.g., a top of rack switch), a gateway, a communication node, a backend node, a load balancer, etc. Furthermore, a computing resource may include one or more computing resources.
[0036] The techniques described herein are generally applicable to any type of computing device or communication node in a networked computing environment. In addition, these techniques are equally applicable to any type of communication protocol and packet structure.
[0037] Certain implementations and embodiments of the present disclosure will now be described more fully below with reference to the accompanying drawings, in which various aspects are shown. However, various aspects may be implemented in many different forms and should not be construed as limited to the implementations set forth herein. The present disclosure includes variations of the embodiments described herein. Like reference numerals represent like elements throughout.
[0038] Figure 1 A system architecture diagram 100 illustrates an example networked computing environment 102 for performing bundling, synchronization, and load balancing of multiple edge nodes 110 and control nodes 112 within an SDA, according to an example of the principles described herein. The networked computing environment 102 may include devices housed or located in one or more data centers 104, which may be located in different physical locations. For example, the networked computing environment 102 may be supported by a network of devices within a public cloud computing platform, a private / enterprise computing platform, and / or any combination thereof. The one or more data centers 104 may be physical facilities or buildings located in a geographic area designated to store the networked devices that are part of the networked computing environment 102. The data centers 104 may include various networked devices, as well as redundant or backup components and infrastructure for power, data communication connections, environmental controls, and various security devices. In some examples, the data centers 104 may include one or more virtual data centers, which are pools or collections of cloud infrastructure resources specifically designed for the needs of enterprises and / or cloud-based service providers. Generally, the data centers 104 (physical and / or virtual) may provide basic resources such as processors (CPUs), memory (RAM), storage (disks), and networking (bandwidth). However, in some examples, the devices in the networked computing environment 102 may not be located in a well-defined data center 104, but may be located in other locations or buildings.
[0039] The client device 106 can access the networked computing environment 102 through one or more networks 108 (e.g., the Internet). The networked computing environment 102 and the network 108 can each include one or more networks implemented by any feasible communication technology, such as wired and / or wireless modalities and / or technologies. The networked computing environment 102 and the network 108 can include any combination of the following: a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), an extranet, an intranet, the Internet, a short-range wireless communication network (e.g., zigbee, Bluetooth, etc.), a wide area network (WAN) (both centralized and / or distributed), and / or any combination, arrangement, and / or aggregation thereof. The networked computing environment 102 can include devices, virtual resources, or other nodes that relay data packets from one network segment to another network segment through nodes in the computer network.
[0040] In some examples, networked computing environment 102 may provide, host, or otherwise support one or more application services that are connected to and used by client devices 106. Client devices 106 may include any type of device configured to communicate using various communication protocols (e.g., VPN, SSL, TLS, DTLS, and / or any other protocol) over network 108. For example, client devices 106 may include personal user devices (e.g., desktop computers, laptops, phones, tablets, wearable devices, entertainment devices such as televisions, etc.), network devices (e.g., servers, routers, switches, access points, etc.), and / or any other type of computing device.
[0041] In some examples, the networked computing environment 102 may include a plurality of edge nodes 110-1, 110-2, 110-n, where n is any integer greater than or equal to 1 (collectively referred to herein as (one or more) edge nodes 110, unless otherwise explicitly stated). An edge node may include any device that provides an entry point to the networked computing environment 102 or another enterprise, structure, service provider network and / or computing resources, including other types of edge nodes such as routers, switches, and access points. As used herein and in the appended claims, the term "computing resource" may include one or more of the following: a computer, a server computer, a virtual machine, a virtual server, a router, a switch (e.g., a top of rack switch), a gateway, a communication node, a back-end node, and a load balancer. In addition, a computing resource may include one or more computing resources. In one example, an edge node 110 may provide an entry point into the networked computing environment 102, including at least one of computing resources 114-1, 114-2, 114-n, where n is any integer greater than or equal to 1 (collectively referred to herein as (one or more) computing resources 114, unless otherwise explicitly stated). The edge nodes 110 described herein may include, for example, switches, routers, gateways, communication nodes, etc. The edge nodes 110 may be used to identify and authenticate endpoints within the networked computing environment 102, register data defining identification (ID) data of the endpoints, and / or send the ID data of the endpoints to the control node 112, act as a gateway (e.g., a layer 3 gateway) for the endpoints, perform encapsulation and / or decapsulation of data traffic to and from the endpoints, and other functions described herein.
[0042] Edge nodes 110 are communicatively coupled to computing resources 114 using the Multi-Edge EtherChannel (MEEC) network topology and functionality described herein. Control nodes 112, communicatively coupled to edge nodes 110, control bonding, synchronization, and load balancing of edge nodes 110 relative to computing resources 114, among other functions.
[0043] The control nodes 112, edge nodes 110, and computing resources 114 enable the networked computing environment 102, and the SDA fabric formed by the MEEC solution described herein provides fault-tolerant, redundant links between edge nodes 110, as well as high-speed links between client devices 106, edge nodes 110, and computing resources 114 (e.g., servers). Furthermore, the networked computing environment 102 described herein provides support for network interface card (NIC) teaming of client devices 106 acting as end hosts. The networked computing environment 102 is also scalable because, as described herein, any number of edge nodes 110 can be added to or removed from the networked computing environment 102.
[0044] Figure 2 A network topology diagram 200 is shown including a Multilateral Ether Channel (MEEC) 202 for an SDA fabric, according to an example of the principles described herein. Figure 2 The process of bundling and maintaining multiple edge nodes 110 by the bundling state machine is also described. Figure 2 As shown, a plurality of edge nodes 110 are communicatively coupled to Figure 2 14. The control node 112 is shown as a computing resource 114 serving as a server. In addition, the control node 112 is communicatively coupled to the edge node 110. The edge node 110 and the connection between the edge node 110 and the server 114 may be included in layer 2 (L2) 206 (e.g., the data link layer) of the Open Systems Interconnection (OSI) model defined by the International Organization for Standardization (ISO). Therefore, the communication between the edge node 110 and the server 114 is based on the data link layer host router protocol. In this way, L2 206 is responsible for ensuring that the data transmission between the edge node 110 and / or the server 114 is error-free when transmitting data packets at the physical layer. In addition, the edge node 110 and / or the server 114 are tasked with managing the sequential transmission of data frames, sending and expecting acknowledgments for frames received and sent, respectively, retransmitting non-acknowledged received frames, establishing a logical layer between the two nodes, and also managing frame flow control on the network.
[0045] From the perspective of the server 114, any L2 206 protocol can be used to form a logical bundle. For example, the Link Aggregation Control Protocol (LACP), the Port Aggregation Protocol (PAgP), or another protocol can be used to logically aggregate Ethernet switch ports between the edge nodes 110. With respect to LACP, within the IEEE specifications (e.g., 802.3ad or 802.1ax), LACP provides a method for controlling the bundling of several physical ports together to form a single logical channel. LACP allows network devices to negotiate automatic bundling of links by sending LACP packets to a peer device (e.g., the edge node 110) or another directly connected device (e.g., the server 114) that also implements LACP. PAgP is a network protocol for automated logical aggregation of Ethernet switch ports (e.g., Ethernet channels). PAgP can be configured on a switch, such as the edge node 110, to operate in an "auto" mode that uses passive negotiation of channels, a "desired" mode that uses active negotiation of channels, and an "on" mode that does not use the protocol and assumes that other devices, such as the server 114, have enabled link aggregation. Regardless of the L2 206 protocol implemented, from the perspective of the server 114, that protocol is used to form a logical bundle.
[0046] The control node 112 and the connection between the control node 112 and the edge node 110 may be included in layer 3 (L3) 204 (e.g., the network layer) of the OSI model. Therefore, the communication between the edge node 110 and the control node 112 at L3 204 is based on the network layer host router protocol. In this way, the control node 112 routes signals and acts as a network controller to determine which route the data should take when it is transmitted through the networked computing environment 102. Any L3 204 protocol can be used to map and encapsulate the communication between the edge node 110 and the control node 112 within the SDA structure formed by the edge node 110, the control node 112, and the server 114.
[0047] In one example, the Locator / Identifier Separation Protocol (LISP) can be used as the L3 204 protocol. LISP is a "mapping and encapsulation" protocol in which the idea of separation is that the Internet architecture combines the two functions of routing locators (where the client is attached to the network) and identifiers (who the client is) in one digital space; that is, IP addresses. LISP supports the separation of IPv4 and IPv6 address spaces following a network-based mapping and encapsulation scheme. In LISP, both the identifier and the locator can be an IP address, or any arbitrary element such as a set of GPS coordinates or a MAC address. Therefore, the LISP implementation uses two name spaces instead of a single IP address: endpoint identifiers (EIDs) assigned to end hosts such as control nodes 112, and route locators (RLOCs) assigned to devices such as edge nodes 110 that constitute the global routing system. LISP is an address family agnostic solution used in the SDA architecture and acts as the "glue" between control nodes 112 and edge nodes 110. In addition, LISP provides a communication channel between control nodes 112 and edge nodes 110 to synchronize the LACP states on all independent SDA edge nodes. In this manner, control node 112 functions as a LISP map server / map resolver (MSMR) device as well as a LACP state machine.The precise format of the LISP address family may take any form suitable for an implementation of the present systems and methods.
[0048] In one example, Border Gateway Protocol (BGP) can be used as the L3 204 protocol. BGP is a standardized exterior gateway protocol designed to exchange routing and reachability information between autonomous systems. BGP is classified as a path vector routing protocol and makes routing decisions based on paths, network policies, or rule sets configured by a network administrator. In one example, an Ethernet protocol can be used as the L3 204 protocol.
[0049] The use of LACP at L2 206 and LISP at L3 204 eliminates the need for physical connections between standalone and dependent devices in the form of horizontal and / or vertical stacking, virtual port channels (vPCs), stacking cable equipment and cabling, and similar physical connections. Furthermore, the use of the present network topology and bundling methods described herein can be implemented during the design and / or implementation phases of the network to dynamically bundle additional edge nodes 110 together.
[0050] like Figure 2 As shown, at 1, a server 114 and an edge node 110 can exchange multiple protocol data units (PDUs). A PDU, which is a single unit of information transmitted between peer entities (e.g., a server 114 and an edge node 110) in a computer network, consists of protocol-specific control information and user data. At 2, the edge node 110 includes LACP packet processing logic for registering system and link attributes with the SDA control node 112 via LISP. In this way, the edge node 110 is responsible for sending and receiving data packets with respect to the server 114. In one example, the server 114 may include multiple links to various edge nodes 110, and in some cases may have fewer than all active links, or may include priorities for data packets transmitted to the edge node 110. As described herein, control plane processing is pushed to the control node 112, and the edge node 110 is tasked with data plane processing of data packets.
[0051] At step 3, edge node 110 prepares and sends a LISP Map Register message to control node 112. The LISP Map Register message includes system and link attributes for each edge node 110 and associated links. A Map Register message is a LISP message sent by an egress tunnel router (ETR) (e.g., one or more edge nodes 110) to a mapping server (e.g., control node 112) to register its associated endpoint identifier (EID) prefixes. In addition to the set of EID prefixes to be registered, the message also includes one or more route locators (RLOCs) used by the mapping server when forwarding mapping requests received through the database mapping system (reformatted into encapsulated mapping requests). The ETR can request that the mapping server respond to mapping requests on its behalf by setting the "proxy mapping reply" flag (P bit) in the message. Therefore, when an LACP PDU is received from server 114 at each edge node 110, information about the actor (i.e., server settings: system identifier (sys-id), priority, and other information) is passed to the LISP, which registers the new link with control node 112 via the LISP Map Register message. In one example, the information included in the mapping registration message may include system attributes such as system priority and sys-id, link attributes such as port key, priority, port number, and LACP status, and other types of information.
[0052] At 4, when the control node 112 receives a LISP mapping registration message from the edge node 110. The control node 112 registers the system and link attributes defined in the received LISP mapping registration message into the LISP database included in the memory device of the control node 112. The details of a given bundle including independent links received from the structure of the edge node 110 can be uniquely divided into different bundles based on the system ID of the server 114. In addition, the LISP mapping registration message can be passed to the processing device of the control node 112 including LACP state machine processing logic to determine whether the given link should be placed in one of multiple states. These states can include, for example, a bundle state, a hot standby state, an active state, an inactive state, and other states. In this way, the control node 112 acts as an LACP state machine.
[0053] A LISP Map Notify message can be prepared at the control node 112 and sent at 5 to at least one edge node 110 to inform the edge node 110 of the link status from the LACP perspective determined at 4. A Map Notify message is a LISP message sent by a mapping server (e.g., the control node 112) to an ETR (e.g., one or more edge nodes 110) to confirm that a map registration has been received and processed. The ETR requests a return Map Notify message by setting the "Want Map Notify" flag (M bit) in the Map Register message. Unlike Map Reply messages, Map Notify messages use UDP port 4342 for both the source and destination. After processing by the LACP state machine at the control node 112, the results are passed to the LISP device of the control node 112 to send this information back to all relevant independent SDA edge nodes 110. This in turn triggers an interface state change and / or the generation of appropriate LACP PDU frames to be directed to the server 114.
[0054] At 6, the server 114 consumes the received LACP PDU packet received from the independent edge node 110. At this point, the server 114 is unaware that a particular link may be connected to different edge nodes because all edge nodes 110 are characterized by the same system attributes and link attributes, and the port values of the edge nodes 110 are adjusted accordingly to ensure unique identification between the edge nodes 110. LACP control plane signaling (e.g., via a data plane communication protocol) occurs at 1 and 6, as indicated by solid arrows, while LISP control plane signaling (e.g., via a control plane communication protocol) occurs at 3 and 5, as indicated by dashed arrows.
[0055] Other functions supported by the LACP protocol, such as link up / down events, and adding and / or removing links from a bundle, and other events can be handled according to the logic presented herein, which allows the LISP protocol to act as a transport protocol between the LACP packet processing logic present on the edge nodes and the LACP state machine logic present on the control node 112. Figure 2The process described in
[15] provides for the proper establishment of MEECs 202 between multiple edge nodes 110 and servers 114 in a dynamic manner via execution of functionality by the control node 112. By ensuring that the LACP packet processing logic responsible for receiving and sending LACP PDUs remains on the SDA edge node 110, and removing the LACP state machine logic responsible for determining any changes to the LACP state machine and link bundling and / or unbundling to the SDA control node 112, LACP functionality and logic are decoupled from the edge node 110. In this manner, control processing is removed from the edge node 110 and handled by the control node 112. The central decision point for LACP protocol processing is moved to the control node 112 to provide support for all local LACP logic. The LACP logic may include, for example, a LACP maximum bundling functionality to set a limit on the maximum number of active links connected to an individual edge node 110 at any given time. The LACP logic may also include a LACP port priority functionality to prioritize the links in a bundle connected to each individual edge node 110 from the most preferred link to the least preferred link.
[0056] The control node 112 can be physically, communicatively, and / or logically located anywhere relative to the edge node 110 and the server 114. For example, the control node 112 can be located in a cloud networking infrastructure, wherein the processing capabilities of the control node 112 described herein are provided via an intranet, the Internet, or other network connection. In examples where the control node 112 is cloud-based, a layer 3 control protocol can be utilized. Furthermore, in one example, the functionality of the control node 112 can be provided locally on a computing device, wherein the control node 112 is physically connected to a networked computing environment such as an Ethernet protocol or a layer 2 communication protocol. Furthermore, the functionality of the control node 112 can be provided as software as a service (SaaS) or any centrally hosted network-based software.
[0057] According to the above combination Figure 2 Any number of edge nodes 110 can be added to the networked computing environment 102. Figure 2 By following the process described above, the edge node 110 can be identified as included in a bundle of the MEEC 202. Thus, newly added edge nodes 110 as well as legacy edge nodes 110 can be bundled within the MEEC 202. Furthermore, in one example, the edge node 110 can be included in multiple different MEECs 202, and the edge node 110 can be controlled via different system identification values, such as a MAC address in a LISP database of the control node 112. Thus, any number of bundles including any number of edge nodes 110 can be identified by a single server 114 and controlled via the control node 112.
[0058] Figure 3 A network topology diagram 300 is shown including a Multi-Edge Ether Channel (MEEC) 202 for an SDA fabric, according to an example of the principles described herein. Figure 3 Also described is a process for synchronizing system data between edge nodes 110. When a MEEC 202 is established between a server 114 and a plurality of edge nodes 110, the server 114 may send data plane packets. The data plane packets may include: Address Resolution Protocol (ARP) packets sent by the edge node 110 to obtain information about a default gateway (e.g., in an Internet Protocol (IP) address); and Dynamic Host Configuration Protocol (DHCP) packets to obtain an IP address from a DHCP server; and other types of packets and messages. The server 114 may load balance packets according to the logic of the server 114 and send a packet to one of the edge nodes 110 over one of the links between the server 114 and the edge node 110 in the SDA structure. Thus, in Figure 3 At point 7 indicated by the solid arrow, the first data plane packet may be sent to the edge node 110 - 1 as data plane traffic.
[0059] At 8, when one of the edge nodes 110 (e.g., edge node 110-1) receives a packet from server 114, edge node 110-1 may process the packet through a LISP process according to the default SDA structure logic executed by edge node 110-1. Edge node 110-1 (and other edge nodes 110) may include a LISP database contained in a memory device of edge node 110-1. The source MAC address of the frame may be registered at edge node 110-1 and added to the local LISP database of edge node 110-1. In one example, the MAC address of server 114 may also be stored in a Layer 2 forwarding information base (L2FIB). The L2FIB is used in network routing and similar functions to find the appropriate output network interface to which an input interface should forward a packet. The L2FIB may be a dynamically updated table that maps MAC addresses to ports, such as mapping the MAC address of server 114 to a port of edge node 110-1.
[0060] At 9, edge node 110-1 may send a LISP mapping registration message to SDA control node 112. Edge node 110-1 does this using LISP control plane signaling as shown by the dashed arrow. The usage details and message format of the mapping registration message may be defined by the RFC6833 Internet Society (ISOC) standard. Additionally, at 12 (as described in more detail below), the server MAC address is registered in the LISP database and in each edge node 110 within the bundle (including the server MAC address). Figure 3In the L2FIB of the edge nodes 110-2 and 110-n shown.
[0061] At 10, the control node 112 receives a LISP mapping registration message for a given MAC address belonging to a bundle (e.g., the MAC address of the server 114). The control node 112 adds the MAC address to the LISP database included in the memory device of the control node 112. Figure 2 When dynamically forming the networked computing environment 102, a list of all edge nodes 110 belonging to a given bundle is known to the control node 112. In one example, the RLOCs of the edge nodes 110 are also stored in the LISP database. Furthermore, in one example, weights associated with load balancing can be assigned by the control node 112 to the links between the edge nodes 110 and the servers 114 to specify the data transmission capabilities of the edge nodes 110.
[0062] In order to synchronize the edge nodes 110 within the bundle with each other, each edge node 110 may include a LISP database in a memory device of each edge node 110. The LISP database of each edge node 110 may store the MAC address of the server 114. Therefore, at 11, the control node 112 may also create and send a LISP mapping agent registration message, such as Figure 3 As shown. A mapping proxy registration message is a message used in the SDA solution for fabric wireless to register a radio MAC address from a wireless local area network (LAN) controller (WLC) on an edge node. The LISP mapping proxy registration message is sent to at least one of the other SDA edge nodes 110 (e.g., edge nodes 110-2, 110-N) that have active links included in the bundle. At 12, this allows at least one other SDA edge node 110 to also register the source MAC address of the server 114. As a result, all independent edge nodes 110 (e.g., that are Multilateral EtherChannel (MEEC) enabled) in the same bundle can be fully synchronized from a MAC programming perspective and a packet forwarding perspective.
[0063] Figure 4 A network topology diagram 400 is shown including a Multi-Edge Ether Channel (MEEC) 202 for an SDA fabric, according to an example of the principles described herein. Figure 4 Also depicted is a process of load balancing network traffic within the networked computing environment 102. As used herein, load balancing refers to the process of distributing data packet transmissions across a set of resources, such as edge nodes 110, with the goal of making their overall data packet transmission processing more efficient, optimizing the response time of each data packet transmission, and avoiding unevenly overloading one or more edge nodes 110 while leaving other edge nodes 110 idle.
[0064] like Figure 4 As shown, the second server 404 attempts to communicate with the first server 114 to which the edge node 110 is communicatively coupled. Figure 4 In the example, due to the way the control node 112 operates as a LISP map server / map resolver (MSMR) device and the LACP state machine, the nodes are synchronized, as shown above in conjunction with Figure 3 The process is described.
[0065] At 13, the data packet can be sent from the second server 404 to the edge node 110 designated by the control node 112 as the entry edge node 402 within the networked computing environment 102. To do so, the entry edge node 402 tunnels the data packet to the server 114 via the control node 112 and the other edge nodes 110. An overlay network such as SDA can be used to send the data packet. However, any overlay network can be used, including, for example, Generic Routing Encapsulation (GRE), Multiprotocol Label Switching (MPLS), or Virtual Extensible LAN (VXLAN). GRE is a tunneling protocol that encapsulates multiple network layer protocols within a virtual point-to-point link or point-to-multipoint link on an Internet Protocol network. MPLS is a routing technology that directs data from one node to the next based on short path labels rather than long network addresses, thereby avoiding complex lookups in routing tables and accelerating traffic flows. VXLAN is a network virtualization technology that uses VLAN-like encapsulation technology to encapsulate OSI Layer 2 Ethernet frames within Layer 4 User Datagram Protocol (UDP) datagrams.
[0066] At step 14, ingress edge node 402 creates and sends a LISP Mapping Request message to determine the mapping of server 114 (EID) to edge node 110 (RLOC). Based on data stored in the LISP database of control node 112, at step 15, the control node responds with a LISP Mapping Reply message that includes an EID / RLOC mapping, where each RLOC (e.g., RLOC1 and RLOC2) corresponds to edge node 110 configured with MEEC 202. Furthermore, the LISP Mapping Reply message may also include a load balancing weight for each link between edge node 110 and server 114. For example, edge node 110-1 (designated RLOC1) may be assigned a weight of 20, while edge node 110-2 (designated RLOC2) may be given a weight of 10. Consequently, network traffic passing through edge node 110-1 may be load balanced twice as much as that passing through edge node 110-2. Control node 112 may not distribute network traffic load to edge node 110-n because edge node 110-N may be inactive or placed in some other state where network traffic is not directed through edge node 110-N. Note here that multiple EID / RLOC mappings are sent at 15, rather than a single mapping as would be expected in an SDA configuration with a single connected end host.
[0067] At 16, ingress edge node 402 may send the data packet to one or more RLOCs identified by control node 112 in a load-balanced manner. For example, ingress edge node 402 may send the data packet via RLOC1 and RLOC2 in a load-balanced manner. Thus, as a result, ingress edge node 402 may have multiple exit points towards egress edge nodes (e.g., edge node 110-1 and / or edge node 110-2) and may select which egress edge node(s) the data packet should be sent to. In one example, ingress edge node 402 may make such a decision based on any algorithm, such as packet hashing. Figure 4 In the example of FIG17 , ingress edge node 402 may send data packets via edge node 110-1 and edge node 110-2 such that double the network traffic will be sent to edge node 110-1 relative to the network traffic sent to edge node 110-2 because edge node 110-1 includes two links between edge node 110-1 and server 114, while one link is included between edge node 110-2 and server 114. Because control node 112 functions as a LISP map server / map resolver (MSMR) device as well as an LACP state machine, control node 112 may dynamically adjust the weight assigned to each link to allow network traffic to move through networked computing environment 102 most efficiently.
[0068] In one example, edge node 110 may also participate in making load balancing decisions. In this example, edge node 110-1, selected as the egress edge node by ingress edge node 402, may load balance network traffic across multiple port channels based on the L2FIB stored on edge node 110-1. Edge node 110-1 may apply an L2FIB load balancing method to achieve load balancing.
[0069] In some cases, one or more of the edge nodes 110 may fail, causing other edge nodes 110 within the networked computing environment 102 to perform data packet processing. Figure 4 In the example of FIG. 1 , if edge node 110-2 fails, control node 112 can dynamically adjust the transmission of traffic within the network so that, for example, edge node 110-1 handles more of the data transmission process. This ability to dynamically adjust the way data packets are transmitted through networked computing environment 102 provides redundancy to networked computing environment 102, resulting in a more efficient data packet transmission rate. Control node 112 can share data related to the ability of edge nodes 110 to transmit data, including their load balancing weights and current status, with external devices such as ingress edge node 402 to ensure that the most efficient communication path is selected.
[0070] Based on the combination Figures 2 to 4 In the network configuration and process described above, edge nodes 110 are removed from primary data processing functions, including control plane processing, and these functions are pushed to control node 112. In this way, physical or other communication connections between edge nodes 110 can be eliminated. In addition, edge nodes 110 are left to perform data plane processing of packets. Control node 112 performs and manages control plane processing, including, for example, bundling and synchronization of edge nodes 110, and load balancing of network traffic, as well as other control plane processing, and controls node 112 functions as an LACP state machine and LISP map server / map resolver (MSMR) device.
[0071] In one example, the control node 112 can control any number of bundles within the networked computing environment 102. Furthermore, in one example, any number of control nodes 112 can be included within the networked computing environment 102 to control individual bundles of edge nodes 110.
[0072] Figure 5Component diagram 500 of example components of an example edge node 110 according to the principles described herein. As shown, the edge node 110 may include one or more hardware processors 502 (processors), one or more devices, configured to execute one or more stored instructions. The processor(s) 502 may include one or more cores. In addition, the edge node 110 may include one or more network interfaces 504 configured to provide communication between the edge node 110 and other devices, such as a server 114, a control node 112, and / or other systems or devices associated with and / or remote from the edge node 110. The network interfaces 504 may include devices configured to couple to personal area networks (PANs), wired and wireless local area networks (LANs), wired and wireless wide area networks (WANs), and the like. For example, the network interfaces 504 may include devices compatible with Ethernet, Wi-Fi, and the like.
[0073] The edge node 110 may also include a computer-readable medium 506 that stores various executable components (eg, software-based components, firmware-based components, etc.). Figures 1 to 4 In addition to the various components discussed above, the computer-readable medium 506 may also store components for implementing the functionality described herein. Although not shown, the computer-readable medium 506 may store one or more operating systems for controlling the operation of one or more devices including the edge node 110. According to one embodiment, the operating system includes a LINUX operating system. According to another embodiment, the operating system(s) include a WINDOWS SERVER operating system from Microsoft Corporation of Redmond, Washington. According to another embodiment, the operating system(s) may include a UNIX operating system or one of its variants. It should be understood that other operating systems may also be used.
[0074] In addition, the edge node 110 may include a data storage device 508, which may include one or more repositories or other storage locations for persistently storing and managing a collection of data, such as a database, simple files, binary, and / or any other data. The data storage device 508 may include one or more storage locations that can be managed by one or more database management systems.
[0075] The computer-readable medium 506 may store portions or components of the MEEC service 510 described herein. For example, the MEEC service 510 of the computer-readable medium 506 may store data plane packet processing logic 512 to register system identification (sys_id) data, such as MAC addresses and RLOCs, for any number of devices within the networked computing environment 102 when executed by the processor(s) 502. The data plane packet processing logic 512 enables the edge node 110 to receive and process data packets (e.g., LACP PDUs) on the data plane and processes the data packets for control plane packet processing with the control node 112. The data plane packet processing logic 512 may include a registration component 514. When executed by the processor(s) 502, the registration component 514 may store PDU data packets, data defining at least one bundle of multiple links communicatively coupling the plurality of edge nodes 110 and the server 114, data identifying the server 114 (e.g., SysID (sys_id), MAC address, etc.), EID, RLOC, and other data. This data may be stored in a data plane database 516 (eg, a LACP database) and / or an L2FIB 518, as described herein.
[0076] The computer-readable medium 506 may also include a state component 520 for, when executed by the processor(s) 502, placing the edge node 110 as defined by the server 114 and / or the control node 112. These states may include, for example, a bonded state, a hot standby state, an active state, an inactive state, and other states. The state component 520 may be executed when the edge node 110 receives a LISP map notification message from the control node 112, wherein the control node 112, acting as an LACP state machine, assigns the state to the edge node 110. Although depicted as part of the computer-readable medium 506, the state component 520 may be part of the MEEC service 510.
[0077] The computer-readable medium 506 may also include a synchronization component 522 to, when executed by the processor(s) 502, receive a LISP map registration message and / or a mapping proxy registration message from the control node 112, the LISP map registration message and / or the mapping proxy registration message defining data for registering a MAC address (or other Sys ID) in, for example, the data plane database 516 and / or the L2FIB 518. When executed by the processor(s) 502, the synchronization component 522 may also register the data provided in the LISP map registration message and / or the mapping proxy registration message. Furthermore, while depicted as part of the computer-readable medium 506, the synchronization component 522 may be part of the MEEC service 510.
[0078] The computer-readable medium 506 may also include a load balancing component 524 to, when executed by the processor(s) 502, distribute data packet transmissions across a set of resources, such as edge nodes 110, with the goal of making their overall data packet transmission processing more efficient, optimizing the response time of each data packet transmission, and avoiding unevenly overloading one or more edge nodes 110 while other edge nodes 110 are idle. In one example, the control node 112 may perform load balancing with respect to the edge nodes 110. However, in one example, the edge nodes 110 may also load balance data packet transmission processing across multiple links from the edge node 110 to the servers 114. Furthermore, while depicted as part of the computer-readable medium 506, the load balancing component 524 may be part of the MEEC service 510.
[0079] Figure 6 Component diagram 600 of example components of an example control node according to the principles described herein. As shown, the control node 112 may include one or more hardware processors 602 (processors), one or more devices, configured to execute one or more stored instructions. The processor(s) 602 may include one or more cores. In addition, the control node 112 may include one or more network interfaces 604 configured to provide communication between the control node 112 and other devices, such as servers 114, edge nodes 110, and / or other systems or devices associated with and / or remote from the control node 112. The network interfaces 604 may include devices configured to couple to personal area networks (PANs), wired and wireless local area networks (LANs), wired and wireless wide area networks (WANs), and the like. For example, the network interfaces 604 may include devices compatible with Ethernet, Wi-Fi, and the like.
[0080] The control node 112 may also include a computer-readable medium 606 that stores various executable components (eg, software-based components, firmware-based components, etc.). Figures 1 to 4 In addition to the various components discussed in the computer readable storage medium 606, the computer readable storage medium 606 may also store components for implementing the functions described herein. Although not shown, the computer readable storage medium 606 may store one or more operating systems for controlling the operation of one or more devices including the control node 112. According to one embodiment, the operating system includes a LINUX operating system. According to another embodiment, (one or more) operating systems include a WINDOWS SERVER operating system from Microsoft Corporation in Redmond, Washington. According to another embodiment, (one or more) operating systems may include a UNIX operating system or one of its variants. It should be understood that other operating systems may also be used.
[0081] In addition, the control node 112 may include a data storage device 608, which may include one or more repositories or other storage locations for persistently storing and managing a collection of data, such as a database, simple files, binary, and / or any other data. The data storage device 608 may include one or more storage locations that may be managed by one or more database management systems.
[0082] The computer-readable medium 606 may store portions or components of the MEEC service 610 described herein. For example, the MEEC service 610 of the computer-readable medium 606 may store control plane packet processing logic 612 to, when executed by the processor(s) 602, perform the functions of the control node 112 as a LISP map server / map resolver (MSMR) device and an LACP state machine. For example, when executed by the processor(s) 602, the control plane packet processing logic 612 may cause the control node 112 to receive a map registration message (e.g., a LISP map registration message) from the edge node 110. The map registration message may include data such as system identification (sys_id) data, such as a MAC address of any number of devices within the networked computing environment 102, as well as an EID and / or RLOC.
[0083] In addition, the control plane packet processing logic 612 enables the control node 112 to receive and process data packets (e.g., LISP messages) on the control plane, and processes the data packets for control plane packet processing with respect to the control node 112 and data plane packet processing with respect to the edge node 110. The control plane packet processing logic 612 may include a registration component 614. When executed by the processor(s) 602, the registration component 614 may register and store data defined within a mapping registration message (e.g., a LISP message) sent from the edge node 110. The data defined within the LISP message may include, for example, system and link attributes of the edge node 110 and server 114 as described herein, including system identification (sys_id) data, such as MAC addresses of any number of devices within the networked computing environment 102 as described above, and EIDs and / or RLOCs. Furthermore, when executed by the processor(s) 602 , the registration component 614 stores the system and link characteristics of the edge node 110 and server 114 received within the mapping registration message within a control plane database 616 (e.g., a LISP database) of the data storage device 608 of the control node 112 .
[0084] The computer-readable medium 606 may also include a state component 620 that, when executed by the processor(s) 602, in conjunction with (in some examples) the server 114, defines a plurality of states for the edge node 110. These states may include, for example, a bonded state, a hot standby state, an active state, an inactive state, and other states. The state component 620 may be executed when the control node 112 prepares and sends a LISP map notification message to the edge node 110. In this manner, the control node 112 acts as an LACP state machine by assigning states to the edge node 110. Although depicted as part of the computer-readable medium 606, the state component 620 may be part of the MEEC service 610.
[0085] The computer-readable medium 606 may also include a synchronization component 622 to, when executed by the processor(s) 602, send at least one LISP mapping registration message and / or mapping proxy registration message from the control node 112 to the edge node 110 within the bundle, the LISP mapping registration message and / or mapping proxy registration message defining data for registering a MAC address (or other Sys ID) in, for example, the data plane database 516 and / or L2FIB 518 of the edge node 110. When executed by the processor(s) 602, the synchronization component 622 may also provide instructions to the edge node 110 to cause the edge node 110 to register the data provided in the LISP mapping registration message and / or mapping proxy registration message. Furthermore, while depicted as part of the computer-readable medium 606, the synchronization component 622 may be part of the MEEC service 610.
[0086] The computer-readable medium 606 may also include a load balancing component 624 to, when executed by the processor(s) 602, distribute data packet transmissions across a set of resources, such as the edge nodes 110, with the goal of making their overall data packet transmission processing more efficient, optimizing the response time of each data packet transmission, and avoiding unevenly overloading one or more edge nodes 110 while other edge nodes 110 are idle. In one example, the control node 112 may perform load balancing with respect to the edge nodes 110. Furthermore, while depicted as part of the computer-readable medium 606, the load balancing component 624 may be part of the MEEC service 610.
[0087] The computer-readable medium 606 may further include a network flow component 626 that, when executed by the processor(s) 602, assigns at least one of the edge nodes 110 as an ingress edge node and assigns at least one of the edge nodes 110 as an egress edge node when sending a data packet from an external device such as the server 404 to the server 114. The processor(s) 602 of the control node 112 may execute the network flow component 626 to further direct traffic from the assigned ingress edge node 402 to the at least one edge node 110 for relaying the data packet to the server 114.
[0088] like Figure 5 and Figure 6 The computer-readable media 506, 606 of the edge node 110 and the control node 112 shown can be used to store and retrieve information, such as program modules, data structures, or other data. It will be understood by those skilled in the art that the computer-readable medium 506 is any available medium that provides non-transitory storage of data and can be accessed by the edge node 110. In some examples, the operations performed by the edge node 110 and / or any components included therein can be supported by one or more server devices. In other words, some or all of the operations performed by the edge node 110 and / or any components included therein can be performed by one or more computer devices operating in a cloud-based arrangement.
[0089] By way of example and not limitation, computer-readable media 506, 606 may include volatile and non-volatile, removable and non-removable media implemented in any method or technology. Computer-readable media include, but are not limited to, RAM, ROM, erasable programmable ROM ("EPROM"), electrically erasable programmable ROM ("EEPROM"), flash memory or other solid-state memory technology, compact disc ROM ("CD-ROM"), digital versatile disc ("DVD"), high-definition DVD ("HD-DVD"), BLU-RAY or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information in a non-transitory manner.
[0090] Figure 7 and Figure 8 A flowchart illustrating an example method of various aspects of the technology of the present disclosure is shown. Figure 7 and Figure 8 The described logical operations may be implemented as (1) a sequence of computer-implemented acts or program modules running on a computing system, and / or (2) interconnected machine logic circuits or circuit modules within the computing system.
[0091] The implementation of the various components described herein is a matter of choice depending on the performance and other requirements of the computing system. Therefore, the logical operations described herein are variously referred to as operations, structural devices, actions, or modules. These operations, structural devices, actions, and modules may be implemented in software, firmware, dedicated digital logic, and / or any combination thereof. It should also be understood that more than one operation may be performed. Figure 7 and Figure 8 The present invention also provides a method for performing the operations of the present invention and the method for performing the operations of the present invention. ...
[0092] Figure 7 1 shows a flow chart of an example method 700 for creating a Multilateral EtherChannel (MEEC) 202 according to an example of the principles described herein. Some or all of the various operations shown in the example method 700 may be performed by the method described above. Figures 1 to 6 The various hardware and / or software resources described in the foregoing may be executed, such as edge nodes 110, control nodes 112, servers 114, their respective sub-elements, and other devices and elements described herein.
[0093] The method 700 may include receiving, by a control node 112 communicatively coupled to a plurality of edge nodes 110 within a networked computing environment 102, a mapping registration message from a first edge node 110-1 of the plurality of edge nodes 110 via a control plane communication protocol (702). The mapping registration message may include first data defining a bundle of a plurality of links communicatively coupling the plurality of edge nodes 110 and a server 114 via a data plane communication protocol. Additionally, the mapping registration message may include second data (e.g., a system ID (sys_ID), a MAC address, or other identifying data) identifying a server 114 to which the plurality of edge nodes 110 included in the bundle are communicatively coupled.
[0094] The method 700 may also include sending a mapping notification message to the first edge node 110-1 (704). The mapping notification message may define at least the link state of the first edge node 110-1. In this way, the first edge node 110-1 is tied together with at least one edge node of the other edge nodes 110 within the networked computing environment 102. Figure 2 Further details regarding bundling of links within the networked computing environment 102 are described.
[0095] Figure 8A flow chart of an example method 800 for managing MEEC 202 according to an example of the principles described herein is shown. MEEC 202 may be managed by first bundling multiple links between edge nodes 110 and servers, synchronizing the edge nodes 110 within the bundle, and sending ingress data packet transmissions within the networked computing environment 102 to the servers 114 in a load-balanced manner. Thus, Figure 8 The method 800 may include bundling edge nodes 110 within a networked computing environment 102 to create a MEEC 202 (802). This may be accomplished by combining Figure 7 As described above, the edge node 110 and the control node 112 execute their respective MEEC services 510, 610 via the (one or more) processors 502, 602 to receive a mapping registration message from the first edge node 110-1 of the multiple edge nodes 110 via the control plane communication protocol, and send a mapping notification message to the first edge node 110-1.
[0096] Figure 8 The method 800 may further include synchronizing, using the control node 112, mapping notification messages defining multiple link states of multiple edge nodes 110 within the bundle between the first edge node 110-1 and at least the second edge node 110-2, 110-N of the multiple edge nodes 110 (804). Figure 3 As detailed, the control node 112 can create a LISP mapping agent registration message and send it to at least one of the other SDA edge nodes 110 (e.g., edge nodes 110-2, 110-n) that have active links included in the bundle. This allows the at least one other SDA edge node 110 to also register the source MAC address of the server 114, thereby resulting in synchronization of the edge nodes 110 within the networked computing environment 102. As a result, all independent edge nodes 110 in the same bundle (e.g., Multilateral EtherChannel (MEEC) 202 enabled) can be fully synchronized from a MAC programming perspective and a packet forwarding perspective.
[0097] At 806, the method 800 may also include identifying processing load capabilities of the plurality of edge nodes 110. To balance the processing load between the edge nodes 110, the method 800 may also include balancing the processing load between at least the first edge node 110-1 and at least the second edge nodes 110-2, 110-N of the plurality of edge nodes 110 based on the processing load capabilities of the plurality of edge nodes 110 identified at 806 (808). In one example, a first communication session may be established with an external device such as the server 404 via a data plane communication protocol. The first communication session may include at least one protocol data unit (PDU) packet from the server 404. The first edge node 110-1 may send a mapping registration message to the control node 112 communicatively coupled to the plurality of edge nodes 110 via a control plane communication protocol. The mapping registration message may include a request to provide an indication of the server 114 to which the PDU packet is destined. A mapping response message may be received at edge node 402, the mapping response message indicating load balancing data of at least second edge node 110-1 and third edge node 110-2 among the plurality of edge nodes 110, through which server 114 is reachable. The PDU packet may be sent to server 114 via second edge node 110-1 and / or third edge node 110-2 based on the load balancing data (e.g., the load balancing capability identified at 806).
[0098] Figure 9 The computing system diagram illustrates a configuration of a data center 900 that can be used to implement aspects of the technology disclosed herein. Figure 9 The example data center 900 shown includes several server computers 902A-902F (which may be referred to herein individually as a "server computer 902" or in the plural as "server computers 902") for providing computing resources. In some examples, the resources and / or server computers 902 may include or correspond to any type of networking device described herein. Although described as servers, the server computers 902 may include any type of networking device, such as a server, switch, router, hub, bridge, gateway, modem, repeater, access point, etc.
[0099] The server computers 902 may be standard tower, rack, or blade server computers appropriately configured to provide computing resources. In some examples, the server computers 902 may provide computing resources 904 including data processing resources such as VM instances or hardware computing systems, database clusters, computing clusters, storage clusters, data storage resources, database resources, network resources, VPNs, and the like. Some servers 902 may also be configured to execute a resource manager 906 capable of instantiating and / or managing computing resources. For example, in the case of VM instances, the resource manager 906 may be a hypervisor or another type of program configured to enable execution of multiple VM instances on a single server computer 902. The server computers 902 in the data center 900 may also be configured to provide network services and other types of services.
[0100] exist Figure 9 In the example data center 900 shown, an appropriate LAN 908 is also utilized to interconnect the server computers 902A-902F. It should be understood that the configuration and network topology described herein have been greatly simplified, and that many more computing systems, software components, networks, and networking devices can be utilized to interconnect the various computing systems disclosed herein and provide the functionality described above. Appropriate load balancing devices or other types of network infrastructure components can also be utilized to balance the load between the data centers 900, between each server computer 902A-902F in each data center 900, and potentially between the computing resources in each server computer 902. It should be understood that reference Figure 9 The depicted configuration of data center 900 is illustrative only, and other implementations may be utilized.
[0101] In some examples, server computer 902 and / or computing resources 904 may each execute / host one or more tenant containers and / or virtual machines to perform the techniques described herein.
[0102] In some instances, data center 900 can permanently or on-demand provide computing resources such as tenant containers, VM instances, VPN instances, and storage. Among other types of functionality, the computing resources provided by the cloud computing network can be used to implement the various services and technologies described above. Computing resources 904 provided by the cloud computing network can include various types of computing resources, such as data processing resources like tenant containers and VM instances, data storage resources, network resources, data communication resources, network services, VPN instances, and the like.
[0103] Each type of computing resource 904 provided by the cloud computing network can be general purpose or available in multiple specific configurations. For example, data processing resources can be used as physical computers or VM instances in a variety of different configurations. VM instances can be configured to execute applications, including web servers, application servers, media servers, database servers, some or all of the aforementioned network services, and / or other types of programs. Data storage resources can include file storage devices, block storage devices, etc. The cloud computing network can also be configured to provide other types of computing resources 904 not specifically mentioned herein.
[0104] In one embodiment, the computing resources 904 provided by the cloud computing network may be enabled by one or more data centers 900 (which may be referred to herein individually as a "data center 900" or in the plural as "data centers 900"). A data center 900 is a facility for housing and operating computer systems and related components. A data center 900 typically includes redundant and backup power, communications, cooling, and security systems. Data centers 900 may also be located in geographically diverse locations. Figure 10 One illustrative embodiment of a data center 900 is described that can be used to implement the techniques disclosed herein.
[0105] Figure 10 The computer architecture diagram of FIG. 100 illustrates an example computer hardware architecture 1000 (eg, server computer 902 ) for implementing a computing device that can be used to implement aspects of the various techniques presented herein. Figure 10 The computer hardware architecture 1000 shown shows a conventional server computer 902, computing resources 114, network devices (e.g., edge nodes 110, control nodes 112, data storage devices 508, 608, etc.), workstations, desktop computers, laptop computers, tablet computers, network equipment, e-readers, smart phones, or other computing devices, and can be used to execute any software components presented herein. In some examples, the computer 1000 can correspond to a device included in the networked computing environment 102 described herein, and can include networking devices such as servers, switches, routers, hubs, bridges, gateways, modems, repeaters, access points, and the like.
[0106] The computer 1000 includes a baseboard 1002 or "motherboard," which is a printed circuit board to which various components or devices may be connected via a system bus or other electrical communication path. In one illustrative configuration, one or more central processing units ("CPUs") 1004 operate in conjunction with a chipset 1006. The CPU 1004 may be a standard programmable processor that performs the arithmetic and logic operations required for the operation of the computer 1000.
[0107] The CPU 1004 performs operations by manipulating switching elements that distinguish between and change these states, switching from one discrete physical state to the next. Switching elements typically include electronic circuits that maintain one of two binary states, such as flip-flops, and electronic circuits that provide output states based on logical combinations of the states of one or more other switching elements (e.g., logic gates). These basic switching elements can be combined to create more complex logic circuits, including registers, adder-subtractors, arithmetic logic units, floating-point units, and the like.
[0108] Chipset 1006 provides an interface between CPU 1004 and the remaining components and devices on baseboard 1002. Chipset 1006 can provide an interface to RAM 1008, which serves as the main memory in computer 1000. Chipset 1006 can also provide an interface to computer-readable media such as read-only memory ("ROM") 1010 or non-volatile RAM ("NVRAM"), which is used to store basic routines that help start computer 1000 and transfer information between various components and devices. ROM 1010 or NVRAM can also store other software components necessary for the operation of computer 1000 according to the configuration described herein.
[0109] The computer 1000 can operate in a networked environment using logical connections to remote computing devices and computer systems through a network (e.g., network 108). Chipset 1006 may include functionality for providing network connectivity through a network interface controller (NIC) 1012 (e.g., a Gigabit Ethernet adapter). NIC 1012 is capable of connecting the computer 1000 to other computing devices through network 108. It should be understood that multiple NICs 1012 can be present in the computer 1000, connecting the computer to other types of networks and remote computer systems. In some examples, NIC 1012 can be configured to perform at least some of the techniques described herein, such as packet redirection and / or other techniques described herein.
[0110] The computer 1000 can be connected to a computer-readable medium 1018 that provides non-volatile storage for the computer. The computer-readable medium 1018 can store an operating system 1020, programs 1022, and data, which are described in more detail herein. The computer-readable medium 1018 can be connected to the computer 1000 via a storage controller 1014 connected to the chipset 1006. The computer-readable medium 1018 can be composed of one or more physical storage units. The storage controller 1014 can interface with the physical storage units via a serial attached SCSI ("SAS") interface, a serial advanced technology connection ("SATA") interface, a fiber channel ("FC") interface, or other types of interfaces for physically connecting and transferring data between a computer and the physical storage units.
[0111] The computer 1000 can store data on the computer-readable medium 1018 by transforming the physical state of the physical storage units to reflect the stored information. In different embodiments of the present specification, the specific transformation of the physical state can depend on various factors. Examples of these factors may include, but are not limited to, the technology used to implement the physical storage units, whether the computer-readable medium 1018 is characterized as a primary storage device or a secondary storage device, etc.
[0112] For example, the computer 1000 can store information to the computer-readable medium 1018 by issuing instructions via the storage controller 1014 to change the magnetic properties of a specific location within a disk drive unit, the reflective or refractive properties of a specific location in an optical storage unit, or the electrical properties of a specific capacitor, transistor, or other discrete component in a solid-state storage unit. Other transformations of the physical medium are possible without departing from the scope and spirit of the present disclosure, and the foregoing examples are provided for ease of illustration only. The computer 1000 can also read information from the computer-readable medium 1018 by detecting the physical state or properties of one or more specific locations within the physical storage unit.
[0113] In addition to the computer-readable media 1018 described above, the computer 1000 may access other computer-readable media to store and retrieve information, such as program modules, data structures, or other data. Those skilled in the art will appreciate that computer-readable media are any available media that provide non-transitory storage of data and that can be accessed by the computer 1000. In some examples, the operations performed by the network 108 and / or any components included therein may be supported by one or more devices similar to the computer 1000. In other words, some or all of the operations performed by the network 108 and / or any components included therein may be performed by one or more computer devices 1000 operating in a cloud-based arrangement.
[0114] By way of example and not limitation, computer-readable media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology. Computer-readable media include, but are not limited to, RAM, ROM, erasable programmable ROM ("EPROM"), electrically erasable programmable ROM ("EEPROM"), flash memory or other solid-state memory technology, compact disc ROM ("CD-ROM"), digital versatile disc ("DVD"), high-definition DVD ("HD-DVD"), BLU-RAY or other optical storage devices, magnetic cassettes, magnetic tape, magnetic disk storage devices or other magnetic storage devices, or any other medium that can be used to store the desired information in a non-transitory manner.
[0115] As briefly described above, the computer readable medium 1018 may store an operating system 1020 for controlling the operation of the computer 1000. According to one embodiment, the operating system comprises a LINUX operating system. According to another embodiment, the operating system comprises a LINUX operating system from Microsoft Corporation of Redmond, Washington. SERVER operating system. According to another embodiment, the operating system may include a UNIX operating system or one of its variants. It should be understood that other operating systems may also be used. The computer readable medium 1018 may store other systems or applications and data used by the computer 1000.
[0116] In one embodiment, the computer-readable medium 1018 or other computer-readable medium is encoded with computer-executable instructions that, when loaded into the computer 1000, convert the computer from a general-purpose computing system into a special-purpose computer capable of implementing the embodiments described herein. As described above, these computer-executable instructions convert the computer 1000 by specifying how the CPU 1004 transitions between states. According to one embodiment, the computer 1000 may access a computer-readable medium storing computer-executable instructions that, when executed by the computer 1000, perform the operations described above with respect to the computer 1000. Figures 1 to 4 The computer 1000 may also include a computer-readable medium having stored thereon instructions for performing any other computer-implemented operations described herein.
[0117] The computer 1000 may also include one or more input / output controllers 1016 for receiving and processing input from a plurality of input devices such as a keyboard, mouse, touchpad, touch screen, electronic stylus, or other types of input devices. Similarly, the input / output controller 1016 may provide output to a display such as a computer monitor, flat panel display, digital projector, printer, or other types of output devices. It should be understood that the computer 1000 may not include Figure 10 All components shown in the Figure 10Other components not explicitly shown in the figure or may be used in conjunction with Figure 10 Completely different architecture shown.
[0118] As described herein, the computer 1000 may include one or more of a client device 106 or a network device (e.g., a server computer 902, a server 114, an edge node 110, a control node 112, etc.). The computer 1000 may include one or more CPUs 1004 (e.g., processors) configured to execute one or more stored instructions. The CPU(s) 1004 may include one or more cores. Additionally, the computer 1000 may include one or more network interfaces configured to provide communications between the computer 1000 and other devices, such as the communications performed by the client devices 106 and computing resources 114 described herein. The network interfaces may include devices configured to couple to personal area networks (PANs), wired and wireless local area networks (LANs), wired and wireless wide area networks (WANs), and the like. For example, the network interfaces may include interfaces to Ethernet, Wi-Fi, and the like. TM and other compatible devices.
[0119] Program 1022 may include any type of program or process that performs the techniques described in this disclosure for determining connectivity in a multi-hop path using bidirectional forwarding detection (BFD) echo packet(s).Program 1022 may enable computing resources 114 to perform various operations.
[0120] In summary, a system and method for creating and managing a Multilateral EtherChannel (MEEC) includes: utilizing a control node communicatively coupled to a plurality of edge nodes within a network, receiving a mapping registration message including data defining a bundle of a plurality of links communicatively coupling the plurality of edge nodes and a first server, and data identifying the first server. A mapping notification message defining a link state of at least the first edge node is sent to the edge node. A mapping proxy registration message defining a plurality of link states of the plurality of edge nodes within the bundle is sent to at least a second edge node to synchronize the first edge node with respect to at least a second edge node of the plurality of edge nodes. A mapping reply message indicating load balancing data for the plurality of edge nodes can be sent to an ingress edge node, and data packets can be load balanced based on the load balancing data.
[0121] The systems and methods described herein provide node devices that do not require physical stacking with associated stacking device wiring. This avoids stack-switched network configurations in which the node devices must additionally perform control plane processing for synchronization purposes. In addition, the systems and methods described herein use a "dedicated" protocol for LACP convergence to avoid LACP convergence between edge nodes to ensure synchronization of edge nodes acting as state machines. This processing is instead pushed to the control node 112, causing the control node 112 to function as a LISP map server / map resolver (MSMR) device as well as an LACP state machine.
[0122] Although the present invention has been described with respect to specific examples, it should be understood that the scope of the present invention is not limited to these specific examples. Since other modifications and variations adapted to specific operating requirements and circumstances will be apparent to those skilled in the art, the present invention is not to be considered limited to the examples selected for the purpose of disclosure, but covers all changes and modifications that do not depart from the true spirit and scope of the present invention.
[0123] Although the present application describes embodiments with specific structural features and / or methodological acts, it should be understood that the claims are not necessarily limited to the specific features or acts described. Instead, the specific features and acts are merely illustrative of some embodiments that fall within the scope of the claims of the present application.
Claims
1. A control node, the control node being communicatively coupled to a plurality of edge nodes within a network, the control node being configured to: receiving a mapping registration message from a first edge node among the plurality of edge nodes via a control plane communication protocol, the mapping registration message comprising: The endpoint identifier EID of the first server; Route locators RLOC of the plurality of edge nodes; first data defining a bundle of a plurality of links communicatively coupling the plurality of edge nodes and a first server via a data plane communication protocol; as well as second data identifying the first server to which the plurality of edge nodes included in the bundle are communicatively coupled; as well as A mapping notification message is sent to the first edge node, where the mapping notification message defines at least a link state of the first edge node.
2. The control node according to claim 1, further comprising: means for synchronizing the mapping notification message defining the plurality of link states of the plurality of edge nodes within the bundle between the first edge node and at least a second edge node of the plurality of edge nodes.
3. The control node according to claim 1 or 2, further comprising: means for identifying processing load capabilities of the plurality of edge nodes; as well as means for balancing a processing load between at least the first edge node and at least a second edge node of the plurality of edge nodes based on processing load capabilities of the plurality of edge nodes.
4. The control node according to claim 1 or 2, wherein: The data plane communication protocol includes the Link Aggregation Control Protocol LACP or the Port Aggregation Protocol PAgP.
5. The control node according to claim 1 or 2, wherein: The control plane communication protocol includes the Locator / Identifier Separation Protocol LISP, the Border Gateway Protocol BGP or the Ethernet protocol.
6. The control node according to claim 1 or 2, further comprising: means for storing the first data and the second data of the plurality of edge nodes in a database of the control node; as well as means for creating a mapping proxy registration message for propagation to the plurality of edge nodes, thereby registering the bundle of the plurality of links and the identification of the first server with the plurality of edge nodes.
7. The control node according to claim 1 or 2, further comprising: Means for defining a state of at least said first edge node.
8. The control node according to claim 1 or 2, further comprising: means for receiving, from the first edge node via a control plane communication protocol, the mapping registration message, the mapping registration message further comprising a request to provide an indication of the first server to which the PDU packets from the second server are destined; means for sending a mapping response message, the mapping response message indicating load balancing data of at least a second edge node and a third edge node among the plurality of edge nodes, the first server being reachable via the second edge node and the third edge node; as well as means for sending the PDU packet to the first server via the second edge node or the third edge node based on the load balancing data.
9. The control node according to claim 8, wherein: The instruction of the first server includes: The endpoint identifier EID of the first server; and Route locators (RLOCs) of the plurality of edge nodes within the bundle.
10. A first edge node, wherein the first edge node is an edge node among multiple edge nodes in a network, and the first edge node comprises: means for establishing a first communication session with a first server via a data plane communication protocol, said first communication session comprising at least one protocol data unit (PDU) packet from said first server; means for sending a mapping registration message to a control node communicatively coupled to the plurality of edge nodes via a control plane communication protocol, the mapping registration message comprising: An endpoint identifier EID of the first server; Route locators RLOC of the plurality of edge nodes; a request to provide an indication of a second server to which the PDU packet is destined; means for receiving a mapping response message indicating load balancing data of at least a second edge node and a third edge node of the plurality of edge nodes, the second server being reachable via the second edge node and the third edge node; and means for sending the PDU packet to the second server via the second edge node or the third edge node based on the load balancing data.
11. The first edge node according to claim 10, wherein: The mapping registration message also includes: first data defining at least one bundle of a plurality of links communicatively coupling the plurality of edge nodes and the second server; and second data identifying the second server to which the plurality of edge nodes included in the bundle are communicatively coupled, The first edge node further includes: means for storing the first data and the second data in a database of the first edge node; means for creating a forwarding information base (FIB) table, the FIB table comprising the first data, the second data, and third data defining a load capacity of at least the first edge node; and Means for receiving a mapping notification message from the control node, the mapping notification message defining a link state of at least the first edge node.
12. The first edge node according to claim 11, further comprising: means for receiving a mapping agent registration message, the mapping agent registration message including a network address of the second server; as well as means for storing the network address of the second server in the database and the FIB table.
13. The first edge node according to claim 11 or 12, further comprising: means for receiving a mapping agent registration message, the mapping agent registration message including a status of at least the second edge node among the plurality of edge nodes; as well as means for storing a state of at least the second edge node in the database and the FIB table to synchronize the first edge node with the plurality of edge nodes.
14. A method for network communication, comprising: Utilizing a control node communicatively coupled to a plurality of edge nodes within a network: receiving a mapping registration message from at least a first edge node among the plurality of edge nodes via a control plane communication protocol, the mapping registration message comprising: The endpoint identifier EID of the server; Route locators RLOC of the plurality of edge nodes; first data defining at least one bundle of a plurality of links communicatively coupling the plurality of edge nodes and the server; and second data identifying a server to which the plurality of edge nodes included in the bundle are communicatively coupled; and A mapping agent registration message defining a plurality of link states of the plurality of edge nodes within the bundle is sent to at least a second edge node to synchronize the first edge node with respect to at least the second edge node of the plurality of edge nodes.
15. The method of claim 14, further comprising: The first data and the second data of the plurality of edge nodes are registered in a database of the control node.
16. The method of claim 15, further comprising: A mapping notification message is sent to the first edge node, where the mapping notification message defines at least a first link state of the first edge node.
17. The method according to any one of claims 14 to 16, further comprising: Identifying processing load capabilities of the plurality of edge nodes; as well as The processing load between at least the first edge node and at least the second edge node among the plurality of edge nodes is balanced based on the processing load capabilities of the plurality of edge nodes.
18. The method of any one of claims 14 to 16, further comprising: defining an ingress edge node among the plurality of edge nodes to receive data packets directed to the server; as well as A mapping request is received from the ingress edge node to determine: The endpoint identification EID of the server; and Route locators (RLOCs) of the plurality of edge nodes within the bundle.
19. The method of claim 18, further comprising: Sending a mapping response message to the ingress edge node, the mapping response message including: third data, the third data defining the EID of the server; fourth data defining RLOCs of the plurality of edge nodes within the bundle; and Fifth data, the fifth data defines the processing load capacity of the multiple edge nodes.
20. The method of claim 19, further comprising: receiving, from the ingress edge node, a routing indication for at least the second edge node among the plurality of edge nodes, the load-balanced traffic to be directed through the second edge node based on the fifth data; as well as Based on the routing indication, the data packet is directed to the server.
21. A method for network communication, comprising, utilizing a first edge node among a plurality of edge nodes within a network: establishing a first communication session with a first server via a data plane communication protocol, the first communication session including at least one protocol data unit (PDU) packet from the first server; Sending a mapping registration message to a control node communicatively coupled to the plurality of edge nodes via a control plane communication protocol, the mapping registration message comprising: An endpoint identifier EID of the first server; Route locators RLOC of the plurality of edge nodes; and a request to provide an indication of a second server to which the PDU packet is destined; receiving a mapping reply message indicating load balancing data of at least a second edge node and a third edge node among the plurality of edge nodes, the second server being reachable via the second edge node and the third edge node; and Based on the load balancing data, the PDU packet is sent to the second server via the second edge node or the third edge node.
22. The method of claim 21, wherein: The mapping registration message also includes: first data defining at least one bundle of a plurality of links communicatively coupling the plurality of edge nodes and the second server; and second data identifying the second server to which the plurality of edge nodes included in the bundle are communicatively coupled, The method further comprises: storing the first data and the second data in a database of the first edge node; Creating a forwarding information base (FIB) table, the FIB table including the first data, the second data, and third data defining a load capacity of at least the first edge node; and A mapping notification message is received from the control node, the mapping notification message defining at least a link state of the first edge node.
23. The method of claim 22, further comprising: receiving a mapping agent registration message, wherein the mapping agent registration message includes a network address of the second server; as well as The network address of the second server is stored in the database and the FIB table.
24. The method of claim 22 or 23, further comprising: receiving a mapping agent registration message, the mapping agent registration message including a status of at least the second edge node among the plurality of edge nodes; as well as A state of at least the second edge node is stored in the database and the FIB table to synchronize the first edge node with the plurality of edge nodes.
Citation Information
Patent Citations
Marked net mobile access method
CN104980916A
Automatic discovery and provisioning of multi-chassis etherchannel peers
EP3262802A1