Extending layer 2 networks over layer 3 networks using layer 2 metadata
By generating and forwarding L3 packets containing metadata on the L3 network, and using the metadata to specify L2 address information, session-based routing is achieved. This solves the network congestion and resource consumption problems when expanding the L2 network on the L3 network, and improves the efficiency and scalability of network expansion.
Patent Information
- Application Number
- CN202180044484.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-06-24
- Filing Date
- 2021-06-24
- Publication Date
- 2026-01-13
- Estimated Expiration
- 2041-06-24
AI Technical Summary
Existing technologies for extending L2 networks over L3 networks require the use of tunneling and encapsulation, which leads to network congestion, increased resource consumption, and longer network latency, and also fails to achieve efficient L3 service engineering to L2 service applications.
By generating and forwarding L3 packets containing metadata on the L3 network, using the metadata to specify L2 address information, tunneling and encapsulation are avoided, and session-based routing is implemented. The router uses the first part of the metadata as a session identifier to identify the session of the L3 packet and performs routing on the L3 network.
It reduces network congestion and resource consumption, improves the efficiency and scalability of network expansion, reduces network latency and bandwidth utilization, and enables the efficient application of L3 service engineering to L2 services.
Smart Images

Figure CN115943615B_ABST
Abstract
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 general, this disclosure describes techniques for performing session-based routing on an L2 network extended over a Layer 3 network. In one example, a first L2 network connects a first client device to a first router, a second L2 network connects a second client device to a second router, and an L3 network connects the first router of the first L2 network to the second router of the second L2 network. The first and second routers can provide session-based routing. For example, the first router receives an L2 frame destined for the second client device from the first client device. The L2 frame includes an L2 header and a payload, wherein the L2 header specifies the source Media Access Control (MAC) address of the first client device and the destination MAC address of the second client device. Typically, routers in the L2 network use tunneling protocols, such as Generic Routing Encapsulation (GRE) or other IP tunneling, to transmit L2 frames between L2 networks on an L3 network. Unlike L2 frames, which encapsulate L2 / L3 packets within another IP packet for transmission over an IP network, this technique describes a first router generating an L3 packet that includes a first portion of metadata containing L2 address information of both a first client device and a second client device, and sending the L3 packet to a second router so that the second router can generate an L2 frame containing an L2 header and a payload from the first portion of metadata including L2 address information, and forward the recovered L2 frame to the second client device via a second L2 network.
[0006] In one example, in response to receiving an L2 frame, the first router generates an L3 packet including an L3 header, a first part of metadata including L2 address information of both the first and second client devices, a second part of metadata including L3 address information of both the first and second client devices, and a payload. The L3 header specifies the source Internet Protocol (IP) address and source port of the first router, and the destination IP address and destination port of the second router. The first part of the metadata includes the source MAC address of the first client device and the destination MAC address of the second client device obtained from the L2 frame. The second part of the metadata includes the source IP address and source port of the first client device corresponding to the source MAC address of the first client device, and the destination IP address and destination port of the second client device corresponding to the destination MAC address of the second client device. The first router forwards the L3 packet including the first and second parts of the metadata to the second router via the L3 network. The second router receives the L3 packet and generates an L2 frame including an L2 header and a payload from the first part of the metadata. The second router forwards the recovered L2 frame to the second client device via the second L2 network.
[0007] In some examples, the first router uses the second part of the metadata as a session identifier to identify a session of L3 packets. This session includes forward flows originating from the first client device and destined for the second client device, and reverse flows originating from the second client device and destined for the first client device. The first router can use this session identifier to perform session-based routing of L3 packets on the L3 network.
[0008] The techniques disclosed herein can provide specific improvements to computer-related fields with practical applications of computer networks. For example, the techniques disclosed herein can enable the extension of L2 networks onto L3 networks without using tunneling or packet encapsulation. For instance, using metadata to specify L2 address information avoids the need to encapsulate L2 / L3 packets within another IP packet for transmission over an IP network using tunneling (e.g., GRE or other tunneling protocols). Therefore, by eliminating the overhead associated with the use of tunneling and / or encapsulation, the techniques disclosed herein can substantially reduce network congestion and resource consumption of L2 networks extended onto L3 networks, as well as improve network latency and bandwidth in such networks. Furthermore, the techniques disclosed herein can enable the engineering of L3 services into L2 services, particularly session-based routing techniques. Therefore, such techniques described herein can provide greater efficiency and scalability for L2 networks extended onto L3 networks.
[0009] In one example, this disclosure describes a method comprising: receiving an L2 frame destined for a second client device from a first client device connected to the first router via a first Open Systems Interconnection (OSI) Model Layer 2 (L2) network, the L2 frame including an L2 header specifying a source Media Access Control (MAC) address of the first client device and a destination MAC address of the second client device, wherein the first router is connected to the second router via an OSI Model Layer 3 (L3) network, and wherein the second router is connected to the second client device via a second L2 network; in response to receiving the L2 frame, generating an L3 packet by the first router, the L3 packet including: an L3 header specifying a source Internet Protocol (IP) address and source port of the first router and a destination IP address and destination port of the second router; a first portion of metadata including the source MAC address of the first client device and the destination MAC address of the second client device; a second portion of metadata including: a source IP address and source port of the first client device corresponding to the source MAC address of the first client device, and a destination IP address and destination port of the second client device corresponding to the destination MAC address of the second client device; and forwarding the L3 packet to the second router by the first router via the L3 network.
[0010] In another example, this disclosure describes a first router including processing circuitry configured to: receive an L2 frame destined for a second client device from a first client device connected to the first router via a first Open Systems Interconnection (OSI) Model Layer 2 (L2) network, the L2 frame including an L2 header specifying the Media Access Control (MAC) address of the first client device and the destination MAC address of the second client device, wherein the first router is connected to the second router via an OSI Model Layer 3 (L3) network, and wherein the second router is connected to the second client device via a second L2 network; in response to receiving the L2 frame, generate an L3 packet including: an L3 header specifying the source Internet Protocol (IP) address and source port of the first router and the destination IP address and destination port of the second router; a first portion of metadata including the source MAC address of the first client device and the destination MAC address of the second client device; a second portion of metadata including: the source IP address and source port of the first client device corresponding to the source MAC address of the first client device, and the destination IP address and destination port of the second client device corresponding to the destination MAC address of the second client device; and forward the L3 packet to the second router via the L3 network.
[0011] In another example, this disclosure describes a method comprising: receiving an L3 packet from a first router connected to the second router via an Open Systems Interconnection (OSI) Model Layer 3 (L3) network via a second router, wherein the first router is connected to a first client device via a first OSI Model Layer 2 (L2) network and the second router is connected to the second client device via a second L2 network, and wherein the L3 packet comprises: an L3 header specifying a source Internet Protocol (IP) address and source port of the first router and a destination IP address and destination port of the second router; a first portion of metadata including a source Media Access Control (MAC) address of the first client device and a destination MAC address of the second client device; a second portion of metadata including a source IP address and source port of the first client device corresponding to the source MAC address of the first client device, and a destination IP address and destination port of the second client device corresponding to the destination MAC address of the second client device; generating an L2 frame by the second router based on the first portion of the metadata of the L3 packet, the L2 frame including an L2 header specifying the source MAC address of the first client device and the destination MAC address of the second client device; and forwarding the L2 frame to the second client device by the second router via the second L2 network.
[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] Figure 1 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 3B This is a block diagram illustrating the data structure of an L2 frame and the data structure of an L3 packet generated from an 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] Figure 1 This is a block diagram illustrating an example computer network system 2 according to the technology of this disclosure. Figure 1 In the example, computer network system 2 includes service provider networks 150A to 150D (collectively referred to as "service provider network 150"), which are configured to provide wide area network (WAN) connectivity to different customer networks 140A to 140B (collectively referred to as "customer network 140"). Routers 110A to 110I (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 device 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 a single client device 100B, but each of customer networks 140 may include any number of client devices.
[0019] like Figure 1In 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.
[0020] Router 110 Figure 1 In 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 1 Other routers not described in the text. Figure 1 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 1 Only customer networks 140A to 140B are shown in the image.
[0021] 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 1 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 the Internet Protocol (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."
[0022] 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.
[0023] 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.
[0024] Each service provider network 150 typically provides multiple residential and commercial services to the 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.
[0025] Session-based routing
[0026] 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.
[0027] exist Figure 1In 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 packets 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).
[0028] 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.
[0029] 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.
[0030] 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.
[0031] exist Figure 1In 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.
[0032] 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.
[0033] 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).
[0034] exist Figure 1In 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).
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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.
[0042] 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).
[0043] 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.
[0044] Exchange service and topology status information
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] Using metadata to extend the Layer 2 network on the Layer 3 network
[0051] According to the technology disclosed herein, 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 L2 frames destined for client device 110B 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.
[0052] 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.
[0053] In traditional L3 extensions of L2 networks, the first router receives an L2 frame from the source device, encapsulates it with L3 packets, and forwards the L3 packets to the second router on the L3 network. To recover the L2 frame, the second router decapsulates the L3 packets and forwards the recovered L2 frame to the destination device. However, the encapsulated L3 packets are necessarily larger than the L2 frames, increasing the size of the transmitted data and consuming additional network bandwidth. Furthermore, the encapsulation and decapsulation operations performed by each router result in additional computational overhead, thereby reducing the throughput and scalability of each router. To eliminate the need for tunneling and / or encapsulation and reduce the resource consumption of router 110, router 110 performs session-based routing.
[0054] However, traditionally, when a router receives an unencapsulated L3 packet, it performs L2 address translation on the L3 destination IP address and port specified in the L3 header of the L3 packet to obtain the L2 destination address. The router can then generate an L2 frame including the L2 destination address to forward the data carried by the L3 packet to the destination device. However, L2 address translation assumes that the L3 header of the L3 packet specifies the L3 destination address corresponding to the L2 address of the client device.
[0055] 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.
[0056] Therefore, when using session-based routing, router 110I receives L3 packets that include an L3 header specifying the source address and port of router 110H and the destination address and port of router 110I. If router 110I needs to perform L2 address translation for its destination address and port, it will obtain its own MAC address by comparing the expected destination of the L2 frame initiated by client device 100A with the MAC address of client device 100B. Therefore, router 110I may typically be unable to recover the L2 address information needed to recover the L2 frame from the L3 header, which includes, for example, the source IP address and source port of router 110H and the destination IP address and destination port of router 110I.
[0057] Furthermore, even if, as described above, the L3 packets are modified for session-based routing to include a session identifier (e.g., the second part of the metadata), which includes the source IP address and source port of client device 100A corresponding to the source MAC address of client device 100A, and the destination IP address and destination port of client device 100B corresponding to the destination MAC address of client device 100B, router 110I may still be unable to recover L2 frames initiated by client devices because such a session identifier does not include L2 address information (e.g., the source MAC address of client device 100A and the destination MAC address of client device 100B). For example, the L2 address translation of the destination IP address and destination port of client device 100B specified by the session identifier may not correctly identify the destination MAC address of client device 100B in all cases, such as when Network Address Translation (NAT) is used by one or both of client devices 100A and 100B.
[0058] Therefore, according to the technology of this disclosure, 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 specifies 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 the source MAC address of client device 100A, and the destination IP address and destination port of client device 100B corresponding to the destination MAC address of client device 100B. Router 110A forwards the L3 packet including the first part and the second part 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.
[0059] According to the technology disclosed herein, because router 110A generates L3 packets to include a first portion of metadata, which includes the source MAC address of client device 100A and the destination MAC address of client device 100B obtained from L2 frames, router 110I can use the first portion of the metadata to generate L2 frames from the L3 packets, including an L2 header and a payload. Router 110I can then forward the recovered L2 frames to client device 100B via L2 client network 140B.
[0060] In some examples, router 110A uses the second part of the metadata as a session identifier to identify a session of L3 packets, which includes forward flows originating from client device 100A and destined for client device 100B, and reverse flows originating from client device 100B and destined for client device 100A. Router 110A can use this session identifier to perform session-based routing of L3 packets on the L3 service provider network 150 and apply stateful routing services to L3 packets as described above.
[0061] The techniques disclosed herein enable the extension of L2 networks onto L3 networks without the use of tunneling or packet encapsulation. For example, using the first part of the metadata to specify L2 address information avoids the need to encapsulate L2 / L3 packets within another IP packet for transmission over an IP network using tunnels such as GRE. 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 onto 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 avoid the need to use customer edge devices to convert L2 customer services within the L2 network to L3 services suitable for forwarding on L3 service provider networks. In addition, the techniques disclosed herein enable the engineering of L3 services to L2 services, particularly session-based routing techniques. Therefore, the techniques described herein can provide greater efficiency and scalability for L2 networks extended onto L3 networks.
[0062] Furthermore, the techniques disclosed herein can provide additional advantages over traditional Multiprotocol Label Switching (MPLS) networks. For example, the system described herein can eliminate the need to deploy additional customer edge devices to establish MPLS pseudowires. Additionally, the system described herein, which uses the first portion of the metadata of L3 packets to route VXLAN packets, can eliminate the need to tunnel VXLAN packets within another IP packet such as GRE, thereby reducing network resource overhead and avoiding unnecessary fragmentation. Moreover, the L3 packets described herein can be forwarded over the Internet or over an MPLS network, allowing for multipath redundancy without significant modifications to the underlying network architecture or protocols. Furthermore, the system described herein enables session-based routing for L2 networks extended over L3 networks, thereby enabling the increased security provided by session-based routing (e.g., by encrypting and authenticating each packet) within the L2 network.
[0063] In some examples, router 110 may use encapsulation to perform session-based routing on non-session-based L2 frames extended on a Layer 3 network. Further information regarding the use of encapsulation to perform session-based routing on non-session-based L2 frames extended on a Layer 3 network is set forth in U.S. Patent Application No. 17 / 357,763, filed June 24, 2021, entitled “Using Layer 2 Extensions Encapsulated 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.
[0064] In some examples, router 110 can perform session-based routing of point-to-multipoint L2 frames extended on a Layer 3 network. Additional information regarding the performance of session-based routing of point-to-multipoint L2 frames extended on a Layer 3 network is set forth in U.S. Patent Application No. 17 / 357,743, filed June 24, 2021, entitled “Layer 2 Point-to-Multipoint Extension on a Layer 3 Network,” and published July 30, 2024, as U.S. Patent No. 12,052,163, the entire contents of which are incorporated herein by reference.
[0065] Figure 2 This is a block diagram illustrating an example router 110 according to the technology of this disclosure. Typically, router 110 can be... Figure 1 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.
[0066] 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...) Figure 1 Router 110) communicates to establish and maintain computer networks (such as routers 110) Figure 1 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 Border Gateway Protocol (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.
[0067] 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.
[0068] 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.
[0069] 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... Figure 1 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.
[0070] 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.
[0071] According to the technology disclosed herein, router 110 in Figure 1 Session-based routing is performed on the extended L2 customer network 140 on the L3 service provider network 150. Router 110 can act as... Figure 1 To operate any of the routers 110.
[0072] Reference Figure 1 In the following example, router 110 operates as router 110A. Control unit 202 receives L2 frames destined for client device 110B from client device 100A via IFC 226. 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.
[0073] In response to receiving an L2 frame, control unit 202 generates an L3 packet. This L3 packet includes an L3 header, a first part containing metadata including L2 address information for both the first and second client devices, a second part containing metadata including L3 address information for both the first and second client devices, and a payload. The L3 header specifies the source Internet Protocol (IP) address and the source port of router 110, as well as the next-hop router to client device 100B (e.g., ...). Figure 1The destination IP address and destination port of the next-hop router (RIB 110B). In some examples, the control unit 202 identifies the destination IP address and destination port of the next-hop router by retrieving the destination IP address and destination port of the next-hop router from the RIB 206.
[0074] 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. In some examples, control unit 202 generates the first part of the metadata by retrieving the source MAC address of client device 100A and the destination MAC address of client device 100B from the received L2 frame.
[0075] 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. In some examples, control unit 202 generates the second part of the metadata by querying RIB 206 from the received L2 frame using the source MAC address of client device 100A and the destination MAC address of client device 100B. Control unit 202 forwards the L3 packet to the next-hop router (e.g., router 110B) via IFC 226.
[0076] In some examples, the second part of the metadata includes a session identifier. The session identifier is a unique identifier for a session that includes a first packet flow originating from the first client device and destined for the second client device, and a second packet flow originating from the second client device and destined for the first client device. Typically, the session identifier includes a 5-tuple, such as the source IP address and source port of the first client device, the destination IP address and destination port of the second client device, and the network protocol used by the session. In this example, the session between client devices 100A and 100B includes a first L2 packet flow originating from client device 100A and destined for client device 100B, and a second L2 packet flow originating from client device 100B and destined for client device 100A, and the protocol is Ethernet.
[0077] In this example, the L2 frame is the first L2 frame among multiple L2 frames in a session. In response to receiving the first L2 frame, control unit 202 can generate a session identifier for the session between client device 100A and client device 100B and store this session identifier in session information 235 (e.g., to store a second portion of the metadata for the L3 packet). Control unit 202 can also store a first portion of the metadata for the L3 packet to store L2 addressing information associated with the session of the L2 frame. Control unit 202 can generate an L3 packet based on the first L2 frame, including the L3 header, the first portion of the metadata, and the second portion of the metadata as described above, and forward the L3 packet to next-hop router 110.
[0078] For subsequent L2 frames, control unit 202 can determine that the subsequent L2 frame belongs to the same session as the first L2 frame based on the source MAC address and destination MAC address of the subsequent L2 frame. For example, in response to receiving a second L2 frame of the session, control unit 202 can perform a lookup of session information 235 and determine that the second L2 frame belongs to a session with a corresponding entry in session information 235 based on the source MAC address and destination MAC address. In some examples, control unit 202 can perform an L3 address lookup of the source MAC address and destination MAC address and determine whether session information 235 includes an entry for the session corresponding to the L3 address information obtained for the source MAC address and destination MAC address.
[0079] In response to determining that a subsequent L2 frame belongs to the same session as the first L2 frame, control unit 202 can therefore generate a subsequent L3 packet that includes a first part of the L3 header but not metadata, or a second part of the metadata, for the subsequent L2 frame, and forward the subsequent L3 packet to the same next-hop router 110. The subsequent router 110 can receive the subsequent L3 packet, identify the session associated with the subsequent L3 packet from the L3 header of the subsequent L3 packet, and use the first part of the stored metadata to recover the subsequent L2 frame and / or use the second part of the stored metadata to perform session-based routing for the subsequent L3 packet. In this way, control unit 202 can modify only the first L3 packet among multiple L3 packets generated for an L2 session to include both the first and second parts of the metadata, thereby avoiding including both parts of the metadata within each of the multiple L3 packets generated for an L2 session, while still ensuring that each of the multiple L3 packets is forwarded along the same path (e.g., to the same next-hop router 110) and that the L2 frame can be recovered from the L3 packet.
[0080] Reference Figure 1In the following example, router 110 operates as router 110I and receives L3 packets modified as described above from router 110H. For example, control unit 202 receives an L3 packet including an L3 header, a first part of metadata, and a second part of metadata via IFC 226. Using the first part of the metadata, which includes the source MAC address of client device 100A and the destination MAC address of client device 100B within the L3 packet, control unit 202 generates an L2 frame from the L3 packet, including a payload and an L2 header specifying the source MAC address of client device 100A and the destination MAC address of client device 100B. Thereafter, control unit 202 can forward the recovered L2 frame to client device 100B via IFC 226.
[0081] In some examples, the first part of the metadata for the L3 packet may further specify additional information for the control unit 202 to recover L2 frames from the L3 packet and forward the L2 frames to the client device 100B. For example, the first part of the metadata may specify the Virtual Local Area Network (VLAN) tag of the VLAN to which the client device 100B is assigned. In some examples, the first part of the metadata may specify a Virtual Extensible Local Area Network (VXLAN) tag for the VXLAN to which the client device 100B is assigned. In some examples, the first part of the metadata may specify a VLAN Q-in-Q tag stack that includes multiple VLAN tags for multiple stacked VLANs to which the client device 100B is assigned. The control unit 202 may include such VLAN, VXLAN, or Q-in-Q tags in the L2 frame or use such tags to forward the L2 frame to the client device 100B.
[0082] In some examples, the first part of the metadata can specify a bridge identifier for the destination bridge of the L2 frame 300A. The bridge identifier can include, for example, a bridge name, bridge group, or label that identifies the destination bridge. Control unit 202 uses the bridge identifier to select a specific interface (such as one of the IFC226) for forwarding the L2 frame to client device 100B. The destination router (e.g., router 110I) can use the bridge identifier to determine the appropriate egress interface for the L2 frame.
[0083] In this example, the L3 packet includes a first portion and a second portion of metadata as described above, and is the first L3 packet among multiple L3 packets in the session. In response to receiving the first L3 packet, the control unit 202 can generate a session identifier for the session between client device 100A and client device 100B and store the session identifier in session information 235 (e.g., to store the second portion of the L3 packet's metadata). The control unit 202 can also store the first portion of the L3 packet's metadata to store L2 addressing information associated with the session of the L2 frame. The control unit 202 can generate an L2 frame including the L2 header as described above based on the first metadata of the first L3 packet and forward the L2 frame to client device 100B.
[0084] Control unit 202 can also receive subsequent L3 packets from a plurality of L3 packets that do not include a first part and a second part of metadata. For these subsequent L3 packets, control unit 202 can determine that the subsequent L3 packets belong to the same session as the first L3 packet based on the L3 header (e.g., the source IP address and source port of the previous hop router and the destination IP address and destination port of router 110 (e.g., destination router 110I)). Control unit 202 generates subsequent L2 frames for subsequent L3 packets from the first part of the metadata stored for the first L3 packet, which includes the source MAC address and destination MAC address. Therefore, each subsequent L2 frame can also include an L2 header specifying the source MAC address of client device 100A and the destination MAC address of client device 100B. Control unit 202 forwards the subsequent L2 frames to client device 100B via IFC 226. In this way, control unit 202 can receive only the first L3 packet, which specifies the first part and the second part of metadata, while subsequent L3 packets do not include such information. Therefore, router 110 as described herein can avoid including the first and second parts of metadata in each of the multiple L3 packets generated for an L2 session, while still ensuring that each L3 packet of the multiple L3 packets is forwarded along the same path (e.g., to the same next-hop router 110) and that L2 frames can be recovered from L3 packets.
[0085] Figures 3A to 3B This is a block diagram illustrating the data structure of an L2 frame and the data structure of an L3 packet generated from an L2 frame according to the technology of this disclosure.
[0086] Figure 3AThis is a block diagram illustrating the data structure of an L2 frame 300A. In some examples, an L2 frame 300A includes an Ethernet frame. An L2 frame 300A includes an L2 header 340 and a data payload 332. The L2 header 340 specifies the source MAC address 316 indicating the device initiating the L2 frame 300A and the destination MAC address 318 indicating the device to which the L2 frame 300A is destined.
[0087] In some examples where L2 Frame 300A is an Ethernet frame, L2 Frame 300A may additionally include a preamble, EtherType, and frame check sequence. Figure 3A (Not depicted in the text). In some examples, L2 header 340 includes an IEEE 802.1Q VLAN tag, which specifies the VLAN to which L2 frame 300A belongs. In some examples, L2 header 340 includes an IEEE 802.1ad Q-in-Q tag, which specifies multiple "stacked" VLANs to which L2 frame 300A belongs.
[0088] As mentioned above Figure 1 In some examples, router 110A receives L2 frame 300A from client device 100A. In this example, source MAC address 316 specifies the MAC address of client device 100A and destination MAC address 318 specifies client device 100B. Router 110A can obtain source MAC address 316 and destination MAC address 318 from L2 frame 300A and generate an L3 packet including a first part of metadata, the first part of which includes source MAC address 316 and destination MAC address 318, as follows. Figure 3B Further details are provided below.
[0089] Figure 3B This is a block diagram illustrating the data structure of an L3 packet 300B generated from an L2 frame 300A according to the technology of this disclosure. The L3 packet 300B includes an L3 header 302, a first part of metadata (first metadata 314), a second part of metadata (second metadata 320), and a data payload 332.
[0090] The L3 header 302 specifies the source router IP address 304 indicating the device that initiated the L3 packet 300B, the source port 306 indicating the port from which the L3 packet 300B originated, the destination router IP address 308 indicating the device to which the L3 packet 300B is destined, the destination port 310 indicating the port from which the L3 packet 300B is destined, and the router IP protocol 312, which specifies the protocol used by the L3 packet 300B. In some examples, the router IP protocol 312 specifies either TCP or UDP.
[0091] The first metadata 314 includes a source MAC address 316 indicating the device that initiated the L2 frame 300A and a destination MAC address 318 indicating the device to which the L2 frame 300A is destined. The source MAC address 316 and destination MAC address 318 of the first metadata 314 of the L3 packet 300B correspond to the source MAC address 316 and destination MAC address 318 of the L2 header 340 of the L2 frame 300A.
[0092] In some examples, the first metadata 314 may further specify other information that router 110I can use to recover L2 frame 300A from L3 packet 300B and forward L2 frame 300A to client device 100B. Figure 3B (Not explicitly described in the text). For example, the first metadata 314 can specify a Virtual Local Area Network (VLAN) tag for the VLAN to which the client device 100B is assigned. In some examples, the first metadata 314 can specify a Virtual Extensible Local Area Network (VXLAN) tag for the VXLAN to which the client device 100B is assigned. In some examples, the first metadata 314 can specify a VLAN Q-in-Q tag stack including multiple VLAN tags for multiple stacked VLANs to which the client device 100B is assigned. In some examples, the first metadata 314 can specify a bridge identifier for the destination bridge of the L2 frame 300A.
[0093] The second metadata 320 specifies the source client IP address 322, source client port 324, destination client IP address 326, destination client port 328, and client IP protocol 330. The source client IP address 322 and source client port 324 together include L3 address information corresponding to the source MAC address 316 of the device initiating L2 frame 300A. The destination client IP address 326 and destination client port 328 together include L3 address information corresponding to the destination MAC address 318 of the device to which L2 frame 300A is destined. The client IP protocol 330 specifies the protocol used by the source client IP address 322, source client port 324, destination client IP address 326, and destination client port 328. In some examples, the client IP protocol 330 specifies either TCP or UDP.
[0094] As mentioned above Figure 1 In some examples, router 110A generates L3 packet 300B in response to receiving L2 frame 300A. In this example, source router IP address 304 and source port 306 specify the IP address of router 110A and the port used by router 110A to forward L3 packet 300B, respectively. Destination router IP address 308 and destination port 310 specify the IP address and port of router 110B to which L3 packet 300B is destined.
[0095] Furthermore, the source MAC address 316 and destination MAC address 318 of the first metadata 314 specify the MAC addresses of client device 100A and client device 100B, respectively. As described above, Figure 1 Router 110I can use first metadata 314 to recover L2 frames 300A from L3 packets 300B for forwarding to client device 100B.
[0096] Additionally, the source client IP address 322 and source client port 324 of the second metadata 320 specify L3 address information corresponding to the MAC address of client device 100A. The destination client IP address 326 and destination client port 328 of the second metadata 320 specify L3 address information corresponding to the MAC address of client device 100B. As described above, Figure 1 Router 110 can use the second metadata 320 as a session identifier to identify the session associated with L2 frame 300A and / or L3 packet 300B in order to perform session-based routing of L2 frame 300A and / or L3 packet 300B.
[0097] Figure 4 This is a flowchart illustrating example operations according to the technology disclosed herein. For convenience, Figure 4 It is about Figure 1 Described.
[0098] Router 110A receives an L2 frame (402) destined for client device 100B from client device 100A. An L2 network (such as client network 140A) connects client device 100A to router 110A. The L2 frame includes a payload and an L2 header specifying the source MAC address of client device 100A and the destination MAC address of client device 100B.
[0099] In response to receiving an L2 frame, router 110A generates an L3 packet. This L3 packet includes an L3 header, a first portion of metadata containing the L2 addresses of both the first and second client devices, a second portion of metadata containing the L3 addresses of both client devices, and a payload (404). The L3 header specifies the source IP address and source port of router 110A and the destination IP address and destination port of router 110B. The first portion of the metadata includes the source MAC address of client device 100A and the destination MAC address of client device 100B. The second portion of the metadata includes the source IP address and source port of client device 100A corresponding to the source MAC address of client device 100A, and the destination IP address and destination port corresponding to the destination MAC address of client device 100B.
[0100] Router 110A forwards L3 packets to router 110I via L3 service provider network 150 (406). For example, router 110A forwards L3 packets to router 110B. As described above, router 110B can 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 can also 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.
[0101] Finally, router 110I receives an L3 packet from, for example, router 110H (408). In response to receiving the L3 packet, router 110I generates an L2 frame (410) from the first part of the metadata of the L3 packet. The recovered L2 frame includes a payload specifying the source MAC address of client device 100A and the destination MAC address of client device 100B, and an L2 header. Router 110I forwards the recovered L2 frame destined for client device 100B to client device 100B via another network (such as client network 140B) that connects router 110I to client device 100B (412).
[0102] 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.
[0103] 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.
[0104] 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.
[0105] Various examples have been described. These and other examples are within the scope of the appended claims.
Claims
1. A computer networking method comprising: receiving, by a first router and from a first client device connected to the first router via a first Open Systems Interconnection (OSI) model Layer 2 (L2) network, an L2 frame destined for a second client device, the L2 frame comprising an L2 header specifying a source Media Access Control (MAC) address of the first client device and a destination MAC address of the second client device, wherein the first router is connected to a second router via an OSI model Layer 3 (L3) network, and wherein the second router is connected to the second client device via a second L2 network; generating, by the first router and in response to receiving the L2 frame, an L3 packet, the L3 packet comprising: an L3 header specifying a source Internet Protocol (IP) address and a source port of the first router and a destination IP address and a destination port of the second router; and a first portion of metadata comprising the source MAC address of the first client device and the destination MAC address of the second client device; and forwarding, by the first router, the L3 packet to the second router via the L3 network.
2. The method of claim 1, wherein the first portion of metadata further comprises a Virtual Local Area Network (VLAN) tag for a VLAN to which the first client device is assigned.
3. The method of claim 1, wherein the first portion of metadata further comprises a Virtual Extensible Local Area Network (VXLAN) tag for a VXLAN to which the first client device is assigned.
4. The method of claim 1, wherein the first portion of metadata further comprises a bridge identifier for a destination bridge.
5. The method of claim 1, wherein the first portion of metadata further comprises a Virtual Local Area Network (VLAN) Q-in-Q tag stack comprising a plurality of VLAN tags.
6. The method of any one of claims 1 to 5, wherein the L3 packet comprises at least one of a Transmission Control Protocol (TCP) packet or a User Datagram Protocol (UDP) packet, and wherein the L2 frame comprises an Ethernet frame.
7. The method of any one of claims 1 to 5, wherein the L3 packet further comprises a second portion of metadata comprising: a source IP address and a source port of the first client device corresponding to the source MAC address of the first client device; and a destination IP address and a destination port of the second client device corresponding to the destination MAC address of the second client device.
8. The method of claim 7, wherein a second portion of the metadata includes a session identifier for a session, the session including a first packet stream originating at the first client device and destined for the second client device and a second packet stream originating at the second client device and destined for the first client device, wherein at least one of the first packet stream or the second packet stream includes the L2 frame, and wherein the session identifier includes the source IP address and the source port of the first client device, the destination IP address and the destination port of the second client device, and a network protocol for the L2 frame.
9. The method of claim 8, further comprising: storing, by the first router, the session identifier for the session; receiving, by the first router and from the first client device via the first L2 network, one or more subsequent L2 frames destined for the second client device, the one or more subsequent L2 frames specifying the source MAC address of the first client device and the destination MAC address of the second client device; determining, by the first router in response to receiving the one or more subsequent L2 frames and based on the session identifier for the session, that the one or more subsequent L2 frames belong to the at least one of the first packet stream or the second packet stream; generating, by the first router, one or more subsequent L3 packets, wherein the one or more subsequent L3 packets do not include the first portion of metadata or the second portion of metadata; and forwarding, by the first router via the L3 network and to the second router, the one or more subsequent L3 packets.
10. A first router comprising processing circuitry configured to: receive, from a first client device connected to the first router via a first Open Systems Interconnection (OSI) Model Layer 2 (L2) network, an L2 frame destined for a second client device, the L2 frame including an L2 header specifying a source Media Access Control (MAC) address of the first client device and a destination MAC address of the second client device, wherein the first router is connected to a second router via an OSI Model Layer 3 (L3) network, and wherein the second router is connected to the second client device via a second L2 network; generate, in response to receiving the L2 frame, an L3 packet, the L3 packet including: an L3 header specifying a source Internet Protocol (IP) address and a source port of the first router and a destination IP address and a destination port of the second router; and a first portion of metadata including the source MAC address of the first client device and the destination MAC address of the second client device; and forward the L3 packet to the second router via the L3 network.
11. The first router of claim 10, wherein the L3 packet includes at least one of a Transmission Control Protocol (TCP) packet or a User Datagram Protocol (UDP) packet, and wherein the first portion of metadata includes a source IP address and a source port of the first client device, a destination IP address and a destination port of the second client device, and a network protocol for the L2 frame. wherein the L2 frame comprises an Ethernet frame.
12. The first router of any of claims 10-11, wherein the L3 packet further comprises a second portion of metadata, the second portion of metadata comprising: a source IP address and a source port of the first client device corresponding to the source MAC address of the first client device; and a destination IP address and a destination port of the second client device corresponding to the destination MAC address of the second client device.
13. The first router of claim 12, wherein the second portion of metadata comprises a session identifier for a session, the session comprising a first stream of packets originating from the first client device and destined for the second client device and a second stream of packets originating from the second client device and destined for the first client device, wherein at least one of the first stream of packets or the second stream of packets comprises the L2 frame, and wherein the session identifier comprises the source IP address and the source port of the first client device, the destination IP address and the destination port of the second client device, and a network protocol for the L2 frame.
14. The first router of claim 13, further comprising a memory configured to store the session identifier for the session, wherein the processing circuitry is further configured to: receive, from the first client device via the first L2 network, one or more subsequent L2 frames destined for the second client device, the one or more subsequent L2 frames specifying the source MAC address of the first client device and the destination MAC address of the second client device; determine, in response to receiving the one or more subsequent L2 frames and based on the session identifier for the session, that the one or more subsequent L2 frames belong to the at least one of the first stream of packets or the second stream of packets; generate one or more subsequent L3 packets, wherein the one or more subsequent L3 packets do not comprise the first portion of metadata or the second portion of metadata; and forward, via the L3 network and to the second router, the one or more subsequent L3 packets.
15. A computer networking method comprising: receiving, by a second router and from a first router connected to the second router via an Open Systems Interconnection (OSI) model Layer 3 (L3) network, an L3 packet, wherein the first router is connected to a first client device via a first OSI model Layer 2 (L2) network, and the second router is connected to a second client device via a second L2 network, and wherein the L3 packet comprises: an L3 header specifying a source Internet Protocol (IP) address and a source port of the first router and a destination IP address and a destination port of the second router; and a first portion of metadata comprising a source Media Access Control (MAC) address of the first client device and a destination MAC address of the second client device; generating, by the second router and based on the first portion of metadata of the L3 packet, an L2 frame, the L2 frame including an L2 header specifying the source MAC address of the first client device and the destination MAC address of the second client device; and forwarding, by the second router and via the second L2 network and to the second client device, the L2 frame.
16. The method of claim 15, wherein the first portion of metadata further includes a virtual local area network (VLAN) tag for a VLAN to which the first client device is assigned.
17. The method of claim 15, wherein the first portion of metadata further includes a virtual extensible local area network (VXLAN) tag for a VXLAN to which the first client device is assigned.
18. The method of any of claims 15 to 17, wherein the first portion of metadata further includes a bridge identifier for a destination bridge, wherein the method further includes selecting, by the second router and based on the bridge identifier, an interface of a plurality of interfaces of the second router, and wherein forwarding, by the second router, the L2 frame includes forwarding, by the second router and via the selected interface of the plurality of interfaces of the second router, the L2 frame.
19. The method of any of claims 15 to 17, wherein the L3 packet includes at least one of a transmission control protocol (TCP) packet or a user datagram protocol (UDP) packet, and wherein the L2 frame includes an Ethernet frame.
20. The method of any of claims 15 to 17, wherein the L3 packet further includes a second portion of metadata, the second portion of metadata including a session identifier for a session, the session including a first packet flow originating at the first client device and destined for the second client device and a second packet flow originating at the second client device and destined for the first client device, wherein at least one of the first packet flow or the second packet flow includes the L2 frame, wherein the session identification includes a source IP address and a source port of the first client device corresponding to the source MAC address of the first client device, a destination IP address and a destination port of the second client device corresponding to the destination MAC address of the second client device, and a network protocol for the L2 frame, wherein the method further includes: storing, by the second router, the session identifier for the session, receiving, by the second router, one or more subsequent L3 packets, wherein the one or more subsequent L3 packets do not include the first portion of metadata or the second portion of metadata; determining, by the second router and based on the session identifier for the session, that the one or more subsequent L3 frames belong to the at least one of the first packet flow or the second packet flow, generating, by the second router and based on the first portion of the metadata of the L3 packet, one or more subsequent L2 frames for the one or more subsequent L3 frames, the one or more subsequent L2 frames including the L2 header specifying the source MAC address of the first client device and the destination MAC address of the second client device; and forwarding, by the second router and via the second L2 network, the one or more subsequent L2 frames toward the second client device.
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