Information processing method, node and computer readable storage medium
By constructing and flooding containing container segment identification and local index segmental identification information, the problem of the lack of resource shortage and loading efficiency of segmented routes in the segmented route is solved, and the high -efficiency segment identification allocation of a large number of segments is realized.
Patent Information
- Application Number
- CN202010500081.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-06-04
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2040-06-04
AI Technical Summary
In segment routing technology, long segment identification lists lead to reduced packet load efficiency and segment identification resources are scarce, especially when compressed SRH methods are used.
By constructing segmental identification information containing container segments and local indexes, and flooding into the network, it is used to use the establishment of a segment identification list during the path calculation process, thereby reducing the use of segment identification resources.
A small number of identification resources required to allocate a large number of segments to identify the segments, solve the problem of lack of segment identification resources, and maintain the load efficiency of the message load.
Smart Images

Figure CN113765789B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to, but are not limited to, the field of communication technology, and in particular, to an information processing method, a node, and a computer-readable storage medium. Background Art
[0002] Segment Routing (SR) technology is a method of routing based on the source node. This method can force a flow to pass through any path and service chain by maintaining the state of each flow only on the source node. Neither the intermediate node nor the tail node needs to maintain the state of the flow. Segment routing can be applied to the IPv6 data plane and is called SRv6. In the related art, when segment routing is applied to the IPv6 data plane, an ordered segment identifier (Segment Identifier, SID) list is superimposed on the data message. The segment identifier list consists of IPv6 addresses and is included in the segment routing header (Segment Routing Header, SRH). When the segment identifier list is very long, it will cause the message to have a very long segment routing header, which will seriously reduce the payload efficiency of the message. In order to solve the above problem, the related art adopts a method of compressing SRH, so that the length of the IPv6 address in the segment identifier list is compressed from 128 bits to 32 bits or 16 bits.
[0003] Regardless of the length of the IPv6 address used to form the segment identifier list, each IPv6 address in the segment identifier list corresponds to a related segment in the forwarding path. For a certain forwarding path, if a certain node in the forwarding path includes a large number of segments, the node needs to use a large number of segment identifiers to allocate corresponding segment identifiers to each segment, which will lead to a shortage of segment identifier resources. In particular, this phenomenon of shortage of segment identifier resources is particularly obvious when the method of compressing SRH is adopted. Summary of the invention
[0004] The following is a summary of the subject matter described in detail herein. This summary is not intended to limit the scope of the claims.
[0005] The embodiments of the present invention provide an information processing method, a node and a computer-readable storage medium, which can solve the problem of shortage of segment identification resources to a certain extent.
[0006] In a first aspect, an embodiment of the present invention provides an information processing method, including:
[0007] The first node constructs first segment identification information, where the first segment identification information includes a first container segment identifier corresponding to a segment type of a corresponding first segment and a first local index corresponding to the corresponding first segment;
[0008] The first node floods the first segment identification information so that the second node or the network controller uses the first container segment identification and the first local index in the first segment identification information to establish a first segment identification list during path calculation.
[0009] In a second aspect, an embodiment of the present invention further provides an information processing method, including:
[0010] The second node receives an IPv6 message constructed based on the segment identifier list from the first node, wherein the segment identifier list includes second segment identifier information corresponding to the corresponding second segment in the second node, the second segment identifier information includes a second container segment identifier corresponding to the segment type of the corresponding second segment and a second local index corresponding to the corresponding second segment, and the IPv6 message includes a destination address field carrying the second container segment identifier;
[0011] The second node determines a next routing exit according to the second local index and the second container segment identifier in the destination address field;
[0012] The second node processes the IPv6 message according to the next routing exit.
[0013] In a third aspect, an embodiment of the present invention further provides a node, comprising: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the information processing method of the first aspect described above is implemented or the information processing method of the second aspect described above is implemented.
[0014] In a fourth aspect, an embodiment of the present invention further provides a computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute the information processing method as described above.
[0015] An embodiment of the present invention includes: a first node constructs first segment identification information, the first segment identification information includes a first container segment identification corresponding to a segment type of a corresponding first segment and a first local index corresponding to the corresponding first segment; the first node floods the first segment identification information so that a second node or a network controller uses the first container segment identification and the first local index in the first segment identification information to establish a first segment identification list during a path calculation process. According to the solution provided by an embodiment of the present invention, the first node allocates segment identifiers to the first segment belonging to it by constructing first segment identifier information including a first container segment identifier and a first local index, wherein the first container segment identifier corresponds to the segment type of the first segment, and the first local index corresponds to the first segment, and the first node also floods the first segment identifier information so that the second node or the network controller uses the first container segment identifier and the first local index to establish a first segment identifier list during path calculation, that is, in the network, the combination of the first container segment identifier and the first local index can characterize the first segment, and the combination of the first container segment identifier and the first local index can be used for routing selection, so when the first node uses the combination of the first container segment identifier and the first local index to allocate segment identifiers to each specific first segment, only a small number of segment identifier resources are needed to achieve segment identifier allocation for a large number of first segments, thereby being able to solve the problem of shortage of segment identifier resources to a certain extent.
[0016] Other features and advantages of the present invention will be described in the following description, and partly become apparent from the description, or understood by practicing the present invention. The purpose and other advantages of the present invention can be realized and obtained by the structures particularly pointed out in the description, claims and drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The accompanying drawings are used to provide a further understanding of the technical solution of the present invention and constitute a part of the specification. Together with the embodiments of the present invention, they are used to explain the technical solution of the present invention and do not constitute a limitation on the technical solution of the present invention.
[0018] Figure 1 is a schematic diagram of a network topology for executing an information processing method provided by an embodiment of the present invention;
[0019] Figure 2 is a flow chart of an information processing method provided by an embodiment of the present invention;
[0020] Figure 3A is a schematic diagram of a sub-TLV structure carrying a first container segment identifier provided by an embodiment of the present invention;
[0021] Figure 3Bis a schematic diagram of a sub-TLV structure carrying a first local index provided by an embodiment of the present invention;
[0022] Figure 3C is a schematic diagram of a sub-TLV structure carrying a first local index provided by another embodiment of the present invention;
[0023] Figure 4A is a schematic diagram of a sub-TLV structure carrying a first container segment identifier provided by another embodiment of the present invention;
[0024] Figure 4B is a schematic diagram of a sub-TLV structure carrying a first local index provided by another embodiment of the present invention;
[0025] Figure 4C is a schematic diagram of a sub-TLV structure carrying a first local index provided by another embodiment of the present invention;
[0026] Figure 5A is a schematic diagram of a sub-TLV structure carrying a first container segment identifier provided by another embodiment of the present invention;
[0027] Figure 5B is a schematic diagram of a sub-sub-TLV structure carrying a first local index provided by another embodiment of the present invention;
[0028] Fig. 6A is a schematic diagram of a TLV structure carrying a first local index provided by another embodiment of the present invention;
[0029] Figure 6B is a schematic diagram of a TLV structure carrying a first local index provided by another embodiment of the present invention;
[0030] Figure 6C is a schematic diagram of a TLV structure carrying binding segment identification information provided by an embodiment of the present invention;
[0031] Figure 7 is a schematic diagram of a sub-TLV structure carrying a first local index provided by an embodiment of the present invention;
[0032] Figure 8 is a flow chart of an information processing method provided by another embodiment of the present invention;
[0033] Fig. 9 is a flow chart of an information processing method provided by another embodiment of the present invention;
[0034] Fig.10 is a flow chart of an information processing method provided by another embodiment of the present invention;
[0035] Fig.11 is a flow chart of an information processing method provided by another embodiment of the present invention;
[0036] Fig.12 is a flow chart of an information processing method provided by another embodiment of the present invention;
[0037] Fig.13 is a flow chart of an information processing method provided by another embodiment of the present invention;
[0038] Fig.14 is a flow chart of an information processing method provided by another embodiment of the present invention;
[0039] Fig.15 is a schematic diagram of a network topology for executing an information processing method provided by another embodiment of the present invention;
[0040] Fig.16A is a schematic diagram of an SRH encapsulation format provided by an embodiment of the present invention;
[0041] Fig. 16B It is a schematic diagram of the encapsulation format of the SRH provided by another embodiment of the present invention. DETAILED DESCRIPTION
[0042] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.
[0043] It should be noted that, although the functional modules are divided in the device schematic diagram and the logical order is shown in the flowchart, in some cases, the steps shown or described may be performed in a different order than the module division in the device or the order in the flowchart. The terms "first", "second", etc. in the specification, claims and the above drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.
[0044] The present invention provides an information processing method, a node and a computer-readable storage medium, wherein a first node allocates a segment identifier to a first segment belonging to the first node by constructing first segment identifier information including a first container segment identifier and a first local index, wherein the first container segment identifier corresponds to a segment type of the first segment, the first local index corresponds to the first segment, and the first node also floods the first segment identifier information so that a second node or a network controller uses the first container segment identifier and the first local index to establish a first segment identifier list during path calculation, that is, in the network, the first container segment identifier and the first local index are The combination of the first container segment identifier and the first local index can characterize the first segment, and the combination of the first container segment identifier and the first local index can be used for routing selection. Therefore, when a node in the network allocates segment identifiers to each specific first segment belonging to the node, a common first container segment identifier can be allocated to each segment type, and a first local index can be allocated to each specific first segment belonging to the same segment type to distinguish them. Therefore, only a small number of segment identifier resources (i.e., the first container segment identifier) are needed to allocate segment identifiers to a large number of first segments, thereby solving the problem of shortage of segment identifier resources to a certain extent.
[0045] The embodiments of the present invention are further described below in conjunction with the accompanying drawings.
[0046] like Figure 1 As shown, Figure 1 FIG. 1 is a schematic diagram of a network topology for executing an information processing method provided by an embodiment of the present invention. Figure 1 In the example, the network topology includes a first node 110, a second node 120, and a third node 130 connected in sequence. In addition, the network topology also includes a network controller 100 connected to the first node 110, the second node 120, and the third node 130 respectively. The first node 110, the second node 120, and the third node 130 can be network devices such as routers or switches, which can forward messages; the network controller can be a software defined network (SDN) controller, etc., which can control the first node 110, the second node 120, and the third node 130 respectively. In addition, the first node 110, the second node 120, and the third node 130 can be in the same SRv6 domain or in different SRv6 domains.
[0047] The first node 110, the second node 120, the third node 130 and the network controller 100 respectively include a memory and a processor, wherein the memory and the processor may be connected via a bus or other means.
[0048] The memory, as a non-transient computer-readable storage medium, can be used to store non-transient software programs and non-transient computer executable programs. In addition, the memory may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some embodiments, the memory may optionally include a memory remotely disposed relative to the processor, and these remote memories may be connected to the processor via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0049] The network topology and application scenarios described in the embodiments of the present invention are intended to more clearly illustrate the technical solutions of the embodiments of the present invention, and do not constitute a limitation on the technical solutions provided by the embodiments of the present invention. Those skilled in the art will appreciate that with the evolution of network topology and the emergence of new application scenarios, the technical solutions provided by the embodiments of the present invention are equally applicable to similar technical problems.
[0050] It can be understood by those skilled in the art that Figure 1 The various nodes and topological structures shown in the figure do not constitute a limitation on the embodiments of the present invention, and may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently.
[0051] exist Figure 1 In the network topology shown, each node can call its stored information processing program to execute the information processing method; or, the network controller can call its stored information processing program and cooperate with each node to execute the information processing method.
[0052] Based on the above network topology and the structures of each node and network controller in the above network topology, various embodiments of the information processing method of the present invention are proposed.
[0053] like Figure 2 As shown, Figure 2 It is a flowchart of an information processing method provided by an embodiment of the present invention. The information processing method includes but is not limited to step S100 and step S200.
[0054] Step S100: The first node constructs first segment identification information, where the first segment identification information includes a first container segment identifier corresponding to a segment type of a corresponding first segment and a first local index corresponding to the corresponding first segment.
[0055] In one embodiment, the first segment may be any segment belonging to the first node, or may be only a segment corresponding to a segment type including a large number of members, such as a layer 3 link belonging to a link type or a layer 3 virtual private network (L3 Virtual Private Network, L3VPN) service belonging to a service type, etc. This embodiment does not make any specific limitations on this.
[0056] In one embodiment, the segment type of the first segment may be a link type, a service function type, a business type, or a segment routing traffic engineering policy (SR Policy) type, etc., and may be adaptively classified according to actual application conditions. This embodiment does not specifically limit this.
[0057] In one embodiment, the first segment identification information is used to characterize the routing information of the first segment corresponding thereto. The first segment identification information includes a first container segment identification and a first local index, wherein the first container segment identification is a segment identification corresponding to the segment type of the first segment, and the first local index is an identification corresponding to the specific first segment, that is, a combination of a first container segment identification and a first local index characterizes a segment identification of a first segment. For example, if the first node includes multiple layer-3 links, the first container segment identification may be a global segment identification corresponding to the layer-3 link type, and each specific layer-3 link belonging to the layer-3 link type may be distinguished by a first local index corresponding to each specific layer-3 link. In this case, the number of first container segment identifications is only one, and the number of first local indexes is consistent with the number of layer-3 links. It is worth noting that when an IP address can be configured in a connection link, IP message transmission and reception can be supported, and the interior gateway protocol (IGP) routing protocol is enabled, the connection link may be called a layer-3 link.
[0058] In one embodiment, when the first node allocates segment identifiers to each segment belonging to it, it can allocate a common first container segment identifier to each segment type, and allocate a first local index to each specific segment belonging to the same segment type for distinction. Therefore, only a small number of segment identifier resources (i.e., the first container segment identifier) are needed to allocate segment identifiers to a large number of segments, thereby solving the problem of shortage of segment identifier resources to a certain extent.
[0059] In one embodiment, the length of the first container segment identifier is 128 bits, and the first container segment identifier has the same block information (Locator Block) as other segment identifiers in the current SRv6 domain. Therefore, the first container segment identifier and other segment identifiers in the current SRv6 domain can be compressed using the method of compressing SRH in the related art, so that they can be compressed into a length of 32 bits or 16 bits.
[0060] In one embodiment, the length of the first local index may be 32 bits or 16 bits, etc., and may be selected according to actual application conditions. This embodiment does not specifically limit this.
[0061] Step S200: The first node floods the first segment identification information so that the second node or the network controller uses the first container segment identification and the first local index in the first segment identification information to establish a first segment identification list during path calculation.
[0062] In one embodiment, after the first node constructs the first segment identification information corresponding to the first segment including the first container segment identifier and the first local index, the first node can flood the first segment identification information. When the second node or the network controller in the network receives the first segment identification information, since the first container segment identifier and the first local index can represent a segment identifier with a complete meaning, the second node or the network controller can include the first container segment identifier and the first local index in the first segment identification information in the established first segment identification list. The routing table entry of the second node includes routing information for routing to the first container segment identifier of the first node. Therefore, when the second node needs to send data to the destination node through the first segment of the first node, the second node can construct an SRv6 message including the first container segment identifier and the first local index, so that the SRv6 message can be routed to the destination node through the first segment of the first node.
[0063] In one embodiment, by adopting the information processing method including the above-mentioned steps S100 and S200, when nodes in the network allocate segment identifiers to each specific first segment belonging to it, a common first container segment identifier can be allocated to each segment type, and a first local index can be allocated to each specific first segment belonging to the same segment type for distinction. Therefore, only a small number of segment identifier resources (i.e., first container segment identifiers) are needed to allocate segment identifiers to a large number of first segments, thereby solving the problem of shortage of segment identifier resources to a certain extent.
[0064] In addition, in one embodiment, the first node flooding the first segment of identification information in step S200 may include but is not limited to the following steps:
[0065] Step S210: The first node floods an Intermediate System to Intermediate System (ISIS) message including a first container segment identifier and a first local index to flood the first segment identifier information.
[0066] In one embodiment, if the ISIS protocol is running in the current SRv6 network domain, the first container segment identifier and the first local index can be set in the ISIS message. Therefore, when the ISIS message is flooded, the first container segment identifier and the first local index corresponding to the first segment in the first node can be notified to other nodes in the current SRv6 network domain, so that other nodes in the current SRv6 network domain can include the first container segment identifier and the first local index in the established segment identifier list.
[0067] The following is a specific example:
[0068] In one example, the first container segment identifier in this example may be set in the EndpointBehavior field in the SRv6 End SID sub-TLV of the existing ISIS message structure. In addition, since the length of the first local index may be 32 bits or 16 bits, a flag bit for indicating the length of the first local index may be added to the Flags field in the SRv6 End SID sub-TLV. Figure 3A , Figure 3A The structure of the SRv6 End SID sub-TLV carrying the first container segment identifier is given as an example. In the sub-TLV structure, the main fields are explained as follows:
[0069] Endpoint Behavior: used to fill in the first container segment identifier;
[0070] LIL (Local Index Length): used to indicate the length of the first local index, occupies 2 bits, and has the following values:
[0071] 0: indicates that the length of the first local index is 128 bits;
[0072] 1: indicates that the length of the first local index is 64 bits;
[0073] 2: indicates that the length of the first local index is 32 bits;
[0074] 3: Indicates that the length of the first local index is 16 bits.
[0075] It is worth noting that the interpretation of other fields in the Sub-TLV structure is the same as the interpretation of the corresponding fields contained in the SRv6End SID sub-TLV in the existing ISIS message structure, so it is not repeated here.
[0076] In another example, a SRv6End.XLocal Index sub-TLV may be added to the ISIS message along with the point-to-point link announcement to announce the first local index, and the sub-TLV may be carried in TLV22, TLV23, TLV222, TLV223, and TLV141 of the ISIS protocol. Figure 3B , Figure 3B The structure of the newly added SRv6End.XLocal Index sub-TLV is given as an example. In this sub-TLV structure, the explanations of each field are as follows:
[0077] Type: occupies 1 byte and is used to indicate that this sub-TLV is the SRv6 End.X Local Index sub-TLV.
[0078] Length: 1 byte, used to indicate the length of the sub-TLV excluding the Type field and the Length field. The specific value varies according to the length of the Local Index field.
[0079] Flags: 1 byte, consistent with the definition in the draft-ietf-lsr-isis-srv6-extensions-08 standard document;
[0080] Weight: 1 byte, consistent with the definition in the draft-ietf-lsr-isis-srv6-extensions-08 standard document;
[0081] Local Index: It is used to represent the first local index of a Layer 3 link or a set of Layer 3 links. According to the first local index, the outbound interface and next-hop IP address information of the corresponding Layer 3 link (or set of Layer 3 links) can be found. It is worth noting that the length of the Local Index field can be 16 bits, 32 bits, 64 bits or 128 bits. In addition, the length of the Local Index field is consistent with the length of the first local index corresponding to the value of the above-mentioned LIL field.
[0082] In addition, in another example, a SRv6LAN End.X Local Index sub-TLV may be added to the ISIS message along with the broadcast link announcement to announce the first local index, and the sub-TLV may be carried in TLV22, TLV23, TLV222, TLV223, and TLV141 of the ISIS protocol. Figure 3C , Figure 3C The structure of the newly added SRv6LAN End.X Local Index sub-TLV is given as an example. The fields of this sub-TLV structure are the same as those in the above example. Figure 3B The fields of the sub-TLV structure shown in the example are similar. The difference between the two is that the sub-TLV structure in this example also includes an ISIS System ID field. For the relevant introduction of other fields of the sub-TLV structure in this example, please refer to the above description of Figure 3B The fields in the sub-TLV structure are not described in detail in this example. The following is a detailed description of the ISIS System ID field:
[0083] ISIS System ID: used to indicate the ISIS System ID information of the peer node on the link.
[0084] In addition, in one embodiment, the first node flooding the first segment of identification information in step S200 may also include but is not limited to the following steps:
[0085] Step S220: The first node floods an Open Shortest Path First Version 3 (OSPFv3) message including a first container segment identifier and a first local index to flood the first segment identifier information.
[0086] In one embodiment, if the OSPFv3 protocol is running in the current SRv6 network domain, the first container segment identifier and the first local index can be set in the OSPFv3 message. Therefore, when the OSPFv3 message is flooded, the first container segment identifier and the first local index corresponding to the first segment in the first node can be notified to other nodes in the current SRv6 network domain, so that other nodes in the current SRv6 network domain can include the first container segment identifier and the first local index in the established segment identifier list.
[0087] The following is a specific example:
[0088] In one example, the first container segment identifier in this example may be set in the EndpointBehavior field in the SRv6 End SID sub-TLV of the existing OSPFv3 message structure. In addition, since the length of the first local index may be 32 bits or 16 bits, a flag bit for indicating the length of the first local index may be added to the Flags field in the SRv6 End SID sub-TLV. Figure 4A , Figure 4A The structure of the SRv6 End SID sub-TLV carrying the first container segment identifier is given as an example. In the sub-TLV structure, the main fields are explained as follows:
[0089] Endpoint Behavior: used to fill in the first container segment identifier;
[0090] LIL (Local Index Length): used to indicate the length of the first local index, occupies 2 bits, and has the following values:
[0091] 0: indicates that the length of the first local index is 128 bits;
[0092] 1: indicates that the length of the first local index is 64 bits;
[0093] 2: indicates that the length of the first local index is 32 bits;
[0094] 3: Indicates that the length of the first local index is 16 bits.
[0095] It is worth noting that the interpretation of other fields in the Sub-TLV structure is the same as the interpretation of the corresponding fields contained in the SRv6End SID sub-TLV in the existing ISIS message structure, so it is not repeated here.
[0096] In another example, a SRv6End.X Local Index sub-TLV carried with the point-to-point link advertisement may be added to the OSPFv3 message to advertise the first local index, and the sub-TLV may be carried with the E-Router-Link TLV of the OSPFv3 protocol. Figure 4B , Figure 4B The structure of the newly added SRv6End.X LocalIndex sub-TLV is given as an example. In this sub-TLV structure, the explanations of each field are as follows:
[0097] Type: occupies 2 bytes and is used to indicate that this sub-TLV is the SRv6 End.X Local Index sub-TLV.
[0098] Length: occupies 2 bytes and is used to indicate the length of the sub-TLV excluding the Type field and the Length field. The specific value varies according to the length of the Local Index field.
[0099] Flags: 1 byte, consistent with the definition in the draft-ietf-lsr-ospfv3-srv6-extensions-00 standard document;
[0100] Weight: 1 byte, consistent with the definition in the draft-ietf-lsr-ospfv3-srv6-extensions-00 standard document;
[0101] Reserved: reserved field;
[0102] Local Index: It is used to represent the first local index of a Layer 3 link or a set of Layer 3 links. According to the first local index, the outbound interface and next-hop IP address information of the corresponding Layer 3 link (or set of Layer 3 links) can be found. It is worth noting that the length of the Local Index field can be 16 bits, 32 bits, 64 bits or 128 bits. In addition, the length of the Local Index field is consistent with the length of the first local index corresponding to the value of the above-mentioned LIL field.
[0103] In addition, in another example, a SRv6LAN End.X Local Index sub-TLV carried with the broadcast link announcement may be added to the OSPFv3 message to announce the first local index, and the sub-TLV may be carried with the E-Router-Link TLV of the OSPFv3 protocol. Figure 4C , Figure 4C The structure of the newly added SRv6 LANEnd.X Local Index sub-TLV is given as an example. The fields in this sub-TLV structure are the same as those in the above example. Figure 4B The fields of the sub-TLV structure shown in the example are similar. The difference between the two is that the sub-TLV structure in this example also includes the OSPFv3Router-ID field. For the relevant introduction of other fields of the sub-TLV structure in this example, please refer to the above Figure 4B The fields in the sub-TLV structure are not described in detail in this example. The following is a detailed description of the OSPFv3Router-ID field:
[0104] OSPFv3 Router-ID: Used to indicate the OSPFv3 Router-ID information of the peer node on the link.
[0105] In addition, in one embodiment, the first node flooding the first segment of identification information in step S200 may also include but is not limited to the following steps:
[0106] Step S230: The first node floods a Border Gateway Protocol (BGP) message including a first container segment identifier and a first local index to flood the first segment identifier information.
[0107] In one embodiment, if the first node is a boundary node in the current SRv6 network domain, then the first node can set a first container segment identifier and a first local index in a BGP message. Then, when the first node floods the BGP message to a second node that is adjacent to the first node and is in an adjacent SRv6 network domain, the first node can notify the second node of the first container segment identifier and the first local index corresponding to the first segment in the first node, so that the second node can use the first container segment identifier and the first local index to establish a first segment identifier list during path calculation.
[0108] The following is a specific example:
[0109] In one example, the first container segment identifier in this example may be set in the Endpoint Behavior field in the SRv6 SID Information sub-TLV of the existing BGP message structure. In addition, since the length of the first local index may be 32 bits or 16 bits, a flag bit for indicating the length of the first local index may be added to the Flags field in the SRv6 SID Information sub-TLV. Figure 5A , Figure 5A The structure of the SRv6 SID Information sub-TLV carrying the first container segment identifier is given as an example. In this sub-TLV structure, the main fields are explained as follows:
[0110] Endpoint Behavior: used to fill in the first container segment identifier;
[0111] LIL (Local Index Length): used to indicate the length of the first local index, occupies 2 bits, and has the following values:
[0112] 0: indicates that the length of the first local index is 128 bits;
[0113] 1: indicates that the length of the first local index is 64 bits;
[0114] 2: indicates that the length of the first local index is 32 bits;
[0115] 3: Indicates that the length of the first local index is 16 bits.
[0116] It is worth noting that the interpretation of other fields in the Sub-TLV structure is the same as the interpretation of the corresponding fields contained in the SRv6SID Information sub-TLV in the existing BGP message structure, so it is not repeated here.
[0117] In another example, a SRv6 Service Local Index sub-sub-TLV may be added to the BGP message along with the SRv6 SID Information sub-TLV to announce the first local index. Figure 5B , Figure 5B The structure of the newly added SRv6 Service Local Index sub-sub-TLV is given as an example. In the sub-sub-TLV structure, the explanations of each field are as follows:
[0118] Type: occupies 1 byte and is used to indicate that this sub-sub-TLV is the SRv6 Service Local Index sub-sub-TLV.
[0119] Length: occupies 2 bytes and is used to indicate the length of the sub-sub-TLV excluding the Type field and the Length field. The specific value varies according to the length of the Local Index field.
[0120] Local Index: It is used to represent the first local index of the corresponding L3VPN service routing path or Ethernet Virtual Private Network (EVPN) service routing path within the node. According to the first local index, the corresponding L3VPN service routing path or EVPN service routing path can be located. It is worth noting that the length of the Local Index field can be 16 bits, 32 bits, 64 bits or 128 bits. In addition, the length of the Local Index field is consistent with the length of the first local index corresponding to the value of the above-mentioned LIL field.
[0121] In addition, in one embodiment, the information processing method may also include but is not limited to the following steps:
[0122] Step S300: The first node sends a Border Gateway Protocol Link-State (BGP-LS) message including a first container segment identifier and a first local index to a network controller to report first segment identifier information.
[0123] In one embodiment, the first node may report the first segment identifier information to the network controller by sending a BGP-LS message including the first container segment identifier and the first local index. In addition, when the first node sends the BGP-LS message to the network controller, the SRv6 information related to the first node is also reported to the network controller. After receiving the information reported by the first node, the network controller manages and controls the first node.
[0124] The following is a specific example:
[0125] In one example, the first container segment identifier in this example may be set in the Endpoint Behavior field in the SRv6 Endpoint Behavior TLV of the existing BGP-LS message structure. In addition, since the length of the first local index may be 32 bits or 16 bits, etc., a LIL flag bit for indicating the length of the first local index may be added to the Flags field in the SRv6 Endpoint Behavior TLV.
[0126] It is worth noting that the description of the settings of the Endpoint Behavior field and the setting value of the LIL flag bit in this example is the same as the above Figure 4A The setting content of the EndpointBehavior field in the sub-TLV structure of the embodiment shown is similar to the setting value of the LIL flag bit, the only difference is that the object carried is different. The carrying object in this example is a BGP-LS message, while the above Figure 4A The sub-TLV structure of the embodiment shown in the figure is a bearer object of an OSPFv3 message. Therefore, for the relevant introduction of the setting content of the Endpoint Behavior field and the setting value of the LIL flag bit in this example, please refer to the above Figure 4A In order to avoid repetition, the relevant introduction about the setting content of the Endpoint Behavior field and the setting value of the LIL flag in the illustrated embodiment will not be repeated here.
[0127] In addition, it is worth noting that the interpretation of other fields in the SRv6 Endpoint Behavior TLV in this example is the same as the interpretation of the corresponding fields contained in the SRv6 Endpoint Behavior TLV in the existing BGP-LS message structure, so it is not repeated here.
[0128] In another example, a SRv6End.X Local Index TLV may be added to the BGP-LS message along with the point-to-point link announcement to report the first local index to the network controller, and the TLV may be carried in the BGP-LS Link NLRI of the BGP-LS protocol. Fig. 6A , Fig. 6A The structure of the newly added SRv6 End.X LocalIndex TLV is given as an example. In this TLV structure, the explanation of each field is as follows:
[0129] Type: occupies 2 bytes and is used to indicate that this TLV is an SRv6 End.X Local Index TLV.
[0130] Length: occupies 2 bytes and is used to indicate the length of the TLV excluding the Type field and the Length field. The specific value varies according to the length of the Local Index field.
[0131] Flags: occupies 1 byte, indicating the flag bit;
[0132] Weight: occupies 1 byte and is used for load sharing;
[0133] Reserved: reserved field;
[0134] Local Index: used to represent the first local index of a Layer 3 link or a set of Layer 3 links. It is worth noting that the length of the Local Index field can be 16 bits, 32 bits, 64 bits, or 128 bits. In addition, the length of the LocalIndex field is consistent with the length of the first local index corresponding to the value of the above-mentioned LIL field.
[0135] In addition, in another example, a SRv6 LAN End.X Local Index TLV may be added to the BGP-LS message along with the broadcast link announcement to report the first local index to the network controller, and the TLV may be carried in the BGP-LS Link NLRI of the BGP-LS protocol. Figure 6B , Figure 6BThe structure of the newly added SRv6 LANEnd.X Local Index TLV is given as an example. The fields of this TLV structure are the same as those in the above example. Fig. 6A The fields of the TLV structure shown in the example are similar. The difference between the two is that the TLV structure in this example also includes a BGP-LS Router-ID field. For the relevant introduction of other fields of the TLV structure in this example, please refer to the above description of Fig. 6A The fields of the TLV structure shown are not described in detail in this example. The following is a detailed description of the BGP-LS Router-ID field: BGP-LS Router-ID: used to indicate the BGP-LS Router-ID information of the peer node of the link.
[0136] In addition, in another example, when the first node reports the binding segment identifier (Binding SID) information of each SR Policy in the first node by sending a BGP-LS message to the network controller, a V flag bit can be added to the BSID Flags field of the SR Binding SID (BSID) TLV to indicate whether the value in the Binding SID field is the first local index. Figure 6C , Figure 6C The structure of the SRBinding SID (BSID) TLV carrying the binding segment identification information and the V flag is given as an example. In the TLV structure, the main fields are explained as follows:
[0137] V: in the BSID Flags field, occupies 1 bit; when the value is 1, it indicates that the value in the Binding SID field is the first local index, which needs to be combined with the first container segment identifier in the EndpointBehavior field of the SRv6 Endpoint Behavior TLV in the above example to represent a complete binding segment identifier; when the value is 0, it indicates that the value in the Binding SID field is already a complete binding segment identifier;
[0138] Binding SID: used to fill in the binding segment identification information.
[0139] It is worth noting that the interpretation of other fields in the SR Binding SID (BSID) TLV in this example is the same as the interpretation of the corresponding fields contained in the SR Binding SID (BSID) TLV in the existing BGP-LS message structure, so it is not repeated here.
[0140] In addition, in one embodiment, the information processing method may also include but is not limited to the following steps:
[0141] Step S400: The first node receives a BGP message including a first local index sent by a network controller to obtain a binding segment identifier list.
[0142] In one embodiment, since there is a case where the binding segment identification information reported by the first node to the network controller is the first local index, there is also a case where the binding segment identification in the binding segment identification list sent by the network controller to the first node is the first local index. In order to enable the first node to accurately obtain the corresponding binding segment identification information according to the binding segment identification list sent by the network controller, when the network controller sends the binding segment identification list to the first node, the network controller will carry a V flag in the sent BGP message for indicating whether the Binding SID field in the BGP message is the first local index, wherein the V flag can be set in the Flags field of the existing Binding SID Sub-TLV. When the V flag is 1, it indicates that the value in the Binding SID field in the BGP message sent by the network controller is the first local index, and the first node needs to combine the value in the Binding SID field with the first container segment identifier saved by the first node itself to represent a binding segment identifier with a complete meaning; when the V flag is 0, it indicates that the value in the Binding SID field in the BGP message sent by the network controller is already a binding segment identifier with a complete meaning.
[0143] In one embodiment, when the BGP message sent by the network controller and received by the first node contains the first local index, that is, in the Flags field of the Binding SID Sub-TLV in the BGP message sent by the network controller, the V flag has a value of 1. At this time, the first node will combine each first local index obtained from the Binding SID field with the first container segment identifier stored by the first node itself, thereby obtaining multiple binding segment identifiers with complete meanings. Therefore, the first node can obtain a binding segment identifier list based on these binding segment identifiers with complete meanings, thereby providing relevant basic conditions for the subsequent establishment of SR Policy.
[0144] In addition, in one embodiment, the information processing method may also include but is not limited to the following steps:
[0145] Step S500: A first node receives a BGP message sent by a network controller and including a first container segment identifier and a first local index to obtain a segment list.
[0146] In one embodiment, the network controller may send a segment list to the first node so that the first node establishes an SR Policy according to the segment list. Since the SRv6 information reported by the first node to the network controller includes the first segment identification information including the first container segment identification and the first local index, the segment list sent by the network controller to the first node also includes the first segment identification information including the first container segment identification and the first local index. In order to enable the first node to accurately obtain the corresponding segment identification information according to the segment list sent by the network controller, the network controller sets the C flag in the Flags field of the Segment sub-TLV in the segment list sent to the first node to indicate whether the segment identification information carried by the current Segment sub-TLV is the first container segment identification. When the C flag bit is 1, it indicates that the segment identification information carried by the current Segment sub-TLV is the first container segment identification, and the first node needs to combine the value in the current Segment sub-TLV with the value in the next Segment sub-TLV (that is, the first local index) to represent a segment identification with a complete meaning; when the C flag bit is 0, it indicates that the segment identification information carried by the current Segmentsub-TLV is already a segment identification with a complete meaning.
[0147] In one embodiment, a Segment sub-TLV may be added to newly define a Segment type to carry the first local index. Figure 7 , Figure 7 The structure of the newly added Segment sub-TLV is given as an example. In the sub-TLV structure, the explanation of each field is as follows:
[0148] Type: occupies 1 byte and is used to indicate that the segment identification information carried by this Segment sub-TLV is the first local index. In this case, the segment identification information carried by the previous Segment sub-TLV in the segment list is limited to the first container segment identification;
[0149] Length: 1 byte, used to indicate the length of the Segment sub-TLV excluding the Type field and the Length field. The specific value varies according to the length of the Local Index field.
[0150] Flags: occupies 1 byte, including the C flag shown above;
[0151] Reserved: reserved field;
[0152] Local Index: used to indicate the first local index corresponding to the node. The value in this Local Index field is combined with the first container segment identifier carried by the previous Segment sub-TLV to indicate a complete segment identifier. It is worth noting that the length of the Local Index field can be 16 bits, 32 bits, 64 bits, or 128 bits.
[0153] In addition, in one embodiment, the information processing method may also include step S400 and step S500 in the above embodiment at the same time. For the technical solution of this embodiment and the technical effects brought about, reference may be made to the relevant description and explanation of step S400 and step S500 in the above embodiment, which will not be repeated here.
[0154] In addition, refer to Figure 8 In one embodiment, the information processing method may also include but is not limited to the following steps:
[0155] Step S600: The first node receives the second segment identification information flooded by the second node, where the second segment identification information includes a second container segment identification corresponding to a segment type of a corresponding second segment and a second local index corresponding to the corresponding second segment.
[0156] Step S700: The first node establishes a second segment identifier list by using the second container segment identifier and the second local index in the second segment identifier information during the path calculation process;
[0157] Step S800, the first node constructs an IPv6 message according to the second segment identifier list;
[0158] Step S900: The first node forwards the IPv6 message.
[0159] In one embodiment, the second segment may be any segment belonging to the second node, or may be only a segment corresponding to a segment type including a large number of members, such as a layer 3 link of a link type or an L3VPN service of a service type, etc. This embodiment does not specifically limit this.
[0160] In one embodiment, the segment type of the second segment may be a link type, a service function type, a business type, or an SRPolicy type, etc., and may be adaptively classified according to actual application conditions, which is not specifically limited in this embodiment.
[0161] In one embodiment, the second segment identification information is used to characterize the routing information of the second segment corresponding thereto. The second segment identification information includes a second container segment identification and a second local index, wherein the second container segment identification is a segment identification corresponding to the segment type of the second segment, and the second local index is an identification corresponding to a specific second segment, that is, a combination of a second container segment identification and a second local index characterizes a segment identification of a second segment. For example, if the second node includes multiple three-layer links, the second container segment identification may be a global segment identification corresponding to the three-layer link type, and each specific three-layer link belonging to the three-layer link type may be distinguished by a second local index corresponding one-to-one to each specific three-layer link. In this case, the number of second container segment identifications is only one, and the number of second local indexes is consistent with the number of three-layer links.
[0162] In one embodiment, the length of the second container segment identifier is 128 bits, and the second container segment identifier has the same block information as other segment identifiers in the current SRv6 domain. Therefore, the second container segment identifier and other segment identifiers in the current SRv6 domain can be compressed using the method of compressing SRH in the related art, so that they can be compressed into a length of 32 bits or 16 bits.
[0163] In one embodiment, the length of the second local index may be 32 bits or 16 bits, etc., and may be selected according to actual application conditions. This embodiment does not specifically limit this.
[0164] In one embodiment, since the second segment identification information includes a second container segment identification corresponding to the segment type of the corresponding second segment and a second local index corresponding to the corresponding second segment, for the second node, a universal second container segment identification can be respectively assigned to each segment type, and a second local index can be respectively assigned to each specific segment belonging to the same segment type for distinguishing them. Therefore, only a small number of segment identification resources (i.e., the second container segment identification) are needed to implement segment identification allocation for a large number of segments, thereby solving the problem of shortage of segment identification resources to a certain extent.
[0165] In one embodiment, after the first node receives the second segment identification information including the second container segment identification and the second local index flooded by the second node, since the second container segment identification and the second local index can represent a segment identification with a complete meaning, the first node can include the second container segment identification and the second local index in the second segment identification information in the established second segment identification list, wherein the routing table entry of the first node includes routing information routed to the second container segment identification of the second node, so when the first node needs to send data to the destination node through the second segment of the second node, the first node can construct an SRv6 message including the second container segment identification and the second local index, so that the SRv6 message can be routed to the destination node through the second segment of the second node.
[0166] In addition, refer to Fig. 9 In one embodiment, the information processing method may also include but is not limited to the following steps:
[0167] Step S1000: The first node uses the first container segment identifier and the first local index to establish a third segment identifier list;
[0168] Step S1100, the first node constructs an IPv6 message according to the third segment identifier list;
[0169] Step S1200: The first node forwards the IPv6 message.
[0170] In one embodiment, the first node can establish the third segment identification list based on the first segment identification information constructed by itself, or can establish the third segment identification list based on the relevant information issued by the network controller, which is not specifically limited in this embodiment. In addition, the third segment identification list can also include the second segment identification information from the second node.
[0171] In one embodiment, when only the first node in the forwarding path includes multiple three-layer links, the first node needs to determine the specific three-layer link output interface when forwarding the IPv6 message. Therefore, when the first node establishes the third-segment identifier list, the third-segment identifier list only includes the first-segment identifier information, that is, the first container segment identifier and the first local index. Therefore, when forwarding the IPv6 message, the next routing path is first determined to be a three-layer link according to the first container segment identifier, and then the specific three-layer link output interface is determined according to the first local index, and then the IPv6 message is forwarded through the specific three-layer link output interface.
[0172] It is worth noting that if in the forwarding path, the first node and the second node both include multiple three-layer links, then in the process of forwarding IPv6 packets, when the IPv6 packet is at the first node, the first node needs to first determine the specific three-layer link output interface based on the first container segment identifier and the first local index, and then forward the IPv6 packet through the specific three-layer link output interface and according to the local routing table entry; when the IPv6 packet is at the second node, the second node needs to first determine the specific three-layer link output interface based on the second container segment identifier and the second local index, and then forward the IPv6 packet through the specific three-layer link output interface and according to the local routing table entry.
[0173] In addition, refer to Fig.10 In one embodiment, when the segment identification list includes the first segment identification information, step S1200 may include but is not limited to the following steps:
[0174] Step S1210, the first node establishes a local segment identifier table entry that needs to use the first local index according to the first container segment identifier;
[0175] Step S1220, the first node determines the next routing exit according to the local segment identification table entry;
[0176] Step S1230: The first node forwards the IPv6 message through the next routing exit.
[0177] In one embodiment, a local segment identifier table entry that needs to use a first local index can be established inside the first node according to the first container segment identifier. When the first node sends an IPv6 message to a destination node, the first node can first determine a specific routing type, such as a three-layer link type or an L3VPN service type, in the local segment identifier table entry according to the first container segment identifier, and then use the first local index to search and determine a specific next routing exit in the local segment identifier table entry, so that the IPv6 message can be sent to the destination node through the next routing exit. For example, the first node first determines that the routing type for message forwarding is a three-layer link type in the local segment identifier table entry according to the first container segment identifier, and then uses the first local index to search and determine a specific three-layer link outbound interface in the local segment identifier table entry, and then sends the IPv6 message to the destination node through the three-layer link outbound interface.
[0178] In addition, another embodiment of the present invention further provides an information processing method, such as Fig.11 As shown, Fig.11 It is a flowchart of an information processing method provided by another embodiment of the present invention. The information processing method includes but is not limited to step A100, step A200 and step A300.
[0179] Step A100, the second node receives an IPv6 message constructed based on a segment identifier list from the first node, wherein the segment identifier list includes second segment identifier information corresponding to the corresponding second segment in the second node, the second segment identifier information includes a second container segment identifier corresponding to the segment type of the corresponding second segment and a second local index corresponding to the corresponding second segment, and the IPv6 message includes a destination address field carrying the second container segment identifier.
[0180] In one embodiment, when an IPv6 message is forwarded from a first node to a second node according to a segment identifier list therein, the information carried in the destination address field of the IPv6 message is a second container segment identifier. When the second node obtains that the information carried in the destination address field of the IPv6 message is a second container segment identifier related to the second node, the second node will perform subsequent steps to process the IPv6 message.
[0181] It is worth noting that the introduction and explanation of the second segment, the segment type of the second segment, the second segment identification information, the second container segment identification and the second local index in this embodiment are the same as those described above. Figure 8 The relevant introduction and explanation of the second segment, the segment type of the second segment, the second segment identification information, the second container segment identification and the second local index in the embodiment shown are consistent. For the relevant introduction and explanation of the second segment, the segment type of the second segment, the second segment identification information, the second container segment identification and the second local index in this embodiment, please refer to the above-mentioned Figure 8 The introduction and explanation of the second segment, the segment type of the second segment, the second segment identification information, the second container segment identification and the second local index in the illustrated embodiment are not repeated here.
[0182] Step A200: The second node determines a next routing exit according to the second local index and the second container segment identifier in the destination address field.
[0183] In one embodiment, when the second node receives an IPv6 message, the second node may first determine the segment type of the next segment based on the second container segment identifier in the destination address field, for example, determine that the next segment is a three-layer link type, and then, the second node determines the specific next routing exit based on the second local index, for example, determines that the next routing exit is a specific three-layer link output interface, so that subsequent steps can forward the IPv6 message according to the specific next routing exit.
[0184] Step A300: The second node processes the IPv6 message according to the next routing exit.
[0185] In one embodiment, the second node processes the IPv6 message according to the next routing exit, which may be forwarding the IPv6 message according to the next routing exit, or processing the inner load of the IPv6 message according to the next routing exit. An appropriate selection may be made according to the actual application situation, and this embodiment does not specifically limit this.
[0186] In one embodiment, by adopting the information processing method including the above steps A100, A200 and A300, the second node can determine the next routing exit according to the second local index and the second container segment identifier in the destination address field, and process the IPv6 message according to the next routing exit. In the process of the second node determining the next routing exit according to the second local index and the second container segment identifier in the destination address field, since the second container segment identifier corresponds to the segment type of the second segment, and the second local index corresponds to each specific second segment belonging to the same segment type, and different second local indexes can distinguish different specific second segments, only a small number of segment identifier resources (i.e., the second container segment identifier) are needed to realize the segment identifier allocation for a large number of second segments, thereby solving the problem of shortage of segment identifier resources to a certain extent. Moreover, the use of the second container segment identifier combined with the second local index to allocate the segment identifier to the second segment does not affect the construction and forwarding of the IPv6 message. Therefore, the use of the second container segment identifier combined with the second local index to characterize the segment identifier of the second segment can not only be applicable to large-scale network applications, but also solve the problem of shortage of segment identifier resources.
[0187] In addition, refer to Fig.12 In one embodiment, step A200 may include but is not limited to the following steps:
[0188] Step A210, the second node performs table lookup and matching according to the second container segment identifier in the destination address field to obtain a local segment identifier table entry;
[0189] Step A220, the second node obtains a second local index from the segment identifier list according to the local segment identifier table entry and the second container segment identifier in the destination address field;
[0190] Step A230: The second node determines a next routing exit according to the second local index.
[0191] In one embodiment, when the second node receives an IPv6 message from the first node, the second node first obtains the content in the destination address field in the IPv6 message, and then performs a table lookup and matching based on the content in the destination address field to obtain a local segment identification table entry. When the second node matches the local segment identification table entry through the table lookup, it determines in the local segment identification table entry whether the content in the destination address field is a second container segment identification. When it is determined that the content in the destination address field is the second container segment identification, the second node obtains a second local index from the segment identification list based on the local segment identification table entry and the second container segment identification in the destination address field. Then, the second node determines a next routing exit based on the obtained second local index.
[0192] In addition, refer to Fig.13 In one embodiment, when the second segment identification information also includes a parameter segment identification corresponding to the corresponding second segment, step A230 may include but is not limited to the following steps:
[0193] Step A231, the second node obtains the parameter segment identifier from the segment identifier list according to the second local index;
[0194] Step A232: The second node determines the next routing exit according to the second local index and the parameter segment identifier.
[0195] In one embodiment, if the second segment identification information also includes a parameter segment identification corresponding to the corresponding second segment, the parameter segment identification will be set in the segment identification field after the second local index in the segment identification list. Therefore, in the process of the second node determining the next routing exit according to the second local index, the second node first obtains the parameter segment identification from the segment identification list according to the second local index, that is, the parameter segment identification is obtained by reading the segment identification field after the second local index. At this time, according to the combination of the second container segment identification, the second local index and the parameter segment identification, a complete segment identification information can be obtained. At this time, the second node can first determine the segment type of the second segment according to the second container segment identification, and then the second node determines the specific next routing exit according to the second local index and the parameter segment identification. For example, the second node first determines that the segment type of the second segment that needs to forward the message is a layer 3 link type according to the second container segment identification, and then determines the specific layer 3 link outbound interface using the second local index and the parameter segment identification.
[0196] In addition, refer to Fig.14 In one embodiment, step A300 may include but is not limited to the following steps:
[0197] Step A310, the second node obtains the segment identification information corresponding to the next segment from the segment identification list;
[0198] Step A320, the second node updates the content of the destination address field in the IPv6 message according to the segment identification information corresponding to the next segment to construct a new IPv6 message;
[0199] Step A330: The second node forwards the new IPv6 message according to the next routing exit.
[0200] In one embodiment, after the second node determines the next routing exit based on the second local index and the second container segment identifier in the destination address field, and the second node confirms that it is not the destination node, the second node obtains the segment identifier information corresponding to the next segment from the segment identifier list, and then copies the segment identifier information corresponding to the next segment to the destination address field in the IPv6 message to update the content in the destination address field to obtain new destination address information for the next segment, and then re-encapsulates the IPv6 message according to the new destination address information to obtain a new IPv6 message, and then forwards the new IPv6 message according to the next routing exit.
[0201] In addition, in one embodiment, the IPv6 message further includes segment remainder information. When the value of the segment remainder information is 0, it indicates that the second node is the destination node. In this case, step A300 may include but is not limited to the following steps:
[0202] Step A340: The second node processes the inner payload of the IPv6 message according to the next routing egress.
[0203] In one embodiment, when the second node receives an IPv6 message, when the second node determines that the value of the segment remaining information in the IPv6 message is 0, it indicates that the second node is the destination node. At this time, the second node no longer forwards the IPv6 message, but removes the SRH in the IPv6 message, and then processes the inner layer load of the IPv6 message according to the next routing exit.
[0204] The message processing process of the second node when receiving the IPv6 message carrying the second container segment identifier and the second local index is described below with an example:
[0205] In an example, if the second node receives an IPv6 message from the first node, the second node first obtains the content in the destination address field of the IPv6 message, and searches for a matching local segment identifier entry according to the content in the destination address field. When the content in the destination address field is determined to be the second container segment identifier according to the local segment identifier entry, the main process of the second node processing the IPv6 message is as follows:
[0206] Step S01, determining whether the IPv6 message includes an SRH; when the SRH does not exist, the second node reports an error and sends an Internet Control Message Protocol (ICMP) error message to the first node, and discards the IPv6 message; when the SRH exists, executing step S02;
[0207] Step S02, determining whether the segment remaining information in the SRH is 0; if the segment remaining information is 0, the second node reports an error and sends an ICMP error message to the first node, and discards the IPv6 message; if the segment remaining information is not 0, executing step S03;
[0208] Step S03, subtract 1 from the segment remaining information in the SRH, and read the next segment identification information in the segment identification list to obtain the second local index. At this time, the segment identification information with complete meaning can be obtained according to the combination of the second container segment identification and the second local index. It is worth noting that if the second segment identification information corresponding to the current segment also includes a parameter segment identification, it is also necessary to subtract 1 from the segment remaining information, and read the next segment identification information in the segment identification list to obtain the parameter segment identification. At this time, the segment identification information with complete meaning can be obtained according to the combination of the second container segment identification, the second local index and the parameter segment identification.
[0209] Step S04, determining whether the segment remaining information in the SRH is 0; if the segment remaining information is 0, removing the SRH, and continuing to process the inner layer payload according to the obtained segment identification information with the above meaning being complete; if the segment remaining information is not 0, executing step S05;
[0210] Step S05, determining whether the second container segment identifier carries UET Flavor (UET preference), such as UET-0 or UET-1; if the second container segment identifier carries UET Flavor, performing compression domain switching according to the specific UET Flavor type, such as converting the compression domain from 32 bits to 128 bits, or converting the compression domain from 128 bits to 32 bits, and then executing step S06; if the second container segment identifier does not carry UET Flavor, directly executing step S06;
[0211] Step S06, read the next segment identification information in the segment identification list, and reduce the segment remaining information by 1 accordingly;
[0212] Step S07, copying the read identification information to the destination address field of the IPv6 message;
[0213] Step S08, continue to forward the IPv6 message according to the obtained segment identification information with complete meaning; for example, if the attribute of the obtained segment identification information with complete meaning is END behavior, look up the routing table according to the content in the destination address field of the IPv6 message to forward the IPv6 message; if the attribute of the obtained segment identification information with complete meaning is END.X behavior, directly forward the IPv6 message through the corresponding three-layer link.
[0214] The information processing method provided in the above embodiment is described in detail below with specific examples:
[0215] Example 1:
[0216] like Fig.15 The SRv6 network shown includes a first node 110, a second node 120, a third node 130, a fourth node 140, and a fifth node 150 connected in sequence, and in the SRv6 network, the ISIS protocol is run, the SRv6 segment identifiers of all nodes have the same block information, and the length of the block information is 96 bits, then the segment identifiers of these nodes can be compressed into a length of 32 bits, and the segment identifiers allocated to these nodes are as follows:
[0217] First node 110: block32-S;
[0218] Second node 120: block32-A;
[0219] The third node 130: block32-B;
[0220] Fourth node 140: block32-C;
[0221] Fifth node 150: block32-D.
[0222] In addition, the fifth node 150 is also configured with 1000 L3VPN services. Then, for this type of L3VPN service, a first container segment identifier is allocated and expressed as END.T.DT6 SID block32-D10. In addition, a first local index is allocated to each of the 1000 L3VPN services and expressed as local-index. Different first local indexes are used to distinguish the 1000 L3VPN services. For example, local-index 1 corresponds to the first L3VPN service, and local-index 2 corresponds to the second L3VPN service.
[0223] Assume that a segment routing traffic engineering (SR-TE) path is established from the first node 110 to the fifth node 150, and its segment list is<node 2,node 3,node 4,node5> , this path can be calculated by the first node 110 itself, or the first node 110 requests the network controller to calculate it. The segment identifier list corresponding to the segment list is<block32-A,block32-B,block32-C,block32-D> , since the fifth node 150 is also configured with an L3VPN service, assuming that routing forwarding is performed through the first L3VPN service, the segment identifier list is<block32-A,block32-B,block32-C,block32-D10,local-index 1> Since all segment identifiers except the first local index in the segment identifier list have the same block information, all segment identifiers except the first local index can be compressed. In this example, assuming that the length of the first local index is 32 bits, the length of all segment identifiers except the first local index can be compressed to 32 bits, such as Fig.16A As shown, Fig.16A This is the encapsulation format of the corresponding SRH in this example.
[0224] When the IPv6 message is forwarded along the SR-TE path and transmitted to the fifth node 150, the fifth node 150 will first search and match the local segment identification table entry corresponding to block32-D10 according to the content in the destination address field of the current IPv6 message, and then read the next first local index (i.e., local-index 1) with a length of 32 bits from the SRH. When the fifth node 150 determines that local-index 1 corresponds to the first L3VPN service according to local-index 1, the fifth node 150 removes the outer IPv6 header and all extension headers of the IPv6 message, and then forwards the inner load of the IPv6 message by looking up the private network routing table corresponding to the first L3VPN service.
[0225] Example 2:
[0226] This example is an example based on the above example 1 with an extended parameter segment identifier. Fig.15As shown, the fifth node 150 is also configured with 1000 EVPN services. Assuming that the fifth node 150 notifies the first node 110 through a BGP message a route belonging to the first EVPN service including a first container segment identifier (assuming block32-D20) and a first local index (assuming local-index1). Then, when the first node 110 forwards the IPv6 message to the fifth node 150, the first node 110 can insert the first container segment identifier (i.e., block32-D20), the first local index (i.e., local-index 1) and the parameter segment identifier (assuming the value is 100) at the end of the SRH. For example, the parameter segment identifier indicates that it is used to perform horizontal splitting and other filtering mechanisms. Then, the entire segment identifier list can be expressed as<block32-A,block32-B,block32-C,block32-D20,local-index 1,100> Since all segment identifiers except the first local index and the parameter segment identifier in the segment identifier list have the same block information, all segment identifiers except the first local index and the parameter segment identifier can be compressed. In this example, assuming that the lengths of the first local index and the parameter segment identifier are both 32 bits, the lengths of all segment identifiers except the first local index and the parameter segment identifier can be compressed to 32 bits, such as Fig. 16B As shown, Fig. 16B This is the encapsulation format of the corresponding SRH in this example.
[0227] When the IPv6 message is forwarded along the route and transmitted to the fifth node 150, the fifth node 150 will first search for a local segment identifier table entry corresponding to block32-D20 according to the content in the destination address field of the current IPv6 message, and then read the next first local index (i.e., local-index 1) with a length of 32 bits from the SRH. When the fifth node 150 determines that local-index 1 corresponds to the first EVPN service according to local-index 1, the fifth node 150 continues to read the next parameter segment identifier (value 100) with a length of 32 bits from the SRH. Then, the fifth node 150 removes the outer IPv6 header and all extension headers of the IPv6 message, and then learns the original media access control address (MAC address) of the inner layer, and broadcasts it to all layer 2 outbound interfaces except the outbound interface specified by the parameter segment identifier.
[0228] In addition, an embodiment of the present invention provides a node, which includes: a memory, a processor, and a computer program stored in the memory and executable on the processor.
[0229] The processor and the memory may be connected via a bus or other means.
[0230] It should be noted that the nodes in this embodiment can be applied to Figure 1 or Fig.15 The nodes in the embodiment shown in the figure can constitute Figure 1 or Fig.15 A part of the network topology in the illustrated embodiments, these embodiments all belong to the same inventive concept, and therefore these embodiments have the same implementation principle and technical effect, which will not be described in detail here.
[0231] The non-transient software program and instructions required to implement the information processing method of the above embodiment are stored in the memory. When executed by the processor, the information processing method of the above embodiment is executed, for example, the above described information processing method is executed. Figure 2 Method steps S100 to S200, Figure 8 Steps S600 to S700, Fig. 9 Steps S800 to S1000, Fig.10 Steps S1010 to S1020 of the method, Fig.11 Method steps A100 to A300, Fig.12 Method steps A210 to A230, Fig.13 Method steps A231 to A232, Fig.14 Method steps A310 to A330 in.
[0232] The device embodiments described above are merely illustrative, and the units described as separate components may or may not be physically separated, that is, they may be located in one place or distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0233] In addition, an embodiment of the present invention further provides a computer-readable storage medium, which stores computer-executable instructions. The computer-executable instructions are executed by a processor or a controller, for example, by a processor in the above node embodiment, so that the above processor can execute the information processing method in the above embodiment, for example, execute the above described Figure 2 Method steps S100 to S200, Figure 8 Steps S600 to S700, Fig. 9 Steps S800 to S1000, Fig.10 Steps S1010 to S1020 of the method, Fig.11 Method steps A100 to A300, Fig.12Method steps A210 to A230, Fig.13 Method steps A231 to A232, Fig.14 Method steps A310 to A330 in.
[0234] It will be appreciated by those skilled in the art that all or some of the steps and systems in the disclosed method above may be implemented as software, firmware, hardware and appropriate combinations thereof. Some physical components or all physical components may be implemented as software executed by a processor, such as a central processing unit, a digital signal processor or a microprocessor, or may be implemented as hardware, or may be implemented as an integrated circuit, such as an application specific integrated circuit. Such software may be distributed on a computer-readable medium, which may include a computer storage medium (or a non-transitory medium) and a communication medium (or a temporary medium). As known to those skilled in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tapes, disk storage or other magnetic storage devices, or any other medium that may be used to store desired information and may be accessed by a computer. Furthermore, it is well known to those skilled in the art that communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media.
[0235] The above is a specific description of the preferred implementation of the present invention, but the present invention is not limited to the above-mentioned implementation mode. Technical personnel familiar with the field can also make various equivalent deformations or substitutions without violating the spirit of the present invention. These equivalent deformations or substitutions are all included in the scope defined by the claims of the present invention.
Claims
1. An information processing method, comprising: The first node constructs first segment identification information, where the first segment identification information includes a first container segment identifier corresponding to a segment type of a corresponding first segment and a first local index corresponding to the segment type of the corresponding first segment; The first node floods the first segment identification information so that the second node or the network controller uses the first container segment identification and the first local index in the first segment identification information to establish a first segment identification list during path calculation, and determines a next routing exit according to the first container segment identification and the first local index.
2. The information processing method according to claim 1, characterized in that: The first node flooding the first segment of identification information includes: The first node floods the intermediate system to intermediate system ISIS message including the first container segment identifier and the first local index to flood the first segment identifier information; or, The first node floods the Open Shortest Path First OSPFv3 message including the first container segment identifier and the first local index to flood the first segment identifier information; or, The first node floods a Border Gateway Protocol (BGP) message including the first container segment identifier and the first local index to flood the first segment identifier information.
3. The information processing method according to claim 1, characterized in that: Also includes: The first node sends a Border Gateway Protocol Link State BGP-LS message including the first container segment identifier and the first local index to the network controller to report the first segment identifier information.
4. The information processing method according to claim 1, characterized in that: Also includes: The first node receives a BGP message including the first local index sent by the network controller to obtain a binding segment identifier list; and / or, The first node receives a BGP message sent by a network controller and including the first container segment identifier and the first local index to obtain a segment list.
5. The information processing method according to any one of claims 1 to 4, characterized in that: Also includes: The first node receives second segment identification information flooded by the second node, the second segment identification information including a second container segment identification corresponding to a segment type of a corresponding second segment and a second local index corresponding to the segment type of the corresponding second segment; The first node establishes a second segment identifier list by using the second container segment identifier and the second local index in the second segment identifier information during path calculation; The first node constructs an IPv6 message according to the second segment identifier list; The first node forwards the IPv6 message.
6. The information processing method according to claim 1, characterized in that: Also includes: The first node establishes a third segment identifier list using the first container segment identifier and the first local index; The first node constructs an IPv6 message according to the third segment identifier list; The first node forwards the IPv6 message.
7. The information processing method according to claim 6, characterized in that: The first node forwarding the IPv6 message includes: The first node establishes a local segment identifier table entry that needs to use the first local index according to the first container segment identifier; The first node determines a next routing exit according to the local segment identification table entry; The first node forwards the IPv6 message through the next routing exit.
8. An information processing method, comprising: The second node receives an IPv6 message constructed based on the segment identifier list from the first node, wherein the segment identifier list includes second segment identifier information corresponding to the corresponding second segment in the second node, the second segment identifier information includes a second container segment identifier corresponding to a segment type of the corresponding second segment and a second local index corresponding to the segment type of the corresponding second segment, and the IPv6 message includes a destination address field carrying the second container segment identifier; The second node determines a next routing exit according to the second local index and the second container segment identifier in the destination address field; The second node processes the IPv6 message according to the next routing exit.
9. The information processing method according to claim 8, characterized in that: The second node determines a next routing exit according to the second local index and the second container segment identifier in the destination address field, including: The second node obtains a local segment identifier table entry by performing table lookup and matching according to the second container segment identifier in the destination address field; The second node acquires the second local index from the segment identifier list according to the local segment identifier table entry and the second container segment identifier in the destination address field; The second node determines a next routing exit according to the second local index.
10. The information processing method according to claim 9, characterized in that: The second segment identification information further includes a parameter segment identification corresponding to the segment type of the corresponding second segment, and the second node determines a next routing exit according to the second local index, including: The second node obtains the parameter segment identifier from the segment identifier list according to the second local index; The second node determines a next routing exit according to the second local index and the parameter segment identifier.
11. The information processing method according to claim 9 or 10, characterized in that: The second node processes the IPv6 message according to the next routing egress, including: The second node obtains the segment identification information corresponding to the next segment from the segment identification list; The second node updates the content of the destination address field in the IPv6 message according to the segment identification information corresponding to the next segment to construct a new IPv6 message; The second node forwards the new IPv6 message according to the next routing exit.
12. The information processing method according to claim 9 or 10, characterized in that: The IPv6 message further includes segment remainder information. When the value of the segment remainder information is 0, the second node processes the IPv6 message according to the next routing egress, including: The second node processes the inner payload of the IPv6 message according to the next routing exit.
13. A node, comprising: A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the processor implements the information processing method as described in any one of claims 1 to 7 or the information processing method as described in any one of claims 8 to 12.
14. A computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute the information processing method described in any one of claims 1 to 7 or the information processing method described in any one of claims 8 to 12.
Citation Information
Patent Citations
A network abstraction gateway and corresponding method to abstract an endpoint
CN103404120A
Packet forwarding method and device for IPv6-based segment routing network
CN109688057A