Bidirectional tunnel probing in multi-realm networks
Bidirectional tunnel probing with forward and reverse labels addresses false failure indications in packet-switched networks, improving network reliability and traffic management.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- MICROSOFT TECHNOLOGY LICENSING LLC
- Filing Date
- 2024-04-04
- Publication Date
- 2026-05-01
AI Technical Summary
In packet-switched networks, unidirectional tunnels face issues with false indications of failure due to malfunction in the return path defined by the Interior Gateway Protocol (IGP), leading to unnecessary disruption of network traffic.
Implement bidirectional tunnel probing using probe packets with forward and reverse tunnel labels, along with an IP packet header, to ensure accurate tunnel availability assessment, even across multiple realms.
This approach enhances the reliability and speed of packet-switched networks by reducing false tunnel failure indications, allowing for efficient and uninterrupted traffic management.
Smart Images

Figure 2026513740000001_ABST
Abstract
Description
Technical Field
[0001] Cross - Reference to Related Applications
[0001] This application claims priority to U.S. Provisional Patent Application No. 63 / 496,353, entitled "BI - DIRECTIONAL TUNNEL PROBING IN A MULTI - REALM NETWORK", filed on April 14, 2023, the disclosure of which is hereby incorporated by reference in its entirety.
Background Art
[0002] Background
[0002] The survivability of traffic engineering tunnels in packet - switched networks is measured using probe packets sent from an agent or other entity at the ingress of the tunnel. The probe packets travel along the tunnel while utilizing the same routes and interfaces as normal data packets. Since the tunnel is unidirectional, the probe packets use routes created by a separate protocol such as the Interior Gateway Protocol (IGP) to return from the tunnel destination to the tunnel source.
[0003]
[0003] When the network is sliced into multiple realms, the traffic engineering controller that constructs the tunnel can only control the routers within its own realm. As a result, a tunnel within a realm is only allowed to reach up to the border router of the adjacent realm. This means that the tunnel destination is the border router of the adjacent realm (i.e., the first router reachable within the adjacent realm).
Summary of the Invention
[0004] Summary
[0004] Examples to be disclosed are described in detail below with reference to the figures in the accompanying drawings listed below. The following summary is provided to illustrate some of the examples disclosed herein.
[0005]
[0005] An example of a solution for bidirectional tunnel probing in a network is to create a first probe packet for a first tunnel in a packet-switched network, wherein the first tunnel comprises an ordered set of routers, and the first probe packet comprises a forward tunnel label, a reverse tunnel label, and an IP packet header; to transmit the first probe packet along the first tunnel from the tunnel source router to the tunnel destination router using the forward tunnel label; to transmit the first probe packet in the reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and to flag the first tunnel as available based on the fact that the tunnel source router has received the first probe packet from the tunnel destination router.
[0006] Brief explanation of the drawing
[0006] Examples to be disclosed are described in detail below with reference to the figures in the attached drawings listed below. [Brief explanation of the drawing]
[0007] [Figure 1]
[0007] An example architecture that advantageously provides bidirectional tunnel probing, tunnel probing in a multi-realm network, and bidirectional tunnel probing in a multi-realm network is illustrated. [Figure 2]
[0008] Further details of an exemplary tunnel, which may be used in the architectural example shown in Figure 1, are illustrated. [Figure 3]
[0009] Further details are shown when the example architecture in Figure 1 includes a multi-realm network. [Figure 4A]
[0010] An exemplary probe packet envelope, which may be used in the example architecture shown in Figure 1, is illustrated. [Figure 4B]
[0010] An exemplary probe packet envelope that may be used in the architecture example of Figure 1 is shown. [Figure 4C]
[0010] An exemplary probe packet envelope that may be used in the architecture example of Figure 1 is shown. [Figure 4D]
[0010] An exemplary probe packet envelope that may be used in the architecture example of Figure 1 is shown. [Figure 5A]
[0011] Figure 1 illustrates an exemplary probe packet path that may occur in the example architecture. [Figure 5B]
[0011] An example probe packet path that may occur in the architecture example of Figure 1 is shown. [Figure 5C]
[0011] An example probe packet path that may occur in the architecture example of Figure 1 is shown. [Figure 5D]
[0011] An example probe packet path that may occur in the architecture example of Figure 1 is shown. [Figure 6]
[0012] Figure 1 shows a flowchart illustrating typical operations that may occur when using example architectures. [Figure 7]
[0012] A flowchart illustrating exemplary operations that may occur when using an example architecture such as the architecture in Figure 1 is shown. [Figure 8]
[0012] A flowchart illustrating exemplary operations that may occur when using an example architecture such as the architecture in Figure 1 is shown. [Figure 9]
[0013] A block diagram of an example computing device suitable for implementing some of the various examples disclosed herein is shown. [Modes for carrying out the invention]
[0008]
[0014] Corresponding reference letters indicate the corresponding parts throughout the drawing.
[0009] Detailed explanation
[0015] Traditional probe packets may fail to return due to a malfunction in the return path defined by the Internal Gateway Protocol (IGP), even when the tunnel is functioning perfectly, leading to a false indication of tunnel failure. In such cases, the tunnel is abandoned. This false indication of tunnel failure causes unnecessary disruption to network traffic.
[0010]
[0016] An example solution for bidirectional tunnel probing in a network is to create a first probe packet for a first tunnel in a packet-switched network, wherein the first tunnel comprises an ordered set of routers, and the first probe packet comprises a forward tunnel label, a reverse tunnel label, and an IP packet header; to send the first probe packet along the first tunnel from the tunnel source router to the tunnel destination router using the forward tunnel label; to send the first probe packet in the reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and to flag the first tunnel as available based on at least the tunnel source router having received the first probe packet from the tunnel destination router.
[0011]
[0017] The disclosed solutions for bidirectional tunnel probing in a network may optionally be combined with the solutions for tunnel probing in a multi-realm network to provide bidirectional tunnel probing in a multi-realm network. Bidirectional tunnel probing uses a probe packet containing a forward tunnel label, a reverse tunnel label, and an Internet Protocol (IP) packet header in that order. Tunnel probing in a multi-realm network uses a probe packet containing a forward tunnel label and an IP packet header in that order. Bidirectional tunnel probing in a multi-realm network uses a probe packet containing a forward tunnel label, a segment identifier (SID), a reverse tunnel label, and an IP packet header in that order. Penalty hop popping is used to remove the outermost labels in a specific order. The forward tunnel label moves the probe packet along the tunnel to the tunnel destination, the SID returns the probe packet to the source realm, and the reverse tunnel label returns the probe packet along the reverse direction of the tunnel to the tunnel source. An SID is not required for probe packets within a realm only. If there is no reverse tunnel label, the probe packet is returned to the tunnel source using the IP packet header. This scheme prevents false indication of tunnel failure.
[0012]
[0018] The solution examples described herein improve the speed and reliability of packet-switched networks. This is achieved by reducing the false indication of tunnel failures, which would otherwise result in the unnecessary closure of functioning tunnels.
[0013]
[0019] Various examples are described in detail with reference to the accompanying drawings. If desired, the same reference numbers are used throughout the drawings to refer to the same or similar parts. References made throughout this disclosure in connection with specific examples and implementations are provided for illustrative purposes only and are not intended to limit all examples unless otherwise indicated.
[0014]
[0020] FIG. 1 illustrates an architectural example 100 that advantageously provides bidirectional tunnel probing, tunnel probing in a multi-tenant network, and bidirectional tunnel probing in a multi-tenant network. Network 102 comprises a packet-switched wide area network (WAN) that moves data traffic between data centers and cloud resource users by moving data, for example, between data center edge 104a, data center edge 104b, and peering edge 106.
[0015]
[0021] Network 102 may use common routing protocols such as those used on the Internet. For example, next-hop (NH) routing using segment identifiers (SIDs) may be handled by a routing protocol such as intermediate system to intermediate system (ISIS). ISIS is a routing protocol designed to efficiently move information within a computer network, i.e., a group of physically connected computers or similar devices. ISIS achieves this by determining the shortest path for data through a packet-switching network.
[0016]
[0022] In addition, network 102 may use Multiprotocol Label Switching (MPLS). MPLS is a routing technique 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. This path begins with a Label Edge Router (LER), which determines which label to prefix the packet. Routers that prefix packets with MPLS headers may be labeled as ingress routers. Routers between the ingress router and the final router (egress router) are transit routers, also known as Label-Switched Routers (LSRs) in an MPLS network.
[0017]
[0023] An ingress router forwards packets to the next router in the path, which may swap labels in the MPLS header depending on the circumstances. Packet forwarding decisions are made based on the contents of the MPLS label without needing to examine the packet itself. When an LSR receives a packet, it uses the label contained in the packet header as an index to determine the next hop on the LSP and the corresponding label for that packet from a lookup table. Some MPLS networks, such as Network 102, use Penalty Mate Hop Popping (PHP), in which the outermost label of an MPLS-tagged packet is removed by the LSR before the packet is passed to the (adjacent) final router on the LSP. LSPs are unidirectional, and they allow packets to be label-switched through the MPLS network from the source endpoint to the destination endpoint.
[0018]
[0024] LSPs are also known as tunnels. To provide an efficient and reliable traffic flow for network 102, the traffic engineering controller 110 determines the set of tunnels through which data packets traverse within network 102. The traffic engineering controller 110 may determine the set of tunnels to optimize performance metrics, such as maximizing the throughput of network 102. Before using the tunnels, the traffic engineering controller 110 installs routes on each router included in the tunnel to minimize the risk of dropping packets.
[0019]
[0025] In this illustrated example, prober 120 tests tunnel 200 to determine its survivability or availability. Tunnel 200 originates at tunnel source router 150 and terminates at tunnel destination router 160, and is shown and described in further detail below in relation to Figure 2. To test the availability (survivability) of tunnel 200, prober 120 sends probe packets along tunnel 200. These include probe packets 131, 132, and 133, which may be identical except for items that are always different, such as packet number and timestamp. The probe packets are constructed 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 packets to prober 120 (e.g., forwards the probe packets) so that prober 120 can determine that tunnel 200 is available (alive) and, in some examples, can also estimate the transit time. If tunnel 200 is alive, prober 120 sets flag 112 to indicate that tunnel 200 is available.
[0020]
[0026] Lost probe packets, or a threshold number of consecutive lost probe packets, indicate that tunnel 200 is unavailable (not alive). If a sufficient number of probe packets are lost, prober 120 determines that tunnel 200 is unavailable (not alive) and sets flag 112 to indicate that tunnel 200 is unavailable. When traffic engineering controller 110 receives topology and request information for the next tunnel creation, if the traffic request still requires a tunnel with a similar route at that location, a new tunnel 200r may be created to take over the traffic that was routed through tunnel 200. Tunnel 200r may be created as part of a larger set (for example, thousands of tunnels may be created as part of a new set).
[0021]
[0027] In some cases, probe packets are sent at 100-millisecond (MS) intervals. Since the probe packet interval is independent of the round-trip transit time, multiple probe packets may be in transit at any given time. If the number of lost consecutive probe packets is set to 3 and the probe packet interval is 100ms, the time required to detect a faulty tunnel is approximately 300ms plus the expected round-trip transit time of the probe packets. Probe packets can be sent at different intervals (e.g., 10ms, 200ms, etc.).
[0022]
[0028] While only two tunnels are shown, please understand that in some examples, a significantly larger number of tunnels may be used, such as thousands or more.
[0023]
[0029] Figure 2 shows further details of tunnel 200 as it may be used in the example architecture of Figure 1. As shown, tunnel 200 comprises tunnel source router 150, router 151, router 152, router 153, router 154, and tunnel destination router 160. Thus tunnel 200 comprises an ordered set of routers 210, which is {150, 151, 152, 153, 154, 160} using the element numbers shown in Figure 2. In this order, router 154 is the penalty mate router of tunnel 200, called penalty mate router 220. The traffic engineering controller 110 reuses the available data tunnel in reverse when practical, 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 the ordered set of routers 210 (for tunnel 200). In reverse tunnel 202, router 151 is penalty mate router 220. Note that, depending on the example, a different number of routers may be used within the tunnel.
[0024]
[0030] Even without MPLS and tunnels, each of routers 150-154 and 160 has its own routing logic 230. The routing logic 230 can use segment routing, for example, using SIDs generated by ISIS or another routing protocol that implements segment routing. ISIS provides each router with distributed logic to determine the shortest path and install the route. With respect to neighboring routers, the shortest path is the interface to the neighboring router. Therefore, even without the use of tunnel labels or MPLS, router 154 can use segment routing to route packets (e.g., probe packets 131) to tunnel destination router 160. Similarly, router 151 can use segment routing in the reverse direction to route packets (e.g., returning probe packets 131) to tunnel source router 150.
[0025]
[0031] The traffic engineering controller 110 programs each of the routers 150-154 with the tunnel label of tunnel 200 using an agent, indicated as tunnel engineering logic 232, in each of the routers 150-154. When a probe packet 131 is generated by the tunnel source router 150 for its passage through tunnel 200, the tunnel source router 150 determines the forwarding equivalence class (FEC) of the packet and then attaches an envelope (e.g., with a newly created MPLS header). In some examples, the MPLS header first includes an egress site label. The probe packet 131 is then passed to the next-hop router of tunnel 200 (which is router 151). In the illustrated example, router 151 swaps the egress site label in the MPLS with the traffic engineering path label.
[0026]
[0032] Subsequent routers 152 and 153 retain the traffic engineering path label (until router 154 removes it in a penaltymate hop-popping scheme, if applicable). The tunnel engineering logic 232 has the ability to look up and swap labels, as well as pop and push them. Router 154 sends a probe packet 131 from the interface that goes directly to the tunnel destination router 160. This brings about three phases in the packet flow: traffic steering, traffic engineering, and segment routing.
[0027]
[0033] Using this scheme, the traffic engineering controller 110 only needs to program the routers up to penalty mate router 220 (e.g., router 154) for the forward direction of tunnel 200. The tunnel destination router 160 does not need to be programmed for tunnel 200. However, the situation is different for the reverse tunnel 202. All routers under the control of the traffic engineering controller 110 also need to be programmed by the traffic engineering controller 110 for the reverse tunnel 202. If the tunnel destination router 160 is under the control of the traffic engineering controller 110, the traffic engineering controller 110 programs all of the tunnel destination routers 160 and routers 151-154 for the reverse tunnel 202. The tunnel source router 150 does not need to be programmed for the reverse tunnel 202 because it is the final router in the reverse tunnel 202.
[0028]
[0034] Figure 3 shows a situation where the tunnel destination router 160 is not under the control of the traffic engineering controller 110. In Figure 3, network 102 is a multi-realm network, shown sliced into two realms (or slices), namely realm 301 and realm 302. It should be understood that a different number of realms may be used in some cases.
[0029]
[0035] Traffic engineering controller 110 controls a set of routers 311 in realm 301 to provide tunnels such as tunnel 200, and prober 120 probes tunnels originating in realm 301. Traffic engineering controller 110a controls a set of routers 312 in realm 302 to provide tunnels such as tunnel 200a, and prober 120a probes tunnels originating in realm 302. A tunnel may be entirely within a realm, or it may originate within a realm and terminate at a boundary router in an adjacent realm. A boundary router is the first router encountered across a realm boundary.
[0030]
[0036] In the illustrated example, the tunnel destination router 160 is the boundary router of realm 302. Tunnel 200 originates in realm 301, and all routers within tunnel 200 between tunnel source router 150 and penalty mate router 350 (e.g., routers 151-154 in Figure 2) reside in realm 301. Tunnel 200 terminates at tunnel destination router 160 in realm 302, and router 154 (also identified as penalty mate router 350) is the final router in a set of ordered routers 210 residing in realm 301.
[0031]
[0037] Another tunnel (not shown) may originate at the tunnel destination router 160, pass further through realm 302, and make the tunnel destination router 160 the source router for that other tunnel. Similar to tunnel 200, but in the opposite direction, tunnel 200a originates in realm 302 and terminates at a boundary router in realm 301. Another tunnel (not shown) may carry traffic further into realm 301.
[0032]
[0038] In this illustrated scenario, the traffic engineering controller 110a controls the tunnel destination router 160. Because the tunnel is realm-specific, the traffic engineering controller 110a has no knowledge of the reverse tunnel 202 and therefore cannot program the tunnel destination router 160 with respect to the reverse tunnel 202. This means that the reverse tunnel 202 starts from router 154 instead of tunnel destination router 160. Therefore, a means is needed to return the probe packet 131 to router 154. The solution to this is illustrated in Figures 4C and 4D.
[0033]
[0039] Figures 4A, 4B, and 4C illustrate exemplary probe packet envelopes. Figure 4A shows scenario 400a where probe packet 131 is a one-way probe packet used for both intra-realm and inter-realm probing. 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 (shown as “destIP Tunnel Source” indicating that tunnel source router 150 is the packet destination) and a destination field 408 (shown as “srcIP Tunnel Destination” indicating that tunnel destination router 160 is the packet source). Although probe packet 131 was not assembled at tunnel destination router 160, the IP packet header 404 is constructed in a way that ensures probe packet 131 is returned to tunnel source router 150 so that probe packet 131 can be forwarded to prober 120 using existing standard packet routing capabilities.
[0034]
[0040] In scenario 400a, probe packet 131 follows path 500a shown in Figure 5A. That is, probe packet 131 traverses tunnel 200 from tunnel source router 150 to tunnel destination router 160, and then returns to tunnel source router 150 by adopting 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 start as an egress site label and be swapped by router 151 to a traffic engineering path label.
[0035]
[0041] Router 154, upon receiving probe packet 131 with forward tunnel label 402, pops (removes) the forward tunnel label 402, leaving only the IP packet header 404 and payload 410 in probe packet 131. Router 154 then uses segment routing to send probe packet 131 to tunnel destination router 160. After verifying the IP packet header 404, tunnel destination router 160 sends probe packet 131 back to tunnel source router 150 using any available route (i.e., without using the defined tunnel). The same set of routers 151-154 may be used, but this is subject to change.
[0036]
[0042] Figure 4B shows scenario 400b where probe packet 131 is a bidirectional in-realm probe packet. Probe packet 131 has a forward tunnel label 402, an IP packet header 404, and a payload 410, but also a reverse tunnel label 412 between the forward tunnel label 402 and the IP packet header 404. Since the reverse tunnel label 412 is for the reverse tunnel 202, probe packet 131 follows path 500b shown in Figure 5B. That is, probe packet 131 follows tunnel 200 from tunnel source router 150 to tunnel destination router 160, and then follows the reverse tunnel from tunnel destination router 160 to tunnel source router 150.
[0037]
[0043] At this point, when router 154 pops (removes) the forward label 402, the next outermost envelope is the reverse tunnel label 412. When tunnel destination router 160 recognizes the reverse tunnel label 412, it routes the probe packet 131 back to tunnel source router 150 using the reverse tunnel 202. On the return journey, router 151 pops (removes) the reverse tunnel label 412, leaving only the IP packet header 404 and payload 410 in the probe packet 131. Router 151 then uses segment routing to send the probe packet 131 back to tunnel source router 150.
[0038]
[0044] Figures 4B and 5B depict an intra-realm tunnel 200 (for example, existing entirely within a single realm), while Figures 4C and 5C depict an inter-realm tunnel 200 (for example, tunnel 200 extending to realms 301 and 302). Probe packets 132 and 133 have the same envelope and addressing as probe packet 131, including the same forward tunnel label 402, SID 414, reverse tunnel label 412, and IP packet header 404. Some items, such as packet number and timestamp, may always differ, but in some examples, other contents of the payload 410 may also differ between probe packets 131-133.
[0039]
[0045] Figure 4C shows scenario 400c in a multi-realm version of network 102, where probe packet 131 is a bidirectional inter-realm probe packet. Probe packet 131 has a 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 Figure 5D. That is, probe packet 131 travels through tunnel 200 from tunnel source router 150 to tunnel destination router 160, where router 154 pops (removes) the forward tunnel label 402 and leaves SID 414 on probe packet 131 in the outermost envelope. Once tunnel destination router 160 acknowledges SID 414, it uses segment routing to route probe packet 131 back to router 154. SID414 is removed, and router 154 checks the reverse tunnel label 412. Router 154 then uses the reverse tunnel label 412 to send a probe packet 131 to the tunnel source router 150, where router 151 removes the reverse tunnel label 412 and leaves the IP packet header 404.
[0040]
[0046] Figure 6 shows a flowchart 600 illustrating exemplary operations that may be performed by architecture 100. In some examples, the operations described in flowchart 600 are performed by the computing device 900 in Figure 9. Flowchart 600 is initiated as operation 602 by sending probe packets that match the configuration of probe packet 131 on a periodic schedule. Operation 602 is in progress as long as tunnel 200 is alive (available) and includes the remainder of flowchart 600, including operation 622. For flowchart 600, each of probe packets 131-133 comprises a bidirectional probe packet.
[0041]
[0047] Operation 604 creates a probe packet 131 for tunnel 200. The probe packet 131 includes a forward tunnel label 402, a reverse tunnel label 412, and an IP packet header 404. Decision operation 606 divides flowchart 600 into single-realm processes (operations 610a, 612a, and 614a) and multi-realm processes (operations 608, 610b, 612b, 614b, 616, and 618).
[0042]
[0048] In a multi-realm situation, each of the probe packets 131-133 comprises a bidirectional intra-realm 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 present in realm 301 and is used to indicate to the tunnel destination router 160 that probe packet 131 should be sent to router 154.
[0043]
[0049] Operations 610a and 610b are similar, in which a probe packet 131 is sent 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, in which penalty mate router 220 (router 154 in this example) removes forward tunnel label 402.
[0044]
[0050] While operation 614a is for single-realm activity, operation 614b is for multi-realm activity and includes operations 616 and 618. Operations 614a and 614b are similar in that they both use the reverse tunnel label 412 to send probe packets 131 in the reverse direction along tunnel 200 (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 the reverse tunnel label 412, whereas in operation 614a, tunnel destination router 160 uses SID 414 to first reach router 154, and then router 154 begins using the reverse tunnel label 412.
[0045]
[0051] In operation 616, the tunnel destination router 160 removes SID 414 to expose the reverse tunnel label 412, and in operation 618, sends probe packet 131 to router 154 using segment routing. Determination operation 620 determines whether the probe packet containing probe packet 131 was received or lost. This involves waiting for an expected allowable delay time for the round trip of the probe packet to and from the tunnel destination router 160. If probe packet 131 is received, in operation 622, the tunnel 200 is flagged as available, based on the fact that at least the tunnel source router 150 has received the probe packet 131 returned from the tunnel destination router 160. The flowchart 600 then returns to operation 602, continuing to probe tunnel 200. In the second one-step process, operations 604-620 operate on probe packet 132 as described above for probe packet 131. Each of the probe packets 131, 132, and 133 has the same forward tunnel label 402, the same reverse tunnel label 412, and the same IP packet header 404, and if probe packet 131 has SID 414, it also has the same SID 414.
[0046]
[0052] Otherwise, if probe packets such as probe packets 131, 132, or 133 (or other threshold counts) are lost, tunnel 200 is flagged as unavailable, based on the fact that at least tunnel source router 150 has not received probe packet 132 (or consecutive probe packets of threshold counts).
[0047]
[0053] Figure 7 shows a flowchart 700 illustrating exemplary operations that may be performed by architecture 100. In some examples, the operations described with respect to flowchart 700 are performed by the computing device 900 in Figure 9. Flowchart 700 is initiated as operation 702 by sending probe packets that match the configuration of probe packet 131 on a periodic schedule. Operation 702 is in progress as long as tunnel 200 is alive (available) and includes the remainder of flowchart 700, including operation 722. With respect to flowchart 700, network 102 is multi-realm, and each of probe packets 131-133 comprises an inter-realm probe packet.
[0048]
[0054] Operation 704 creates a probe packet 131 for tunnel 200. The probe packet 131 includes a forward tunnel label 402 and an IP packet header 404. Decision operation 706 divides flowchart 700 into a one-way packet probing process (operations 710a, 712a, 714a, and 716a) and a two-way packet probing 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.
[0049]
[0055] In the case of a multi-realm, each of the probe packets 131-133 comprises a bidirectional inter-realm 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. Each of the probe packets 131, 132, and 133 has the same forward tunnel label 402, the same SID 414, the same reverse tunnel label 412, and the same IP packet header 404.
[0050]
[0056] Operations 710a and 710b are similar, with the forward tunnel label 402 used to send a probe packet 131 along tunnel 200 from tunnel source router 150 to tunnel destination router 160. Operations 712a and 712b are also similar, with tunnel destination router 160 removing SID 414. Operations 714a and 714b are also similar, with tunnel destination router 160 using SID 414 with segment routing to send a probe packet 131 from tunnel destination router 160 to router 154.
[0051]
[0057] Operation 716a is for one-way probing, while operation 716b is for two-way probing and includes operation 718. Operations 716a and 716b are similar in that both send a probe packet 131 from the tunnel destination router 160 to the tunnel source router 150. However, operations 716a and 716b differ in that in operation 716a, router 154 reaches the tunnel source router 150 using the IP packet header 404, which may not involve adopting the reverse path of tunnel 200 (e.g., reverse tunnel 202), whereas in operation 716b, router 154 reaches the tunnel source router 150 in the reverse direction along tunnel 200 (e.g., reverse tunnel 202) using the reverse tunnel label 412. The use of the reverse tunnel label 412 to reach the tunnel source router 150 is shown as operation 718.
[0052]
[0058] Decision action 720 is a copy of decision action 620 in flowchart 600. Similarly, action 722 is a copy of action 622, action 724 is a copy of action 624, and action 726 is a copy of action 626.
[0053]
[0059] Figure 8 shows a flowchart 800 illustrating exemplary operations that may be performed by architecture 100. In some examples, the operations described with respect to flowchart 800 are performed by computing device 900 in Figure 9. Flowchart 800 begins with operation 802, which includes creating a first probe packet for a first tunnel in a packet-switched network, wherein the first tunnel comprises an ordered set of routers, and the first probe packet comprises a forward tunnel label, a reverse tunnel label, and an IP packet header.
[0054]
[0060] Operation 804 includes sending a first probe packet along the first tunnel from the tunnel source router to the tunnel destination router using a forward tunnel label. Operation 806 includes sending a first probe packet in the reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using a reverse tunnel label. Operation 808 includes flagging the first tunnel as available, at least based on the fact that the tunnel source router has received the first probe packet from the tunnel destination router.
[0055] Additional examples
[0061] An example system comprises a processor and a computer-readable medium that stores instructions that, when executed by the processor, create a first probe packet for a first tunnel in a packet-switched network, wherein the first tunnel comprises an ordered set of routers, and the first probe packet comprises a forward tunnel label, a reverse tunnel label, and an IP packet header; transmit the first probe packet along the first tunnel from the tunnel source router to the tunnel destination router using the forward tunnel label; transmit the first probe packet in the reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and flag the first tunnel as available based on the fact that the tunnel source router has received the first probe packet from the tunnel destination router.
[0056]
[0062] An example of a computer implementation method is to create a first probe packet for a first tunnel in a packet-switched network, wherein the first tunnel comprises an ordered set of routers, and the first probe packet comprises a forward tunnel label, a reverse tunnel label, and an IP packet header; to transmit the first probe packet along the first tunnel from the tunnel source router to the tunnel destination router using the forward tunnel label; to transmit the first probe packet in the reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and to flag the first tunnel as available based on at least the tunnel source router having received the first probe packet from the tunnel destination router.
[0057]
[0063] One or more computer storage devices, as examples, store computer-executable instructions that, when executed by a computer, cause a computer to perform operations including: creating a first probe packet for a first tunnel in a packet-switched network, wherein the first tunnel comprises an ordered set of routers, and the first probe packet comprises a forward tunnel label, a reverse tunnel label, and an IP packet header; sending the first probe packet along the first tunnel from the tunnel source router to the tunnel destination router using the forward tunnel label; sending the first probe packet in the reverse direction along the first tunnel from the tunnel destination router to the tunnel source router using the reverse tunnel label; and flagging the first tunnel as available based on the fact that the tunnel source router has received the first probe packet from the tunnel destination router.
[0058]
[0064] Alternatively, or in addition to other examples described herein, examples are as follows: - In a packet-switched network, create a second probe packet for the first tunnel. - The second probe packet includes a forward tunnel label, a reverse tunnel label, and an IP packet header. - Using the forward tunnel label of the second probe packet, send the second probe packet along the first tunnel from the tunnel source router to the tunnel destination router. - At the very least, flag the first tunnel as unavailable based on the fact that the tunnel source router has not received the second probe packet. - The second tunnel is located in the opposite direction of the first tunnel. - The packet-switched network has at least two realms. - The tunnel source router is located within the first of the two realms. - The tunnel destination router is located within the second of the two realms. - The routers in the tunnel between the tunnel source router and the tunnel destination router are located within the first realm. - The first probe packet further includes an SID between the forward tunnel label and the reverse tunnel label. - Remove the SID by the tunnel destination router. - Using SID, send the first probe packet from the tunnel destination router to the last router in the ordered set of routers present in the first realm. - Sending a first probe packet along a first tunnel from the tunnel destination router to the tunnel source router using a reverse tunnel label includes sending a first probe packet from the last router in an ordered set of routers residing in a first realm to the tunnel source router using a reverse tunnel label. - Removing the forward tunnel label by a penalty mate router in the ordered set of routers of the first tunnel, - Send probe packets that match the configuration of the first probe packet on a periodic schedule. - Sending a first probe packet from the last router of an ordered set of routers present in the first realm to the tunnel source router includes sending a first probe packet in the reverse direction along the first tunnel from the last router of an ordered set of routers present in the first realm to the tunnel source router, using the reverse tunnel label. - The first probe packet comprises a bidirectional probe packet. - The first probe packet includes an in-realm probe packet. - The first probe packet includes an inter-realm probe packet. - The first probe packet comprises a bidirectional inter-realm probe packet. - The second probe packet includes a bidirectional probe packet. - The second probe packet includes an in-realm probe packet. - The second probe packet includes an inter-realm probe packet. - The second probe packet includes a bidirectional inter-realm probe packet. - The tunnel source router adds the forward tunnel label and reverse tunnel label to the first probe packet. - The tunnel source router adds the forward tunnel label and reverse tunnel label to the second probe packet. - The second tunnel comprises a set of ordered routers having the reverse order of the first tunnel. -SID identifies the final router in a set of ordered routers that exist within the first realm. - The SID indicates to the tunnel destination router that it will send the first probe packet to the last router in the ordered set of routers present in the first realm. - At a minimum, flag the first tunnel as unavailable based on the fact that the tunnel source router has not received consecutive probe packets with a threshold count. - If a reverse tunnel label does not exist, use the IP packet header to route the first probe packet to the tunnel source router. - The first tunnel is equipped with an MPLS tunnel, and - Determining that a probe packet has not been received includes waiting for an expected acceptable delay time. This includes any combination of the above.
[0059]
[0065] While various examples of related operations have been described in this disclosure, those skilled in the art will recognize that any combination of operations from any number of different examples also falls within the scope of this disclosure.
[0060] Example operating environment
[0066] Figure 9 is a block diagram of an example computing device 900 (e.g., a computer storage device) for implementing the embodiments disclosed herein, and is generally referred to as computing device 900. In some examples, one or more computing devices 900 are provided for on-premise computing solutions. In some examples, one or more computing devices 900 are provided as a cloud computing solution. In some examples, a combination of on-premise and cloud computing solutions is used. Computing device 900 is merely an example of a suitable computing environment and is not intended to imply any limitation on the scope of use or functionality of the examples disclosed herein, whether used alone or as part of a larger set.
[0061]
[0067] It should not be construed that the computing device 900 has any dependencies or requirements on any one or combination of the illustrated components / modules. The examples disclosed herein may be described in a general context in which computer code or machine-usable instructions (including computer-executable instructions such as program components) are executed by a computer or other machine (such as a personal data assistant or other handheld device). Generally, program components, including routines, programs, objects, components, and data structures, refer to code that performs a particular task or implements a particular abstract data type. The disclosed examples can be implemented in a variety of system configurations, including personal computers, laptops, smartphones, mobile tablets, handheld devices, consumer electronics products, and specialized computing devices. The disclosed examples can also be implemented in a distributed computing environment when tasks are performed by remote processing devices linked over a communication network.
[0062]
[0068] The computing device 900 includes a bus 910 that directly or indirectly connects 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, power supply 922, and network components 924. Although the computing device 900 is described as a single device, multiple computing devices 900 may cooperate and share the described device resources. For example, the memory 912 may be distributed across multiple devices, and one or more processors 914 may reside in different devices.
[0063]
[0069] Bus 910 represents what may be one or more buses (such as an address bus, a data bus, or a combination thereof). While the various blocks in Figure 9 are shown with lines for clarity, the demarcation of the various components may be achieved by alternative representations. For example, presentation components such as display devices are I / O components in some examples, and some examples of processors have their own memory. Distinctions between categories such as “workstation,” “server,” “laptop,” and “handheld device” are not made, as it is assumed that these all fall within the scope of the “computing device” references in Figure 9 and herein. Memory 912 takes the form of a computer storage medium as referred below and operationally provides storage of computer-readable instructions, data structures, program modules, and other data for the computing device 900. In some examples, memory 912 stores one or more of the operating system, a universal application platform, or other program modules and program data. Thus, memory 912 stores and can access data 912a and instructions 912b that are executable by the processor 914 and configured to perform the various operations disclosed herein.
[0064]
[0070] In some examples, memory 912 includes a computer storage medium. Memory 912 may include any amount of memory associated with the computing device 900, or any amount of memory accessible by the computing device 900. Memory 912 may be located inside the computing device 900 (as shown in Figure 9), outside the 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 virtual environment where instruction processing is performed on multiple computing devices 900. In this disclosure, “computer storage medium,” “computer memory,” “memory,” and “memory device” are synonyms for memory 912, and none of these terms include carrier or propagation signal schemes.
[0065]
[0071] One or more processors 914 may include any number of processing units that read data from various entities such as memory 912 or I / O components 920. Specifically, one or more processors 914 are programmed to execute computer executable instructions for implementing aspects of the present disclosure. These instructions may be performed by a processor, by multiple processors within a computing device 900, or by a processor outside the client computing device 900. In some examples, one or more processors 914 are programmed to execute instructions such as those illustrated in the flowcharts described later and those depicted in the accompanying drawings. Also in some examples, one or more processors 914 represent an implementation of analog technology for performing the operations described herein. For example, the operations may be performed by an analog client computing device 900 and / or a digital client computing device 900. One or more presentation components 916 present a data display to a user or other device. Exemplary presentation components include display devices, speakers, printing components, vibration components, and the like. Those skilled in the art will understand and recognize that computer data may be presented visually in a graphical user interface (GUI), audibly through speakers, wirelessly between computing devices 900, via wired connections, or by other means. The I / O port 918 allows computing devices 900 to be logically coupled to other devices, including I / O components 920, some of which may be internal. Examples of I / O components 920 include, but are not limited to, microphones, joysticks, gamepads, satellite dishes, scanners, printers, and wireless devices.
[0066]
[0072] The computing device 900 may operate in a networked environment via the network component 924 using logical connections 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., drivers) for operating the network interface card. Communication between the computing device 900 and other devices may occur via any wired or wireless connection using any protocol or mechanism. In some examples, the network component 924 may operate on a public, private, or hybrid (public and private) network using a transport protocol to communicate data wirelessly between devices using short-range communication technologies (e.g., Near Field Communication (NFC), Bluetooth® branded communication, etc.), or a combination thereof. The network component 924 communicates with remote resources 928 (e.g., cloud resources) via the network 930 over the wireless communication link 926 and / or the wired communication link 926a. Various different examples of communication links 926 and 926a include wireless connections, wired connections, and / or dedicated links, some of which are routed over the Internet, at least partially.
[0067]
[0073] While the examples in this disclosure are described in relation to Computing Device Example 900, implementations are possible using many other general-purpose or special-purpose computing system environments, configurations, or devices. Examples of well-known computing systems, environments, and / or configurations suitable for use with aspects of this disclosure include, but are not limited to, smartphones, mobile tablets, mobile computing devices, personal computers, server computers, handheld or laptop devices, multiprocessor systems, video game consoles, microprocessor-based systems, set-top boxes, programmable consumer electronics, mobile phones, mobile computing and / or communication devices in wearable or accessory form (e.g., watches, glasses, headsets, or earphones), network PCs, minicomputers, mainframe computers, distributed computing environments including any of the systems or devices described above, virtual reality (VR) devices, augmented reality (AR) devices, mixed reality devices, holographic devices, and the like. Such systems or devices may accept user input by any means, including from input devices such as keyboards or pointing devices, gesture input, proximity input (such as hovering), and / or voice input.
[0068]
[0074] Examples of this disclosure may be described in the general context of computer executable instructions, such as program modules, which are executed by one or more computers or other devices, in software, firmware, hardware, or a combination thereof. Computer executable instructions can be organized into one or more computer executable components or modules. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform a particular task or implement a particular abstract data type. Aspects of this disclosure can be implemented using any number and organization of such components or modules. For example, aspects of this disclosure are not limited to the specific computer executable instructions or specific components or modules illustrated in the drawings and described herein. Other examples of this disclosure may include different computer executable instructions or components with more or less functionality than those illustrated and described herein. In examples involving general-purpose computers, aspects of this disclosure transform the general-purpose computer into a special-purpose computing device when configured to execute the instructions described herein.
[0069]
[0075] Computer-readable media include, but are not limited to, computer storage media and communication media. Computer storage media include volatile memory, non-volatile memory, removable memory, and non-removable memory implemented in any way or technique for storing information such as computer-readable instructions, data structures, and program modules. Computer storage media are tangible and mutually exclusive with respect to communication media. Computer storage media are implemented in hardware and exclude carrier and propagating signals. Computer storage media in this disclosure are not signals in themselves. Exemplary computer storage media include hard disks, flash drives, solid-state memory, phase-change random access memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disk read-only memory (CD-ROM), digital versatile disks (DVDs) or other optical storage, magnetic cassettes, magnetic tapes, magnetic disk storage or other magnetic storage devices, or any other non-transmission media that may be used to store information for access by computing devices. In contrast, communication media typically include any information transmission media that embody computer-readable instructions, data structures, program modules, etc., in modulated data signals such as carrier waves or other transport mechanisms.
[0070]
[0076] The order in which the actions in the illustrated and described examples of disclosure are performed is not mandatory, and they may be performed in different orders in different examples. For example, performing or doing one particular action before, simultaneously with, or after another is assumed to be within the scope of the aspects of this disclosure. When introducing elements of the aspects of this disclosure or its examples, the articles “a,” “an,” “the,” and “said” are intended to mean that there is one or more of those elements. The terms “comprising,” “including,” and “having” are intended to mean comprehensive and that there may be additional elements other than those listed. The term “exemplary” is intended to mean “an example of.” The expression "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".
[0071]
[0077] Since the aspects of this disclosure have been described in detail, it will be clear that modifications and variations are possible without departing from the scope of the aspects of this disclosure as defined in the attached claims. Because various changes can be made to the structures, products, and methods described above without departing from the scope of the aspects of this disclosure, all matters included in the above description and shown in the attached drawings are intended to be interpreted as examples, not as limiting.
Claims
1. Processor (914), When executed by the aforementioned processor, In a packet-switched network (102), creating a first probe packet (131) for a first tunnel (200) (802), wherein the first tunnel comprises an ordered set of routers (210), and the first probe packet is Forward tunnel label (402), Reverse tunnel label (412), Internet Protocol (IP) packet header (404), (802) to be equipped with, Using the forward tunnel label, the first probe packet is transmitted along the first tunnel from the tunnel source router (150) to the tunnel destination router (160) (804), Using the reverse tunnel label, the first probe packet is transmitted in the reverse direction along the first tunnel from the tunnel destination router to the tunnel source router (806), At a minimum, the tunnel source router flags the first tunnel as available based on the fact that it has received the first probe packet from the tunnel destination router (808), A computer-readable medium (912) that stores instructions (912a) that function to perform the following: A system that includes these features.
2. The aforementioned instruction further, In the packet-switched network, a second probe packet for the first tunnel is created, wherein the second probe packet is The forward tunnel label and, The reverse tunnel label and, The aforementioned IP packet header, To be equipped with, Using the forward tunnel label of the second probe packet, the second probe packet is transmitted along the first tunnel from the tunnel source router to the tunnel destination router, At a minimum, the tunnel source router flags the first tunnel as unavailable based on the fact that it has not received the second probe packet, The system according to claim 1, which functions to perform the following:
3. The system according to claim 1, wherein the direction in the opposite direction of the first tunnel comprises a second tunnel.
4. The packet-switched network comprises at least two realms, The tunnel source router is located in the first of the at least two realms, The tunnel destination router is located in the second of the at least two realms, The router of the first tunnel between the tunnel source router and the tunnel destination router is located within the first realm, and The first probe packet further, A segment identifier (SID) is provided between the forward tunnel label and the reverse tunnel label. The system according to claim 1, comprising:
5. The aforementioned instruction further, The tunnel destination router removes the SID, Using the SID, the first probe packet is transmitted from the tunnel destination router to the last router in the ordered set of routers located within the first realm. It functions to do, Using the reverse tunnel label, the first probe packet is transmitted along the first tunnel from the tunnel destination router to the tunnel source router. Using the reverse tunnel label, transmit the first probe packet from the last router of the ordered set of routers located within the first realm to the tunnel source router. The system according to claim 4, including the system described in claim 4.
6. The aforementioned instruction further, The forward tunnel label is removed by the penalty mate router in the ordered set of routers of the first tunnel. The system according to claim 1, which functions to perform the following:
7. The aforementioned instruction further, Sending probe packets that match the configuration of the first probe packet in a periodic schedule, The system according to claim 1, which functions to perform the following:
8. In a packet-switched network (102), creating a first probe packet (131) for a first tunnel (200) (802), wherein the first tunnel comprises an ordered set of routers (210), and the first probe packet is Forward tunnel label (402), Reverse tunnel label (412), Internet Protocol (IP) packet header (404), (802) to be equipped with, Using the forward tunnel label, the first probe packet is transmitted along the first tunnel from the tunnel source router (150) to the tunnel destination router (160) (804), Using the reverse tunnel label, the first probe packet is transmitted in the reverse direction along the first tunnel from the tunnel destination router to the tunnel source router (806), At a minimum, the tunnel source router flags the first tunnel as available based on the fact that it has received the first probe packet from the tunnel destination router (808), Computer implementation methods, including those mentioned above.
9. In the packet-switched network, a second probe packet for the first tunnel is created, wherein the second probe packet is The forward tunnel label and, The reverse tunnel label and, The aforementioned IP packet header, To be equipped with, Using the forward tunnel label of the second probe packet, the second probe packet is transmitted along the first tunnel from the tunnel source router to the tunnel destination router, At a minimum, the tunnel source router flags the first tunnel as unavailable based on the fact that it has not received the second probe packet, The computer implementation method according to claim 8, further comprising:
10. The computer implementation method according to claim 8, wherein the reverse direction of the first tunnel comprises a second tunnel.
11. The packet-switched network comprises at least two realms, The tunnel source router is located in the first of the at least two realms, The tunnel destination router is located in the second of the at least two realms, The router of the first tunnel between the tunnel source router and the tunnel destination router is located within the first realm, and The first probe packet further, A segment identifier (SID) is provided between the forward tunnel label and the reverse tunnel label. The computer implementation method according to claim 8, comprising:
12. The tunnel destination router removes the SID, Using the SID, the first probe packet is transmitted from the tunnel destination router to the last router in the ordered set of routers located within the first realm. It further includes, Using the reverse tunnel label, the first probe packet is transmitted along the first tunnel from the tunnel destination router to the tunnel source router. Using the reverse tunnel label, transmit the first probe packet from the last router of the ordered set of routers located within the first realm to the tunnel source router. The computer implementation method according to claim 11, including the method described in claim 11.
13. The forward tunnel label is removed by the penalty mate router in the ordered set of routers of the first tunnel. The computer implementation method according to claim 8, further comprising:
14. Sending probe packets that match the configuration of the first probe packet in a periodic schedule, The computer implementation method according to claim 8, further comprising:
15. When executed by a computer, In a packet-switched network (102), creating a first probe packet (131) for a first tunnel (200) (802), wherein the first tunnel comprises an ordered set of routers (210), and the first probe packet is Forward tunnel label (402), Reverse tunnel label (412), Internet Protocol (IP) packet header (404), (802) to be equipped with, Using the forward tunnel label, the first probe packet is transmitted along the first tunnel from the tunnel source router (150) to the tunnel destination router (160) (804), Using the reverse tunnel label, the first probe packet is transmitted in the reverse direction along the first tunnel from the tunnel destination router to the tunnel source router (806), At a minimum, the tunnel source router flags the first tunnel as available based on the fact that it has received the first probe packet from the tunnel destination router (808), A computer memory device that stores computer executable instructions that cause the computer to perform an operation including the above.
16. The above operation further, In the packet-switched network, a second probe packet for the first tunnel is created, wherein the second probe packet is The forward tunnel label and, The reverse tunnel label and, The aforementioned IP packet header, To have, to create, Using the forward tunnel label of the second probe packet, the second probe packet is transmitted along the first tunnel from the tunnel source router to the tunnel destination router, At a minimum, the tunnel source router flags the first tunnel as unavailable based on the fact that it has not received the second probe packet, A computer storage device according to claim 15, including the above.
17. The computer storage device according to claim 15, wherein the reverse direction of the first tunnel comprises a second tunnel.
18. The packet-switched network comprises at least two realms, The tunnel source router is located in the first of the at least two realms, The tunnel destination router is located in the second of the at least two realms, The router of the first tunnel between the tunnel source router and the tunnel destination router is located within the first realm, and The first probe packet further, A segment identifier (SID) is provided between the forward tunnel label and the reverse tunnel label. A computer storage device according to claim 15, comprising:
19. The above operation further, The tunnel destination router removes the SID, Using the SID, the first probe packet is transmitted from the tunnel destination router to the last router in the ordered set of routers located within the first realm. Includes, Using the reverse tunnel label, the first probe packet is transmitted along the first tunnel from the tunnel destination router to the tunnel source router. Using the reverse tunnel label, transmit the first probe packet from the last router of the ordered set of routers located within the first realm to the tunnel source router. A computer storage device according to claim 18, including the above.
20. The above operation further, The forward tunnel label is removed by the penalty mate router in the ordered set of routers of the first tunnel. A computer storage device according to claim 15, including the above.