Autonomous inter-system (inter-AS) options
By generating and including composite tunnel attributes in network devices, the problem of inter-AS anonymity and scalability in multi-protocol tag switching (MPLS) virtual private network (VPN) is solved, and crossing multiple autonomous systems (AS) is realized ) service routing and tunnel path establishment improve routing performance and resource utilization efficiency.
Patent Information
- Application Number
- CN202311073763.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-26
- Filing Date
- 2023-08-24
- Publication Date
- 2024-12-27
AI Technical Summary
In multi-protocol tag switching (MPLS) virtual private network (VPN), the prior art is difficult to achieve inter-AS anonymity and scalability on a scale, especially when routing services between multiple autonomous systems (AS), and now There are inter-AS options that lack anonymity and scalability.
Receive routes including tags, prefixes and next hop identifiers through network devices, generate composite tunnel attributes, and modify the routes to include the identifiers and assigned tags of network devices, so that they appear in the route, and then send the routes to other Network equipment, thereby realizing the establishment of service routing and tunnel paths, while hiding device addresses outside AS, reducing the computing and storage resource requirements of ASBR network equipment.
Implement service routing across multiple ASs, provide anonymity and improved scalability, reduce resource consumption of ASBR network equipment, improve routing performance, and anonymity and scalability that are difficult to achieve in the prior art At the same time, both can be taken into account.
Smart Images

Figure CN119211122A_ABST
Abstract
Description
Background Art
[0001] Border Gateway Protocol (BGP) is a standardized gateway protocol designed to exchange routing and reachability information between autonomous systems (AS). BGP is classified as a path vector routing protocol and makes routing decisions based on paths, network policies, or rule sets configured by the network administrator. BGP used for routing within an AS is called internal BGP (iBGP), while BGP used for routing outside an AS is called external BGP (eBGP). Summary of the invention
[0002] In some implementations, a method includes: receiving, by a network device and from a first other network device, a route including a label, a prefix, and a next hop identifier; generating, by the network device based on the received route, a composite tunnel attribute including an identifier of the network device and a label assigned by the network device; modifying, by the network device based on generating the composite tunnel attribute, the route so that the composite tunnel attribute is included in the route; and sending, by the network device and based on the modified route, the route to a second other network device.
[0003] In some implementations, a non-transitory computer-readable medium storing an instruction set includes one or more instructions that, when executed by one or more processors of a network device, cause the network device to: receive a route including a label, a prefix, and a next-hop identifier; based on receiving the route, modify the route so that a composite tunnel attribute is included in the route, wherein the composite tunnel attribute includes an identifier of the network device and a label assigned by the network device; and based on modifying the route, send the route to another network device.
[0004] In some implementations, a network device includes one or more memories; and one or more processors for: receiving a route including a label, a prefix, and a next hop identifier from a first other network device; modifying the route so that a composite tunnel attribute including a label assigned by the network device is included in the route; and sending the route to another network device based on the modified route. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Figures 1A to 1E is an illustration of an example implementation associated with an inter-AS option.
[0006] Figure 2 is an illustration of an example environment in which the systems and / or methods described herein may be implemented.
[0007] Figure 3 is an illustration of example components of equipment associated with an inter-AS option.
[0008] Figure 4 is an illustration of example components of equipment associated with an inter-AS option.
[0009] Figure 5 is a flow diagram of an example process associated with an inter-AS option. DETAILED DESCRIPTION
[0010] The following detailed description of example implementations refers to the accompanying drawings.The same reference numbers in different drawings may identify the same or similar elements.
[0011] An AS is a network or group of networks controlled by a common administrator (e.g., an Internet provider (ISP)) and is typically associated with a single routing protocol such as BGP. In some cases, a Multiprotocol Label Switching (MPLS) virtual private network (VPN) can span multiple ASs by using inter-AS functionality. Using such functionality, an Autonomous System Boundary Router (ASBR) re-advertises routes (e.g., received from another ASBR or provider edge (PE)) to other ASBRs to facilitate the establishment of label switched paths (LSPs) (e.g., for VPNs) across the AS.
[0012] In some cases, the ASBR may re-advertise the next hop field of the route with the change to identify its own route, and change the network layer reachability information (NLRI) of the route to indicate a label (e.g., a label locally assigned by the ASBR). The ASBR also updates the ASBR's forwarding state (e.g., per-service label forwarding state) that binds the label to the original next hop and the label information included in the route. This enables the ASBR to route the traffic associated with the label to the source that sent the route to the ASBR. This inter-AS option achieves anonymity, such as by utilizing labels in the route (e.g., this prevents exposure of loopback addresses of PEs across the AS), but is difficult to achieve at scale when hundreds, thousands, or more ASBRs each utilize different labels for routes across the AS. Alternatively, PEs can advertise routes to each other via route reflectors (RRs) without involving the ASBR. The PEs receive routes with the corresponding next hop fields unchanged and establish LSPs for each next hop. The ASBRs along the LSPs can then forward traffic based solely on the PE labels included in the traffic (e.g., PE labels associated with the LSPs). This inter-AS option scales well because traffic is routed based on PE labels rather than a single assigned label. However, this option lacks anonymity because internal information of an AS (e.g., loopback addresses of PEs) can be shared outside the AS.
[0013] Some implementations described herein include a network device (e.g., an ASBR network device). The network device receives a route from another network device (e.g., a PE network device or another ASBR network device). The route includes a label (e.g., a label associated with a service such as a VPN), a prefix (e.g., a prefix associated with one or more addresses associated with the service (e.g., an Internet Protocol (IP) address range)), and a next hop identifier (e.g., an address that identifies the PE network device when the PE network device sends the route to the network device, such as an IP address; or a label that identifies the other ASBR network device when the other ASBR network device sends the route to the network device). The route (e.g., when received from another ASBR network device) may also include a composite tunnel attribute (e.g., it includes an identifier of the other ASBR network device and a label assigned by the other ASBR network device). The network device then generates another composite tunnel attribute (e.g., it includes an identifier of the network device and a label assigned by the network device) based on the received route.
[0014] The network device then modifies a data structure (e.g., associated with a forwarding state of the network device) to indicate an association between a label assigned by the network device and one of a next hop identifier included in the route (e.g., when the network device receives the route from a PE network device) or an egress endpoint of a composite tunnel attribute included in the route (e.g., when the network device receives the route from another ASBR network device). In addition, the network device modifies the route so that the identifier of the network device is indicated by the next hop identifier of the route and the other composite tunnel attribute (e.g., which is generated by the network device) is included in the route. The network device then sends the route to another network device (e.g., to another ASBR network device or to another PE network device).
[0015] Therefore, traffic destined for a PE device (e.g., a PE device that originates the route) is routed to the network device (e.g., as a hop along the LSP to the PE device). The traffic includes an identifier of the network device, a label assigned by the network device, and a label. Therefore, the network device searches based on the assigned label to identify a composite tunnel attribute (e.g., when the route is received from another ASBR network device, it is included in the route) or a next hop identifier (e.g., when the route is received from a PE network device, it is included in the route). When the network device identifies the composite tunnel attribute, the network device modifies the traffic to include at least a portion of the composite tunnel attribute, such as an identifier of another ASBR network device and a label assigned by another ASBR network device. Alternatively, when the network device identifies the next hop identifier, the network device modifies the traffic to include the next hop identifier. In each manner, the network device modifies the traffic to ensure that the traffic is routed to the next hop on the LSP to the PE network device, or is routed to the PE network device.
[0016] Therefore, some implementations described herein provide inter-AS options (e.g., which allow routing and traffic to be routed across multiple ASs). In addition, some implementations support anonymity. For example, each ASBR network device can modify a route to include updated next hop information and new composite tunnel attributes, which thus hides the address (e.g., loopback address) of the PE network device that initiated the route from other devices outside the AS associated with the PE network device. In addition, some implementations provide improved scalability (e.g., compared to some existing inter-AS options). For example, when re-advertising a route, it is not necessary to modify the label of the route, so the ASBR network device does not have to maintain and use per-service label forwarding state to route traffic to the PE network device. This saves computing resources (e.g., processing resources, memory resources, communication resources, and / or power resources, etc.) of the ASBR network device, and promotes improved performance (e.g., improved routing performance) of the ASBR network device. In addition, some implementations simultaneously achieve anonymity and improved scalability, which is not possible when using existing inter-AS options.
[0017] Figures 1A to 1E is a diagram of an example implementation 100 associated with an inter-AS option. Figures 1A to 1E As shown, the example implementation 100 includes multiple network devices, such as multiple PE network devices and multiple ASBR network devices. Figures 2 to 4 These devices are described in more detail.
[0018] like Figures 1A to 1EAs shown, the example implementation 100 may include multiple ASs, such as AS A, AS B, and AS C. Each AS may be associated with one or more network devices. For example, AS A may be associated with PE network device A1 ("PE A1"), PE network device A2 ("PE A2"), and ASBR network device A1 ("ASBR A1"); AS B may be associated with ASBR network device B1 ("ASBR B1") and ASBR network device B2 ("ASBR B2"); and AS C may be associated with PE network device C1 ("PEC1"), PE network device C2 ("PE C2"), and ASBR network device C1 (ASBR "C1").
[0019] As indicated by reference numeral 102, PE A1 may send a route (e.g., a service route) to ASBR A1. For example, PE A1 may send the route to ASBR A1 to distribute the route to other network devices, such as other ASBR network devices and / or other PE network devices, thereby facilitating appropriate routing of traffic associated with a service, such as a VPN (e.g., a VPN spanning one or more ASs) across AS boundaries. Thus, ASBR A1 may receive the route from PE A1 (e.g., as a result of PE A1 sending the route). The route may include, for example, a label (e.g., which is associated with a service), a prefix (e.g., which is associated with one or more addresses (such as an IP address range) associated with the service), and a next hop identifier (e.g., which identifies an address (such as an IP address) of PE A1 as the next hop to which the traffic should be forwarded). As a specific example, as Figure 1A As shown, a route can be a tuple<A,spfx1,PE A1> , where A is a label, sprfx1 is a prefix, and PE_A1 is a next hop identifier. In some implementations, the route may also include a non-composite tunnel identifier (eg, which identifies one or more non-composite tunnels associated with PE A1).
[0020] As shown at reference numeral 104, ASBR A1 may generate a composite tunnel attribute (e.g., based on receiving the route from PE A1). The composite tunnel attribute may be, for example, a tunnel encapsulation attribute (TEA) (e.g., as described in Internet Engineering Task Force (IETF) Request for Comments (RFC) 9012). The composite tunnel attribute may indicate a label switched path (LSP) to PE A1 (e.g., via ASBR A1). For example, the composite tunnel attribute may include an identifier of ASBR A1 and / or a label assigned by ASBR A1 (e.g., which is associated with a next hop identifier or a non-composite tunnel identifier), etc. As a specific example, if Figure 1AAs shown, a composite tunnel attribute can be a tuple<ASBR_A1,X01> , where ASBR_A1 is an identifier of ASBR A1 (e.g., indicating an identifier of ASBR A1, such as an egress endpoint of a composite tunnel attribute), and X01 is a label assigned by ASBR A1 (e.g., a binding label identifying the composite tunnel attribute as bound to the next hop identifier PE_A1).
[0021] As indicated by reference numeral 106, ASBR A1 may modify a data structure (e.g., based on receiving a route from PE A1 and / or generating a composite tunnel attribute). The data structure may be included in and / or accessible by ASBR A1, and may be a forwarding table, a forwarding information base (FIB), a forwarding context, and / or a similar data structure. In some implementations, ASBR A1 may modify the data structure to indicate an association between a label assigned by ASBR A1 and a next hop identifier (e.g., which is included in a route) or a non-composite tunnel identifier (e.g., which is included in a route). For example, ASBR A1 may modify the data structure to include an entry that includes a next hop identifier (e.g., PE_A1) and is associated with a label assigned by ASBR A1 (e.g., X01). In this way, ASBR A1 may create a forwarding state for the assigned label (e.g., so that traffic including the assigned label can be tunneled to the next hop identifier or the non-composite tunnel identifier).
[0022] As indicated by reference numeral 108, ASBR A1 may modify the route. In some implementations, ASBR A1 may modify the route so that the identifier of ASBR A1 is indicated by the next hop identifier of the route. That is, ASBR A1 may modify the route so that the next hop identifier indicates only ASBR A1 (e.g., so that the next hop identifier is ASBR_A1). In some implementations, ASBR A1 may modify the route so that the composite tunnel attribute is included in the route (e.g., the composite tunnel attribute is attached to the route). In a specific example, ASBR A1 may modify the route into a first tuple and a second tuple (separated by a comma), for example, such as Figure 1A As shown,<A,sprfx1,ASBR_A1> ,<ASBR_A1,X01> , where the first tuple includes a label, a prefix, and a next hop identifier (e.g., after being updated to indicate ASBR A1), and the second tuple includes composite tunnel attributes (e.g., including an identifier of ASBR A1 and / or a label assigned by ASBR A1).
[0023] As shown at reference numeral 110, ASBR A1 may send the route to ASBR B1 (e.g., based on modifying the route). For example, ASBR A1 may send the route to ASBR B1 as part of a re-advertisement process to distribute the route to other network devices connected to ASBR A1 that are not associated with AS A (e.g., other ASBR network devices). Thus, ASBR B1 may receive the route from ASBR A1 (e.g., as a result of ASBR A1 sending the route).
[0024] like Figure 1B As shown and by reference numeral 112, ASBR B1 may generate a composite tunnel attribute (e.g., based on receiving a route from ASBR A1), such as a TEA. The composite tunnel attribute may indicate to PE A1 the LSP (e.g., via ASBR B1). For example, the composite tunnel attribute may include an identifier of ASBR B1 and / or a label assigned by ASBR B1 (e.g., which is associated with the composite tunnel attribute included in the route), among other examples. As a specific example, Figure 1B As shown, a composite tunnel attribute can be a tuple<ASBR_B1,X02> , where ASBR_B1 is an identifier of ASBR B1 (e.g., indicating an identifier of ASBR B1, such as an egress endpoint of a composite tunnel attribute), and X02 is a label assigned by ASBR B1 (e.g., identifying a binding label of a composite tunnel attribute, such as a composite tunnel attribute bound to the composite tunnel attribute).
[0025] As indicated by reference numeral 114, ASBR B1 may modify a data structure (e.g., based on receiving the route from ASBR A1 and / or generating the composite tunnel attribute). The data structure may be included in and / or accessible by ASBR B1, and may be a forwarding table, a FIB, a forwarding context, and / or a similar data structure. In some implementations, because the route included a composite tunnel attribute (also referred to as "another composite tunnel attribute") when received by ASBR B1, ASBR B1 may modify the data structure to indicate an association between the label assigned by ASBR B1 and the another composite tunnel attribute. For example, ASBR B1 may modify the data structure to include an entry that includes another composite tunnel attribute included in the route (e.g.,<ASBR_A1,X01> ), and the entry is keyed to the label assigned by ASBR B1 (e.g., X02). In this way, ASBR B1 can create a forwarding state for the assigned label (e.g., so that traffic including the assigned label can be tunneled to another exit point of the composite tunnel attribute).
[0026] As indicated by reference numeral 116, ASBR B1 may modify the route (e.g., based on the update data structure). In some implementations, ASBR B1 may modify the route so that the identifier of ASBR B1 is indicated by the next hop identifier of the route. That is, ASBR B1 may modify the route so that the next hop identifier indicates only ASBR B1 (e.g., so that the next hop identifier is ASBR_B1). In some implementations, ASBR B1 may modify the route so that a composite tunnel attribute is included in the route (e.g., remove another composite tunnel attribute included in the route, and thereafter include the composite tunnel attribute in the route). In a specific example, ASBR B1 may modify the route into a first tuple and a second tuple (separated by a comma), for example, such as Figure 1B As shown,<A,sprfx1,ASBR_B1> ,<ASBR_B1,X02> , where the first tuple includes a label, a prefix, and a next hop identifier (e.g., after being updated to indicate ASBR B1), and the second tuple includes composite tunnel attributes (e.g., including an identifier of ASBR B1 and / or a label assigned by ASBR B1).
[0027] ASBR B1 may send the route to ASBR B2 (e.g., based on modifying the route), as shown by reference numeral 118. For example, ASBR B1 may send the route to ASBR B2 as part of a re-advertisement process to distribute the route to other network devices (e.g., other ASBR network devices) associated with ASBR B that are connected to ASBR B1. Thus, ASBR B2 may receive the route from ASBR B1 (e.g., as a result of ASBR B1 sending the route).
[0028] like Figure 1C As shown and by reference numeral 120, ASBR B2 may generate a composite tunnel attribute (e.g., based on receiving the route from ASBR B1), such as a TEA. The composite tunnel attribute may indicate to PE A1 the LSP (e.g., via ASBR B2). For example, the composite tunnel attribute may include an identifier of ASBR B2 and / or a label assigned by ASBR B2 (e.g., which is associated with the composite tunnel attribute included in the route), among other examples. As a specific example, Figure 1C As shown, a composite tunnel attribute can be a tuple<ASBR_B2,X03> , where ASBR_B2 is an identifier of ASBR B2 (e.g., indicating an identifier of ASBR B2, such as an egress endpoint of a composite tunnel attribute), and X03 is a label assigned by ASBR B2 (e.g., identifying a binding label of a composite tunnel attribute, such as a composite tunnel attribute bound to the composite tunnel attribute).
[0029] As indicated by reference numeral 122, ASBR B2 may modify a data structure (e.g., based on receiving the route from ASBR B1 and / or generating the composite tunnel attribute). The data structure may be included in and / or accessible by ASBR B2, and may be a forwarding table, a FIB, a forwarding context, and / or a similar data structure. In some implementations, since the composite tunnel attribute (also referred to as "another composite tunnel attribute") was included when the route was received by ASBR B2, ASBR B2 may modify the data structure to indicate an association between the label assigned by ASBR B2 and the another composite tunnel attribute. For example, ASBR B2 may modify the data structure to include an entry that includes the another composite tunnel attribute included in the route (e.g.,<ASBR_B1,X02> ), and the entry is keyed to the label assigned by ASBR B2 (e.g., X03). In this way, ASBR B2 can create a forwarding state for the assigned label (e.g., so that traffic including the assigned label can be tunneled to an exit point of another composite tunnel attribute).
[0030] As indicated by reference numeral 124, ASBR B2 may modify the route (e.g., based on the update data structure). In some implementations, ASBR B2 may modify the route so that the identifier of ASBR B2 is indicated by the next hop identifier of the route. That is, ASBR B2 may modify the route so that the next hop identifier indicates only ASBR B2 (e.g., so that the next hop identifier is ASBR_B2). In some implementations, ASBR B2 may modify the route so that a composite tunnel attribute is included in the route (e.g., remove another composite tunnel attribute included in the route, and thereafter include the composite tunnel attribute in the route). In a specific example, ASBR B2 may modify the route into a first tuple and a second tuple (separated by a comma), for example, such as Figure 1C As shown,<A,sprfx1,ASBR_B2> ,<ASBR_B2,X03> , where the first tuple includes the label, prefix, and next hop identifier (e.g., after being updated to indicate ASBR B2), and the second tuple includes composite tunnel attributes (e.g., including an identifier of ASBR B2 and / or a label assigned by ASBR B2).
[0031] ASBR B2 may send the route to ASBR C1 (e.g., based on modifying the route), as indicated by reference numeral 126. For example, ASBR B2 may send the route to ASBR C1 as part of a re-advertisement process to distribute the route to other network devices (e.g., other ASBR network devices) that are connected to ASBR B2 and associated with another AS (e.g., AS C). Thus, ASBR C1 may receive the route from ASBR B2 (e.g., as a result of ASBR B2 sending the route).
[0032] like Figure 1D As shown and by reference numeral 128, ASBR C1 may generate a composite tunnel attribute (e.g., based on receiving the route from ASBR B2), such as a TEA. The composite tunnel attribute may indicate to PE A1 the LSP (e.g., via ASBR C1). For example, the composite tunnel attribute may include an identifier of ASBR C1 and / or a label assigned by ASBR C1 (e.g., which is associated with the composite tunnel attribute included in the route), among other examples. As a specific example, Figure 1D As shown, a composite tunnel attribute can be a tuple<ASBR_C1,X04> , where ASBR_C1 is an identifier of ASBR C1 (e.g., indicating an identifier of ASBR C1, such as an egress endpoint of a composite tunnel attribute), and X04 is a label assigned by ASBR C1 (e.g., identifying a binding label of a composite tunnel attribute, such as a composite tunnel attribute bound to the composite tunnel attribute).
[0033] As indicated by reference numeral 130, ASBR C1 may modify a data structure (e.g., based on receiving the route from ASBR B2 and / or generating the composite tunnel attribute). The data structure may be included in and / or accessible by ASBR C1, and may be a forwarding table, a FIB, a forwarding context, and / or a similar data structure. In some implementations, because the route included the composite tunnel attribute (also referred to as "another composite tunnel attribute") when received by ASBR C1, ASBR C1 may modify the data structure to indicate an association between the label assigned by ASBR C1 and the another composite tunnel attribute. For example, ASBR C1 may modify the data structure to include an entry that includes the another composite tunnel attribute included in the route (e.g.,<ASBR_B2,X03> ), and the entry is keyed to the label assigned by ASBR C1 (e.g., X04). In this way, ASBR C1 can create a forwarding state for the assigned label (e.g., so that traffic including the assigned label can be tunneled to an exit point of another composite tunnel attribute).
[0034] As indicated by reference numeral 132, ASBR C1 may modify the route (e.g., based on updating the data structure). In some implementations, ASBR C1 may modify the route so that the identifier of ASBR C1 is indicated by the next hop identifier of the route. That is, ASBR C1 may modify the route so that the next hop identifier indicates only ASBR C1 (e.g., so that the next hop identifier is ASBR_C1). In some implementations, ASBR C1 may modify the route so that a composite tunnel attribute is included in the route (e.g., removing another composite tunnel attribute included in the route and thereafter including the composite tunnel attribute in the route). In a specific example, ASBR C1 may modify the route into a first tuple and a second tuple (separated by a comma), for example, such as Figure 1D As shown,<A,sprfx1,ASBR_C1> ,<ASBR_C1,X04> , where the first tuple includes a label, a prefix, and a next hop identifier (e.g., after being updated to indicate ASBR C1), and the second tuple includes composite tunnel attributes (e.g., including an identifier of ASBR C1 and / or a label assigned by ASBR C1).
[0035] As indicated by reference numeral 134, ASBR C1 may send the route to PE C1 (e.g., based on modifying the route). For example, ASBR C1 may send the route to PE C1 as part of a re-advertisement process to distribute the route to other network devices associated with ASBR C1 that are connected to ASBR C1 (e.g., other PE network devices). Thus, PE C1 may receive the route from ASBR C1 (e.g., as a result of ASBR C1 sending the route).
[0036] In some implementations, as described herein with reference to Figures 1A to 1D As described above, a network device (e.g., a PE network device or an ASBR network device) can directly send a route to another network device (e.g., another PE network device or another ASBR network device), for example, via a link between the network device and the other network device. Additionally or alternatively, as described herein with reference to Figures 1A to 1D As described, a network device (eg, a PE network device or an ASBR network device) may send a route indirectly to another network device (eg, another PE network device or another ASBR network device), such as via one or more RRs disposed between the network device and the other network device.
[0037] like Figure 1EAs shown, and by reference numeral 136, PE C1 may send traffic (e.g., traffic associated with a service) destined for PE A1. Thus, PE C1 may send the traffic to ASBR C1 (e.g., as an initial hop along the LSP to PE A1). In this manner, ASBR C1 may receive the traffic from PE C1 (e.g., as a result of PE C1 sending the traffic). The traffic may include (e.g., in a header of one or more packets of the traffic) an identifier of ASBR C1, a label assigned by ASBR C1, and a label (e.g., a label associated with the service) that is included in the route that ASBR C1 sends to PE C1. For example, as Figure 1E As shown, a business may include a tuple<ASBR_C1,X04,A> , where ASBR_C1 is the identifier of ASBR C1, X04 is the label assigned by ASBR C1, and A is the label.
[0038] As shown at 138, ASBR C1 may modify the traffic (e.g., to allow the traffic to be forwarded to PE A1 via the LSP). Thus, ASBR C1 may modify the traffic to allow the traffic to be forwarded to ASBR B2. For example, ASBR C1 may modify the traffic so that the identifier of ASBR B2 and the label assigned by ASBR B2 are included in the traffic (and the identifier of ASBR C1 and the label assigned by ASBR C1 are removed from the traffic). As a specific example, Figure 1E As shown, ASBR C1 can modify the service so that the service includes the tuple<ASBR_B2,X03,A> , where ASBR_B2 is the identifier of ASBR B2, X03 is the label assigned by ASBR B2, and A is the label.
[0039] In some implementations, to modify the service, ASBR C1 may identify information in a data structure (e.g., included in and / or accessible by ASBR C1), and may modify the service based on the information. For example, ASBR C1 may search based on a tag (e.g., X04) assigned by ASBR C1 included in the service to identify an entry (e.g., keyed to the tag assigned by ASBR C1). ASBR C1 may process (e.g., parse and / or read) the entry to identify a composite tunnel attribute generated by ASBR B2 and included in the entry. Thus, ASBR C1 may modify the service so that the composite tunnel attribute (e.g., X04) generated by ASBR B2 is not included in the service.<ASBR_B2,X03> ) is included in the traffic (e.g., an identifier of ASBR B2 included in the composite tunnel attribute generated by ASBR B2 and a label allocated by ASBR B2 are included in the traffic). ASBR C1 may also modify the traffic so that an identifier of ASBR C1 and a label allocated by ASBR C1 (e.g., a label included in the traffic when received by ASBR C1) are removed from the traffic.
[0040] ASBR Cl may send traffic to ASBR B2 (eg, as the next hop along the LSP to PEA1), as shown at reference numeral 140. In this manner, ASBR B2 may receive traffic from ASBR Cl (eg, as a result of ASBR Cl sending traffic).
[0041] As shown at 142, ASBR B2 may modify the traffic (e.g., to allow the traffic to be forwarded to PE A1 via the LSP). Thus, ASBR B2 may modify the traffic to allow the traffic to be forwarded to ASBR B1. For example, ASBR B2 may modify the traffic so that the identifier of ASBR B1 and the label assigned by ASBR B1 are included in the traffic (and the identifier of ASBR B2 and the label assigned by ASBR B2 are removed from the traffic). As a specific example, Figure 1E As shown, ASBR B2 can modify the service so that the service includes the tuple<ASBR_B1,X02,A> , where ASBR_B1 is the identifier of ASBR B1, X02 is the label assigned by ASBR B1, and A is the label.
[0042] In some implementations, to modify the service, ASBR B2 may identify information in a data structure (e.g., included in and / or accessible by ASBR B2), and may modify the service based on the information. For example, ASBR B2 may search based on a tag (e.g., X03) included in the service and assigned by ASBR B2 to identify an entry (e.g., keyed to the tag assigned by ASBR B2). ASBR B2 may process (e.g., parse and / or read) the entry to identify a composite tunnel attribute generated by ASBR B1 and included in the entry. Thus, ASBR B2 may modify the service so that the composite tunnel attribute (e.g., X03) generated by ASBR B1 is not included in the service.<ASBR_B1,X02> ) is included in the traffic (e.g., an identifier of ASBR B1 included in the composite tunnel attribute generated by ASBR B1 and a label allocated by ASBR B1 are included in the traffic). ASBR B2 may also modify the traffic so that an identifier of ASBR B2 and a label allocated by ASBR B2 (e.g., a label included in the traffic when received by ASBR B2) are removed from the traffic.
[0043] ASBR B2 may send traffic to ASBR B1 (eg, as the next hop along the LSP to PEA1), as shown at reference numeral 144. In this manner, ASBR B1 may receive traffic from ASBR B2 (eg, as a result of ASBR B2 sending traffic).
[0044] As shown by reference numeral 146, ASBR B1 may modify the traffic (e.g., to allow the traffic to be forwarded to PE A1 via the LSP). Thus, ASBR B1 may modify the traffic to allow the traffic to be forwarded to ASBR A1. For example, ASBR B1 may modify the traffic so that the identifier of ASBR A1 and the label assigned by ASBR A1 are included in the traffic (and the identifier of ASBR B1 and the label assigned by ASBR B1 are removed from the traffic). As a specific example, Figure 1E As shown, ASBR B1 can modify the service so that the service includes the tuple<ASBR_A1,X01,A> , where ASBR_A1 is the identifier of ASBR A1, X01 is the label assigned by ASBRA1, and A is the label.
[0045] In some implementations, to modify the service, ASBR B1 may identify information in a data structure (e.g., included in and / or accessible by ASBR B1), and may modify the service based on the information. For example, ASBR B1 may search based on a tag (e.g., X02) included in the service and assigned by ASBR B1 to identify an entry (e.g., keyed to the tag assigned by ASBR B1). ASBR B1 may process (e.g., parse and / or read) the entry to identify a composite tunnel attribute generated by ASBR A1 and included in the entry. Thus, ASBR B1 may modify the service so that the composite tunnel attribute (e.g., X02) generated by ASBR A1 is not included in the service.<ASBR_A1,X01> ) is included in the traffic (e.g., an identifier of ASBR A1 included in the composite tunnel attribute generated by ASBR A1 and a label allocated by ASBR A1 are included in the traffic). ASBR B1 may also modify the traffic so that an identifier of ASBR B1 and a label allocated by ASBR B1 (e.g., a label included in the traffic when received by ASBR B1) are removed from the traffic.
[0046] ASBR Bl may send traffic to ASBR Al (eg, as a next hop along the LSP to PEA1), as shown at reference numeral 148. In this manner, ASBR Al may receive traffic from ASBR Bl (eg, as a result of ASBR Bl sending traffic).
[0047] As shown at 150, ASBR A1 may modify the traffic (e.g., to allow the traffic to be forwarded to PE A1 via the LSP). Thus, ASBR A1 may modify the traffic to allow the traffic to be forwarded to PE A1. For example, ASBR A1 may modify the traffic so that an identifier of PE A1 (e.g., an address that identifies PE A1, such as an IP address) is included in the traffic (and the identifier of ASBR A1 and a label assigned by ASBR A1 are removed from the traffic). As a specific example, Figure 1E As shown, ASBR A1 can modify the service so that the service includes the tuple<PE_A1,A> , where PE_A1 is an identifier associated with PE A1 and A is a label.
[0048] In some implementations, to modify the service, ASBR A1 may identify information in a data structure (e.g., included in and / or accessible by ASBR A1), and may modify the service based on the information. For example, ASBR A1 may search based on a tag (e.g., X01) included in the service and assigned by ASBR A1 to identify an entry (e.g., keyed to a tag assigned by ASBR A1). ASBR A1 may process (e.g., parse and / or read) the entry to identify an identifier of PE A1 included in the entry. Thus, ASBR A1 may modify the service so that the identifier of PE A1 is included in the service. ASBR A1 may also modify the service so that the identifier of ASBR A1 and the tag assigned by ASBR A1 (e.g., a tag included in the service when received by ASBR A1) are removed from the service.
[0049] ASBR Al may send traffic to PE Al (eg, as the last hop along the LSP to PE Al), as indicated by reference numeral 152. In this manner, PE Al may receive traffic from ASBR Al (eg, as a result of ASBR Al sending traffic).
[0050] In some implementations, one or more network devices in the ASBR network device may not support routes that include composite tunnel attributes. For example, when the first ASBR network device is to re-advertise a route to the second ASBR network device, and the second ASBR network device is unable to receive a route with a composite tunnel attribute (or other network devices of the AS associated with the second ASBR network device are unable to receive a route with a composite tunnel attribute), the first ASBR network device may update the route to include a locally assigned label (and no longer include the composite tunnel attribute) before sending the route (e.g., using an existing inter-AS option). Therefore, the first ASBR network device may update a data structure (e.g., included in the first ASBR network device and / or accessible by the first ASBR network device) to indicate an association with a locally assigned label and a label and composite tunnel attribute included in the route (e.g., in a similar manner as described elsewhere herein). Therefore, when the second ASBR network device receives a service that includes a locally assigned label, the second ASBR network device may update and forward the service based on the label and composite tunnel attribute (e.g., in a similar manner as described elsewhere herein). In this manner, some implementations support advertised routing and routing services associated with multiple inter-AS options.
[0051] In some implementations, a network device (e.g., a PE network device or an ASBR network device) may advertise that it supports routing that includes composite tunnel attributes. For example, a network device may use a capability code (e.g., which may be included in a BGP capability optional parameter, as described in RFC 5492) to advertise to other network devices that it supports routing that includes composite tunnel attributes. As another example, a network device may advertise the capability code to an RR, and the RR may re-advertise the capability code to other network devices. Each network device may then determine whether the other network device supports routing that includes composite tunnel attributes based on the received capability code of the other network device, and may thereby determine how to re-advertise the route to the other network device.
[0052] As mentioned above, Figures 1A to 1E Provided as an example. Other examples may differ from the reference Figures 1A to 1E as described. Figures 1A to 1E The number and arrangement of devices shown in are provided as examples. Figures 1A to 1E There may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in FIG. Figures 1A to 1E Two or more of the devices shown in may be implemented in a single device, or Figures 1A to 1E The single device shown in can be implemented as multiple distributed devices. Additionally or alternatively, Figures 1A to 1E The device collection (e.g., one or more devices) shown in FIG. 1 may perform the operations described by Figures 1A to 1E One or more functions performed by another set of devices shown in .
[0053] Figure 2 2 is an illustration of an example environment 200 in which the systems and / or methods described herein may be implemented. Figure 2 As shown, environment 200 may include a group of network devices 210 (shown as network device 210-1 through network device 210-N) and a network 220. The devices of environment 200 may be interconnected via wired connections, wireless connections, or a combination of wired and wireless connections.
[0054] The network device 210 includes one or more devices capable of receiving, processing, storing, routing and / or providing routing and / or services in the manner described herein. For example, the network device 210 may include a router, such as a label switching router (LSR), a label edge router (LER), an ingress router, an egress router, a provider router (e.g., a provider edge router or a provider core router), a virtual router, or another type of router. Additionally or alternatively, the network device 210 may include a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a cloud server, or a data center server), a load balancer, and / or similar devices. The network device 210 may be a PE network device, an ASBR network device, or another type of network device associated with an AS. In some implementations, the network device 210 may be a physical device implemented in a housing, such as a chassis. In some implementations, the network device 210 may be a virtual device implemented by one or more computer devices of a cloud computing environment or a data center. In some implementations, the network device group 210 may be a data center node group for routing traffic flows through the network 220.
[0055] The network 220 includes one or more wired and / or wireless networks. For example, the network 220 may include a packet switching network, a cellular network (e.g., a fifth generation (5G) network, a fourth generation (4G) network, such as a long term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber-based network, a cloud computing network, etc., and / or a combination of these or other types of networks. The network 220 may be associated with (e.g., may include) one or more ASs.
[0056] Figure 2 The number and arrangement of devices and networks shown in are provided as examples. Figure 2 There may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks than those shown in . Figure 2 Two or more of the devices shown in may be implemented in a single device, or Figure 2 The single device shown in FIG. 200 may be implemented as multiple distributed devices. Additionally or alternatively, a set of devices (eg, one or more devices) of environment 200 may perform one or more functions described as being performed by another set of devices of environment 200.
[0057] Figure 3is a diagram of example components of a device 300 associated with an inter-AS option. Device 300 may correspond to network device 210. In some implementations, network device 210 may include one or more devices 300 and / or one or more components of device 300. Figure 3 As shown, device 300 may include a bus 310 , a processor 320 , a memory 330 , an input component 340 , an output component 350 , and / or a communication component 360 .
[0058] The bus 310 may include one or more components that enable wired and / or wireless communications between components of the device 300. The bus 310 may connect components of the device 300 to each other, such as via an operational coupling, a communicative coupling, an electronic coupling, and / or an electrical coupling. Figure 3 Two or more components of a computer system are coupled together. For example, bus 310 may include electrical connections (e.g., lines, traces, and / or wires) and / or wireless buses. Processor 320 may include a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field programmable gate array, an application specific integrated circuit, and / or another type of processing component. Processor 320 may be implemented in hardware, firmware, or a combination of hardware and software. In some implementations, processor 320 may include one or more processors that can be programmed to perform one or more operations or processes described elsewhere herein.
[0059] The memory 330 may include volatile and / or non-volatile memory. For example, the memory 330 may include a random access memory (RAM), a read-only memory (ROM), a hard drive, and / or another type of memory (e.g., flash memory, magnetic memory, and / or optical memory). The memory 330 may include internal memory (e.g., RAM, ROM, or hard drive) and / or removable memory (e.g., removable via a universal serial bus connection). The memory 330 may be a non-transient computer-readable medium. The memory 330 may store information, one or more instructions, and / or software (e.g., one or more software applications) related to the operation of the device 300. In some implementations, the memory 330 may include one or more memories coupled (e.g., communicatively coupled) to one or more processors (e.g., processor 320), such as via bus 310. The communicatively coupled between the processor 320 and the memory 330 may enable the processor 320 to read and / or process information stored in the memory 330 and / or store information in the memory 330.
[0060] Input component 340 can enable device 300 to receive input, such as user input and / or sensor input. For example, input component 340 can include touch screen, keyboard, keypad, mouse, button, microphone, switch, sensor, GPS sensor, GNSS sensor, accelerometer, gyroscope and / or actuator. Output component 350 can enable device 300 to provide output, such as via display, speaker and / or light emitting diode. Communication component 360 can enable device 300 to communicate with other devices via wired connection and / or wireless connection. For example, communication component 360 can include receiver, transmitter, transceiver, modem, network interface card and / or antenna.
[0061] Device 300 can perform one or more operations or processes described herein. For example, a non-transient computer-readable medium (e.g., memory 330) can store an instruction set (e.g., one or more instructions or codes) for execution by processor 320. Processor 320 can execute the instruction set to perform one or more operations or processes described herein. In some implementations, execution of the instruction set by one or more processors 320 causes one or more processors 320 and / or device 300 to perform one or more operations or processes described herein. In some implementations, hard-wired circuits can be used to replace or combine instructions to perform one or more operations or processes described herein. Additionally or alternatively, processor 320 can be configured to perform one or more operations or processes described herein. Therefore, the implementation described herein is not limited to any particular combination of hardware circuits and software.
[0062] Figure 3 The number and arrangement of components shown are provided as examples. Figure 3 Device 300 may include additional components, fewer components, different components, or differently arranged components than those shown in . Additionally or alternatively, a set of components (e.g., one or more components) of device 300 may perform one or more functions described as being performed by another set of components of device 300.
[0063] Figure 4 4 is a diagram of example components of a device 400 associated with an inter-AS option. Device 400 may correspond to network device 210. In some implementations, network device 210 may include one or more devices 400 and / or one or more components of device 400. Figure 4As shown, the device 400 may include one or more input components 410-1 to 410-B (B≥1) (hereinafter collectively referred to as input component 410, and individually referred to as input component 410), a switching component 420, one or more output components 430-1 to 430-C (C≥1) (hereinafter collectively referred to as output component 430, and individually referred to as output component 430), and a controller 440.
[0064] The input component 410 may be one or more attachment points for a physical link and may be one or more entry points for incoming traffic such as packets. The input component 410 may process incoming traffic such as by performing data link layer encapsulation or decapsulation. In some implementations, the input component 410 may send and / or receive packets. In some implementations, the input component 410 may include an input line card that includes one or more packet processing components (e.g., in the form of an integrated circuit), such as one or more interface cards (IFCs), a packet forwarding component, a line card controller component, an input port, a processor, a memory, and / or an input queue. In some implementations, the device 400 may include one or more input components 410.
[0065] The switching component 420 can interconnect the input component 410 with the output component 430. In some implementations, the switching component 420 can be implemented via one or more crossbar switches, via a bus, and / or using a shared memory. The shared memory can be used as a temporary buffer to store packets from the input component 410 before they are ultimately scheduled to be delivered to the output component 430. In some implementations, the switching component 420 can enable the input component 410, the output component 430, and / or the controller 440 to communicate with each other.
[0066] Output component 430 can store packets and can schedule packets for transmission on an output physical link. Output component 430 can support data link layer encapsulation or decapsulation, and / or various higher-level protocols. In some implementations, output component 430 can send packets and / or receive packets. In some implementations, output component 430 may include an output line card, which includes one or more packet processing components (e.g., in the form of an integrated circuit), such as one or more IFCs, packet forwarding components, line card controller components, output ports, processors, memories, and / or output queues. In some implementations, device 400 may include one or more output components 430. In some implementations, input component 410 and output component 430 may be implemented by the same component set (e.g., an input / output component may be a combination of input component 410 and output component 430).
[0067] The controller 440 includes a processor in the form of, for example, a CPU, a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), and / or other types of processors. The processor is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, the controller 440 may include one or more processors that can be programmed to perform a function.
[0068] In some implementations, the controller 440 may include RAM, ROM, and / or another type of dynamic or static storage device (eg, flash memory, magnetic memory, optical memory, etc.) that stores information and / or instructions for use by the controller 440 .
[0069] In some implementations, the controller 440 can communicate with other devices, networks, and / or systems connected to the device 400 to exchange information about the network topology. The controller 440 can create a routing table based on the network topology information, can create a forwarding table based on the routing table, and can forward the forwarding table to the input component 410 and / or the output component 430. The input component 410 and / or the output component 430 can use the forwarding table to perform a route lookup for incoming and / or outgoing packets.
[0070] The controller 440 may perform one or more processes described herein. The controller 440 may perform these processes in response to executing software instructions stored by a non-transient computer readable medium. A computer readable medium is defined herein as a non-transient storage device. A memory device includes memory space within a single physical storage device or memory space distributed on multiple physical storage devices.
[0071] The software instructions may be read from another computer-readable medium or from another device via a communication interface into a memory and / or storage component associated with the controller 440. When executed, the software instructions stored in the memory and / or storage component associated with the controller 440 may cause the controller 440 to perform one or more processes described herein. Additionally or alternatively, hardwired circuitry may be used instead of or in combination with software instructions to perform one or more processes described herein. Therefore, the implementations described herein are not limited to any specific combination of hardware circuitry and software.
[0072] Figure 4 The number and arrangement of components shown are provided as examples. Figure 4Device 400 may include additional components, fewer components, different components, or differently arranged components than those shown in . Additionally or alternatively, a set of components (e.g., one or more components) of device 400 may perform one or more functions described as being performed by another set of components of device 400.
[0073] Figure 5 is a flow chart of an example process 500 associated with an inter-AS option. In some implementations, Figure 5 One or more process blocks of are performed by a network device (e.g., network device 210). In some implementations, Figure 5 One or more process blocks of are performed by another device or group of devices separate from or including the network device, such as another network device. Additionally or alternatively, Figure 5 One or more process blocks may be performed by: one or more components of device 300, such as processor 320, memory 330, input component 340, output component 350, and / or communication component 360; one or more components of device 400, such as input component 410, switching component 420, output component 430, and / or controller 440; and / or one or more other components.
[0074] like Figure 5 As shown, process 500 may include receiving a route (block 510). For example, the network device may receive a route from a first other network device, as described above. The route may include a label, a prefix, and a next hop identifier.
[0075] like Figure 5 As further shown, process 500 may include generating composite tunnel attributes (block 520). For example, as described above, the network device may generate composite tunnel attributes based on receiving the route. The composite tunnel attributes may include an identifier of the network device and a label assigned by the network device.
[0076] like Figure 5 As further shown, process 500 may include modifying the route (block 530). For example, the network device may modify the route based on generating the composite tunnel attribute so that the composite tunnel attribute is included in the route, as described above.
[0077] like Figure 5 As further shown, process 500 may include sending the route (block 540). For example, the network device may send the route to a second other network device based on the modified route, as described above.
[0078] Process 500 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in conjunction with one or more other processes described elsewhere herein.
[0079] In a first implementation, when received by the network device, the route further includes another composite tunnel attribute, wherein the assigned label is associated with the other composite tunnel attribute; and wherein modifying the route further causes the other composite tunnel attribute to be removed from the route.
[0080] In a second implementation, either alone or in combination with the first implementation, when received by the network device, the route does not include another composite tunnel attribute, wherein the assigned label is associated with a next hop identifier or a non-composite tunnel.
[0081] In a third implementation, alone or in combination with one or more of the first and second implementations, the network device is an ASBR network device, and the first other network device and the second other network device may be one of a PE network device or another ASBR network device.
[0082] In a fourth implementation, alone or in combination with one or more of the first to third implementations, when received by the network device, the route does not include another composite tunnel attribute, and process 500 includes creating a forwarding state for the assigned label to enable traffic including the assigned label to be tunneled to a next hop identifier or a non-composite tunnel identifier.
[0083] In a fifth implementation, alone or in combination with one or more of the first to fourth implementations, when received by the network device, the route does not include another composite tunnel attribute, and process 500 includes, after sending the route to a second other network device, receiving traffic including the assigned label; and modifying the traffic so that the assigned label is removed from the traffic and a next hop identifier or a non-composite tunnel identifier is included in the traffic.
[0084] In a sixth implementation, alone or in combination with one or more of the first to fifth implementations, when received by the network device, the route also includes another composite tunnel attribute, and process 500 includes creating a forwarding state for the assigned label to enable traffic including the assigned label to be tunneled to an egress endpoint of the other composite tunnel attribute.
[0085] In a seventh implementation, alone or in combination with one or more of the first to sixth implementations, when received by a network device, the route also includes another composite tunnel attribute, and process 500 includes, after sending the route to a second other network device, receiving a business including the assigned label; and modifying the business so that the assigned label is removed from the business and another label included in the other composite tunnel attribute is included in the business.
[0086] although Figure 5An example block diagram of process 500 is shown, but in some implementations, process 500 includes Figure 5 Additional blocks, fewer blocks, different blocks, or blocks arranged in a different manner than those depicted in the process 500. Additionally or alternatively, two or more blocks of process 500 may be executed in parallel.
[0087] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit implementations to the precise forms disclosed. Modifications and variations may be made in light of the above disclosure or may be acquired from practice of implementations.
[0088] As used herein, a service or content may include a set of packets. A packet may refer to a communication structure for transmitting information, such as a protocol data unit (PDU), a data unit (SDU), a network packet, a datagram, a segment, a message, a block, a frame (e.g., an Ethernet frame), a portion of any of the above data, and / or another type of formatted or unformatted data unit capable of being transmitted via a network.
[0089] As used herein, the term "component" is intended to be broadly interpreted as hardware, firmware, or a combination of hardware and software. Obviously, the systems and / or methods described herein can be implemented in different forms of hardware, firmware, and / or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not a limitation of the implementation. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code - it should be understood that based on the description herein, the systems and / or methods can be implemented using software and hardware.
[0090] Although specific combinations of features are recorded in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of various implementations. In fact, many of these features can be combined in ways that are not specifically recorded in the claims and / or disclosed in the specification. Although each dependent claim listed below may only directly depend on one claim, the disclosure of various implementations includes each dependent claim combined with each other claim in the claim set. As used herein, the phrase "at least one" in a list of reference items refers to any combination of these items, including single members. As an example, "at least one of a, b, or c" is intended to cover a, b, c, ab, ac, bc, and abc, as well as any combination with multiple identical items.
[0091] When a "processor" or "one or more processors" (or another device or component, such as a "controller" or "one or more controllers") is described or claimed (either within a single claim or across multiple claims) to perform or be configured to perform multiple operations, the language is intended to broadly cover a variety of processor architectures and environments. For example, unless otherwise expressly claimed (e.g., by using "a first processor" and "a second processor" or other language that distinguishes between the processors in a claim), the language is intended to cover a single processor that performs or is configured to perform all operations, a group of processors that collectively perform or are configured to perform all operations, a first processor that performs or is configured to perform a first operation and a second processor that performs or is configured to perform a second operation, or any combination of processors that perform or are configured to perform operations. For example, when a claim has the form "one or more processors to: perform X; perform Y; and perform Z," the claim should be interpreted to mean "one or more processors to perform X; one or more (possibly different) processors to perform Y; and one or more (possibly different) processors to perform Z."
[0092] Unless explicitly described, any element, behavior or instruction used in this article should not be interpreted as critical or necessary. In addition, as used herein, the articles "one" and "an" are intended to include one or more projects, and can be used interchangeably with "one or more". In addition, as used herein, the article "the" is intended to include one or more projects quoted in conjunction with the article "the", and can be used interchangeably with "the one or more". In addition, as used herein, the term "set" is intended to include one or more projects (e.g., a combination of related projects, unrelated projects, or related and unrelated projects), and can be used interchangeably with "one or more". If only one project is intended, the phrase "only one" or similar language is used. In addition, as used herein, the terms "have", "have", "contain", etc. are intended to be open terms. In addition, the phrase "based on" is intended to mean "at least partially based on", unless otherwise clearly stated. In addition, as used herein, when used in a series, the term "or" is intended to be inclusive, and can be used interchangeably with "and / or", unless otherwise clearly stated (e.g., if used in combination with "any one" or "only one").
Claims
1. A method comprising: receiving, by the network device and from a first other network device, a route including a label, a prefix, and a next hop identifier; generating, by the network device and based on receiving the route, a composite tunnel attribute comprising an identifier of the network device and a label assigned by the network device; modifying, by the network device and based on generating the composite tunnel attributes, the route so that the composite tunnel attributes are included in the route; as well as The route is sent, by the network device and based on modifying the route, to a second other network device.
2. The method of claim 1, wherein the route, when received by the network device, further comprises another composite tunnel attribute, wherein the assigned label is associated with the another composite tunnel attribute; and Wherein modifying the route further causes the another composite tunnel attribute to be removed from the route.
3. The method of claim 1 , wherein the route, when received by the network device, does not include another composite tunnel attribute, The allocated label is associated with the next hop identifier or a non-composite tunnel.
4. The method of claim 1, wherein the network device is an Autonomous System Boundary Router (ASBR) network device, and the first other network device and the second other network device may each be one of a Provider Edge (PE) network device or another ASBR network device.
5. The method of claim 1 , wherein the route, when received by the network device, does not include another composite tunnel attribute, the method further comprising: A forwarding state is created for the assigned label to enable traffic including the assigned label to be tunneled via a non-composite tunnel or to a device identified by the next hop identifier.
6. The method according to claim 5, further comprising: After sending the route to the second other network device, receiving the service including the assigned label; as well as Modify the business so that: The assigned label is removed from the service.
7. The method of claim 1 , wherein the route, when received by the network device, further comprises another composite tunnel attribute, the method further comprising: A forwarding state is created for the assigned label to enable traffic including the assigned label to be tunneled to an egress endpoint of the another composite tunnel attribute.
8. The method according to claim 7, further comprising: After sending the route to the second other network device, receiving the service including the assigned label; as well as Modify the business so that: The assigned tag is removed from the service, and Another label included in the another composite tunnel attribute is included in the traffic.
9. A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising: One or more instructions, when executed by one or more processors of a network device, cause the network device to: receiving a route including a label, a prefix, and a next-hop identifier; based on receiving the route, modifying the route so that a composite tunnel attribute is included in the route, wherein the composite tunnel attributes include an identifier of the network device and a label assigned by the network device; as well as Based on modifying the route, the route is sent to another network device.
10. The non-transitory computer-readable medium of claim 9, wherein when received by the network device, the route further comprises another composite tunnel attribute, Wherein modifying the route further causes the another composite tunnel attribute to be removed from the route.
11. The non-transitory computer-readable medium of claim 9, wherein the network device and the another network device are each associated with an autonomous system (AS).
12. The non-transitory computer-readable medium of claim 9, wherein the network device is associated with an autonomous system (AS) and the another network device is associated with another AS.
13. The non-transitory computer readable medium of claim 9, wherein the one or more instructions further cause the network device to: A forwarding state is created for the assigned label to enable traffic including the assigned label to be tunneled via a non-composite tunnel or to a device identified by the next hop identifier.
14. The non-transitory computer readable medium of claim 9, wherein the one or more instructions further cause the network device to: After sending the route to the other network device, receiving traffic including the assigned label; and Modify the business so that: The assigned label is removed from the service.
15. The non-transitory computer-readable medium of claim 9, wherein when received by the network device, the route further comprises another composite tunnel attribute, The one or more instructions further cause the network device to: A forwarding state is created for the assigned label to enable traffic including the assigned label to be tunneled to an egress endpoint of the another composite tunnel attribute.
16. The non-transitory computer readable medium of claim 9, wherein the one or more instructions further cause the network device to: After sending the route to the other network device, receiving traffic including the assigned label; and Modify the business so that: The assigned tag is removed from the service, and Another label included in the another composite tunnel attribute is included in the traffic.
17. A network device comprising: one or more memories; as well as One or more processors for: receiving a route including a label, a prefix, and a next hop identifier from a first other network device; modifying the route so that a composite tunnel attribute including a label assigned by the network device is included in the route; as well as Based on modifying the route, the route is sent to another network device.
18. The network device of claim 17, wherein the route, when received by the network device, further comprises another composite tunnel attribute, Wherein modifying the route further causes the another composite tunnel attribute to be removed from the route.
19. The network device of claim 17, wherein the one or more processors are further configured to: A forwarding state is created for the assigned label to enable traffic including the assigned label to be tunneled to a device identified by the next hop identifier via a non-composite tunnel or to an egress endpoint of the other composite tunnel attribute included in the route.
20. The network device of claim 17, wherein the one or more processors are further configured to: After sending the route to the other network device, receiving traffic including the assigned label; and The service is modified based on the assigned tag.
