Point-to-multipoint layer 2 subnetwork extension over layer 3 networks

By generating unicast L3 packets and forwarding them to the egress router for each receiver device, the resource waste caused by multipoint L2 frames in L3 networks is solved, network scalability and reliability are improved, and session-based routing technology is supported for multipoint L2 frames.

CN115735354BActive Publication Date: 2025-11-25HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 19 Cites 0 Cited by

Patent Information

Application Number
CN202180044457.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-06-24
Filing Date
2021-06-24
Publication Date
2025-11-25
Estimated Expiration
2041-06-24

AI Technical Summary

Technical Problem

In L3 networks, when multiple L2 frames are sent to multiple receiver devices, existing technologies lead to a waste of L3 network resources and scalability issues, especially when multiple receiver devices are connected to the same egress router, the ingress router will generate multiple redundant L3 packets.

Method used

The ingress router generates unicast L3 packets and creates a separate session for the egress router of each receiver device, forwarding only one L3 packet. By generating unicast L3 packets and forwarding them to the corresponding egress router, the generation of redundant copies is reduced.

Benefits of technology

It reduces the consumption of L3 network resources, improves network scalability and the reliability and redundancy of multi-point L2 frames, and supports the application of L3 session-based routing technology in business engineering and failover operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115735354B_ABST
    Figure CN115735354B_ABST
Patent Text Reader

Abstract

Techniques are disclosed for session-based routing within an Open Systems Interconnection (OSI) model Layer 2 (L2) network that is extended over a Layer 3 (L3) network. In one example, the L2 network connects a first client device to a first router and a second client device to a second router. The L3 network connects the first router and the second router. The first router receives, from the first client device, an L2 frame destined for the second client device. The first router generates an L3 packet that includes an L3 header specifying L3 addresses of the first router and the second router, a first portion of metadata that includes L2 addresses of the first client device and the second client device, and a second portion of metadata that includes L3 addresses of the first client device and the second client device, and forwards the L3 packet to the second router. The second router recovers the L2 frame from the metadata and forwards the L2 frame to the second client device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims the benefit of U.S. Provisional Application No. 63 / 043,416, filed June 24, 2020; U.S. Provisional Application No. 63 / 043,426, filed June 24, 2020; and U.S. Provisional Application No. 63 / 043,423, filed June 24, 2020, the entire contents of each of which are incorporated herein by reference. Technical Field

[0002] This disclosure relates generally to computer networks, and more specifically to routing packets within computer networks. Background Technology

[0003] A computer network is a collection of interconnected computing devices that can exchange data and share resources. Example computing devices include routers, switches, and other Layer 2 (L2) network devices operating within Layer 2 (i.e., the data link layer) of the Open Systems Interconnection (OSI) reference model, and Layer 3 (L3) network devices operating within Layer 3 (i.e., the network layer) of the OSI reference model. Network devices within a computer network typically include control units that provide control plane functions for the network devices and forwarding components for routing or switching data units.

[0004] Computing devices can establish “network sessions” (also referred to as “sessions” in this document) to enable communication between devices on a computer network. Because a session involves packets propagating bidirectionally between a first device and a second device, a session can be bidirectional. For example, a session includes a forward packet flow originating from the first device and destined for the second device, and a reverse packet flow originating from the second device and destined for the first device. The forward and reverse packet flows of a session are interconnected because the source address and source port of the forward packet flow are the same as the destination address and destination port of the reverse packet flow, and vice versa. To establish a session, a computing device can use one or more communication session protocols, including Transmission Control Protocol (TCP), Transport Layer Security (TLS), User Datagram Protocol (UDP), Internet Control Message Protocol (ICMP), etc. Summary of the Invention

[0005] In summary, this disclosure describes a technique for session-based routing of Open Systems Interconnection (OSI) Model Layer 2 (L2) frames for multipoint L2 networks extended on Layer 3 (L3) networks. In one example, a first L2 network connects a source device (referred to herein as a "multipoint source device") of the multipoint network to an ingress router of a plurality of routers, and one or more other L2 networks connect one or more receiver devices to one or more egress routers of the plurality of routers. The plurality of routers form an L3 network. Typically, the plurality of routers can provide session-based routing.

[0006] In a typical implementation of an L2 network extended over an L3 network, the ingress router receiving an L2 frame encapsulates the L2 frame with L3 packets and forwards copies of the L3 packets to each recipient device to which the L2 frame is destined. However, when multiple recipient devices are connected to the same egress router in the L3 network, the ingress router forwards multiple redundant copies of the same L3 packet to the same egress router. This can lead to significant consumption of L3 network resources, especially in multipoint networks where a single L2 frame specifies a large number of recipient devices, each connected to the same egress router.

[0007] As described herein, the ingress router receives L2 frames destined for one or more receiver devices from a multipoint source device (referred to herein as "multipoint L2 frames"). In some examples, multipoint L2 frames are Ethernet broadcast frames, unknown unicast Ethernet frames, or Ethernet multicast frames, also known as L2 "BUM" services. The ingress router determines one or more egress routers connected to one or more receiver devices via one or more second L2 networks. The ingress router forms a distinct unicast session with each egress router determined to be connected to at least one receiver device. As part of the unicast session between the ingress router and each egress router determined to be connected to at least one receiver device, the ingress router generates a unicast L3 packet for the multipoint L2 frame and sends the unicast L3 packet to the egress router. The unicast L3 packet may include an L3 header, a session identifier for the unicast L3 packet, and an L3 payload. The L3 header may specify the source Internet Protocol (IP) address and source port of the ingress router, as well as the destination IP address and destination port of the next-hop peer router among multiple routers that serves as the next hop to the egress router. The session identifier identifies the session between the ingress router and the egress router. Each egress router generates a multipoint L2 frame based on the received unicast L3 packets and forwards the multipoint L2 frame to each receiver device connected to the egress router.

[0008] The techniques disclosed herein can provide specific improvements to computer-related fields with practical applications in computer networks. For example, the techniques disclosed herein enable an ingress router in an L3 network to receive multipoint L2 frames and forward only a single L3 packet for the multipoint frame to each egress router for at least one receiver device connected to the multipoint L2 frame. Therefore, such a router, as described herein, can reduce the number of L3 packets replicated for the multipoint L2 frame, thereby reducing resource consumption and increasing the scalability of the L3 network. Furthermore, the techniques disclosed herein enable routers to apply L3 session-based routing techniques to multipoint L2 frames, such as service engineering, failover operations, and stateful services. Therefore, the techniques disclosed herein can improve the reliability and redundancy of multipoint L2 frames in an L2 network extended over an L3 network.

[0009] In one example, this disclosure describes a method comprising: receiving, by an ingress router of a plurality of routers, a source device connected to the ingress router via a first Open Systems Interconnection (OSI) Model Layer 2 (L2) network, a multipoint L2 frame destined for one or more receiver devices, the multipoint L2 frame including an L2 header and an L2 payload, wherein the plurality of routers form an OSI Model Layer 3 (L3) network; determining, by the ingress router and based on the L2 header of the multipoint L2 frame, one or more egress routers of the plurality of routers connected to the one or more receiver devices via one or more second L2 networks; and determining, by the ingress router, one or more egress routers of the plurality of routers connected to the one or more receiver devices. Each egress router of the ingress router generates a unicast L3 packet. The unicast L3 packet includes: an L3 header specifying the source Internet Protocol (IP) address and source port of the ingress router, and the destination IP address and destination port of the next-hop peer router of the multiple routers that is the next hop to the egress router; a session identifier of the unicast L3 packet, which identifies the session between the ingress router and the egress router; an L3 payload; and the generated unicast L3 packet corresponding to the egress router is forwarded by the ingress router to the corresponding next-hop peer router of the multiple routers for each of the one or more egress routers connected to one or more receiver devices.

[0010] In another example, this disclosure describes an ingress router of multiple routers, the ingress router including processing circuitry configured to: receive multipoint L2 frames destined for one or more receiver devices from a source device connected to the ingress router via a first Open Systems Interconnection (OSI) Model Layer 2 (L2) network, the multipoint L2 frames including an L2 header and an L2 payload, wherein the multiple routers form an OSI Model Layer 3 (L3) network; determine one or more egress routers of the multiple routers connected to the one or more receiver devices via one or more second L2 networks based on the L2 header of the multipoint L2 frame; and, for the determined egress routers connected to the one or more receiver devices... Each of the multiple egress routers generates a unicast L3 packet, the unicast L3 packet including: an L3 header specifying the source Internet Protocol (IP) address and source port of the ingress router and the destination IP address and destination port of the next-hop peer router of the multiple routers toward the egress router; a session identifier of the unicast L3 packet, the session identifier identifying the session between the ingress router and the egress router; an L3 payload; and, for each of the one or more egress routers identified as being connected to one or more receiver devices, forwarding the generated unicast L3 packet corresponding to the egress router to the corresponding next-hop peer router of the multiple routers.

[0011] In another example, this disclosure describes a method comprising: receiving unicast Open Systems Interconnection (OSI) Model Layer 3 (L3) packets from an egress router of a plurality of routers toward an ingress router of the plurality of routers, wherein the plurality of routers form an L3 network, wherein the unicast L3 packets include: an L3 header specifying the source Internet Protocol (IP) address and source port of the ingress router and the destination IP address and destination port of the egress router; a session identifier of the unicast L3 packets, the session identifier identifying a session between the ingress router and the egress router; an L3 payload; in response to receiving the unicast L3 packets, generating a multipoint OSI Model Layer 2 (L2) frame, the L2 frame being destined for one or more receiver devices connected to the egress router via the L2 network, the multipoint L2 frame including an L2 header and an L2 payload; and forwarding the multipoint L2 frame from the egress router to each of the one or more receiver devices.

[0012] Details of one or more examples of the technology disclosed herein are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of these technologies will be apparent from the description, the drawings, and the claims. Attached Figure Description

[0013] Figures 1A to 1B This is a block diagram illustrating an example computer network system according to the technology of this disclosure.

[0014] Figure 2 This is a block diagram illustrating an example router according to the technology disclosed herein.

[0015] Figures 3A to 3C This is a block diagram illustrating the data structure of a multipoint L2 frame and the data structure of a unicast L3 packet generated from a multipoint L2 frame according to the technology of this disclosure.

[0016] Figure 4 This is a flowchart illustrating an example operation of the technology according to this disclosure.

[0017] Throughout the accompanying drawings and description, similar reference numerals refer to similar elements. Detailed Implementation

[0018] Figures 1A to 1B This is a block diagram illustrating an example computer network system 2 according to the technology of this disclosure. Figure 1A In the example, computer network system 2 includes service provider networks 150A to 150D (collectively referred to as "service provider network 150") configured to provide wide area network (WAN) connectivity to different customer networks 140A to 140C (collectively referred to as "customer network 140"). Routers 110A to 110E (collectively referred to as "router 110") of service provider network 150 provide access to service provider network 150 to client devices 100A to 100B (collectively referred to as "client devices 100") associated with customer network 140. In some examples, customer network 140 is an enterprise network. For ease of illustration, customer network 140A is depicted as having a single client device 100A, and customer network 140B is depicted as having two client devices 100B to 100C, and customer network 140C is depicted as having two client devices 100D to 100E, but each customer network 140 can have any number of client devices. Figure 1A In the example depicted, customer network 140 is an L2 computer network, where the reference to the layer followed by a number refers to the corresponding layer in the Open Systems Interconnection (OSI) model. L2 is also referred to as the "data link layer" in the OSI model and throughout this disclosure; the term L2 is used interchangeably with the phrase "data link layer." Typically, customer network 140 includes multiple client devices 100, each of which can communicate with each other across service provider network 150, as described in more detail below. Communication links 16A through 16G (collectively referred to as link "16") can be Ethernet, ATM, or any other suitable network connection.

[0019] Router 110 Figure 1AIn the example, a router is shown. However, the techniques disclosed herein can be implemented using any network device, such as a switch, router, gateway, or other suitable network device capable of sending and receiving network traffic. For example, customer network 140 may be a network for geographically separated enterprise sites. Each of customer networks 140 may include additional customer equipment, such as one or more non-edge switches, routers, hubs, gateways, security devices such as firewalls, intrusion detection and / or intrusion prevention devices, servers, computer terminals, laptops, printers, databases, wireless mobile devices such as cellular phones or personal digital assistants, wireless access points, bridges, cable modems, application accelerators, or Figure 1A Other routers not described in the text. Figure 1A The construction of the computer network system 2 shown is merely an example. For instance, the computer network system 2 may include any number of client networks 140. Nevertheless, for ease of description, Figure 1A Only customer networks 140A to 140C are shown in the image.

[0020] Service provider network 150 refers to one or more publicly accessible computer networks owned and operated by one or more service providers. Although computer network system 2 is... Figure 1A The example is shown as comprising multiple interconnected service provider networks 150, but in other examples, the computer network system 2 may alternatively comprise a single service provider network providing connectivity between customer networks 140. Service providers are typically large telecommunications entities or companies. Each of the service provider networks 150 is typically a large L3 computer network. Each service provider network 150 is an L3 network in the sense that it supports L3 operations described in the OSI model. Common L3 operations include operations performed according to L3 protocols, such as IP. L3 is also referred to as the "network layer" in the OSI model, and throughout this disclosure, the term L3 may be used interchangeably with the phrase "network layer."

[0021] Although not shown, each service provider network 150 can be coupled to one or more networks managed by other providers, and thus can form part of a large-scale public network infrastructure (e.g., the Internet). Therefore, customer network 140 can be considered as an edge network of the Internet. Each service provider network 150 can provide access to the Internet to computing devices such as client devices 100 within customer network 140, and can allow computing devices within customer network 140 to communicate with each other.

[0022] Although additional routers are not shown for ease of explanation, it should be understood that System 2 may include additional network and / or computing devices, such as, for example, one or more additional switches, routers, hubs, gateways, security devices such as firewalls, intrusion detection and / or intrusion prevention devices, servers, computer terminals, laptops, printers, databases, wireless mobile devices such as cellular phones or personal digital assistants, wireless access points, bridges, cable modems, application accelerators, or other routers. Furthermore, while the elements of System 2 are shown as directly coupled, it should be understood that one or more additional network elements may be included along any network link 16 such that the network elements of System 2 are not directly coupled.

[0023] A service provider network 150 typically provides multiple residential and commercial services to a customer network 140, including residential and commercial data services (often referred to as “Internet services” because these data services allow access to a collection of publicly accessible networks (referred to as the Internet)), residential and commercial telephone and / or voice services, and residential and commercial television services.

[0024] Session-based routing

[0025] In some examples, router 110 can implement a stateful, session-based routing scheme, enabling each router 110 to perform path selection and service engineering independently. Using session-based routing allows router 110 to avoid using a centralized controller, such as a software-defined networking (SDN) controller, to perform path selection and service engineering. In this way, router 110 can be more efficient and scalable for large networks where using an SDN controller would be impractical. Furthermore, using session-based routing allows router 110 to avoid tunneling, thereby saving significant network resources by avoiding the need to perform encapsulation and decapsulation at tunnel endpoints. In some examples, router 110 implements session-based routing as Secure Vector Routing (SVR) provided by Juniper Networks, Inc.

[0026] exist Figure 1AIn the example, client device 100A of system 2 establishes session 40 with client device 100B. Router 110 facilitates the establishment of session 40 by transmitting network traffic between client device 100A and client device 100B. In some examples, because client device 100A initiates session 40 between client device 100A and client device 100B, for example, client device 100A is the "source" of the first packet in the forward flow of the session, so client device 100A can be considered the "source" device. Session 40 includes a forward packet flow originating from client device 100A and destined for client device 100B, and a reverse packet flow originating from client device 100B and destined for client device 100A. The forward flow of session 40 traverses a first path, including, for example, client device 100A, routers 110A to 110I, and client device 100B. As described in more detail below, router 110 enables customer network 140A (L2 network) to extend across service provider network 150 (e.g., L3 network) to customer network 140B (another L2 network).

[0027] Client device 100A can establish session 40 with client device 100B according to one or more L2 communication session protocols including Ethernet. As described in more detail below, client network 140A can form a first L2 network and client network 140B can form a second L2 network. Router 110 operates to extend client network 140A to client network 140B across service provider network 150, which is one or more L3 networks. In this way, client networks 140A and 140B can operate as if they were both part of the same L2 network, even if client networks 140A and 140B can be logically isolated and geographically separated. Furthermore, router 110 can operate such that the presence of service provider network 150 between client networks 140A and 140B is transparent to client device 100.

[0028] In some examples, router 110 can extend session 40 into an L3 session across service provider network 150 according to one or more L3 communication session protocols, including TCP or UDP. For example, to establish session 40 according to TCP so that data can be exchanged according to TCP, routers 110A and 110B perform a three-way handshake. Router 110A sends a first packet including the “SYN” flag to router 110B. Router 110B acknowledges receipt of the first packet by responding to router 110A with a second packet including the “SYN-ACK” flag. Router 110A acknowledges receipt of the second packet by responding to router 110B with a third packet including the “ACK” flag. After sending the third packet, session 40 is established according to TCP, and routers 110A and 110B can exchange data with each other via session 40 (e.g., by transmitting L2 data between client device 100A and client device 100B). Additional example information about TCP is described in “Transmission Control Protocol” in Request for Comment (RFC) 793 of the Internet Engineering Task Force (IETF) in September 1981, which is available at https: / / tools.ietf.org / html / rfc793 and is incorporated herein by reference in its entirety.

[0029] UDP is a connectionless protocol because router 110A does not verify that router 110B can receive data before sending it. To establish session 40 according to UDP, router 110A transmits the first packet to router 110B. Session 40 can be considered "established" according to UDP after router 110A receives any packets from router 110B, meaning that router 110B successfully received the first packet from the responding router 110A, and router 110A is able to receive responses from router 110B. Additional example information about UDP is described in IETF RFC 768 "User Datagram Protocol" dated August 28, 1980, available at https: / / tools.ietf.org / html / rfc768, the entire contents of which are incorporated herein by reference.

[0030] exist Figure 1AIn the example, when router 110A receives a packet originating from client device 100A and destined for client device 100B, router 110A determines whether the packet belongs to a new session (e.g., whether it is the "first" packet or the "preamble" packet of session 40). In some examples, router 110A determines whether the source address, source port, destination address, destination port, and protocol of the first packet match entries in the session table.

[0031] If no such entry exists, router 110A determines that the packet belongs to a new session and creates an entry in the session table. Furthermore, if the packet belongs to a new session, router 110A can generate a session identifier for session 40. The session identifier may include, for example, the source address and source port of client device 100A, the destination address and destination port of client device 100B, and the protocol used by the first packet. Router 110A can use the session identifier to identify subsequent packets as belonging to the same session.

[0032] In some examples, router 110 performs stateful routing for session 40. For example, router 110 may forward each packet of the forward packet flow of session 40 sequentially and along the same forward network path. As described herein, the "same" forward path may refer to the same router 110 that forms a segment or at least part (and not necessarily the entire network path between the originating device and the destination device) of the packet. Furthermore, router 110 forwards each packet of the return flow of session 40 sequentially and along the same return network path. The forward network path of the forward packet flow of session 40 and the return network path of the return packet flow of session 40 may be the same path or different paths. By ensuring that each packet of the flow is forwarded sequentially and along the same path, router 110 maintains the state of the entire flow at each router 110, thereby enabling the use of stateful packet services, such as deep packet inspection (DPI).

[0033] exist Figure 1AIn the example, a stateful routing session can be established from ingress router 110A through intermediate routers 110B to 110H to egress router 110I. In this example, router 110A determines that the first packet is an unmodified packet and is the first packet of the new session 40. Router 110A modifies the first packet to include metadata specifying a session identifier (e.g., original source address, source port, destination address, and destination port). Router 110A replaces the header of the modified first packet to specify the source address (router 110A address), source port (the port through which router 110A forwards the modified first packet to client device 100B), destination address (the address of the next hop to which router 110A forwards the first packet, e.g., the address of router 110B), and destination port (the port of the next hop to which router 110A forwards the first packet, e.g., the port of router 110B).

[0034] Router 110A can further identify the network service associated with session 40. For example, router 110A can compare one or more of the source address, source port, destination address, or destination port of the session with a service address table and port information to identify the service associated with the session. Examples of network services include Hypertext Transfer Protocol (HTTP), firewall services, proxy services, packet monitoring or measurement services, etc. For example, router 110A can determine that the forward packet flow of session 40 specifies the destination address and destination port assigned to client device 100B. Router 110A can then store the association between session 40 and the identified network service. As another example, if the source port and / or destination port of session 40 is 80, router 110A can determine that session 40 is associated with the HTTP service. In other examples, router 110A can determine that one or more of the source address, source port, destination address, or destination port of session 40 belong to an address block or port indicating that a specific service is associated with session 40.

[0035] In some examples, router 110A uses the network service determined for session 40 to select a forward path for forwarding the first packet and each subsequent packet of the forward packet flow of session 40 to client device 100B. In this way, router 110A can perform service-specific path selection to choose the network path best suited to the service requirements. This differs from network topologies where path selection is performed by an SDN controller; each router 110 performs path selection. Furthermore, the use of session-based routing allows each router 110 to make routing decisions at the service or application level, in contrast to traditional routers that can only make routing decisions at the flow level.

[0036] Router 110A forwards the modified first packet to router 110B. Additionally, router 110A stores the session identifier of session 40, enabling it to identify subsequent packets from session 40 as belonging to the same session 40 and forward them along the same path as the first packet.

[0037] Intermediate router 110B receives the modified first packet and determines whether the modified first packet includes metadata for the specified session identifier. In response to determining that the modified first packet includes metadata for the specified session identifier, intermediate router 110B determines that router 110B is not an ingress device, and thus router 110B does not append the metadata for the specified session identifier.

[0038] As described above regarding router 110A, router 110B determines whether the source address, source port, destination address, destination port, and protocol of the first packet match an entry in the session table. If no such entry exists, router 110B determines that the packet belongs to a new session and creates an entry in the session table. Furthermore, if the packet belongs to a new session, router 110B generates a session identifier for that session. The session identifier used by router 110B to identify the first packet session may differ from the session identifier used by router 110A to identify the same session of the first packet, because each router 110A, 110B uses the header source address, source port, destination address, and destination port to generate the session identifier, and each preceding router 110 can modify this header information as each router 110 forwards the first packet along the forward path. Additionally, each router 110 can store this header information to identify the preceding router 110 (or "waypoint") and the next router 110 (or "waypoint"), allowing each router 110 to reconstruct the same forward and reverse path session packets for each subsequent router.

[0039] Router 110B replaces the header of the modified first packet to specify the source address (the address of router 110B), source port (the port through which router 110B forwards the modified first packet to client device 100B), destination address (the address of the next hop to which router 110B forwards the first packet (e.g., the address of router 110C for session 40 along the first path)), and destination port (the port of the next hop to which router 110B forwards the first packet (e.g., the port of router 110C)). Router 110B forwards the modified first packet to router 110C. Furthermore, router 110B stores a session identifier for the session, enabling it to identify subsequent packets of the same session upon receipt and forward them along the same path as the first packet.

[0040] Subsequent intermediate routers 110C through 110H process the modified first packet in a similar manner to routers 110A and 110B, causing router 110 to forward subsequent packets of the session along the same path as the first packet. Furthermore, each router 110 stores a session identifier, which may include the identifiers of previous routers 110 along the network path. Therefore, each router 110 can use the session identifier to forward packets from the reverse packet flow of the session back to client device 100 along the same network path.

[0041] Router 110, which can forward packets of the forward packet flow of a session to the destination of the packet flow, is an egress or "destination" router. In the aforementioned example, router 110I is a destination router because router 110I can forward packets to client device 100B. Router 110I receives a modified first packet, which includes metadata (e.g., original source address, source port, destination address, and destination port) specifying a session identifier. Router 110I identifies the modified first packet as destined for a service terminating at router 110I by determining that the destination source address and destination source port specified in the metadata of the modified preamble packet correspond to a destination reachable by router 110I (e.g., client device 100B). Router 110I recovers the original first packet by removing the metadata from the modified first packet and using the metadata to modify the header of the first packet to specify the original source address, source port, destination address, and destination port. Router 110I forwards the recovered first packet to client device 100B. Therefore, using session-based routing can form a series of waypoints (e.g., router 110) interconnected by path “segments” (e.g., the path “segment” is an end-to-end routing vector between each waypoint).

[0042] Additional information regarding session-based routing and SVR is described in the following patents: U.S. Patent No. 9,729,439, entitled "Computer Network Packet Flow Controller," published August 8, 2017; U.S. Patent No. 9,729,682, entitled "Network Apparatus and Method for Processing Sessions Using Packet Signatures," published August 8, 2017; U.S. Patent No. 9,762,485, entitled "Network Packet Traffic Controller with Extended Session Management," published September 12, 2017; U.S. Patent No. 9,871,748, entitled "Router with Optimized Statistics Functions," published January 16, 2018; and U.S. Patent No. 9,871,748, entitled "Named Routing," published May 29, 2018. U.S. Patent No. 9,985,883, entitled "System and Method"; U.S. Patent No. 10,200,264, entitled "Link State Monitoring Based on Packet Loss Detection", published February 5, 2019; U.S. Patent No. 10,277,506, entitled "State Load Balancing in Stateless Networks", published April 30, 2019; U.S. Patent No. 10,432,522, entitled "Network Packet Traffic Controller with Extended Session Management Functions", published October 1, 2019; and U.S. Patent Application Publication No. 2020 / 0403890, entitled "Online Performance Monitoring", published December 24, 2020, the entire contents of which are incorporated herein by reference.

[0043] Exchange service and topology status information

[0044] In some examples, to implement session-based routing, each router 110 maintains a local repository of service and topology state information for each of the other routers 110. The service and topology state information includes services reachable from each router 110, and the network topology from each router to those services. Each router 110 may transmit changes to services reachable from itself and / or changes to the network topology used to reach those services to a central repository (e.g., a server). Furthermore, each router 110 may receive service and topology state information from each of the other routers 110 in system 2 from the central repository.

[0045] In the aforementioned example, router 110A receives a packet, determines session 40 for the forward packet flow including the packet, determines the service associated with session 40, and selects a network path for forwarding the packet. Router 110A can use a local copy of the service and topology state information of each router 110 to select the network path for forwarding the packet. For example, router 110A can use the identified service associated with the packet and the network topology for reaching the identified service to select a network path that meets the SLA requirements of the service or other session performance requirements. Router 110A can then forward packets and subsequent packets of the forward packet flow of session 40 along the selected path. In this way, router 110A can perform service-specific path selection because router 110 can use criteria specific to the service associated with the packet to select the network path that best suits the service requirements.

[0046] In some examples, the interfaces of router 110 can be assigned to one or more "communities". A "community" is defined as a label applied to the interface of router 110. Routers 110 within the same community can form peer-to-peer relationships with each other. For example, each router 110 with an interface labeled as a community can reach every other router 110 with an interface labeled as a community via a Layer 3 network. In some examples, one or more communities can be aggregated into a "region". A region is a logical group of one or more communities. Typically, an Autonomous System (AS) (also referred to herein as an "administrative body") can be divided into one or more regions, each region comprising one or more communities.

[0047] In some examples, each router 110 maintains a local repository of service and topology state information only for other routers 110 within the same community. In other examples, each router 110 maintains a local repository of service and topology state information only for other routers 110 within a specific area of ​​the same community. As an example, each service provider network 150 can be considered a distinct “area,” where each subdomain within each service provider network 150 can be considered a community within that area. In this example, each router 110A and 110B within service provider network 150A can maintain service and topology state information only for each other, and not for routers 110C through 110I. Similarly, each router 110D and 110C within service provider network 150B can maintain service and topology state information only for each other, and not for routers 110A through 110B or 110E through 110I. In other examples, an administrator can assign one or more service provider networks 150 to one or more areas, one or more communities, or a combination of areas and communities to meet the needs of network system 2.

[0048] Additional information regarding the exchange of service and topology state information is described in U.S. Patent Application Publication No. 2020 / 0366590, entitled "Central Repository for Service and Topology Exchange," published November 19, 2020; U.S. Patent Application Publication No. 2020 / 0366599, entitled "Source-Based Routing," published November 19, 2020; U.S. Patent Application Publication No. 2020 / 0366598, entitled "Service and Topology Exchange Protocol," published November 19, 2020; U.S. Patent Application Publication No. 2020 / 0366589, entitled "Routing Using Segment-Based Metrics," published November 19, 2020; and U.S. Patent Application Publication No. 16 / 050,722, filed July 31, 2018, entitled "Network Community for Establishing Communication Relationships Between Communication Interfaces in a Management Domain." The entire contents of each of these patent applications are incorporated herein by reference.

[0049] Using metadata to extend peer-to-peer Layer 2 networks on Layer 3 networks

[0050] In some examples, computer network system 2 performs session-based routing on L2 client network 140, which extends to L3 service provider network 150. In one example, L2 client network 140A connects client device 100A to router 110A, L2 client network 140B connects client device 100B to router 110I, and L3 service provider network 150 connects router 110A to router 110I via routers 110B to 110H. Router 110A receives unicast L2 frames destined for client device 100B from client device 100A. The L2 frame includes an L2 header and a payload. The L2 header specifies the source Media Access Control (MAC) address of client device 100A and the destination MAC address of client device 100B.

[0051] In some examples, the payload of an L2 frame may include higher-level packets, such as encapsulated L3 packets. For instance, the L2 frame payload may include session-based packets, such as L3 packets like TCP / IP packets, UDP / IP packets, etc. As another example, the L2 frame payload may include non-session-based packets, such as Address Resolution Protocol (ARP) requests, Cisco Discovery Protocol (CDP) requests, or Link Layer Discovery Protocol (LLDP) requests. As yet another example, an L2 frame may include a VxLAN L2 frame with a payload that includes non-IP packets. As yet another example, an L2 frame may include a VxLAN L2 frame with a payload that includes IP packets.

[0052] In some examples, router 110A, in response to receiving an L2 frame, generates an L3 packet including an L3 header, a first part of metadata including L2 address information of a first client device and a second client device, a second part of metadata including L3 address information of the first client device and the second client device, and a payload. The L3 header may specify the source Internet Protocol (IP) address and source port of router 110A, and the destination IP address and destination port of router 110B. The first part of the metadata may include the source MAC address of client device 100A and the destination MAC address of client device 100B obtained from the L2 frame. The second part of the metadata may include the source IP address and source port of client device 100A corresponding to its source MAC address, and the destination IP address and destination port of client device 100B corresponding to its destination MAC address. Router 110A forwards the L3 packet including the first and second parts of the metadata to router 110B via L3 service provider network 150A. Router 110B forwards the L3 packet to router 110C, which in turn forwards the L3 packet to router 110D, and so on, until the L3 packet reaches router 110I.

[0053] Because router 110A generates L3 packets to include a first part of metadata, which includes the source MAC address of client device 100A and the destination MAC address of client device 100B obtained from the L2 frame, router 110I can use the first part of the metadata to generate an L2 frame from the L3 packet, including an L2 header and a payload. Router 110I can then forward the recovered L2 frame to client device 100B via L2 client network 140B.

[0054] As described above, when performing session-based routing, each router 110 replaces the L3 header of the received L3 packet with the source IP address and source port of the current router 110 and the destination IP address and destination port of the next-hop router 110. For example, router 110B may replace the L3 header of the L3 packet with a new L3 header specifying the source IP address and source port of router 110B and the destination IP address and destination port of router 110C before forwarding the L3 packet to router 110C. Router 110C may further replace the L3 header of the L3 packet with yet another new L3 header specifying the source IP address and source port of router 110C and the destination IP address and destination port of router 110D before forwarding the L3 packet to router 110D, and so on, until router 110I receives an L3 packet from router 110H, which includes an L3 header specifying the source address and port of router 110H and the destination address and port of router 110I.

[0055] As follows about Figure 1B Further described, router 110A can generate unicast L3 packets from multipoint L2 frames. These unicast L3 packets include a first part of metadata and a second part of metadata. The first part of metadata includes the source MAC address of multipoint client device 100A obtained from the L2 frame and the destination MAC address of one or more multipoint receiver client devices 100B to 100E. The second part of metadata includes the session identifier of the multipoint L2 frame. Router 110A can use the second part of the metadata, including the session identifier, to perform session-based routing of unicast L3 packets from the multipoint L2 frame. Furthermore, routers 110F and 110I, connected to client devices 100B to 100E via L2 client networks 140B and 140C, can use the first part of the metadata of the unicast L3 packets to generate multipoint L2 frames, enabling routers 110F and 110I to copy the multipoint L2 frames to client devices 100B to 100E.

[0056] In some examples, router 110 may use L2 metadata to perform session-based routing of L2 packets extended on a Layer 3 network. Additional information regarding the use of L2 metadata to perform session-based routing of L2 packets extended on a Layer 3 network is set forth in U.S. Patent Application No. 17 / 357,790, filed January 24, 2021, entitled “Layer 2 Extensions on a Layer 3 Network Using Added Layer 2 Metadata,” and published January 3, 2023, as U.S. Patent No. 11,546,249, the entire contents of which are incorporated herein by reference.

[0057] Extended using point-to-point Layer 2 networks encapsulated on Layer 3 networks

[0058] In some examples, computer network system 2 performs session-based routing on non-session-based L2 frames of L2 client networks 140 extended over L3 service provider network 150. In one example, L2 client network 140A connects client device 100A to router 110A, L2 client network 140B connects client device 100B to router 110I, and L3 service provider network 150 connects router 110A to router 110I via routers 110B to 110H. Router 110A receives unicast L2 frames from client device 100A, including an L2 header and a payload. In some examples, the L2 header includes the source MAC address of client 100A and the destination MAC address of client 100B. In some examples, the L2 frame includes an Ethernet frame.

[0059] In response to receiving an L2 frame, router 110A generates an L3 packet encapsulating the L2 frame, such that the L3 packet includes an L3 header, a payload including the L2 frame, and metadata specifying a placeholder session identifier for the L2 frame. The L3 header specifies a 5-tuple including the source IP address and source port of router 110A, the destination IP address and destination port of the next-hop router 110 (e.g., router 110B), and the network protocol. In some examples, router 110A identifies the L3 network service associated with the L2 frame and selects the network protocol for the L3 header from multiple network protocols based on the identified L3 network service associated with the L2 frame. In some examples, the L3 packet is a UDP packet and the network protocol is UDP. In other examples, the L3 packet is a TCP packet and the network protocol is TCP.

[0060] To perform session-based routing of non-session-based L2 frames, router 110A generates a placeholder session identifier for the L2 frame. As described above, router 110 can use the session identifier to identify bidirectional sessions. The session identifier is typically a 5-tuple that includes the source IP address and port of the client device initiating the session, the destination IP address and port of the destination client device, and the network protocol used by the session. This 5-tuple can be specified in the L3 header of an L3 packet received from the initiating client device, or obtained from the L3 address translation of the L2 header of an L2 frame received from the initiating client device. Router 110 can use this session identifier to perform session-based routing of L3 packets on the L3 network.

[0061] In some examples, router 110A determines whether an L2 frame includes a non-session payload. In response to determining that an L2 frame includes a non-session payload, router 110A generates a "placeholder" session identifier for the L3 packet, enabling router 110 in the L3 network to perform session-based routing of the non-session-based L2 frame for L3. The placeholder session identifier for the L3 packet's metadata includes, for example, a 5-tuple containing a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a first network protocol. In some examples, the placeholder source IP address is the IP address of the local area network (LAN) interface used by router 110A to receive the L2 frame, and the placeholder source port is the port of the LAN interface used by router 110A to receive the L2 frame. In some examples, the placeholder destination IP address is the IP address of the LAN interface of the next-hop router 110 (e.g., router 110B) to which router 110A forwards the L3 packet, and the placeholder destination port is the port of the LAN interface of the next-hop router 110 (e.g., router 110B) to which router 110A forwards the L3 packet. In some examples, the network protocol is UDP, TCP, or other communication session protocols.

[0062] Because non-session-based L2 frames do not include L2 or L3 addressing information for both the originating and destination devices, the placeholder session identifier generated by router 110A for L2 frames may include, for example, a 5-tuple that may not correspond to the 5-tuple in the L3 packet header or the 5-tuple in the L3 address translation of the L2 header of the L2 frame. In other words, unlike the session identifier for session-based L2 or L3 packets, the placeholder session identifier for non-session-based L2 frames may not necessarily correspond to the actual source or destination address of the L2 frame, and may be arbitrary.

[0063] Router 110A forwards L3 packets encapsulating non-session-based L2 frames to router 110B (e.g., next-hop router 110) via L3 service provider network 150A. Additionally, router 110A stores a placeholder session identifier and an indication of the next-hop router (e.g., router 110B) in its session information table. As described above, because router 110 performs session-based routing, each router 110 replaces the L3 header with the source IP address and source port of the current router 110 and the destination IP address and destination port of the next-hop router 110. Furthermore, each router 110 stores a placeholder session identifier and an indication of the next-hop router. For example, router 110B may replace the L3 header of an L3 packet with a new L3 header specifying the source IP address and source port of router 110B and the destination IP address and destination port of router 110C before forwarding the L3 packet to router 110C. Router 110B also stores a placeholder session identifier and an indication of the next-hop router (e.g., router 110C) in its session information table. Router 110C can then replace the L3 packet header with a new L3 header specifying the source IP address and source port of router 110C and the destination IP address and destination port of router 110D before forwarding the L3 packet to router 110D. Router 110C also stores placeholder session identifiers and indications of the next-hop router (e.g., router 110D) in its session information table. Each router 110 can perform these steps until router 110I receives the L3 packet. Router 110I decapsulates the L3 packet to recover the L2 frame from the L3 packet payload. Router 110I can then forward the recovered L2 frame to client device 100B via L2 client network 140B.

[0064] As follows about Figure 1B Further described, router 110A can generate unicast L3 packets including metadata from multipoint L2 frames destined for one or more multipoint receiver client devices 100B to 100E. This metadata includes a placeholder session identifier for the multipoint L2 frame and an L3 payload encapsulating the multipoint L2 frame. Router 110A can use the metadata including the placeholder session identifier to perform session-based routing of the unicast L3 packets from the multipoint L2 frame. Furthermore, routers 110F and 110I, connected to client devices 100B to 100E via L2 client networks 140B and 140C, can decapsulate the unicast L3 packets to obtain multipoint L2 frames, allowing routers 110F and 110I to replicate the multipoint L2 frames to client devices 100B to 100E.

[0065] In some examples, router 110 may use encapsulation to perform session-based routing of non-session-based L2 packets extended on a Layer 3 network. Additional information regarding the performance of session-based routing using non-session-based L2 packets extended on a Layer 3 network is set forth in U.S. Patent Application No. 17 / 357,763, filed January 24, 2021, entitled “Using Encapsulation for Layer 2 Extensions on a Layer 3 Network,” and published October 18, 2022, as U.S. Patent No. 11,477,115, the entire contents of which are incorporated herein by reference.

[0066] Point-to-multipoint extension of Layer 2 networks on Layer 3 networks

[0067] According to the technology disclosed herein, router 110 performs session-based routing of multipoint L2 frames extended on L3 service provider network 150. (As in...) Figure 1B In the example depicted, client device 100A is connected to router 110A via L2 client network 140A. For L2 network traffic received from client device 100A, router 110A operates as an ingress router into L3 service provider network 150. Router 110F is connected to client devices 100D to 100E via L2 client network 140C, and router 110I is connected to client devices 100B to 100C via L2 client network 140B. Router 110F operates as an egress router for L3 network traffic from L3 service provider network 150 to client devices 100D to 100E. Router 110I operates as an egress router for L3 network traffic from L3 service provider network 150 to client devices 100B to 100C.

[0068] exist Figure 1B In the example, client device 100A forwards multipoint L2 frame 52 to router 110A. Multipoint L2 frame 52 specifies the source MAC address of client device 100A and the multipoint destination MAC address of client devices 100B to 100E. In some examples, multipoint L2 frame 52 is an Ethernet broadcast frame, an unknown unicast Ethernet frame, or an Ethernet multicast frame. In this example, client device 100A operates as a multipoint source device, and client devices 100B to 100E operate as multipoint receiver devices.

[0069] In a typical implementation of an L2 network extended over an L3 network, the ingress router receiving a multipoint L2 frame encapsulates the multipoint L2 frame with L3 packets and forwards a copy of the L3 packet to each receiver device to which the multipoint L2 frame is destined. However, when multiple receiver devices are connected to the same egress router in the L3 network, this conventional router forwards multiple redundant copies of the same L3 packet to the same egress router. This can lead to significant consumption of L3 network resources, especially when a single multipoint L2 frame specifies a large number of receiver devices, each connected to the same egress router.

[0070] According to the technology disclosed herein, ingress router 110A receives a multipoint L2 frame 52 from client device 100A. The multipoint L2 frame 52 includes a multipoint source MAC address specifying client device 100A and a multipoint destination MAC address specifying client devices 100B to 100E. As described in more detail below, ingress router 110A determines one or more egress routers 110 connected via L2 client network 140 to the multipoint receiver device specified by the multipoint L2 frame 52. For example, regarding... Figure 1B The ingress router 110A determines that router 110F is the egress router for client equipment 100D to 100E and router 110I is the egress router for client equipment 100B to 100C.

[0071] In some examples, to determine one or more egress routers 110 connected to the multipoint receiver device specified by the multipoint L2 frame 52, the ingress router 110A maintains a list of source bridges and corresponding egress routers 110 connected to the receivers associated with the source bridges. In this example, the ingress router 110A cross-references the source bridges specified by the multipoint L2 frame 52 with corresponding entries in the stored list of source bridges to determine which egress routers 110 are connected to the receiver devices associated with the source bridges specified by the multipoint L2 frame 52.

[0072] In some examples, in order to determine one or more egress routers 110 connected to the multipoint receiver device specified by the multipoint L2 frame 52, the ingress router 110A queries a central repository that maintains service and topology state information for each router 110. Figures 1A to 1B (Not depicted in the text), such as a server. The ingress router 110A obtains information about one or more egress routers 110 that are connected to the multipoint receiver device specified by the multipoint L2 frame 52.

[0073] In some examples, to determine one or more egress routers 110 connected to the multipoint receiver device specified by the multipoint L2 frame 52, the ingress router 110A generates unicast L3 packets for the multipoint L2 frame 52 (as described in more detail below) and floods the unicast L3 packets to each router 110 of the service provider network 150. In some examples, the ingress router 110A generates unicast L3 packets and floods them only to those routers 110 connected to the L2 client network 140 associated with the source bridge specified by the multipoint L2 frame 52.

[0074] In some examples, to determine one or more egress routers 110 connected to a multipoint receiver device specified by multipoint L2 frame 52, ingress router 110A determines that the multipoint destination MAC address specified by multipoint L2 frame 52 includes the MAC address of an unknown receiver device (e.g., multipoint L2 frame 52 is an unknown unicast Ethernet frame). In response to determining that the multipoint destination MAC address includes the MAC address of an unknown receiver device, ingress router 110A performs MAC learning to identify the unknown receiver device. For example, ingress router 110A can perform MAC learning by generating unicast L3 packets that encapsulate L2 packets including ARP requests using the aforementioned technique of session-based routing with encapsulated non-session-based L2 packets. As another example, ingress router 110A can perform MAC learning via Border Gateway Protocol (BGP). Through the MAC learning process, ingress router 110A can identify unknown receiver devices. Furthermore, when using, for example, ARP, only unknown receiver devices respond to ARP requests. This also means that only the egress router 110 connected to the unknown receiver device forwards the ARP response, allowing the ingress router 110A to store an indication that the egress router 110, which forwards the ARP response, is connected to the (now identified) unknown receiver device. The ingress router 110A can then forward unicast L3 packets of multipoint L2 frames 52 to the egress router 110 that forwarded the ARP response.

[0075] Ingress router 110A forms distinct unicast sessions with each egress router 110 that is determined to be connected to at least one receiver device. For example, ingress router 110A generates a first unicast L3 packet 50A for a multipoint L2 frame 52 and sends the unicast L3 packet 50A to egress router 110I. The first unicast L3 packet 50A includes an L3 header, a session identifier, and an L3 payload. The L3 header specifies the source IP address and source port of ingress router 110A, and the destination IP address and destination port of the next-hop peer router 110 (e.g., router 110B) that serves as the next hop to egress router 110I. The session identifier identifies the session between ingress router 110A and egress router 110I. Ingress router 110A forwards the first unicast L3 packet 50A to router 110B, which in turn forwards it to router 110C, and so on, until egress router 110I receives the first unicast L3 packet 50A. In response to receiving the first unicast L3 packet 50A, egress router 110I generates a multicast L2 frame 52 and copies it to client devices 100B and 100C.

[0076] In some examples, ingress router 110A utilizes the aforementioned techniques for point-to-point L2 network extension on an L3 network using metadata to generate unicast L3 packets 50A. For example, router 110A can generate unicast L3 packets 50A from a multipoint L2 frame 52, including a first part and a second part of metadata. The first part of the metadata includes the source MAC address of the multipoint client device 100A and the destination MAC addresses of the multipoint receiver client devices 100B to 100E obtained from the L2 frame. The second part of the metadata includes the session identifier of the multipoint L2 frame 52. Router 110A can use the second part of the metadata, including the session identifier, to perform session-based routing of the unicast L3 packets 50A from the multipoint L2 frame 52. Furthermore, router 110I, which is connected to client devices 100B to 100C via L2 client network 140B, can use the first part of the metadata of unicast L3 packet 50A to generate multipoint L2 frame 52, so that router 110I can copy multipoint L2 frame 52 to client devices 100B to 100C.

[0077] In some examples, ingress router 110A utilizes the aforementioned techniques for encapsulating point-to-point L2 network extensions on an L3 network to generate unicast L3 packets 50A. For example, router 110A can generate unicast L3 packets 50A including metadata from multipoint L2 frames 52 destined for multipoint receiver client devices 100B to 100E. This metadata includes a placeholder session identifier for the multipoint L2 frame 52 and an L3 payload encapsulating the multipoint L2 frame 52. Router 110A can use the metadata including the placeholder session identifier to perform session-based routing of unicast L3 packets 50A from the multipoint L2 frame 52. Furthermore, router 110I, connected to client devices 100B to 100C via L2 client network 140B, can decapsulate the unicast L3 packets 50A to obtain multipoint L2 frames 52, allowing router 110I to replicate the multipoint L2 frames 52 to client devices 100B to 100C.

[0078] Additionally, ingress router 110A generates a second unicast L3 packet 50B for a multipoint L2 frame 52 and sends the unicast L3 packet 50B to egress router 110F. The second unicast L3 packet 50B includes an L3 header, a session identifier, and an L3 payload. The L3 header specifies the source IP address and source port of ingress router 110A, and the destination IP address and destination port of the next-hop peer router 110 (e.g., router 110B) that serves as the next hop to egress router 110F. The session identifier identifies the session between ingress router 110A and egress router 110F. Ingress router 110A forwards the second unicast L3 packet 50B to router 110B, which in turn forwards it to router 110C, etc., until egress router 110F receives the second unicast L3 packet 50B. In response to receiving the second unicast L3 packet 50B, the egress router 110F generates a multipoint L2 frame 52 and copies the multipoint L2 frame 52 to the client devices 100D and 100E in a manner similar to that described above with respect to router 110I.

[0079] Therefore, as depicted in the foregoing example, the multipoint L2 frame 52 is destined for four receiver devices (e.g., client devices 100B to 100E). However, according to the technology of this disclosure, the ingress router 110A generates only two unicast L3 packets 50A to 50B (e.g., each corresponding to a corresponding egress router 110F, 110I). Thus, the ingress router 110A can selectively forward the unicast L3 packets to only those egress routers connected to the receiver client devices, thereby avoiding flooding the L3 packets corresponding to the multipoint L2 packet 52 to each router 110 of the L3 service provider network 150. Therefore, the ingress router 110A can significantly reduce the number of L3 packets generated in response to receiving the multipoint L2 frame 52 (e.g., by reducing the number of L3 packets from one for each L2 multipoint receiver to one for connection to at least one L2 multipoint receiver).

[0080] Therefore, the technology disclosed herein enables ingress router 110A to receive multipoint L2 frames 52 and forward only a single L3 packet for each egress router 110 of the multipoint frame connected to at least one receiver device connected to the multipoint L2 frame. Thus, such a router, operating as described herein, can reduce the number of L3 packets replicated for multipoint L2 frames, thereby reducing L3 traffic forwarded on the L3 service provider network 150 when expanding multipoint L2 services on the service provider network 150. Therefore, the router, operating as described herein, can reduce resource consumption and increase the scalability of the L3 network when expanding multipoint L2 services. Furthermore, the technology disclosed herein enables the application of L3 service engineering to multipoint L2 services, particularly session-based routing technologies such as service engineering, failover operations, and stateful services. Therefore, the technology disclosed herein can improve the reliability and redundancy of multipoint L2 frames in an L2 network expanded over an L3 network. Moreover, such a technology as described herein can provide greater efficiency and scalability for an L2 network expanded over an L3 network.

[0081] The techniques disclosed herein can also extend multipoint L2 services from L2 networks to L3 networks without using tunneling or packet encapsulation. For example, the techniques described herein can allow routers to forward L3 packets of multipoint L2 frames over an L3 network without using tunneling such as GRE, to encapsulate L2 / L3 packets within another IP packet for transmission over the IP network. Therefore, by eliminating the overhead associated with the use of tunneling and / or encapsulation, the techniques disclosed herein can significantly reduce network congestion and resource consumption of L2 networks extended over L3 networks, and improve network latency and bandwidth in such networks. Furthermore, by eliminating the need to use tunneling or encapsulation to extend L2 networks to L3 networks, the techniques disclosed herein can avoid the need to use customer edge devices to convert L2 customer services within the L2 network to L3 services suitable for forwarding on the L3 service provider network.

[0082] Figure 2 This is a block diagram illustrating an example router 110 according to the technology of this disclosure. Typically, router 110 can be... Figures 1A to 1B This is an example of one of routers 110. In this example, router 110 includes interface cards 226A to 226N (“IFC226”) that receive packets via inbound links 228A to 228N (“inbound links 228”) and transmit packets via outbound links 230A to 230N (“outbound links 230”). IFC 226 is typically coupled to links 228 and 230 via multiple interface ports. Router 110 also includes a control unit 202 that determines the route of received packets and forwards the packets accordingly via IFC226.

[0083] Control unit 202 may include routing engine 204 and packet forwarding engine 222. Routing engine 204 operates as the control plane of router 110 and includes an operating system that provides a multi-tasking operating environment to execute multiple concurrent processes. Routing engine 204 interacts with other routers (e.g., such as...) Figures 1A to 1B Router 110) communicates to establish and maintain computer networks (such as routers 110) Figures 1A to 1B The computer network system 2 is used to transmit network services between one or more client devices. The routing protocol daemon (RPD) 208 of the routing engine 204 executes software instructions to implement one or more control plane network protocols 212. For example, protocol 212 may include one or more routing protocols, such as Internet Group Management Protocol (IGMP) 221 and / or BGP 220, for exchanging routing information with other routing devices and for updating the Routing Information Base (RIB) 206, Multiprotocol Label Switching (MPLS) protocol 214, and other routing protocols. Protocol 212 may also include one or more communication session protocols, such as TCP, UDP, TLS, or ICMP.

[0084] RIB 206 can describe the topology of the computer network where router 110 resides, and may also include routes through a shared tree in the computer network. RIB 206 describes various routes within the computer network, and the appropriate next hop for each route (i.e., the adjacent routing devices along each route). Routing engine 204 analyzes the information stored in RIB 206 and generates forwarding information stored in Forwarding Information Base (FIB) 224 for forwarding engine 222. FIB 224 can associate, for example, a network destination with a specific next hop and corresponding IFC 226, as well as the physical output port of output link 230. FIB 224 can be a radix tree programmed into a dedicated forwarding chip, a series of tables, a complex database, a linked list, a flat file, or various other data structures.

[0085] FIB 224 may also include lookup structures. A lookup structure can provide one or more values ​​given a key such as an address. In some examples, the one or more values ​​can be one or more next hops. A next hop can be implemented as microcode that performs one or more operations when executed. One or more next hops can be "chained" such that a set of chained next hops performs a set of operations on each of its distinct next hops when executed. Examples of such operations may include applying one or more services to a packet, dropping a packet, and / or forwarding a packet using an interface and / or an interface identified by one or more next hops.

[0086] Session information 235 stores information used to identify a session. In some examples, session information 235 is in the form of a session table. For example, service information 232 includes one or more entries specifying a session identifier. In some examples, the session identifier includes one or more of the source address, source port, destination address, destination port, or protocol associated with the forward and / or reverse flow of the session. As described above, when routing engine 204 receives data from client device 100A and is destined for... Figures 1A to 1B When client device 100B forwards packets in a packet flow, routing engine 204 determines whether the packet belongs to a new session (e.g., whether it is the "first" packet or "preamble" packet of session 40). To determine whether a packet belongs to a new session, routing engine 204 checks whether session information 235 includes an entry corresponding to the source address, source port, destination address, destination port, and protocol of the first packet. If the entry exists, the session is not a new session. If the entry does not exist, the session is new, and routing engine 204 generates a session identifier for the session and stores the session identifier in session information 235. Routing engine 204 can subsequently use the session identifier stored in session information 235 to identify whether subsequent packets belong to the same session.

[0087] Service information 232, stored by routing engine 204, identifies information about services associated with a session. In some examples, service information 232 is in the form of a service table. For example, service information 232 includes one or more entries specifying a service identifier and one or more of a source address, source port, destination address, destination port, or protocol associated with the service. In some examples, routing engine 204 can query service information 232 containing one or more of the source address, source port, destination address, destination port, or protocol of a received packet to determine the service associated with the session. For example, routing engine 204 can determine the service identifier based on the correspondence between the source address, source port, destination address, destination port, or protocol in service information 232 and the source address, source port, destination address, destination port, or protocol specified by the session identifier. Routing engine 204 retrieves one or more service policies 234 corresponding to the identified service based on the service associated with the packet. Service policies may include, for example, path failover policies, Dynamic Host Configuration Protocol (DHCP) tagging policies, service engineering policies, priorities of network services associated with the session, etc. The routing engine 204 applies one or more service policies 234 corresponding to the service associated with the packet to the packet.

[0088] According to the technology disclosed herein, router 110 performs session-based routing of multipoint L2 frames in an L2 network extended over an L3 service provider network. In some examples, router 110 can operate as Figures 1A to 1B Example of an ingress router 110A.

[0089] For example, control unit 202 receives a multipoint L2 frame 52 from source client device 100A. The multipoint L2 frame 52 specifies the source MAC address of client device 100A and the multipoint destination MAC addresses of client devices 100B to 100E. In some examples, the multipoint L2 frame 52 is an Ethernet broadcast frame, an unknown unicast Ethernet frame, or an Ethernet multicast frame. In this example, client device 100A operates as a multipoint source device, and client devices 100B to 100E operate as multipoint receiver devices.

[0090] Control unit 202 identifies one or more egress routers 110 connected to at least one of the receiver client devices 100B to 100E. Regarding Figures 1A to 1B For example, ingress router 110A identifies routers 110F and 110I as egress routers connected to receiver client devices 100B to 100E.

[0091] In some examples, to determine one or more egress routers 110 connected to the multipoint receiver device specified by the multipoint L2 frame 52, the control unit 202 maintains a list of source bridges and corresponding egress routers 110 connected to the receiver devices associated with the source bridges in the session information 235. In this example, the control unit 202 cross-references the source bridges specified by the multipoint L2 frame 52 with the corresponding entries in the stored list of source bridges in the session information 235 to determine which egress routers 110 are connected to the receiver devices associated with the source bridges specified by the multipoint L2 frame 52.

[0092] In some examples, in order to determine one or more egress routers 110 connected to the multipoint receiver device specified by the multipoint L2 frame 52, the control unit 202 queries the central repository that maintains the service and topology state information of each router 110. Figures 1A to 1B (Not depicted in the text), such as a server. The control unit 202 can query a central storage to obtain information about one or more egress routers 110 that are connected to a multipoint receiver device specified by the multipoint L2 frame 52. The control unit 202 stores the information in session information 235, which can operate as a local storage for service and topology status information.

[0093] In some examples, to determine one or more egress routers 110 connected to the multipoint receiver device specified by the multipoint L2 frame 52, the control unit 202 can select each router 110. The control unit 202 generates unicast L3 packets for the multipoint L2 frame 52 and forwards the unicast L3 packets to each router 110 (e.g., via one or more next-hop routers 110). This can also be referred to as “flooding” the unicast L3 packets to each router 110 of the service provider network 150. In some examples, the control unit 202 generates unicast L3 packets and floods them only to those routers 110 connected to the L2 customer network 140 associated with the source bridge specified by the multipoint L2 frame 52 of session information 235. By flooding the unicast L3 packets to each router 110 within the L3, the service provider network 150 control unit 202 can ensure that the egress routers 110 connected to the unknown receiver device 100 can receive the unicast L3 packets and forward the corresponding multipoint L2 frame 52 to the unknown receiver device 100. If and when the control unit 202 learns the MAC address of the unknown receiver device 100, the control unit 202 may then forward only unicast L3 packets to the egress router 110 connected to the unknown receiver device 100 and avoid flooding unicast L3 packets.

[0094] In some examples, to determine one or more egress routers 110 connected to a multipoint receiver device specified by multipoint L2 frame 52, control unit 202 determines that the multipoint destination MAC address specified by multipoint L2 frame 52 includes the MAC address of an unknown receiver device (e.g., multipoint L2 frame 52 is an unknown unicast Ethernet frame). In response to determining that the multipoint destination MAC address includes the MAC address of an unknown receiver device, control unit 202 performs MAC learning to identify the unknown receiver device. For example, control unit 202 can perform MAC learning by generating unicast L3 packets that encapsulate L2 packets including ARP requests using the described technique of session-based routing with encapsulated non-session-based L2 packets. In other examples, control unit 202 can perform MAC learning via Border Gateway Protocol (BGP).

[0095] For example, control unit 202 can generate a second unicast L3 packet encapsulating an L2 packet including an ARP request. Control unit 202 can forward the second unicast L3 packet to each router 110. An egress router connected to an unknown receiver device can decapsulate the L3 packet to obtain an L2 packet including an ARP request and forward the L2 packet including the ARP request to the unknown receiver device. The unknown receiver device can use the second L2 packet to reply to the ARP request, which includes a response to the ARP request for the specified MAC address of the unknown receiver device. The egress router receives the second L2 packet and encapsulates it with a third unicast L3 packet. The egress router then forwards the third unicast L3 packet to router 110, which includes the second L2 packet including a response to the ARP request. Control unit 202 receives the third unicast L3 packet and stores the MAC address of the unknown receiver device, enabling control unit 202 to forward the unicast L3 packet for multipoint L2 frames 52 to the correct destination.

[0096] Through the MAC learning process, control unit 202 can identify unknown receiver devices. Furthermore, when using, for example, ARP, only the unknown receiver device responds to ARP requests. This also means that only the egress router 110 connected to the unknown receiver device forwards the ARP response, allowing control unit 202 to store an indication that the egress router 110 forwarding the ARP response is connected to the (now identified) unknown receiver device. Control unit 202 can then forward unicast L3 packets of multipoint L2 frames 52 to the egress router 110 that forwarded the ARP response.

[0097] about Figures 1A to 1BFor example, control unit 202 generates unicast L3 packets for each egress router 110 that is determined to be connected to at least one of the receiver client devices 100B to 100E. For instance, control unit 202 generates a first unicast L3 packet 50A for a multipoint L2 frame 52. The first unicast L3 packet 50A includes an L3 header, a session identifier, and an L3 payload. The L3 header specifies the source IP address and source port of the ingress router 110A, and the destination IP address and destination port of the next-hop peer router 110 (e.g., router 110B) that serves as the next hop towards the egress router 110I. The session identifier identifies the session between the ingress router 110A and the egress router 110I.

[0098] As another example, control unit 202 generates a second unicast L3 packet 50B for a multipoint L2 frame 52. The second unicast L3 packet 50B includes an L3 header, a session identifier, and an L3 payload. The L3 header specifies the source IP address and source port of ingress router 110A, and the destination IP address and destination port of the next-hop peer router 110 (e.g., router 110B) that serves as the next hop towards egress router 110F. The session identifier identifies the session between ingress router 110A and egress router 110F.

[0099] In some examples, control unit 202 utilizes the aforementioned techniques for extending point-to-point L2 networks on L3 networks using metadata to generate unicast L3 packets. For example, control unit 202 generates unicast L3 packets to include a first part and a second part of metadata. The first part of the metadata includes the source MAC address of the source client device 100A and the multipoint destination MAC addresses of the receiving client devices 100B to 100E. The second part of the metadata includes a session identifier. Furthermore, the L3 payload includes the L2 payload of the multipoint L2 frame 52.

[0100] In some examples, control unit 202 utilizes the aforementioned techniques for encapsulating point-to-point L2 network extensions on an L3 network to generate unicast L3 packets. For example, control unit 202 generates unicast L3 packets such that the session identifier of the unicast L3 packet includes a placeholder session identifier of a multipoint L2 frame 52. The placeholder session identifier includes a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a placeholder network protocol. Furthermore, the L3 payload of the unicast L3 packet includes a multipoint L2 frame 52, such that the unicast L3 packet encapsulates the multipoint L2 frame 52.

[0101] Control unit 202 forwards unicast L3 packets to each egress router 110 identified as connected to one or more receiver client devices 100B to 100E via L3 service provider network 150. For example, control unit 202 forwards a first unicast L3 packet 50A to router 110B via IFC 226, router 110B then forwards the first unicast L3 packet 50A to router 110C, etc., until egress router 110I receives the first unicast L3 packet 50A. As another example, control unit 202 forwards a second unicast L3 packet 50B to router 110B via IFC 226, router 110B then forwards the second unicast L3 packet 50B to router 110C, etc., until egress router 110F receives the second unicast L3 packet 50B.

[0102] In some examples, router 110 operates as follows: Figures 1A to 1B This example demonstrates the operation of one of the 110F or 110I egress routers. For simplicity, the following example is about... Figures 1A to 1B The egress router 110I is described. However, router 110 can operate in a substantially similar manner as egress router 110F or any other egress router.

[0103] In this example, control unit 202 receives, for example, a unicast L3 packet 50A from router 110H. The unicast L3 packet 50A includes an L3 header, a session identifier, and an L3 payload. The L3 header specifies the source IP address and source port of the preceding router 110 (e.g., router 110H) and the destination IP address and destination port of one of the IFC 226 parameters (e.g., operating as egress router 110I). The session identifier identifies the session between ingress router 110A and router 110 (e.g., operating as egress router 110I).

[0104] In some examples, control unit 202 utilizes the aforementioned techniques for point-to-point L2 network extension on an L3 network using metadata to generate multipoint L2 frames 52 from unicast L3 packets 50A. For example, unicast L3 packets 50A include L3 packets containing a first portion of metadata, which includes the source MAC address of the source client device 100A and the multipoint destination MAC addresses of the receiving client devices 100B to 100E. Control unit 202 generates multipoint L2 frames 52 based on the source MAC address of the source client device 100A and the multipoint destination MAC addresses of the receiving client devices 100B to 100E in the first portion of the metadata, as well as the L3 payload of the unicast L3 packets 50A.

[0105] In some examples, control unit 202 utilizes the aforementioned technique of using encapsulated point-to-point L2 network extensions on an L3 network to generate multipoint L2 frames 52 from unicast L3 packets 50A. For example, unicast L3 packets 50A include a placeholder session identifier for the multipoint L2 frame 52 and an L3 payload encapsulating the multipoint L2 frame 52. Control unit 202 obtains the multipoint L2 frame 52 from the L3 payload of the unicast L3 packets 50A.

[0106] Control unit 202 forwards multipoint L2 frame 52 to each multipoint receiver device to which router 110 is connected via IFC 226. For example, control unit 202 replicates multipoint L2 frame 52 to client devices 100B and 100C via L2 client network 140B.

[0107] Figures 3A to 3C This is a block diagram illustrating the data structure of a multipoint L2 frame and the data structure of a unicast L3 packet generated from a multipoint L2 frame according to the technology of this disclosure.

[0108] Figure 3A This is a block diagram illustrating the data structure of a multicast L2 frame 300A. In some examples, the multicast L2 frame 300A includes multicast Ethernet frames, such as Ethernet broadcast frames, unknown unicast Ethernet frames, or Ethernet multicast frames. The multicast L2 frame 300A includes an L2 header 302 and a data payload 308. In some examples, the L2 header 302 specifies a source MAC address 304 indicating the device initiating the multicast L2 frame 300A and a destination MAC address 306 indicating one or more devices to which the multicast L2 frame 300A is destined. In some examples, the multicast L2 frame 300A includes Ethernet frames.

[0109] In some examples where the Multipoint L2 Frame 300A is an Ethernet frame, the Multipoint L2 Frame 300A may additionally include a preamble, EtherType, and Frame Check Sequence (FCS). Figure 3A (Not depicted in the text). In some examples, L2 header 302 includes an IEEE 802.1Q VLAN tag, which specifies the VLAN to which the multipoint L2 frame 300A belongs. In some examples, L2 header 302 includes an IEEE 802.1ad Q-in-Q tag, which specifies multiple "stacked" VLANs to which the multipoint L2 frame 300A belongs.

[0110] As mentioned above Figure 1A-1B In some examples, router 110A receives multipoint L2 frames 300A from client device 100A. In this example, source MAC address 304 specifies the MAC address of client device 100A and destination multipoint MAC address 306 specifies one or more client devices 100B to 110D.

[0111] The multi-point L2 frame 300A is depicted for illustrative purposes only. The techniques disclosed herein can be applied to the use of... Figure 3A The format depicted in the text is different from other types of L2 frames.

[0112] Figure 3B This is a block diagram illustrating the data structure of a unicast L3 packet 300B generated from a multipoint L2 frame 300A according to the technology of this disclosure. The unicast L3 packet 300B includes an L3 header 310, a first part of metadata (first metadata 322), a second part of metadata (second metadata 326), and a data payload 308.

[0113] The L3 header 310 specifies the source router IP address 312 of the device initiating the unicast L3 packet 300B, the source port 314 of the port from which the unicast L3 packet 300B originates, the destination router IP address 316 of the device to which the unicast L3 packet 300B is destined, the destination port 318 of the port from which the unicast L3 packet 300B is destined, and the router IP protocol 320 of the protocol used by the unicast L3 packet 300B. In some examples, the router IP protocol 320 specifies either TCP or UDP.

[0114] The first metadata 322 includes a source MAC address 304 indicating the device initiating the multipoint L2 frame 300A and a destination MAC address 306 indicating one or more devices to which the multipoint L2 frame 300A is destined. As described above, Figures 1A to 1B Router 110A can generate different unicast L3 packets 300B for each peer router 110, including at least one destination device specified by the destination MAC address 306 of the multipoint L2 frame 300A.

[0115] The source MAC address 304 and destination multipoint MAC address 306 of the first metadata 322 of the unicast L3 packet 300B correspond to the source MAC address 304 and destination multipoint MAC address 306 of the L2 header 302 of the multipoint L2 frame 300A.

[0116] In some examples, the first metadata 322 may further specify other information that routers 110F and 110I can use to recover multipoint L2 frames 300A from unicast L3 packets 300B and forward multipoint L2 frames 300A to client devices 100B to 100E. Figure 3B(Not explicitly described in the text). For example, the first metadata 322 can specify VLAN tags for the Virtual Local Area Networks (VLANs) to which client devices 100B through 100E are assigned. In some examples, the first metadata 322 can specify VXLAN tags for the Virtual Extensible Local Area Networks (VXLANs) to which client devices 100B through 100E are assigned. In some examples, the first metadata 322 can specify VLAN Q-in-Q tag stacking that includes multiple VLAN tags for multiple stacked VLANs to which client devices 100B-100E are assigned. In some examples, the first metadata 322 can specify a bridge identifier for the destination bridge of the multipoint L2 frame 300A.

[0117] The second metadata 326 specifies the source client IP address 328, source client port 330, destination client IP address 332, destination client port 334, and client IP protocol 336. The source client IP address 328 and source client port 330 together include L3 address information corresponding to the source MAC address 304 of the device initiating the multicast L2 frame 300A. The destination client IP address 332 and destination client port 334 together include L3 address information corresponding to the destination MAC address 306 of one or more devices to which the multicast L2 frame 300A is destined. In some examples, the destination client IP address 332 is a multicast IP address. The client IP protocol 336 specifies the protocol used by the source client IP address 328, source client port 330, destination client IP address 332, and destination client port 334. In some examples, the client IP protocol 336 specifies either TCP or UDP.

[0118] According to the technology disclosed herein, an ingress router can generate a unicast L3 packet 300B for each egress router in response to receiving a multipoint L2 frame 300A, the egress router being connected to at least one multipoint receiver device specified by the destination multipoint MAC address 306 of the multipoint L2 frame 300A. Regarding Figures 1A to 1B For example, router 110A receives a multipoint L2 frame 300A, where the destination multipoint MAC address 306 designates client devices 100B to 100E as multipoint receivers, and router 110I is connected to client devices 100B to 100C via L2 client network 140B, and router 110F is connected to client devices 100D to 100E via L2 client network 140C. Router 110A generates a first unicast L3 packet 300B for forwarding to router 100I and a second unicast L3 packet 300B for forwarding to router 110F.

[0119] In the example above, source router IP address 312 and source port 314 specify the IP address of router 110A and the port on router 110A used to forward unicast L3 packets 300B, respectively. Destination router IP address 316 and destination port 318 specify the IP address and port of router 110B that are destined for unicast L3 packets 300B, respectively. Figures 1A to 1B Routers 110F and 110I can use the first metadata 322 to recover multipoint L2 frames 300A from unicast L3 packets 300B for forwarding to client devices 100B to 100E. Furthermore, Figures 1A to 1B Router 110 can use the second metadata 326 as a session identifier to identify the session associated with multipoint L2 frame 300A and / or unicast L3 packet 300B in order to perform session-based routing of multipoint L2 frame 300A and / or unicast L3 packet 300B.

[0120] Figure 3C This is a block diagram illustrating the data structure of a unicast L3 packet 300C generated for a non-session-based L2 frame 354 according to the techniques of this disclosure. The unicast L3 packet 300C includes an L3 header 310, metadata 340, and an L3 data payload 352. The L3 data payload 352 includes a non-session-based L2 frame 354, such that the unicast L3 packet 300C encapsulates a multipoint L2 frame 300A.

[0121] The L3 header 310 specifies the source router IP address 312 indicating the device initiating the unicast L3 packet 300C, the source port 314 indicating the port of the initiating device from which the unicast L3 packet 300C departs, the destination router IP address 316 indicating the device destined for the unicast L3 packet 300C, the destination port 318 indicating the port of the destination device, and the router IP protocol 320 specifying the protocol used by the unicast L3 packet 300C. In some examples, the router IP protocol 312 specifies either TCP or UDP.

[0122] As referenced above Figures 1A to 1B As described, in some examples, router 110A generates unicast L3 packets 300C in response to receiving a non-session-based L2 frame 354. In some examples, router 110A generates L2 frame 354 in response to receiving a multipoint L2 frame such as multipoint L2 frame 300A and determining that the destination multipoint MAC address 306 includes one or more MAC addresses for an unknown recipient device. Router 110A can therefore generate unicast L3 packets 300C and / or non-session-based L2 frames 354 to resolve one or more MAC addresses for an unknown recipient device. In some examples, the non-session payload 362 of the non-session-based L2 frame 354 includes an ARP request, a CDP request, or an LLDP request.

[0123] As referenced above Figures 1A to 1B As described, in some examples, router 110A generates a unicast L3 packet 300C in response to receiving a non-session-based L2 frame 354. In this example, source router IP address 312 and source port 314 specify the IP address of router 110A and the port used by router 110A to forward the unicast L3 packet 300C, respectively. Destination router IP address 316 and destination port 318 specify the IP address and port of router 110B to which the unicast L3 packet 300C is destined.

[0124] Metadata 340 specifies a placeholder session identifier 370, which includes a placeholder source IP address 342, a placeholder source port 344, a placeholder destination IP address 346, a placeholder destination port 348, and a placeholder IP protocol 350. In some examples, the placeholder source IP address 342 is the IP address of the LAN interface connected to that LAN interface. Figures 1A to 1B Router 110A receives L2 frame 354, and placeholder source port 344 is the port of the LAN interface through which router 110A receives L2 frame 354. In some examples, placeholder destination IP address 346 is the IP address of the LAN interface of the next-hop router 110 (e.g., router 110B) to which router 110A forwards unicast L3 packet 300C, and placeholder destination port 348 is the port of the LAN interface of the next-hop router 110 (e.g., router 110B) to which router 110A forwards unicast L3 packet 300C. In some examples, placeholder network protocol 350 is UDP. In other examples, placeholder network protocol 350 is TCP. As described above, Figures 1A to 1B Router 110 can use placeholder session identifier 370 to perform session-based routing of L2 frame 354 and / or unicast L3 packet 300C, even if L2 frame 354 is a non-session-based L2 frame that includes a non-session-based payload 362.

[0125] Figure 4 This is a flowchart illustrating example operations according to the technology disclosed herein. For convenience, Figure 4 It is about Figures 1A to 1B Described.

[0126] Ingress router 110A receives multipoint L2 frame 52 (402) from source client device 100A. Multipoint L2 frame 52 specifies the source MAC address of client device 100A and the multipoint destination MAC addresses of receiver client devices 100B to 100E. In some examples, multipoint L2 frame 52 is an Ethernet broadcast frame, an unknown unicast Ethernet frame, or an Ethernet multicast frame. In this example, client device 100A operates as the multipoint source device, and client devices 100B to 100E operate as multipoint receiver devices.

[0127] Ingress router 110A identifies one or more egress routers 110 (404) connected to at least one of the receiver client devices 100B to 100E. For example, ingress router 110A identifies routers 110F and 110I as egress routers connected to receiver client devices 100B to 100E.

[0128] Ingress router 110A generates unicast L3 packets (406) for each egress router 110 that is determined to be connected to at least one of the receiver client devices 100B to 100E. Furthermore, ingress router 110A forwards unicast L3 packets (408) via L3 service provider network 150 to each egress router 110 that is determined to be connected to one or more receiver client devices 100B to 100E. For example, ingress router 110A generates a first unicast L3 packet 50A for a multipoint L2 frame 52 and sends the unicast L3 packet 50A to egress router 110I. The first unicast L3 packet 50A includes an L3 header, a session identifier, and an L3 payload. The L3 header specifies the source IP address and source port of ingress router 110A and the destination IP address and destination port of the next-hop peer router 110 (e.g., router 110B) that is the next hop to egress router 110I. The session identifier identifies the session between ingress router 110A and egress router 110I. Ingress router 110A forwards the first unicast L3 packet 50A to router 110B, which in turn forwards the first unicast L3 packet 50A to router 110C, and so on, until egress router 110I receives the first unicast L3 packet 50A.

[0129] As another example, ingress router 110A generates a second unicast L3 packet 50B for a multipoint L2 frame 52 and sends the unicast L3 packet 50B to egress router 110F. The second unicast L3 packet 50B includes an L3 header, a session identifier, and an L3 payload. The L3 header specifies the source IP address and source port of ingress router 110A, and the destination IP address and destination port of the next-hop peer router 110 (e.g., router 110B) that serves as the next hop to egress router 110F. The session identifier identifies the session between ingress router 110A and egress router 110F. Ingress router 110A forwards the second unicast L3 packet 50B to router 110B, which in turn forwards it to router 110C, and so on, until egress router 110F receives the second unicast L3 packet 50B.

[0130] Each egress router 110, connected to at least one of the receiver client devices 100B to 100E, receives unicast L3 packets (410) via the L3 service provider network 150. Furthermore, in response to receiving the unicast L3 packets, the egress router 110 generates a multicast L2 frame 52 (412) and forwards the multicast frame 52 to each receiver client device 100 connected to the egress router 110 (414). For example, egress router 110I receives a first unicast L3 packet 50A. Egress router 110I generates a multicast L2 frame 52 in response to receiving the first unicast L3 packet 50A. Furthermore, egress router 110I replicates the multicast L2 frame 52 to client devices 100B and 100C. Additionally, egress router 110F receives a second unicast L3 packet 50B. Egress router 110F generates a multicast L2 frame 52 in response to receiving the second unicast L3 packet 50B. The outgoing router 110F copies the multipoint L2 frame 52 to the client devices 100D and 100E.

[0131] The techniques described in this disclosure can be implemented, at least in part, in hardware, software, firmware, or any combination thereof. For example, aspects of the described techniques can be implemented within one or more processors, including one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuitry, and any combination of such components. The terms "processor" or "processing circuitry" can generally refer to any of the foregoing logic circuitry, alone or in combination with other logic circuitry or any other equivalent circuitry. Control units, including hardware, can also perform one or more of the techniques of this disclosure.

[0132] Such hardware, software, and firmware can be implemented within the same device or in separate devices to support the various operations and functions described in this disclosure. Furthermore, any described unit, module, or component can be implemented together or separately as discrete but interoperable logical devices. Describing different features as modules or units is intended to highlight different functional aspects and does not necessarily mean that such modules or units must be implemented by separate hardware or software components. Rather, the functionality associated with one or more modules or units can be performed by separate hardware or software components or integrated within common or separate hardware or software components.

[0133] The techniques described in this disclosure can also be embodied or encoded in a computer-readable medium, such as a computer-readable storage medium including instructions. Instructions embedded or encoded in a computer-readable storage medium can cause a programmable processor or other processor to perform the method, for example, when the instructions are executed. Computer-readable storage media can include random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, hard disk, CD-ROM, floppy disk, magnetic tape cassette, magnetic media, optical media, or other computer-readable media.

[0134] Various examples have been described. These and other examples are within the scope of the appended claims.

Claims

1. A computer networking method, comprising: A multipoint L2 frame, which is a multi-router network consisting of multiple routers, is received by an ingress router and a source device connected to the ingress router via a first Open Systems Interconnection (OSI) Layer 2 L2 network, and is destined for one or more receiver devices. The multipoint L2 frame includes an L2 header and an L2 payload, wherein the multiple routers form an OSI model Layer 3 L3 network. The ingress router and the L2 header of the multipoint L2 frame determine one or more egress routers of the plurality of routers connected to the one or more receiver devices via one or more second L2 networks; The ingress router generates unicast L3 packets for each of the determined one or more egress routers connected to the one or more receiver devices, the unicast L3 packets comprising: The L3 header specifies the source Internet Protocol IP address and source port of the ingress router and the destination IP address and destination port of the next-hop peer routers of the plurality of routers, wherein the next-hop peer routers of the plurality of routers are the next hops toward the egress router. The session identifier for the unicast L3 packet, the session identifier identifying the session between the ingress router and the egress router; and L3 payload; and The ingress router forwards the unicast L3 packets corresponding to each of the one or more egress routers determined and connected to the one or more receiver devices to the corresponding next-hop peer router of the plurality of routers.

2. The method of claim 1, wherein the multipoint L2 frame comprises a multicast Ethernet frame.

3. The method of claim 1, wherein the multipoint L2 frame comprises a broadcast Ethernet frame.

4. The method according to claim 1, The multipoint L2 frame includes a Media Access Control (MAC) address for an unknown receiver device of the one or more receiver devices. Determining the one or more egress routers among the plurality of routers that are connected to the one or more receiver devices via one or more second L2 networks includes selecting each of the plurality of routers. Generating the unicast L3 packet for each of the determined one or more egress routers connected to the one or more receiver devices includes generating the unicast L3 packet for each of the plurality of routers, and This includes forwarding the generated unicast L3 packets corresponding to the egress router to the corresponding next-hop peer router of the plurality of routers for each of the determined one or more egress routers connected to the one or more receiver devices, and forwarding the generated unicast L3 packets corresponding to the router in the plurality of routers to the corresponding next-hop peer router of the plurality of routers.

5. The method according to claim 1, The multipoint L2 frame includes a Media Access Control (MAC) address for an unknown receiver device of the one or more receiver devices. The determination of the one or more egress routers of the plurality of routers connected to the one or more receiver devices via one or more second L2 networks includes performing MAC learning to learn the MAC address of the unknown receiver device for the one or more receiver devices, and The method further includes storing the MAC address for the receiver device by the ingress router.

6. The method of claim 5, wherein performing MAC learning to obtain the MAC address of the unknown receiver device for the one or more receiver devices comprises: The ingress router generates a second unicast L3 packet, which encapsulates an L2 packet including an Address Resolution Protocol (ARP) request. as well as The ingress router receives a third unicast L3 packet, which encapsulates an L2 packet that includes a response to the ARP request, the response including the MAC address of the receiver device for the one or more receiver devices.

7. The method according to any one of claims 1 to 6, The unicast L3 packet also includes a first part of metadata and a second part of metadata. The first part of the metadata includes the source media access control MAC address of the source device and the multipoint destination MAC address of the one or more receiver devices. The second part of the metadata includes the session identifier, and The L3 payload includes the L2 payload.

8. The method according to any one of claims 1 to 6, The session identifier for the unicast L3 packet includes a placeholder session identifier for the multipoint L2 frame, wherein the placeholder session identifier includes a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a placeholder network protocol. The L3 payload of the unicast L3 packet includes the multipoint L2 frame.

9. The method according to any one of claims 1 to 6, The one or more receiver devices mentioned above include a first receiver device and a second receiver device. The one or more egress routers identified as being connected to the one or more receiver devices via one or more second L2 networks include: Determine the first egress router of the plurality of routers connected to the first receiver device via the one or more second L2 networks; and Determine the second egress router of the plurality of routers connected to the first receiver device via the one or more second L2 networks, and Generating unicast L3 packets for each of the determined one or more egress routers connected to the one or more receiver devices includes generating a first unicast L3 packet and a second unicast L3 packet. The unicast L3 packets generated by forwarding include: Forward the first unicast L3 packet to the first next-hop peer router targeting the first egress router; and The second unicast L3 packet is forwarded to the second next-hop peer router targeting the second egress router.

10. An ingress router for a plurality of routers, the ingress router including processing circuitry configured to: A source device connected to the ingress router via a first Open Systems Interconnection (OSI) Layer 2 L2 network receives a multipoint L2 frame destined for one or more receiver devices, the multipoint L2 frame including an L2 header and an L2 payload, wherein the multiple routers form an OSI model Layer 3 L3 network. Based on the L2 header of the multipoint L2 frame, determine one or more egress routers of the plurality of routers connected to the one or more receiver devices via one or more second L2 networks; A unicast L3 packet is generated for each of the determined one or more egress routers connected to the one or more receiver devices, the unicast L3 packet comprising: The L3 header specifies the source Internet Protocol IP address and source port of the ingress router and the destination IP address and destination port of the next-hop peer routers of the plurality of routers, wherein the next-hop peer routers of the plurality of routers are the next hops toward the egress router. The session identifier for the unicast L3 packet, the session identifier identifying the session between the ingress router and the egress router; and L3 payload; and For each of the determined one or more egress routers connected to the one or more receiver devices, the generated unicast L3 packets corresponding to the egress router are forwarded to the corresponding next-hop peer router of the plurality of routers.

11. The ingress router of claim 10, wherein the multipoint L2 frame comprises a multicast Ethernet frame.

12. The ingress router of claim 10, wherein the multipoint L2 frame comprises a broadcast Ethernet frame.

13. The ingress router according to claim 10, The multipoint L2 frame includes a Media Access Control (MAC) address for an unknown receiver device of the one or more receiver devices. In order to determine the one or more egress routers of the plurality of routers connected to the one or more receiver devices via one or more second L2 networks, the processing circuitry is configured to perform MAC learning to learn the MAC address of the unknown receiver device for the one or more receiver devices. The ingress router further includes a storage device configured to store the MAC address for the receiver device.

14. The ingress router according to any one of claims 10 to 13, The unicast L3 packet also includes a first part of metadata and a second part of metadata. The first part of the metadata includes the source media access control MAC address of the source device and the multipoint destination MAC address of the one or more receiver devices. The second part of the metadata includes the session identifier, and The L3 payload includes the L2 payload.

15. The ingress router according to any one of claims 10 to 13, The session identifier for the unicast L3 packet includes a placeholder session identifier for the multipoint L2 frame, wherein the placeholder session identifier includes a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a placeholder network protocol. The L3 payload of the unicast L3 packet includes the multipoint L2 frame.

16. A computer networking method, comprising: An OSI model unicast Layer 3 (L3) packets are received by an egress router of a plurality of routers and from the preceding hop router of the plurality of routers, wherein the preceding hop router of the plurality of routers is the hop before the ingress router, wherein the plurality of routers form an L3 network, and wherein the unicast L3 packets include: The L3 header specifies the source Internet Protocol IP address and source port of the previous hop router and the destination IP address and destination port of the egress router. The session identifier for the unicast L3 packet, the session identifier identifying the session between the ingress router and the egress router; and L3 payload; and In response to receiving the unicast L3 packet, a multipoint OSI model Layer 2 L2 frame is generated destined for one or more receiver devices connected to the egress router via the L2 network. The multipoint OSI model L2 frame includes an L2 header and an L2 payload. The exit router forwards the multipoint OSI model L2 frame to each of the one or more receiver devices.

17. The method of claim 16, wherein the multipoint OSI model L2 frame comprises a multicast Ethernet frame.

18. The method of claim 16, wherein the multipoint OSI model L2 frame comprises a broadcast Ethernet frame.

19. The method according to any one of claims 16 to 18, The unicast L3 packet also includes a first part of metadata and a second part of metadata. The first part of the metadata includes the source media access control MAC address of the source device and the multipoint destination MAC address of the one or more receiver devices. The second part of the metadata includes the session identifier. The L3 payload includes the L2 payload, and The generation of the multipoint OSI model L2 frame includes generating the multipoint OSI model L2 frame based on the source MAC address and multipoint destination MAC address of the first part of the metadata and the L2 payload of the L3 payload.

20. The method according to any one of claims 16 to 18, The session identifier for the unicast L3 packet includes a placeholder session identifier for the multipoint OSI model L2 frame, wherein the placeholder session identifier includes a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a placeholder network protocol. The L3 payload of the unicast L3 packet includes the multipoint OSI model L2 frame, and Generating the multipoint OSI model L2 frame includes obtaining the multipoint OSI model L2 frame from the L3 payload of the unicast L3 group.

Citation Information

Patent Citations

  • Link status monitoring based on packet loss detection

    US10200264B2

  • Stateful load balancing in a stateless network

    US10277506B2

  • Network packet flow controller with extended session management

    US10432522B2

  • Network neighborhoods for establishing communication relationships between communication interfaces in an administrative domain

    US11165863B1

  • Layer-2 network extension over layer-3 network using encapsulation

    US11477115B2