Bi-directional tunnel detection in multi-domain network

By using a bidirectional tunnel detection scheme in a multi-domain network and utilizing detection packets of forward and reverse tunnel labels and IP packet headers, the problem of false indication of tunnel failure is solved, the speed and reliability of the network are improved, and unnecessary tunnel closures are reduced.

CN120752900APending Publication Date: 2025-10-03MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480014526.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-05-16
Filing Date
2024-04-04
Publication Date
2025-10-03

AI Technical Summary

Technical Problem

In multi-domain networks, traditional tunnel probe packets can cause false indications of tunnel failures due to return path failures defined by the Interior Gateway Protocol, leading to unnecessary network traffic disruptions.

Method used

A bidirectional tunnel detection scheme is adopted. By creating a detection packet containing a forward tunnel label, a reverse tunnel label and an IP packet header in the packet switching network, it is transmitted along the tunnel in the forward and reverse directions to ensure that the detection packet can effectively return to the tunnel source router and avoid false indications of tunnel failure.

Benefits of technology

It improves the speed and reliability of packet switching networks, reduces false indications of tunnel failures, avoids unnecessary tunnel closures, and ensures the stability of network traffic.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120752900A_ABST
    Figure CN120752900A_ABST
Patent Text Reader

Abstract

Bi-directional tunnel detection in a network may be extended to a multi-domain network, providing bi-directional detection in a multi-domain network. Bidirectional sounding uses a sounding packet having a forward tunnel tag, a reverse tunnel tag, and an IP packet header. Bidirectional sounding in a multi-domain network uses a forward tunnel tag, an SID, a reverse tunnel tag, and an IP packet header. And the last but one jump pops up the label stripped from the outermost layer according to a specific sequence. The SID returns the probe packet to the origin domain, while the reverse tunnel tag returns the probe packet in the reverse direction of the tunnel. In-domain sounding does not require SID, and if a reverse tunnel tag is missing, an IP packet header is used to return a sounding packet.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Provisional Patent Application No. 63 / 496,353, “Bidirectional Tunnel Detection in Multi-Domain Networks,” filed on April 14, 2023, the entire contents of which are hereby incorporated by reference. Background Art

[0003] In packet-switched networks, the activity of a traffic engineering tunnel is measured using probe packets transmitted from a proxy or other entity at the tunnel entrance. Probe packets travel along the tunnel, using the same paths and interfaces as regular packets. Because tunnels are unidirectional, probe packets return from the tunnel destination to the tunnel source using a route established by another protocol, such as the Interior Gateway Protocol (IGP).

[0004] When the network is segmented into multiple domains, the traffic engineering controller that builds the tunnel can only control routing within its own domain. This allows tunnels within a domain to reach only the border router of the adjacent domain. This means that the tunnel's destination is the border router of the adjacent domain (that is, the first reachable router in the adjacent domain). Summary of the Invention

[0005] The disclosed examples are described in detail below with reference to the drawings listed below.The following summary is provided to illustrate some examples disclosed herein.

[0006] An example solution for bidirectional tunnel probing in a network includes creating a first probe packet for a first tunnel in a packet-switched network, the first tunnel comprising an ordered set of routers, and the first probe packet comprising: a forward tunnel label; a reverse tunnel label; and an IP packet header; transmitting the first probe packet from a tunnel source router to a tunnel destination router along the first tunnel using the forward tunnel label; transmitting the first probe packet in a reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and marking the first tunnel as available based at least on receipt of the first probe packet by the tunnel source router from the tunnel destination router. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The following detailed description of the disclosed examples refers to the following drawings:

[0008] Figure 1 An exemplary architecture is shown that advantageously provides bidirectional tunnel detection, tunnel detection in a multi-domain network, and even bidirectional tunnel detection in a multi-domain network;

[0009] Figure 2 For example, it can be shown Figure 1 Further details of an exemplary tunnel used in an exemplary architecture of

[0010] Figure 3 Shows when Figure 1 The example architecture includes further details when using a multi-domain network;

[0011] Figure 4A 、 4B , 4C and 4D show that for example Figure 1 An exemplary probe packet encapsulation structure for use in an exemplary architecture of

[0012] Figure 5A 、 5B , 5C and 5D show that for example Figure 1 An exemplary probe packet path used in an exemplary architecture of

[0013] Figure 6 、 7 and 8 show instructions when using e.g. Figure 1 A flowchart of exemplary operations that may be performed when an exemplary architecture of the architecture is provided; and

[0014] Figure 9 Block diagrams showing some exemplary computing devices suitable for implementing the various examples disclosed herein.

[0015] Corresponding reference characters indicate corresponding parts throughout the drawings. DETAILED DESCRIPTION

[0016] Even when a tunnel is intact and operating well, conventional probe packets may fail to return due to a failure in the return path defined by the Interior Gateway Protocol (IGP), resulting in a false indication of tunnel failure. The tunnel is then abandoned. This false indication of tunnel failure causes unnecessary disruption to network traffic.

[0017] An example solution for bidirectional tunnel probing in a network includes creating a first probe packet for a first tunnel in a packet-switched network, the first tunnel comprising an ordered set of routers, and the first probe packet comprising: a forward tunnel label; a reverse tunnel label; and an IP packet header; transmitting the first probe packet from a tunnel source router to a tunnel destination router along the first tunnel using the forward tunnel label; transmitting the first probe packet in a reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and marking the first tunnel as available based at least on receipt of the first probe packet by the tunnel source router from the tunnel destination router.

[0018] The disclosed solution for bidirectional tunnel detection in a network can optionally be combined with a solution for tunnel detection in a multi-domain network to provide bidirectional tunnel detection in a multi-domain network. Bidirectional tunnel detection uses a probe packet that contains, in sequence, a forward tunnel label, a reverse tunnel label, and an Internet Protocol (IP) datagram header. Tunnel detection in a multi-domain network uses a probe packet that contains, in sequence, a forward tunnel label and an IP datagram header. Bidirectional tunnel detection in a multi-domain network uses a probe packet that contains, in sequence, a forward tunnel label, a segment identifier (SID), a reverse tunnel label, and an IP datagram header. Penultimate hop popping is used to strip the outermost labels in a specific order. The forward tunnel label moves the probe packet along the tunnel toward the tunnel destination; the SID returns the probe packet to the originating domain; and the reverse tunnel label returns the probe packet along the reverse direction of the tunnel to the tunnel source. The SID is not required for intra-domain probe packets only. If the reverse tunnel label is missing, the IP packet header is used to return the probe packet to the tunnel source. This solution eliminates false indications of tunnel failure.

[0019] The example solutions described herein improve the speed and reliability of packet-switched networks by reducing false indications of tunnel failures that would otherwise cause unnecessary shutdown of functional tunnels.

[0020] Various examples will be described in detail with reference to the accompanying drawings. Wherever possible, the same reference numerals are used in the drawings to represent the same or similar components. References throughout the disclosure to specific examples and embodiments are provided for illustrative purposes only and are not intended to limit all examples unless otherwise indicated.

[0021] Figure 1 An exemplary architecture 100 is shown that advantageously provides bidirectional tunnel detection, tunnel detection in a multi-domain network, and bidirectional tunnel detection in a multi-domain network. Network 102 comprises a packet-switched wide area network (WAN) for transporting data traffic between data centers and cloud resource users, such as between data center edge 104a, data center edge 104b, and peer edge 106.

[0022] Network 102 may utilize common routing protocols such as those used for the Internet. For example, next-hop (NH) routing using segment identifiers (SIDs) may be handled by routing protocols such as Intermediate System to Intermediate System (ISIS). ISIS is a routing protocol designed to efficiently move information within a computer network, a physically connected group of computers, or similar devices. It does this by determining the shortest path for data through a packet-switched network.

[0023] In addition, network 102 may utilize Multiprotocol Label Switching (MPLS). MPLS is a routing technology in telecommunications networks that directs data from one node to the next based on labels rather than network addresses. A Label Switched Path (LSP) is a path through an MPLS network. The path begins at a Label Edge Router (LER), which determines which label to prefix a packet. The router that adds the MPLS header to the prefix of a packet may be labeled an ingress router. The router between the ingress router and the final router (i.e., the egress router) is a transit router, also known as a Label Switched Router (LSR) in an MPLS network.

[0024] The ingress router forwards the packet to the next router in the path, which, in some cases, may switch the label in the MPLS header. Packet forwarding decisions are made based on the contents of the MPLS label, without examining the packet itself. When an LSR receives a packet, it uses the label included in the packet header as an index to determine the next hop on the LSP and the corresponding label for the packet from a lookup table. Some MPLS networks, such as network 102, use penultimate hop popping (PHP), in which the outermost label of an MPLS labeled packet is removed by the LSR before the packet is passed to the (adjacent) final router in the LSP. LSPs are unidirectional; they enable packets to be label-swapped across the MPLS network from a source endpoint to a destination endpoint.

[0025] LSPs are also called tunnels. To provide efficient and reliable traffic flow for network 102, traffic engineering controller 110 determines a set of tunnels through which packets travel within network 102. Traffic engineering controller 110 may determine the set of tunnels to optimize performance metrics, such as maximizing the throughput of network 102. Before using a tunnel, traffic engineering controller 110 installs routes on each router involved in the tunnel to minimize the risk of packet loss.

[0026] In the example shown, the probe 120 tests the tunnel 200 to determine the liveness or availability of the tunnel 200. The tunnel 200 originates at the tunnel source router 150 and terminates at the tunnel destination router 160, as described below in conjunction with Figure 2Shown and described in further detail. To test the availability (liveness) of tunnel 200, probe 120 sends probe packets along tunnel 200. These include probe packet 131, probe packet 132, and probe packet 133, which can be identical except for items that must be different, such as packet numbers and timestamps. The probe packets are created to be routed from tunnel source router 150 to tunnel destination router 160 and back. Tunnel source router 150 reports the return of the probe packet to probe 120 (e.g., forwards the probe packet) so that probe 120 can determine that tunnel 200 is available (active) and, in some examples, also estimate the transmission time. If tunnel 200 is active, probe 120 sets flag 112 to indicate that tunnel 200 is available.

[0027] A lost probe packet or a threshold number of consecutive lost probe packets is an indication that tunnel 200 is unavailable (inactive). After a sufficient number of lost packets, probe 120 determines that tunnel 200 is unavailable (inactive) and sets flag 112 to indicate that tunnel 200 is unavailable. When traffic engineering controller 110 receives topology information and demand information for the next round of tunnel creation, if traffic demand still requires a tunnel with a similar route at that location, a new tunnel 200r can be created to take over the traffic already routed through tunnel 200. Tunnel 200r can be created as part of a larger set (for example, thousands of tunnels can be created as part of a new set).

[0028] In some examples, probe packets are transmitted at 100 millisecond (ms) intervals. The probe packet interval is independent of the round-trip transmission time, so multiple probe packets can be transmitted at a given time. If the number of consecutive probe packets lost is set to 3 and the probe packet interval is 100 ms, the amount of time required to detect a failed tunnel is approximately 300 ms plus the expected round-trip transmission time of the probe packet. Probe packets can be transmitted at different intervals (e.g., 10 ms, 200 ms, etc.).

[0029] Although only two tunnels are shown, it should be understood that some examples may use a significantly greater number of tunnels, such as thousands or more.

[0030] Figure 2 For example, it can be shown Figure 1 As shown, tunnel 200 includes tunnel source router 150, router 151, router 152, router 153, router 154, and tunnel destination router 160. Thus, tunnel 200 includes an ordered set of routers 210 that use Figure 2The elements shown are numbered {150, 151, 152, 153, 154, 160}. In this order, router 154 is the penultimate router of tunnel 200 and is designated as penultimate router 220. In practice, traffic engineering controller 110 can reuse available data tunnels in the reverse direction, so another tunnel is a reverse tunnel 202 having an ordered set of routers 212 {160, 154, 153, 152, 151, 150}, which is the reverse of ordered set of routers 210 (for tunnel 200). In reverse tunnel 202, router 151 is the penultimate router 220. It should be understood that some examples may use a different number of routers in the tunnel.

[0031] Even without MPLS and tunnels, each of routers 151-154 and 160 has its own routing logic 230. Routing logic 230 can use segment routing, for example, using SIDs created by ISIS or another routing protocol that implements segment routing. ISIS includes distributed logic in each router that determines the shortest path and installs the route. For adjacent routers, the shortest path is the interface to the adjacent router. Therefore, even without tunnel labels or using MPLS, router 154 can use segment routing to route packets (e.g., probe packet 131) to tunnel destination router 160. Similarly, router 151 can use reverse segment routing to route packets (e.g., return probe packet 131) to tunnel source router 150.

[0032] Traffic engineering controller 110, through an agent in each router 150-154 (as shown by tunnel engineering logic 232), programs a tunnel label for each router 150-154 in tunnel 200. When a probe packet 131 is generated by tunnel source router 150 for transmission through tunnel 200, tunnel source router 150 determines the forwarding equivalence class (FEC) of the packet and then appends the encapsulation structure (e.g., including a newly created MPLS header). In some examples, the MPLS header initially includes an egress site label. The probe packet 131 is then passed to the next-hop router of tunnel 200, namely router 151. In the example shown, router 151 switches the MPLS egress site label to a traffic engineering path label.

[0033] In some examples, subsequent routers 152 and 153 retain the traffic engineering path label until router 154 removes it in a penultimate hop pop scheme. Tunnel engineering logic 232 has label lookup and switching capabilities, as well as pop and push capabilities. Router 154 sends out probe packet 131 through an interface directly to tunnel destination router 160. This results in three phases of packet flow: traffic steering, traffic engineering, and segment routing.

[0034] Using this approach, traffic engineering controller 110 only needs to program the router for the forward direction of tunnel 200 through the penultimate router 220 (e.g., router 154). Tunnel destination router 160 does not need to be programmed for tunnel 200. However, the situation is different for reverse tunnel 202. All routers under the control of traffic engineering controller 110 also need to be programmed by traffic engineering controller 110 for reverse tunnel 202. If tunnel destination router 160 is under the control of traffic engineering controller 110, traffic engineering controller 110 programs tunnel destination router 160 and all routers 151-154 for reverse tunnel 202. Tunnel source router 150 does not need to be programmed for reverse tunnel 202 because it is the final router of reverse tunnel 202.

[0035] Figure 3 FIG. 1 shows a situation where the tunnel destination router 160 is not under the control of the traffic engineering controller 110. Figure 3 , network 102 is a multi-domain network and is shown as being partitioned into two domains (or slices), domain 301 and domain 302. It should be understood that a different number of domains may be used in some examples.

[0036] Traffic engineering controller 110 controls a set of routers 311 within domain 301 to provide tunnels such as tunnel 200, and probe 120 probes tunnels originating from domain 301. Traffic engineering controller 110a controls a set of routers 312 within domain 302 to provide tunnels such as tunnel 200a, and probe 120a probes tunnels originating from domain 302. Tunnels can be entirely within a domain, or can originate within a domain and terminate at a border router in an adjacent domain. A border router is the first router encountered across a domain boundary.

[0037] In the example shown, tunnel destination router 160 is a border router of domain 302. Tunnel 200 originates within domain 301, and all routers (e.g., Figure 21-154 in domain 301. Tunnel 200 terminates at tunnel destination router 160 in domain 302, and router 154 (also identified as penultimate router 350) is the final router of ordered set of routers 210 in domain 301.

[0038] Another tunnel (not shown) may originate at tunnel destination router 160 and further traverse domain 302, making tunnel destination router 160 the tunnel source router for the other tunnel. Similar to tunnel 200, but traveling in the opposite direction, tunnel 200a originates within domain 302 and terminates at a border router within domain 301. Another tunnel (not shown) may further carry traffic into domain 301.

[0039] In the scenario shown, traffic engineering controller 110a controls tunnel destination router 160. Because the tunnel is domain specific, traffic engineering controller 110a is unaware of reverse tunnel 202 and therefore cannot program tunnel destination router 160 for reverse tunnel 202. This means that reverse tunnel 202 begins at router 154, not tunnel destination router 160. Therefore, a way to return probe packet 131 to router 154 is needed. The solution to this is described in Figure 4C and shown in 4D.

[0040] Figure 4A 、 4B 4C and 4C illustrate exemplary probe packet encapsulation structures. Figure 4A 4. A scenario 400a is shown in which the probe packet 131 is a unidirectional probe packet used for intra-domain and inter-domain probing. The probe packet 131 has a forward tunnel label 402, an IP packet header 404, and a payload 410. The IP packet header 404 has a source field 406 and a destination field 408. The source field 406 is shown as "destIP tunnel source", indicating that the tunnel source router 150 is the packet destination, and the destination field 408 is shown as "srcIP tunnel destination", indicating that the tunnel destination router 160 is the packet source. The probe packet 131 is not assembled at the tunnel destination router 160, but the IP packet header 404 is formulated in a manner to ensure that the probe packet 131 is returned to the tunnel source router 150 so that the probe packet 131 can be forwarded to the probe 120 using existing standard packet routing capabilities.

[0041] In the case of 400a, the probe packet 131 follows Figure 5APath 500a is shown. That is, probe packet 131 follows tunnel 200 from tunnel source router 150 to tunnel destination router 160 and then returns to tunnel source router 150 using any available path. Probe packet 131 is routed from tunnel source router 150 to router 154 using forward tunnel label 402. In some examples, forward tunnel label 402 may begin as an egress site label and be switched by router 151 to a traffic engineering path label.

[0042] Router 154, which receives probe packet 131 with forward tunnel label 402, pops (strips) forward tunnel label 402, leaving probe packet 131 with only IP packet header 404 and payload 410. Router 154 then uses segment routing to transmit probe packet 131 to tunnel destination router 160. Tunnel destination router 160 (after seeing IP packet header 404) transmits probe packet 131 back to tunnel source router 150 using any available path (i.e., not using a defined tunnel). It is possible that the same set of routers 151-154 are used, but this is incidental.

[0043] Figure 4B 4 shows a scenario 400b where the probe packet 131 is a bidirectional intra-domain probe packet. The probe packet 131 has a forward tunnel label 402, an IP packet header 404, and a payload 410, and also has a reverse tunnel label 412 between the forward tunnel label 402 and the IP packet header 404. The reverse tunnel label 412 is for the reverse tunnel 202, so the probe packet 131 is transmitted along the reverse tunnel 202. Figure 5B That is, the probe packet 131 follows the tunnel 200 from the tunnel source router 150 to the tunnel destination router 160 and then follows the reverse tunnel from the tunnel destination router 160 to the tunnel source router 150 .

[0044] This time, when router 154 pops (strips) forward label 402, the next outermost encapsulation structure is reverse tunnel label 412. When tunnel destination router 160 sees reverse tunnel label 412, tunnel destination router 160 routes probe packet 131 back to tunnel source router 150 using reverse tunnel 202. During the return trip, router 151 pops (strips) reverse tunnel label 412, leaving probe packet 131 with only IP packet header 404 and payload 410. Router 151 then uses segment routing to transmit probe packet 131 to tunnel source router 150.

[0045] Figure 4B and 5B An intra-domain tunnel 200 is depicted (e.g., entirely within a single domain), while Figure 4C and 5CAn inter-domain tunnel 200 is depicted (e.g., tunnel 200 spans domains 301 and 302). Probe packets 132 and 133 will have the same encapsulation structure and addressing as probe packet 131, such as the same forward tunnel label 402, SID 414, reverse tunnel label 412, and IP header 404. In some examples, some items may necessarily differ, such as the packet number and timestamp, and other contents of payload 410 may also differ between probe packets 131-133.

[0046] Figure 4C Scenario 400c is shown, where probe packet 131 is a bidirectional inter-domain probe packet in a multi-domain version of network 102. Probe packet 131 has forward tunnel label 402, SID 414, reverse tunnel label 412, IP packet header 404, and payload 410. In scenario 400d, probe packet 131 follows path 500d, as shown in FIG5D . That is, probe packet 131 follows tunnel 200 from tunnel source router 150 to tunnel destination router 160. Router 154 pops (strips off) forward tunnel label 402, leaving probe packet 131 with SID 414 in the outermost encapsulation structure. When tunnel destination router 160 sees SID 414, it routes probe packet 131 back to router 154 using segment routing. SID 414 is stripped off, and router 154 sees reverse tunnel label 412. Router 154 then transmits probe packet 131 to tunnel source router 150 using reverse tunnel label 412 , where router 151 strips off reverse tunnel label 412 , leaving IP packet header 404 .

[0047] Figure 6 600 is shown, which illustrates exemplary operations that may be performed by architecture 100. In some examples, the operations described by flowchart 600 are performed by Figure 9 6. Flowchart 600 begins with the transmission of a probe packet matching the configuration of probe packet 131 on a periodic schedule, as in operation 602. Operation 602 continues while tunnel 200 remains active (available) and includes the remainder of flowchart 600 until operation 622. For flowchart 600, probe packets 131-133 each comprise a bidirectional probe packet.

[0048] Operation 604 creates a probe packet 131 for tunnel 200. Probe packet 131 includes forward tunnel label 402, reverse tunnel label 412, and IP packet header 404. Decision operation 606 separates flowchart 600 into single-domain processing (operations 610a, 612a, and 614a) and multi-domain processing (operations 608, 610b, 612b, 614b, 616, and 618).

[0049] For the multi-domain scenario, each of the probe packets 131-133 comprises a bidirectional intra-domain probe packet, and operation 608 adds SID 414 between the forward tunnel label 402 and the reverse tunnel label 412. SID 414 identifies the final router (e.g., router 154) of the ordered set of routers 210 within domain 301 and is used to instruct tunnel destination router 160 to transmit probe packet 131 to router 154.

[0050] Operations 610a and 610b are similar, with probe packet 131 being transmitted along tunnel 200 from tunnel source router 150 to tunnel destination router 160 using forward tunnel label 402. Operations 612a and 612b are also similar, with the penultimate router 220 (in this example, router 154) removing forward tunnel label 402.

[0051] Operation 614a is for single-domain activity, while operation 614b is for multi-domain activity and includes operations 616 and 618. Operations 614a and 614b are similar in that they both use reverse tunnel label 412 to transmit probe packet 131 along tunnel 200 in the reverse direction (e.g., reverse tunnel 202) from tunnel destination router 160 to tunnel source router 150. However, operations 614a and 614b differ in that in operation 614a, tunnel destination router 160 uses reverse tunnel label 412, while in operation 614b, tunnel destination router 160 uses SID 414 to first reach router 154, which then begins using reverse tunnel label 412.

[0052] In operation 616, tunnel destination router 160 removes SID 414 to expose reverse tunnel label 412, and uses segment routing to transmit probe packet 131 to router 154 in operation 618. Decision operation 620 determines whether the probe packet including probe packet 131 was received or lost. This includes waiting the expected delay tolerance for the probe packet to and from tunnel destination router 160 and back. If the probe packet 131 is received, then based at least on the tunnel source router 150 receiving the probe packet 131 back from tunnel destination router 160, tunnel 200 is marked as available in operation 622. Flowchart 600 then returns to operation 602 to continue probing tunnel 200. In a second pass, operations 604-620 operate on probe packet 132 as described above for probe packet 131. Probe packets 131 , 132 , and 133 each have the same forward tunnel label 402 , the same reverse tunnel label 412 , the same IP packet header 404 , and also have the same SID 414 if probe packet 131 has one.

[0053] Otherwise, if probe packets are lost, such as probe packets 131, 132, or 133 (or some other threshold number), tunnel 200 is marked as unavailable based at least on tunnel source router 150 not receiving probe packet 132 (or a threshold number of consecutive probe packets).

[0054] Figure 7 Flowchart 700 is shown, which illustrates exemplary operations that may be performed by architecture 100. In some examples, the operations described by flowchart 700 are performed by Figure 9 7. Flowchart 700 begins with the transmission of a probe packet matching the configuration of probe packet 131 on a periodic schedule, as in operation 702. Operation 702 continues while tunnel 200 remains active (available) and includes the remainder of flowchart 700 until operation 722. For flowchart 700, network 102 is multi-domain and probe packets 131-133 each comprise an inter-domain probe packet.

[0055] Operation 704 creates a probe packet 131 for tunnel 200. Probe packet 131 includes forward tunnel label 402 and IP packet header 404. Decision operation 706 separates flowchart 700 into a unidirectional packet probe process (operations 710a, 712a, 714a, and 716a) and a bidirectional packet probe process (operations 708, 710b, 712b, 714b, 716b, and 718). The effects of operations 704, 708, 710b, 712b, 714b, 716b, and 718 of flowchart 700 are similar to the effects of operations 604, 608, 610b, 612b, 614b, 616, and 618 of flowchart 600.

[0056] For multiple domains, the probe packets 131-133 each comprise a bidirectional inter-domain probe packet, and operation 708 adds the SID 414 and reverse tunnel label 412 between the forward tunnel label 402 and the IP packet header 404. The probe packets 131, 132, and 133 each have the same forward tunnel label 402, the same SID 414, the same reverse tunnel label 412, and the same IP packet header 404.

[0057] Operations 710a and 710b are similar, with the probe packet 131 being transmitted from the tunnel source router 150 to the tunnel destination router 160 along the tunnel 200 using the forward tunnel label 402. Operations 712a and 712b are also similar, with the tunnel destination router 160 removing the SID 414. Operations 714a and 714b are also similar, with the tunnel destination router 160 transmitting the probe packet 131 from the tunnel destination router 160 to the router 154 using the SID 414 with segment routing.

[0058] Operation 716a is for unidirectional probing, while operation 716b is for bidirectional probing and includes operation 718. Operations 716a and 716b are similar in that they both transmit probe packet 131 from tunnel destination router 160 to tunnel source router 150. However, operations 716a and 716b differ in that, in operation 716a, router 154 uses IP packet header 404 to reach tunnel source router 150, which may not take the reverse path of tunnel 200 (e.g., reverse tunnel 202), while in operation 716b, router 154 uses reverse tunnel label 412 to reach tunnel source router 150 in the reverse direction along tunnel 200 (e.g., reverse tunnel 202). As shown in operation 718, reverse tunnel label 412 is used to reach tunnel source router 150.

[0059] Decision operation 720 is a duplicate operation of decision operation 620 of flowchart 600. Similarly, operation 722 is a duplicate operation of operation 622; operation 724 is a duplicate operation of operation 624; and operation 726 is a duplicate operation of operation 626.

[0060] Figure 8 800 is shown, which illustrates exemplary operations that may be performed by the architecture 100. In some examples, the operations described by the flowchart 800 are performed by Figure 9 The computing device 900 is used to execute the process. Figure 8 Beginning with operation 802, operation 802 includes creating a first probe packet for a first tunnel in a packet-switched network, the first tunnel including an ordered set of routers, and the first probe packet including: a forward tunnel label; a reverse tunnel label; and an IP packet header.

[0061] Operation 804 includes transmitting a first probe packet from a tunnel source router to a tunnel destination router along a first tunnel using a forward tunnel label. Operation 806 includes transmitting the first probe packet in a reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using a reverse tunnel label. Operation 808 includes marking the first tunnel as available based at least on the tunnel source router receiving the first probe packet from the tunnel destination router.

[0062] Additional Examples

[0063] An exemplary system comprises: a processor; and a computer-readable medium storing instructions, wherein the instructions, when executed by the processor, are operable to: create a first probe packet for a first tunnel in a packet-switched network, the first tunnel comprising an ordered set of routers, and the first probe packet comprising: a forward tunnel label; a reverse tunnel label; and an IP packet header; transmit the first probe packet from a tunnel source router to a tunnel destination router along the first tunnel using the forward tunnel label; transmit the first probe packet in a reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and mark the first tunnel as available based at least on receipt of the first probe packet by the tunnel source router from the tunnel destination router.

[0064] An exemplary computer-implemented method comprises: creating a first probe packet for a first tunnel in a packet-switched network, the first tunnel comprising an ordered set of routers, and the first probe packet comprising: a forward tunnel label; a reverse tunnel label; and an IP packet header; transmitting the first probe packet from a tunnel source router to a tunnel destination router along the first tunnel using the forward tunnel label; transmitting the first probe packet in a reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and marking the first tunnel as available based at least on receipt of the first probe packet by the tunnel source router from the tunnel destination router.

[0065] One or more exemplary computer storage devices having computer-executable instructions stored thereon, which, when executed by a computer, cause the computer to perform operations including: creating a first probe packet for a first tunnel in a packet-switched network, the first tunnel comprising an ordered set of routers, and the first probe packet comprising: a forward tunnel label; a reverse tunnel label; and an IP packet header; transmitting the first probe packet from a tunnel source router to a tunnel destination router along the first tunnel using the forward tunnel label; transmitting the first probe packet in a reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and marking the first tunnel as available based at least on receipt of the first probe packet by the tunnel source router from the tunnel destination router.

[0066] Alternatively, or in addition to other examples described herein, examples include any combination of the following:

[0067] - creating a first probe packet for the first tunnel in the packet-switched network;

[0068] -The second detection packet includes: a forward tunnel label; a reverse tunnel label; and an IP packet header;

[0069] - Using the forward tunnel label of the second probe packet, follow the first tunnel from the tunnel source

[0070] The router transmits a second detection packet to the tunnel destination router;

[0071] - based on at least the tunnel source router not receiving a second probe from the tunnel destination router

[0072] The test group marks the first tunnel as unavailable;

[0073] - the opposite direction of the first tunnel includes the second tunnel;

[0074] - A packet-switched network comprises at least two domains;

[0075] - the tunnel source router is in the first of the two domains;

[0076] - the tunnel destination router is within the second of the two domains;

[0077] - The tunnel router between the tunnel source router and the tunnel destination router

[0078] within a domain;

[0079] -The first detection packet also includes: the SID between the forward tunnel label and the reverse tunnel label;

[0080] - Removal of the SID by the tunnel destination router;

[0081] - Using the SID, from the tunnel destination router to the first domain in the ordered set of routers

[0082] The last router in the transmission of the first detection packet;

[0083] - transmitting a first probe packet from a tunnel destination router to a tunnel source router along the first tunnel using a reverse tunnel label includes transmitting the first probe packet from a last router in a first domain in the ordered set of routers to the tunnel source router using a reverse tunnel label

[0084] Detection grouping;

[0085] - Removal of the forward tunnel label by the penultimate router in the ordered set of routers for the first tunnel;

[0086] - transmitting a probe packet matching the configuration of the first probe packet according to a periodic schedule; - transmitting the first probe packet from the last router in the first domain of the ordered set of routers to the tunnel source router along the first tunnel includes transmitting the first probe packet from the last router in the first domain of the ordered set of routers to the tunnel source router along the first tunnel in a reverse direction using a reverse tunnel label;

[0087] - the first probe packet includes a bidirectional probe packet;

[0088] -The first detection packet includes an intra-domain detection packet;

[0089] -The first detection packet includes an inter-domain detection packet;

[0090] -The first detection packet includes a bidirectional inter-domain detection packet;

[0091] - the first probe packet includes a bidirectional probe packet;

[0092] - the second probe packet includes a bidirectional probe packet;

[0093] -The second detection packet includes an intra-domain detection packet;

[0094] -The second detection packet includes an inter-domain detection packet;

[0095] -The second detection packet includes a bidirectional inter-domain detection packet;

[0096] -The tunnel source router adds a forward tunnel label and a reverse tunnel label to the first probe packet;

[0097] - The tunnel source router adds a forward tunnel label and a reverse tunnel label to the second probe packet;

[0098] - the second tunnel comprises an ordered set of routers in the reverse order of the first tunnel;

[0099] -SID identifies the last router in the first domain of the ordered set of routers;

[0100] - The SID instructs the tunnel destination router to transmit the first probe packet to the last router in the first domain in the ordered set of routers;

[0101] - marking the first tunnel as unavailable based on at least a threshold number of consecutive probe packets not being received by the tunnel source router;

[0102] - In the absence of a reverse tunnel label, routing the first probe packet to the tunnel source router using the IP header;

[0103] - the first tunnel comprises an MPLS tunnel; and

[0104] - Determining that the probe packet was not received includes waiting for an expected delay tolerance time.

[0105] Although various aspects of the present disclosure have been described through various examples and related operations, those skilled in the art will understand that any combination of operations from any number of different examples is also within the scope of various aspects of the present disclosure.

[0106] Sample operating environment

[0107] Figure 9 900 (e.g., a computer storage device) for implementing various aspects disclosed herein and is generally designated as computing device 900. In some examples, one or more computing devices 900 are provided for a local computing solution. In some examples, one or more computing devices 900 are provided as a cloud computing solution. In some examples, a combination of local and cloud computing solutions is used. Computing device 900 is only one example of a suitable computing environment and is not intended to suggest any limitation on the scope of use or functionality of the examples disclosed herein, whether used alone or as part of a larger collection.

[0108] Nor should the computing device 900 be interpreted as having any dependency or requirement on any one or combination of the components / modules shown. The examples disclosed herein can be described in the general context of computer code or machine-usable instructions (including computer-executable instructions executed by a computer or other machine (such as a personal data assistant or other handheld device), such as program components). Typically, program components including routines, programs, objects, components, data structures, etc. refer to codes that perform specific tasks or implement specific abstract data types. The disclosed examples can be practiced in various system configurations, including personal computers, laptop computers, smart phones, mobile tablets, handheld devices, consumer electronics, special-purpose computing devices, etc. The disclosed examples can also be implemented in a distributed computing environment, where tasks are performed by remote processing devices linked through a communication network.

[0109] The computing device 900 includes a bus 910 that directly or indirectly couples the following devices: computer memory 912, one or more processors 914, one or more presentation components 916, input / output (I / O) ports 918, I / O components 920, a power supply 922, and a network component 924. Although the computing device 900 is depicted as a single device, multiple computing devices 900 can work together and share the depicted device resources. For example, the memory 912 can be distributed across multiple devices, and the processor 914 can be housed in a different device.

[0110] Bus 910 may represent one or more buses (e.g., an address bus, a data bus, or a combination thereof). Although for clarity, Figure 9 The boxes are represented by lines, but components may be depicted in alternative ways. For example, presentation components such as display devices are I / O components in some examples, and processors in some examples have their own memory. No distinction is made between categories such as "workstation," "server," "laptop," "handheld device," etc., as all are considered to be in the same class. Figure 9 912 is within the scope of and is referred to herein as a "computing device". The memory 912 can take the form of computer storage media referenced below and is operable to provide storage of computer-readable instructions, data structures, program modules, and other data for the computing device 900. In some examples, the memory 912 stores one or more of an operating system, a general-purpose application platform, or other program modules and program data. Thus, the memory 912 is capable of storing and accessing data 912a and instructions 912b, which are executable by the processor 914 and configured to perform the various operations disclosed herein.

[0111] In some examples, memory 912 includes computer storage media. Memory 912 may include any number of memories associated with or accessible by computing device 900. Memory 912 may be internal to computing device 900 (e.g., Figure 9 ), external to computing device 900 (not shown), or both (not shown). Additionally, or alternatively, memory 912 may be distributed across multiple computing devices 900, for example, in a virtualized environment where instruction processing is performed on multiple computing devices 900. For purposes of this disclosure, "computer storage media," "computer storage memory," "memory," and "memory device" are synonymous terms for memory 912, and none of these terms include carrier waves or propagated signaling.

[0112] The processor 914 may include any number of processing units that read data from various entities such as the memory 912 or the I / O components 920. Specifically, the processor 914 is programmed to execute computer-executable instructions for implementing various aspects of the present disclosure. The instructions may be executed by a processor, multiple processors within the computing device 900, or a processor external to the client computing device 900. In some instances, the processor 914 is programmed to execute instructions such as those described in the flowcharts discussed below and depicted in the accompanying drawings. Furthermore, in some examples, the processor 914 represents an analog technology embodiment for performing the operations described herein. For example, these operations may be performed by an analog client computing device 900 and / or a digital client computing device 900. The presentation component 916 presents data indications to a user or other device. Exemplary presentation components include a display device, a speaker, a printing component, a vibrating component, and the like. Those skilled in the art will understand and appreciate that computer data can be presented in a variety of ways, such as visually in a graphical user interface (GUI), audibly through a speaker, wirelessly between computing devices 900, via a wired connection, or in other ways. I / O ports 918 allow computing device 900 to be logically coupled to other devices, including I / O components 920, some of which may be built-in. Example I / O components 920 include, for example, but are not limited to, microphones, joysticks, game pads, satellite dishes, scanners, printers, wireless devices, and the like.

[0113] The computing device 900 can operate in a networked environment via a network component 924 using a logical connection to one or more remote computers. In some examples, the network component 924 includes a network interface card and / or computer executable instructions (e.g., a driver) for operating the network interface card. Communication between the computing device 900 and other devices can occur using any protocol or mechanism over any wired or wireless connection. In some examples, the network component 924 is operable to use a transport protocol to transmit data between wireless devices using short-range communication technologies (e.g., near field communication (NFC), Bluetooth™ brand communication, etc.) or a combination thereof, over public, private, or hybrid (public and private). The network component 924 communicates with remote resources 928 (e.g., cloud resources) across a network 930 via a wireless communication link 926 and / or a wired communication link 926a. Various different examples of communication links 926 and 926a include wireless connections, wired connections, and / or dedicated links, and in some examples, at least a portion is routed over the Internet.

[0114] Although described in conjunction with the example computing device 900, the examples of the present disclosure can be implemented with many other general or special computing system environments, configurations, or devices. Examples of well-known computing systems, environments, and / or configurations that may be applicable to various aspects of the present disclosure include, but are not limited to, smartphones, mobile tablets, mobile computing devices, personal computers, server computers, handheld or laptop devices, multiprocessor systems, game consoles, microprocessor-based systems, set-top boxes, programmable consumer electronics, mobile phones, mobile computing and / or communication devices in the form of wearable devices or accessories (e.g., watches, glasses, headphones or earbuds), network PCs, minicomputers, mainframes, distributed computing environments including any of the above systems or devices, virtual reality (VR) devices, augmented reality (AR) devices, mixed reality devices, holographic devices, and the like. Such systems or devices can accept input from a user in any manner, including from an input device such as a keyboard or pointer device, via gesture input, proximity input (such as by hovering), and / or via voice input.

[0115] Examples of the present disclosure can be described in the general context of computer-executable instructions that are executed by one or more computers or other devices in software, firmware, hardware, or a combination thereof, such as program modules. Computer-executable instructions can be organized into one or more computer-executable components or modules. Generally speaking, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform specific tasks or implement specific abstract data types. Various aspects of the present disclosure can be implemented with such components or modules in any number and organization. For example, various aspects of the present disclosure are not limited to the specific computer-executable instructions or specific components or modules shown in the figures and described herein. Other examples of the present disclosure may include different computer-executable instructions or components with more or less functionality than shown and described herein. In examples involving general-purpose computers, various aspects of the present disclosure convert the general-purpose computer into a special-purpose computing device when configured to execute the instructions described herein.

[0116] As an example and not limitation, computer-readable media include computer storage media and communication media. Computer storage media include volatile and non-volatile, removable and non-removable memory implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules, etc. Computer storage media are tangible and distinguished from communication media. Computer storage media are implemented in hardware and do not include carrier waves and propagation signals. The computer storage media used in the present disclosure are not signals themselves. Exemplary computer storage media include hard disks, flash drives, solid-state memories, phase change random access memories (PRAMs), static random access memories (SRAMs), dynamic random access memories (DRAMs), other types of random access memories (RAMs), read-only memories (ROMs), electrically erasable programmable read-only memories (EEPROMs), flash memory or other memory technologies, compact disc read-only memories (CD-ROMs), digital versatile disks (DVDs) or other optical storage, cassettes, magnetic tapes, disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information accessed by a computing device. In contrast, communication media typically embodies computer-readable instructions, data structures, program modules, etc. in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.

[0117] The order of execution or fulfillment of the operations in the examples of the present disclosure shown and described herein is not necessary and can be performed in different sequential ways in various examples. For example, the present invention relates to aspects of performing or fulfilling a particular operation before, simultaneously with, or after another operation. When introducing the elements of various aspects of the present disclosure or its examples, the articles "a", "an", "the", and "said" are intended to indicate the presence of one or more elements. The terms "comprise", "include", and "have" are inclusive and mean that there may be additional elements in addition to the listed elements. The term "exemplary" is intended to represent an "example". The phrase "one or more of the following: A, B, and C" means "at least one of A and / or at least one of B and / or at least one of C".

[0118] Having described aspects of the disclosure in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the disclosure as defined in the appended claims. As various changes could be made in the above-described constructions, products, and methods without departing from the scope of aspects of the disclosure, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.

Claims

1. A system comprising: Processor (914); as well as A computer readable medium (912) storing instructions (912a) that, when executed by the processor, operate to: A first probe packet (131) is created (802) in a packet-switched network (102) for a first tunnel (200), the first tunnel comprising an ordered set of routers (210), and the first probe packet comprises: Forward Tunnel Label (402); Reverse tunnel label (412); and Internet Protocol (IP) packet header (404); transmitting (804) the first probe packet along the first tunnel from a tunnel source router (150) to a tunnel destination router (160) using the forward tunnel label; transmitting (806) the first probe packet in a reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and The first tunnel is marked (808) as available based at least on receipt of the first probe packet by the tunnel source router from the tunnel destination router.

2. The system of claim 1 , wherein the instructions further operate to: Creating a second detection packet for the first tunnel in the packet switching network, the second detection packet including: the forward tunnel label; the reverse tunnel label; as well as The IP packet header; transmitting the second probe packet along the first tunnel from the tunnel source router to the tunnel destination router using the forward tunnel label of the second probe packet; as well as The first tunnel is marked as unavailable based at least on the tunnel source router not receiving the second probe packet.

3. The system of claim 1, wherein the reverse direction of the first tunnel comprises a second tunnel.

4. The system according to claim 1, wherein the packet-switched network comprises at least two domains; wherein the tunnel source router is within a first domain of the at least two domains; wherein the tunnel destination router is within a second domain of the at least two domains; wherein a router of the first tunnel between the tunnel source router and the tunnel destination router is within the first domain; as well as The first detection group further includes: A segment identifier (SID) between the forward tunnel label and the reverse tunnel label.

5. The system of claim 4, wherein the instructions further operate to: removing the SID by the tunnel destination router; and transmitting the first probe packet from the tunnel destination router to a last router within the first domain in the ordered set of routers using the SID; and The transmitting of the first detection packet from the tunnel destination router to the tunnel source router along the first tunnel using the reverse tunnel label comprises: The first probe packet is transmitted from the last router within the first domain in the ordered set of routers to the tunnel source router using the reverse tunnel label.

6. The system of claim 1 , wherein the instructions further operate to: The forward tunnel label is removed by a second-to-last router in the ordered set of routers for the first tunnel.

7. The system of claim 1 , wherein the instructions further operate to: A probe packet matching the configuration of the first probe packet is transmitted according to a periodic schedule.

8. A computer-implemented method comprising: A first probe packet (131) is created (802) in a packet-switched network (102) for a first tunnel (200), the first tunnel comprising an ordered set of routers (210), and the first probe packet comprises: Forward Tunnel Label (402); Reverse tunnel label (412); and Internet Protocol (IP) packet header (404); transmitting (804) the first probe packet along the first tunnel from a tunnel source router (150) to a tunnel destination router (160) using the forward tunnel label; transmitting (806) the first probe packet in a reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and The first tunnel is marked (808) as available based at least on receipt of the first probe packet by the tunnel source router from the tunnel destination router.

9. The computer-implemented method of claim 8, further comprising: Creating a second detection packet for the first tunnel in the packet switching network, the second detection packet including: the forward tunnel label; the reverse tunnel label; and The IP packet header; transmitting the second probe packet along the first tunnel from the tunnel source router to the tunnel destination router using the forward tunnel label of the second probe packet; and The first tunnel is marked as unavailable based at least on the tunnel source router not receiving the second probe packet.

10. The computer-implemented method of claim 8, wherein the reverse direction of the first tunnel comprises a second tunnel.

11. The computer-implemented method according to claim 8, wherein the packet-switched network comprises at least two domains; wherein the tunnel source router is within a first domain of the at least two domains; wherein the tunnel destination router is within a second domain of the at least two domains; wherein a router of the first tunnel between the tunnel source router and the tunnel destination router is within the first domain; as well as The first detection group further includes: A segment identifier (SID) between the forward tunnel label and the reverse tunnel label.

12. The computer-implemented method of claim 11 , further comprising: removing the SID by the tunnel destination router; as well as transmitting the first probe packet from the tunnel destination router to a last router within the first domain in the ordered set of routers using the SID; as well as The transmitting of the first detection packet from the tunnel destination router to the tunnel source router along the first tunnel using the reverse tunnel label comprises: The first probe packet is transmitted from the last router within the first domain in the ordered set of routers to the tunnel source router using the reverse tunnel label.

13. The computer-implemented method of claim 8, further comprising: The forward tunnel label is removed by a second-to-last router in the ordered set of routers for the first tunnel.

14. The computer-implemented method of claim 8, further comprising: A probe packet matching the configuration of the first probe packet is transmitted according to a periodic schedule.

15. A computer storage device having computer-executable instructions stored thereon, the computer-executable instructions, when executed by a computer, causing the computer to perform operations comprising: A first probe packet is created (802) in a packet-switched network (102) for a first tunnel (200), the first tunnel comprising an ordered set of routers (210), and the first probe packet comprises: Forward Tunnel Label (402); Reverse tunnel label (412); and Internet Protocol (IP) packet header (404); transmitting (804) the first probe packet along the first tunnel from a tunnel source router (150) to a tunnel destination router (160) using the forward tunnel label; transmitting (806) the first probe packet in a reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and The first tunnel is marked (808) as available based at least on receipt of the first probe packet by the tunnel source router from the tunnel destination router.

16. The computer storage device of claim 15, wherein the operations further comprise: Creating a second detection packet for the first tunnel in the packet switching network, the second detection packet including: the forward tunnel label; the reverse tunnel label; and The IP packet header; transmitting the second probe packet along the first tunnel from the tunnel source router to the tunnel destination router using the forward tunnel label of the second probe packet; and The first tunnel is marked as unavailable based at least on the tunnel source router not receiving the second probe packet.

17. The computer storage device of claim 15, wherein the reverse direction of the first tunnel comprises a second tunnel.

18. The computer storage device according to claim 15, wherein the packet-switched network comprises at least two domains; wherein the tunnel source router is within a first domain of the at least two domains; wherein the tunnel destination router is within a second domain of the at least two domains; wherein a router of the first tunnel between the tunnel source router and the tunnel destination router is within the first domain; as well as The first detection group further includes: A segment identifier (SID) between the forward tunnel label and the reverse tunnel label.

19. The computer storage device of claim 18, wherein the operations further comprise: removing the SID by the tunnel destination router; as well as transmitting the first probe packet from the tunnel destination router to a last router within the first domain in the ordered set of routers using the SID; as well as The transmitting of the first detection packet from the tunnel destination router to the tunnel source router along the first tunnel using the reverse tunnel label comprises: The first probe packet is transmitted from the last router within the first domain in the ordered set of routers to the tunnel source router using the reverse tunnel label.

20. The computer storage device of claim 15, wherein the operations further comprise: The forward tunnel label is removed by a second-to-last router in the ordered set of routers for the first tunnel.