Layer 2 network extension over layer 3 networks using encapsulation

By generating placeholder session identifiers on the L3 network and encapsulating L2 frames into L3 packets, the identification and routing problems of routers when processing non-session-based L2 frames are solved, improving the reliability and redundancy of the L3 network and realizing routing and service engineering based on L3 sessions.

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

Patent Information

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

AI Technical Summary

Technical Problem

Existing routers cannot effectively apply session-based routing technology when processing non-session-based L2 frames, causing L3 networks to be unable to correctly identify and route these frames, affecting network reliability and redundancy.

Method used

By generating placeholder session identifiers, L2 frames are encapsulated into L3 packets, and session-based routing is performed on the L3 network. Stateful routing sessions are established on the L3 network using placeholder session identifiers, enabling the identification and routing of non-session-based L2 frames.

Benefits of technology

Even when L2 frames carry non-session-based payloads, routers in L3 networks can correctly identify and route L2 frames, improving the reliability and redundancy of L2 frames on L3 networks and supporting L3 session-based routing, service engineering, and failover operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115943614B_ABST
    Figure CN115943614B_ABST
Patent Text Reader

Abstract

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

Description

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

[0002] The present disclosure relates generally to computer networks, and more particularly, to routing packets within a computer network. BACKGROUND

[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 that operate within Layer 2 (i.e., the data link layer) of the Open Systems Interconnection (OSI) reference model and Layer 3 (L3) network devices that operate within Layer 3 (i.e., the network layer) of the OSI reference model. Network devices within a computer network typically include a control unit that provides control plane functionality for the network device and a forwarding component that routes or switches data units.

[0004] A computing device can establish a “network session” (also referred to herein as a “session”) to enable communication between devices on a computer network. A session can be bidirectional because it includes a flow of packets that propagates bi-directionally between a first device and a second device. For example, a session includes a forward flow of packets that originates at the first device and is destined for the second device and a reverse flow of packets that originates at the second device and is destined for the first device. The forward and reverse flows of packets for a session are correlated because the source address and source port for the forward flow of packets are the same as the destination address and destination port for the reverse flow of packets and the destination address and destination port for the forward flow of packets are the same as the source address and source port for the reverse flow of packets. To establish a session, a computing device can use one or more communication session protocols, including the Transmission Control Protocol (TCP), the Transport Layer Security protocol (TLS), the User Datagram Protocol (UDP), the Internet Control Message Protocol (ICMP), and the like. SUMMARY

[0005] In general, this disclosure describes techniques for performing session-based routing of non-session-based L2 frames for L2 networks that are 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 a L3 network connects the first router to the second router. Generally, the first and second routers can provide session-based routing. For example, the first router receives an L2 frame from the first client device that is destined for the second client device. The session-based L2 frame includes an L2 header and a payload, where the L2 header specifies a source media access control (MAC) address of the first client device and a destination MAC address of the second client device. The first router can use the source and destination MAC addresses to identify a session for the session-based L2 frame that includes a forward packet stream originating from the first client device and destined for the second client device and a reverse packet stream originating from the second client device and destined for the first client device. Thus, the first router performs a stateful, session-based routing scheme that enables the first router to independently perform path selection and traffic engineering for each unique "session" of packets served by the first router.

[0006] A typical router can be unable to apply such stateful, session-based routing to non-session-based L2 frames because such non-session-based L2 frames generally do not correspond to a session, e.g., are not part of a communication session that includes a forward packet stream and a reverse packet stream between two devices. For example, a non-session-based payload can include an address resolution protocol (ARP) request, a Cisco Discovery Protocol (CDP) request, or a link layer discovery protocol (LLDP) request. To apply session-based routing to non-session-based L2 frames, the first router as described herein can generate a placeholder session identifier for the non-session-based L2 frame that can be used by routers of the L3 network to clearly identify the non-session-based L2 frame from other L2 frames and perform session-based routing of the non-session-based L2 frame.

[0007] As an example, a first router receives an L2 frame destined for a second client device from a first client device. In response to receiving the L2 frame, the first router determines whether the L2 frame includes a non-session-based payload. In response to determining that the L2 frame includes a non-session-based payload, the first router generates a placeholder session identifier for the L2 frame. The placeholder session identifier includes, for example, a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a placeholder network protocol. The first router generates an L3 packet encapsulating the L2 frame, such that the L3 packet includes, for example, an L3 header, the payload of the L2 frame, and metadata specifying the placeholder session identifier. In some examples, the L3 header includes the source Internet Protocol (IP) address and source port of the first router, the destination IP address and destination port of the second router, and the network protocol. The first router identifies the L3 network service associated with the L2 frame and selects the network protocol in the L3 header based on the L3 network service associated with the L2 frame identified from a plurality of network protocols. The first router forwards L3 packets with encapsulated L2 frames to the second router via the L3 network. Therefore, the first router can use a placeholder session identifier as a fabricated unique session identifier 5-tuple, enabling it to establish a stateful routing session on the L3 network for non-session-based L2 frames even if the L2 frame does not include unique session identifier information. The second router receives the L3 frame and obtains the L2 frame from the payload of the L3 packet. The second router forwards the recovered L2 frame to the second client device via the second L2 network.

[0008] In some examples, the first router uses a generated placeholder session identifier to identify a one-way session of L3 packets. This one-way session includes forward flows originating from the first client device and destined for the second client device, but excludes reverse flows originating from the second client device and destined for the first client device. In some examples, a one-way session includes a forward UDP packet flow originating from the first client device and destined for the second client device, but excludes a reverse UDP packet flow originating from the second client device and destined for the first client device. The first router can use this placeholder session identifier to perform session-based routing of L3 packets on the L3 network.

[0009] The techniques disclosed herein can provide specific improvements to computer-related fields with practical applications in computer networks. For example, the techniques disclosed herein enable routers in L3 networks to perform L3 session-based routing of L2 frames, even when the L2 frames carry non-session-based payloads that do not typically correspond to a session, and therefore can generally be identified without using session identifiers. Furthermore, the techniques disclosed herein can enable the extension of L2 networks across L3 networks, even for L2 frames that include non-session-based payloads. For example, by using encapsulation to carry L2 frames and generating placeholder session identifiers for non-session-based L2 frames, routers in L3 networks can clearly identify non-session-based L2 frames from other L2 frames, thereby enabling the application of L3 session-based routing, service engineering, failover operations, and stateful services to L2 frames. Therefore, even when L2 frames carry non-session-based payloads, the techniques disclosed herein can improve the reliability and redundancy of L2 frames carried on L3 networks.

[0010] In one example, this disclosure describes a method comprising: receiving, by a first router, 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 and a non-session-based payload, 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; identifying, by the first router, an L3 network service associated with the L2 frame based on the L2 header of the L2 frame; and generating, by the first router, a placeholder session identifier for the L2 frame in response to determining that the L2 frame includes a non-session-based payload, wherein the placeholder session identifier... The placeholder session identifier includes a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a first network protocol; an L3 packet is formed by the first router, the L3 packet including: an L3 header, wherein the L3 header includes the source Internet Protocol (IP) address and source port of the first router, the destination IP address and destination port of the second router, and a second network protocol, the second network protocol being selected from multiple network protocols based on the identified L3 network service associated with the L2 frame; the payload of the L2 frame; metadata including the placeholder session identifier; and L3 session-based routing of the L3 packet is performed by the first router based on the placeholder session identifier to forward the L3 packet to the second router via the L3 network.

[0011] 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 and a non-session-based payload, 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; identify the L3 network service associated with the L2 frame based on the L2 header of the L2 frame; and generate a placeholder session identifier for the L2 frame in response to determining that the L2 frame includes a non-session-based payload, wherein... The placeholder session identifier includes a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a first network protocol; forming an L3 packet, the L3 packet includes: an L3 header, wherein the L3 header includes the source Internet Protocol (IP) address and source port of the first router, the destination IP address and destination port of the second router, and a second network protocol, the second network protocol being selected from multiple network protocols based on the identified L3 network service associated with the L2 frame; the payload of the L2 frame; metadata including the placeholder session identifier; and L3 session-based routing of the L3 packet based on the placeholder session identifier to forward the L3 packet to the second router via the L3 network.

[0012] 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, wherein the first router is connected to a first client device via a first OSI Model Layer 2 (L2) network, the second router is connected to the second client device via a second L2 network, and wherein the L3 packet comprises: an L3 header including a source Internet Protocol (IP) address and source port of the first router, a destination IP address and destination port of the second router, and a first network protocol; a payload including an L2 frame, the L2 frame being initiated by the first client device and destined for the second client device, the L2 frame including a non-session-based payload; metadata including a placeholder session identifier of the L2 frame, wherein the placeholder session identifier includes a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a second network protocol; obtaining an L2 frame from the payload of the L3 packet by the second router; and forwarding the L2 frame to the second client device by the second router via the second L2 network.

[0013] 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 specification, drawings, and claims. Attached Figure Description

[0014] Figure 1 This is a block diagram illustrating an example computer network system according to the technology of this disclosure.

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

[0016] Figures 3A-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.

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

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

[0019] 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 networks 150"), which are configured to provide wide area network (WAN) connectivity to different customer networks 140A to 140B ("customer networks 140"). Routers 110A to 110I (collectively referred to as "routers 110") of service provider networks 150 provide access to service provider networks 150 to client devices 100A to 100B (collectively referred to as "client devices 100") associated with customer networks 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 can have any number of client devices. Figure 1 In the example depicted, customer network 140 is an L2 computer network, where the reference to the layer followed by a number refers to the corresponding layer in the Open Systems Interconnection (OSI) model. L2 is also referred to as the "data link layer" in the OSI model and throughout this disclosure; the term L2 is used interchangeably with the phrase "data link layer." Typically, customer network 140 includes multiple client devices 100, each of which can communicate with each other across service provider network 150, as described in more detail below. Communication links 16A through 16G (collectively referred to as link "16") can be Ethernet, ATM, or any other suitable network connection.

[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 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 the first packet in the forward flow of the session, so client device 100A can be considered the "source" device. Session 40 includes a forward packet flow originating from client device 100A and destined for client device 100B, and a reverse packet flow originating from client device 100B and destined for client device 100A. The forward flow of session 40 traverses a first path, including, for example, client device 100A, routers 110A to 110I, and client device 100B. As described in more detail below, router 110 enables customer network 140A (L2 network) to extend across service provider network 150 (e.g., L3 network) to customer network 140B (another L2 network).

[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 issued by 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 belonging to 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 a session's forward packet flow 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 with a community can reach every other router 110 with an interface labeled with the same community through 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 encapsulated Layer 2 network extensions on Layer 3 networks

[0051] According to the technology disclosed herein, computer network system 2 performs session-based routing on non-session-based L2 frames of L2 client networks 140 extended to L3 service provider networks 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 from client device 100A, which include an L2 header and a payload. In some examples, the L2 header includes the source Media Access Control (MAC) address of client 100A and the destination MAC address of client 100B. In some examples, the L2 frame includes an Ethernet frame.

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

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

[0054] However, in some examples, router 110A can receive non-session-based L2 frames. Non-session-based L2 frames include an L2 header and a non-session-based payload. In some examples, the non-session-based payload of an L2 frame includes an ARP request, a CDP request, or an LLDP request. For example, client 100A can use an ARP request to query, for example, the unknown MAC address of client device 100B. In such an example, an L2 frame including an ARP request as a payload may not include the destination MAC address of client device 100B, because such information may be unknown. Therefore, L2 frames including non-session-based payloads (such as ARP requests) do not involve a bidirectional session involving forward and reverse packet flows between two devices, and thus may not include L2 or L3 address information for both the initiating and destination devices. Therefore, conventional routers may not be able to identify a "session" for a non-session-based L2 frame to perform L3 session-based routing services, such as route failover, stateful packet service, and deep packet inspection, for L2 frames.

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

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

[0057] Therefore, router 110A (and other routers 110 in the L3 service provider network 150) can use placeholder session identifiers to distinguish L2 frames from other L2 frames, enabling router 110A to perform session-based routing of L3 packets encapsulated in L2 frames, even if the L2 frames include non-session-based payloads. Each router 110 can use placeholder session identifiers to provide stateful, L3 session-based routing services to L3 packets encapsulated in L2 frames, and thus effectively provide such stateful, L3 session-based routing services to L2 frames. For example, each router 110 can provide a path failover service to select a new path for routing L3 packets encapsulated in L2 frames in the event of a failure in one of the links 16. Furthermore, each router 110 can provide a priority routing service to apply priority to L3 packets encapsulated in L2 frames and route L3 packets on the service provider network 150 according to priority. In addition, each router 110 can provide packet-based, flow-based, or session-based metrics to L3 packets encapsulated with L2 frames to ensure compliance with software license agreements (SLAs) when routing L3 packets encapsulated with L2 frames.

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

[0059] In the foregoing examples, the placeholder session identifier can represent a one-way session for L3 packets, which includes a forward flow originating from client device 110A and destined for client device 100B, but excludes a reverse flow originating from client device 100B and destined for client device 100A. In some examples, a one-way session includes a forward UDP packet flow originating from client device 110A and destined for client device 100B, but excludes a reverse UDP packet flow originating from client device 100B and destined for client device 100A. This contrasts with the common use of session identifiers for packets based on L2 and / or L3 sessions, where the session identifier identifies a bidirectional session including both forward and reverse flows. Therefore, router 110 can use metadata including the placeholder session identifier for L3 packets to perform L3 session-based routing of L2 frames (encapsulated by L3 packets) on the L3 service provider network 150 and apply stateful routing services to L2 frames as described herein.

[0060] Therefore, the techniques disclosed herein enable routers in L3 networks to perform L3 session-based routing on L2 frames, even if the L2 frames carry non-session-based payloads that typically do not correspond to a session and therefore may not typically be identified using session identifiers. For example, the techniques disclosed herein can be used to encapsulate non-session-based L2 frames using L3 UDP packets, allowing the L3 network to treat non-session-based L2 frames as L3 UDP packets and apply session-based routing techniques to such L3 UDP packets (or similar TCP packets). Furthermore, the techniques disclosed herein enable L2 network extensions on L3 networks, even for L2 frames that include non-session-based payloads. For example, using encapsulation to carry L2 frames and generating placeholder session identifiers for non-session-based L2 frames allows routers in the L3 network to clearly identify non-session-based L2 frames from other L2 frames, enabling L3 session-based routing, service engineering, failover operations, and stateful services to be applied to L2 frames. Therefore, the technology disclosed herein can improve the reliability and redundancy of L2 frames carried on L3 networks, even when L2 frames carry non-session-based payloads.

[0061] In some examples, router 110 may use L2 metadata to perform session-based routing of session-based L2 packets extended on a Layer 3 network. Additional information regarding the use of L2 metadata to perform session-based routing of session-based L2 packets extended on a Layer 3 network is set forth in U.S. Patent Application No. ________, entitled “Layer 2 Extensions on a Layer 3 Network Using L2 Metadata” (Attorney General’s File No. 2014-336US01), the entire contents of which are incorporated herein by reference.

[0062] In some examples, router 110 can perform session-based routing of point-to-multipoint L2 packets extended on a Layer 3 network. Additional information regarding the performance of session-based routing of point-to-multipoint L2 packets extended on a Layer 3 network is set forth in U.S. Patent Application No. ________, entitled “Layer 2 Point-to-Multipoint Extension on a Layer 3 Network”, filed ________ (Attorney General’s File No. 2014-338US01), the entire contents of which are incorporated herein by reference.

[0063] 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 1This 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 IFC 226.

[0064] 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... 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.

[0065] 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.

[0066] 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.

[0067] 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.

[0068] Service information 232 is stored by routing engine 204 to identify 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.

[0069] According to the technology disclosed herein, router 110 in Figure 1 Session-based routing is performed on the L2 customer network 140 extended on the L3 service provider network 150, without being session-based. Router 110 can act as... Figure 1 To operate any of the routers 110.

[0070] Reference Figure 1 In the following example, router 110 operates as router 110A. Control unit 202 receives non-session-based L2 frames from client device 100A via IFC 226. The L2 frames include an L2 header and a non-session-based payload. In some examples, the non-session-based payload of the L2 frame includes an ARP request, CDP request, or LLDP request. In some examples, the L2 frame includes an Ethernet frame. Control unit 202 examines the payload in the L2 frame and determines that the L2 frame includes a non-session-based payload (e.g., an ARP request, CDP request, or LLDP request).

[0071] In response to determining that the L2 frame includes a non-session-based payload, control unit 202 generates an L3 packet that encapsulates the L2 frame. The L3 packet includes an L3 header, the payload including the L2 frame, and metadata specifying the L2 frame as a placeholder session identifier. The L3 header specifies the source IP address and 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 router 110B, as well as the network protocol. 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.

[0072] In some examples, control unit 202 identifies the L3 network service associated with the L2 frame and selects the network protocol for the L3 header from multiple network protocols based on the identified L3 network service associated with the L2 frame. For example, control unit 202 may select the UDP protocol for the L3 header based on the identified L3 network service associated with the L2 frame. In some examples, the L3 packet is a UDP packet and the network protocol is UDP. In other examples, the L3 packet is a TCP packet and the network protocol is TCP.

[0073] Control unit 202 generates "placeholder" session identifiers for L3 packets generated for encapsulating L2 frames. The placeholder session identifier for the L3 packet's metadata may include, for example, a 5-tuple containing a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a first network protocol. In some examples, the placeholder source IP address is the IP address of the LAN interface used by PFE 222 of router 110 to receive L2 frames, and the placeholder source port is the port of the LAN interface used by PFE 222 of router 110 to receive L2 frames. In some examples, the placeholder destination IP address is the IP address of the LAN interface of the next-hop router 110 (e.g., router 110B) to which control unit 202 forwards the L3 packet, and the placeholder destination port is the port of the LAN interface of the next-hop router 110 (e.g., router 110B) to which control unit 202 forwards the L3 packet. In some examples, the network protocol for the placeholder session identifier is UDP, TCP, or other communication session protocols. Control unit 202 forwards L3 packets encapsulated with L2 frames to the next-hop router (e.g., router 110B) via IFC 226.

[0074] Non-session-based L2 frames do not include the unique session identification information used by router 110 to perform session-based routing techniques. Therefore, router 110 can use a placeholder session identifier as a fabricated, unique 5-tuple of session identifiers, allowing router 110 to still establish stateful routing sessions 110B to 110H via intermediate routers for non-session-based L2 frames between routers 110A and 110I, even though the L2 frames do not include unique session identification information. Typically, the placeholder session identifier is unrelated to the actual L2 or L3 address information of the packet being forwarded. For example, because non-session-based L2 frames do not include L2 or L3 address information for both the originating and destination devices, the placeholder session identifier generated by control unit 202 for L2 frames may include, for example, a 5-tuple that may not correspond to the 5-tuple in the L3 packet header or the L3 address translation in the L2 header of the received L2 frame. In other words, unlike the session identifiers of session-based L2 or L3 packets, the placeholder session identifiers of non-session-based L2 frames do not necessarily correspond to the actual addresses of the source or destination of the L2 frame.

[0075] Therefore, control unit 202 can use a placeholder session identifier to distinguish L2 frames from other L2 frames, enabling control unit 202 to perform session-based routing of L3 packets encapsulating L2 frames, even if the L2 frames include non-session-based payloads. In this example, the placeholder session identifier can represent a unidirectional session of L3 packets, which includes a forward flow originating from client device 110A and destined for client device 100B, but does not include a reverse flow originating from client device 100B and destined for client device 100A. This contrasts with the common use of session identifiers for L2 and / or L3-based packets, where session identifiers identify bidirectional sessions including both forward and reverse flows.

[0076] For example, control unit 202 can receive signals originating from IFC 226. Figure 1The second L3 packet from router 110I encapsulates a second non-session-based L2 frame. This second non-session-based L2 frame may originate from client device 110B and be destined for client 110A. For example, if a non-session-based L2 frame received from client device 110A includes an ARP request, the second non-session-based L2 frame may include a response to the ARP request. However, the second L3 packet originating from router 110I may include metadata specifying a placeholder session identifier, which is different from the placeholder session identifier specified in the metadata of the L3 packet generated by control unit 202, to encapsulate the non-session-based L2 frame received from client device 110A. Therefore, the placeholder session identifier of the L3 packet generated by control unit 202 may specify a first unidirectional session, which includes a forward packet flow originating from, for example, router 110A and destined for router 110I, but does not include a reverse packet flow originating from router 110I and destined for router 110A. In addition, the placeholder session identifier of the second L3 packet originating from router 110I can specify a second one-way session, which includes reverse packet flows originating from, for example, router 110I and destined for router 110A, but does not include forward packet flows originating from router 110A and destined for router 110I.

[0077] In some examples, the L2 frame received from client device 100A is the first L2 frame among a plurality of L2 frames. In response to receiving the L2 frame, control unit 202 can generate a placeholder session identifier as described above and store the placeholder session identifier in session information 235. For subsequent L2 frames, control unit 202 can determine the L2 frame based on the subsequent L2 header, which includes the same combination of initiating client device 100A and / or destination client device 100B as the first L2 frame. Therefore, control unit 202 can include the same metadata specifying the placeholder session identifier and forward subsequent L3 packets to the same next-hop router 110. The next-hop router 110 can receive subsequent L3 packets and use the placeholder session identifier to perform session-based routing of subsequent L3 packets. After a predetermined amount of time, control unit 202 can remove the placeholder session identifier of the L2 frame from session information 235. For example, control unit 202 can delete the placeholder session identifier for L2 frames from session information 235 after a predetermined amount of time has passed since the placeholder session identifier for L2 frames has not been used. In this way, control unit 202 can use the placeholder session identifier to ensure that non-session-based L2 frames, including the same combination of initiating client device 100A and / or destination client device 100B, are forwarded along the same path (e.g., to the same next-hop router 110), so that router 110 can perform L3 session-based routing for L2 frames (encapsulated by L3 packets) on L3 service provider network 150 and apply stateful routing services to L2 frames.

[0078] Reference Figure 1 In the following example, router 110 operates as router 110I and receives L3 packets from router 110H that encapsulate non-session-based L2 frames as described above. As mentioned above, because Figure 1Router 110 performs session-based routing, so each router 110 replaces the L3 header with the source IP address and source port of the current router 110 and the destination IP address and destination port of the next-hop router 110. For example, 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 then 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 the L3 packet. Router 110I decapsulates the L3 packet to recover the L2 frame from the payload of the L3 packet. Router 110I can then forward the recovered L2 frames to client device 100B via L2 client network 140B.

[0079] In some examples, control unit 202 can receive a second L2 frame originating from client 100B and destined for client 100A via IFC 226. For example, if a non-session-based L2 frame received from client device 110A includes an ARP request, the second non-session-based L2 frame can include a response to the ARP request. Control unit 202 can generate a second L3 packet encapsulating the second L2 frame. The second L3 packet may also include a second L3 header, a payload including the L2 frame, and metadata including a second placeholder session identifier. The second L3 header includes a 5-tuple specifying the source IP address and source port of router 110, the destination IP address, and the next-hop router to client device 100A (e.g., ...). Figure 1 The destination port and network protocol of the router 110H. 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.

[0080] In a similar manner to the above, control unit 202 determines whether the L2 frame includes a non-session-based payload, and in response, generates a second placeholder session identifier for the second L3 packet generated to encapsulate the second L2 frame. The second placeholder session identifier includes a 5-tuple comprising a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a first network protocol. Because, as described above, the 5-tuple of the second placeholder session identifier can be based on the LAN interface and port where control unit 202 receives the second L2 frame and the LAN interface and port of the next-hop router 110 (e.g., router 110H) to which control unit 202 forwards the L3 packet, the second placeholder session identifier can be different from the placeholder session identifier used in the L3 header encapsulating the L3 packet of the L2 frame received by router 110A from client 100A. Therefore, by Figure 1 Router 110A generates a placeholder session identifier to encapsulate L3 packets in L2 frames received from client device 100A. This placeholder session identifier can specify a first unidirectional session, which includes a forward packet flow originating from router 110A and destined for router 110I, but does not include a reverse packet flow originating from router 110I and destined for router 110A. In contrast, a second placeholder session identifier for a second L3 packet originating from router 110I and destined for router 110A can specify a second unidirectional session, which includes a reverse packet flow originating from router 110I and destined for router 110A, but does not include a forward packet flow originating from router 110A and destined for router 110I.

[0081] In some examples, control unit 202 may apply one or more stateful services to L3 packets before forwarding them to the next hop or before decapsulating them to obtain L2 frames. In some examples, stateful services may include, for example, deep packet inspection (DPI).

[0082] Figures 3A-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 present disclosure. For convenience, Figures 3A-3B about Figure 1 To describe.

[0083] Figure 3A This is a block diagram illustrating the data structure of an L2 frame 300A. In some examples, the L2 frame 300A includes an Ethernet frame. The L2 frame 300A includes an L2 header 340 and a data payload 332. In some examples, the L2 header 340 specifies the source MAC address 316 indicating the device that initiated the L2 frame 300A and the destination MAC address 318 indicating the device to which the L2 frame 300A is destined.

[0084] exist Figure 3A In the example, data payload 332 includes a non-session-based payload. In some examples, the non-session-based payload of the L2 frame includes an ARP request, a CDP request, or an LLDP request. In some examples, the L2 frame includes an Ethernet frame.

[0085] In some examples where L2 Frame 300A is an Ethernet frame, L2 Frame 300A may additionally include a preamble, EtherType, and Frame Check Sequence (FCS). Figure 3A (Not depicted in the text). In some examples, L2 header 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.

[0086] 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.

[0087] L2 frame 300A is described for illustrative purposes only. The technology disclosed herein can be applied to the use of... Figure 3A Other types of L2 frames with different formats are depicted in the text. For example, an ARP request can be used to query, for example, the unknown MAC address of client device 100B. In such an example, L2 frame 300A may not include the destination MAC address 318, because such information may be unknown.

[0088] Figure 3B This is a block diagram illustrating the data structure of an L3 packet 300B generated from a non-session-based L2 frame 300A according to the technology of this disclosure. The L3 packet 300B includes an L3 header 302, metadata 314, and an L3 data payload 350. The L3 data payload 350 includes... Figure 3A The L2 frame 300A enables the L3 packet 300B to encapsulate the L2 frame 300A.

[0089] 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.

[0090] As mentioned above Figure 1 In some examples, router 110A generates an L3 packet 300B in response to receiving a non-session-based 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 the L3 packet 300B, respectively. Destination router IP address 308 and destination port 310 specify the IP address and port of router 110B to which the L3 packet 300B is destined.

[0091] Metadata 314 specifies a placeholder session identifier 360, which includes a placeholder source IP address 322, a placeholder source port 324, a placeholder destination IP address 326, a placeholder destination port 328, and a placeholder IP protocol 330. In some examples, the placeholder source IP address 322 is the IP address of the LAN interface connected to that LAN interface. Figure 1 Router 110A receives L2 frame 300A, and placeholder source port 324 is the port of the LAN interface through which router 110A receives L2 frame 300A. In some examples, placeholder destination IP address 326 is the IP address of the LAN interface of the next-hop router 110 (e.g., router 110B) to which router 110A forwards L3 packet 300B, and placeholder destination port 328 is the port of the LAN interface of the next-hop router 110 (e.g., router 110B) to which router 110A forwards L3 packet 300B. In some examples, placeholder network protocol 330 is UDP. In other examples, placeholder network protocol 330 is TCP. As described above, Figure 1 Router 110 in the text can be used to connect to router 110. Figure 1 The placeholder session identifier 360 can be used to perform session-based routing of L2 frame 300A and / or L3 packet 300B, even if L2 frame 300A is a non-session-based L2 frame that includes a non-session-based payload 332.

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

[0093] 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.

[0094] Router 110A determines that the L2 frame includes a non-session-based payload (401). In some examples, the non-session-based payload of the L2 frame includes an ARP request, a CDP request, or an LLDP request. In some examples, the L2 frame includes an Ethernet frame.

[0095] In response to determining that the L2 frame includes a non-session-based payload, router 110A generates an L3 packet including an L3 header, metadata including a placeholder session identifier, and an L3 payload including the non-session-based L2 frame, to encapsulate the L2 frame with the L3 packet (404). For example, router 110A identifies the L3 network service associated with the L2 frame based on the L2 header of the L2 frame. The L3 header of the L3 packet specifies the source IP address and source port of router 110A and the destination IP address and destination port of router 110B (e.g., the next-hop router). The L3 header also includes the network protocol selected based on the identified L3 network service associated with the L2 frame. In some examples, the network protocol is UDP. In some examples, the network protocol is TCP.

[0096] Furthermore, the placeholder session identifier in the metadata of the L3 packet may, for example, include a 5-tuple containing a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a first network protocol. In some examples, the placeholder source IP address is the IP address of the LAN interface of router 110A used to receive L2 frames, and the placeholder source port is the port of the LAN interface of router 110A used to receive L2 frames. In some examples, the placeholder destination IP address is the IP address of the LAN interface of the next-hop router 110 (e.g., router 110B) to which router 110A forwards the L3 packet, and the placeholder destination port is the port of the LAN interface of the next-hop router 110 (e.g., router 110B) to which router 110A forwards the L3 packet. In some examples, the network protocol is UDP. In other examples, the network protocol is TCP.

[0097] 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 packet header 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 packet header 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.

[0098] Finally, router 110I receives L3 packets from, for example, router 110H (408). In response to receiving the L3 packets, router 110I decapsulates the L3 packets to obtain non-session-based L2 packets from the L3 payload of the L3 packets (410). Router 110I forwards the recovered L2 frames destined for client device 100B to client device 100B via another L2 network, for example, client network 140B to which router 110I is connected (412).

[0099] 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.

[0100] 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.

[0101] 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.

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

Claims

1. A computer networking method, comprising: An L2 frame destined for a second client device is received by a first router and from a first client device connected to the first router via a first Open Systems Interconnection (OSI) Layer 2 (L2) network. The L2 frame includes an L2 header and a non-session-based payload. The first router is connected to the second router via an OSI model Layer 3 (L3) network, and the second router is connected to the second client device via a second L2 network. The L3 network service associated with the L2 frame is identified by the first router based on the L2 header of the L2 frame; The first router, in response to determining that the L2 frame includes the non-session-based payload, generates a placeholder session identifier for the L2 frame, wherein the placeholder session identifier includes a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a first network protocol. The first router forms an L3 packet, which includes: The L3 header includes the source Internet Protocol IP address and source port of the first router, the destination IP address and destination port of the second router, and a second network protocol selected from a plurality of network protocols based on the identified L3 network service associated with the L2 frame. Including the payload of the L2 frame; and Metadata including the placeholder session identifier; and The first router performs L3 session-based routing of the L3 packet based on the placeholder session identifier to forward the L3 packet to the second router via the L3 network.

2. The method of claim 1, wherein generating the placeholder session identifier comprises: The placeholder source IP address is limited to the first IP address of the first local area network (LAN) interface used by the first router to receive the L2 frame; The placeholder source port is limited to the first port of the first LAN interface used by the first router to receive the L2 frame; The placeholder destination IP address is limited to the second IP address of the second LAN interface of the second router to which the first router forwards the L3 packet; The placeholder destination port is limited to the second port of the second LAN interface of the second router to which the first router forwards the L3 packet; as well as The first network protocol is defined as a communication session protocol.

3. The method according to claim 1, The placeholder session identifier includes a 5-tuple that is different from the 5-tuple specified by the L3 header of the L3 packet, and The 5-tuple of the placeholder session identifier includes L3 address information that does not correspond to the L3 address translation of the L2 header of the L2 frame.

4. The method of claim 1, wherein the placeholder session identifier clearly identifies the L2 frame from other L2 frames received by the first router.

5. The method according to claim 1, The placeholder session identifier identifies a first one-way session, which includes a forward packet flow originating from the first router and destined for the second router, but does not include a reverse packet flow originating from the second router and destined for the first router. The method further includes receiving a second L3 packet from the first router, the second L3 packet including metadata specifying a second placeholder session identifier that identifies a second one-way session, the second one-way session including the reverse packet flow originating from the second router and destined for the first router, and excluding the forward packet flow originating from the first router and destined for the second router, the second placeholder session identifier being different from the placeholder session identifier.

6. The method according to any one of claims 1 to 5, The L3 packets mentioned above include at least one of User Datagram Protocol (UDP) packets or Transmission Control Protocol (TCP) packets, and The L2 frame mentioned above includes an Ethernet frame.

7. The method of any one of claims 1 to 5, wherein the non-session-based payload comprises one of an Address Resolution Protocol (ARP) request, a Cisco Discovery Protocol (CDP) request, or a Link Layer Discovery Protocol (LLDP) request.

8. The method according to any one of claims 1 to 5, further comprising: The placeholder session identifier for the L2 frame is stored by the first router; as well as The first router deletes the placeholder session identifier for the L2 frame after a predetermined time period has elapsed.

9. A first router including processing circuitry, the processing circuitry being configured to: A first client device connected to the first router via a first Open Systems Interconnection (OSI) Layer 2 (L2) network receives an L2 frame destined for a second client device, the L2 frame including an L2 header and a non-session-based payload, 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. The L3 network service associated with the L2 frame is identified based on the L2 header of the L2 frame; In response to determining that the L2 frame includes the non-session-based payload, a placeholder session identifier is generated for the L2 frame, wherein the placeholder session identifier includes a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a first network protocol. Forming an L3 group, the L3 group includes: The L3 header includes the source Internet Protocol IP address and source port of the first router, the destination IP address and destination port of the second router, and a second network protocol selected from a plurality of network protocols based on the identified L3 network service associated with the L2 frame. Including the payload of the L2 frame; and Metadata including the placeholder session identifier; and The L3 packet is routed based on the placeholder session identifier to forward the L3 packet to the second router via the L3 network.

10. The first router of claim 9, wherein, in order to generate the placeholder session identifier, the processing circuitry is configured to: The placeholder source IP address is limited to the first IP address of the first local area network (LAN) interface used by the first router to receive the L2 frame; The placeholder source port is limited to the first port of the first LAN interface used by the first router to receive the L2 frame; The placeholder destination IP address is limited to the second IP address of the second LAN interface of the second router to which the first router forwards the L3 packet; The placeholder destination port is limited to the second port of the second LAN interface of the second router to which the first router forwards the L3 packet; as well as The network protocol is defined as a communication session protocol.

11. The first router of claim 9, wherein the placeholder session identifier clearly identifies the L2 frame from other L2 frames received by the first router.

12. The first router according to claim 9, The placeholder session identifier identifies a first one-way session, which includes a forward packet flow originating from the first router and destined for the second router, but does not include a reverse packet flow originating from the second router and destined for the first router. The processing circuitry is further configured to receive a second L3 packet, the second L3 packet including metadata specifying a second placeholder session identifier that identifies a second one-way session, the second one-way session including the reverse packet flow originating from the second router and destined for the first router, and excluding the forward packet flow originating from the first router and destined for the second router, the second placeholder session identifier being different from the placeholder session identifier.

13. The first router according to any one of claims 9 to 12, The L3 packets mentioned above include at least one of User Datagram Protocol (UDP) packets or Transmission Control Protocol (TCP) packets, and The L2 frame mentioned above includes an Ethernet frame.

14. The first router according to any one of claims 9 to 12, wherein the non-session-based payload comprises one of Address Resolution Protocol (ARP) requests, Cisco Discovery Protocol (CDP) requests, or Link Layer Discovery Protocol (LLDP) requests.

15. A computer networking method, comprising: The L3 packet is received by a second router and from a first router connected to the second router via an Open Systems Interconnection (OSI) Layer 3 (L3) network, wherein the first router is connected to the 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 includes: The L3 header includes the source Internet Protocol IP address and source port of the first router, the destination IP address and destination port of the second router, and the first network protocol. The payload includes an L2 frame initiated by the first client device and destined for the second client device, the L2 frame including a non-session-based payload; and Metadata, the metadata including a placeholder session identifier for the L2 frame, wherein the placeholder session identifier includes a placeholder source IP address, a placeholder source port, a placeholder destination IP address, a placeholder destination port, and a second network protocol. The L2 frame is obtained by the second router and from the payload of the L3 packet; and The L2 frame is forwarded from the second router to the second client device via the second L2 network.

16. The method according to claim 15, The placeholder session identifier identifies a one-way session, which includes a forward packet flow originating from the first router and destined for the second router, but does not include a reverse packet flow originating from the second router and destined for the first router. The method further includes: The second router generates a second placeholder session identifier for the second L2 frame, which is initiated by the second client device and destined for the first client device. The second router forms a second L3 packet, which includes: The second L3 header includes the source IP address and source port of the second router, the destination IP address and destination port of the first router, and a third network protocol. Including the second payload of the second L2 frame; and Includes metadata for the second placeholder session identifier; and The second L3 packet is forwarded from the second router through the L3 network to the first router. The placeholder session identifier identifies a first one-way session, which includes a forward packet flow originating from the first router and destined for the second router, but does not include a reverse packet flow originating from the second router and destined for the first router. The second placeholder session identifier identifies a second one-way session, which includes the reverse packet flow originating from the second router and destined for the first router, but does not include the forward packet flow originating from the first router and destined for the second router. The second placeholder session identifier is different from the placeholder session identifier.

17. The method according to any one of claims 15 to 16, The L3 packets mentioned above include at least one of User Datagram Protocol (UDP) packets or Transmission Control Protocol (TCP) packets, and The L2 frame mentioned above includes an Ethernet frame.

18. The method of any one of claims 15 to 16, wherein the non-session-based payload comprises one of an Address Resolution Protocol (ARP) request, a Cisco Discovery Protocol (CDP) request, or a Link Layer Discovery Protocol (LLDP) request.

19. The method according to any one of claims 15 to 16, further comprising: The placeholder session identifier for the L2 frame is stored by the second router; as well as The second router deletes the placeholder session identifier for the L2 frame after a predetermined time period has elapsed.

20. The method of any one of claims 15 to 16, further comprising applying stateful L3 services to the L3 packets by the second router and based on the placeholder session identifier for the L2 frame.

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

  • Routing using segment-based metrics

    US20200366589A1