A message forwarding method, device and related equipment
Patent Information
- Application Number
- CN202611105896.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-23
- Publication Date
- 2026-09-25
AI Technical Summary
[0020]综上可知,本申请实施例提供的报文转发方法,应用于服务链转发节点SFF;所述方法包括:接收业务分类节点SC通告的Policy信息,并在确定该Policy的段列表包含所述SFF本地的End.AS SID时,存储该Policy信息,该Policy信息包括所述段列表;接收所述SC通告的虚拟专用网络VPN私网路由信息,并在确定该VPN私网路由的下一跳和/或出接口指向本地存储的任一Policy时,基于该VPN私网路由和该任一Policy的段列表,生成对应的转发表项,其中,该转发表项至少包括该VPN私网路由的目的IP地址,该任一Policy的段列表和该VPN的End.DT SID;接收应用服务节点SF发送的原始报文,若确定本地存储的转发表项中存在与所述原始报文的目的地址相匹配的目标转发表项,则基于所述目标转发表项包括的目标Policy的段列表和目标VPN的End.DT SID对所述原始报文进行SRv6封装,得到SRv6报文;发送所述SRv6报文。
Smart Images

Figure CN122824670A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of network communication technology, and in particular to a message forwarding method, apparatus and related equipment. Background Technology
[0002] In L3VPN over SRv6 (Layer 3 Virtual Private Network over SegmentRouting IPv6) SFC (Service Function Chain) static proxy scenarios, because the SF (Service Function) node cannot recognize SRv6 packets, the SFF (Service Function Forwarder) node needs to decapsulate the SRv6 packets and forward the original data packets from the user network to the SF for processing. After processing the original packets, the SF forwards them back to the SFF node, which then recapsulates the SRv6 header for the processed service packets based on a manually configured SID list. When different services between PEs of the same source and destination need to perform SFC service processing, different policies need to be configured on the SC node, and different End.AS devices need to be configured on the SFF device, each corresponding to a different service. Summary of the Invention
[0003] This application provides a message forwarding method, apparatus, and related equipment.
[0004] Firstly, this application provides a message forwarding method applied to a service chain forwarding node (SFF); the method includes: Receive Policy information from the Service Classification Node (SC), and when it is determined that the segment list of the Policy contains the End.AS SID of the SFF locality, store the Policy information, which includes the segment list; A BGP neighbor relationship is established between the SC and TAIL; the VPN private network routing information announced by the SC is received, and when it is determined that the next hop and / or outgoing interface of the VPN private network route points to any Policy stored locally, a corresponding forwarding table entry is generated based on the VPN private network route and the segment list of the policy. The forwarding table entry includes at least the destination IP address of the VPN private network route, the segment list of the policy, and the End.DT SID of the VPN. If the application service node SF receives the original packet, and it is determined that there is a target forwarding table entry in the local storage that matches the destination address of the original packet, then the original packet is encapsulated in SRv6 based on the segment list of the target policy and the End.DT SID of the target VPN included in the target forwarding table entry to obtain an SRv6 packet. Send the SRv6 message.
[0005] Optionally, a Border Gateway Protocol (BGP) neighbor relationship is established between the SFF and the SC; the step of receiving Policy information advertised by the SC includes: The SRv6 Traffic Engineering Policy (SRv6 TE Policy) information announced by the SC is received via a BGP session. The SRv6 TE Policy information includes the segment list. A BGP neighbor relationship is established between the SC and TAIL; the steps for receiving VPN private network routing information announced by the SC include: The VPN private network routing information announced by the SC is received through the BGP session. The VPN private network routing information includes at least the destination IP address, next hop and / or outgoing interface information, and the VPN's End.DT SID.
[0006] Optionally, when it is determined that the segment list of the Policy contains the SFF's local End.AS SID, the step of storing the Policy information includes: Extract the list of segments from this Policy message; If the list contains a SID that is the same as any End.AS SID configured locally in the SFF, then it is determined that the list contains the End.AS SID locally in the SFF, and the Policy information is stored.
[0007] Optionally, the step of generating the corresponding forwarding table entry based on the VPN private network route and the segment list of any policy includes: Generate an SRv6 SFF forwarding table entry, which includes at least: a first field for storing the destination IP address of the VPN private network route; a second field for storing the segment list of any policy; and a third field for storing the End.DT SID of the VPN carried in the VPN private network route.
[0008] Optionally, the step of encapsulating the original packet with SRv6 based on the segment list of the target policy and the End.DTSID of the target VPN included in the target forwarding table entry to obtain an SRv6 packet includes: Encapsulate the original message with an SRv6 header; The SID from the segment list of the target Policy and the End.DT SID of the target VPN are encapsulated into the SRH segment routing header of the SRv6 header to obtain the SRv6 packet.
[0009] Optionally, the method further includes: Receive the updated Policy information from the SC notification, wherein the updated Policy information includes the updated segment list; Based on the updated segment list, replace the original segment list in the corresponding Policy information stored locally; Specifically, when an original packet sent by SF with a destination IP address matching the corresponding Policy is received again, the original packet is encapsulated in SRv6 based on the updated segment list.
[0010] Optionally, the method further includes: Receive the updated VPN private network routing information announced by the SC, wherein the updated VPN private network routing information includes the updated End.DT SID; Based on the updated End.DT SID, update the End.DT SID in the corresponding forwarding table entry stored locally; Specifically, when an original packet sent by SF with a destination IP address matching the corresponding forwarding table entry is received again, the original packet is encapsulated in SRv6 based on the updated End.DT SID.
[0011] Secondly, this application provides a message forwarding device applied to a service chain forwarding node (SFF); the device includes: The receiving unit is used to receive Policy information announced by the Service Classification Node (SC). A storage unit is used to store the Policy information, which includes the segment list, when it is determined that the segment list of the Policy contains the SFF's local End.AS SID. The receiving unit is further configured to receive the VPN private network routing information announced by the SC; The generation unit is used to generate a corresponding forwarding table entry based on the VPN private network route and the segment list of the policy when it is determined that the next hop and / or the outgoing interface of the VPN private network route points to any policy stored locally. The forwarding table entry includes at least the destination IP address of the VPN private network route, the segment list of the policy, and the End.DTSID of the VPN. The receiving unit is also used to receive the original message sent by the application service node SF; If the encapsulation unit determines that there is a target forwarding table entry in the locally stored forwarding table entry that matches the destination address of the original packet, the encapsulation unit is used to encapsulate the original packet with SRv6 based on the segment list of the target policy included in the target forwarding table entry and the End.DT SID of the target VPN to obtain an SRv6 packet. The sending unit is used to send the SRv6 message.
[0012] Optionally, a Border Gateway Protocol (BGP) neighbor relationship is established between the SFF and the SC; when receiving Policy information advertised by the SC, the receiving unit is specifically used for: The SRv6 Traffic Engineering Policy (SRv6 TE Policy) information announced by the SC is received via a BGP session. The SRv6 TE Policy information includes the segment list. A BGP neighbor relationship is established between the SC and TAIL; when receiving VPN private network routing information announced by the SC, the receiving unit is specifically used for: The VPN private network routing information announced by the SC is received through the BGP session. The VPN private network routing information includes at least the destination IP address, next hop and / or outgoing interface information, and the VPN's End.DT SID.
[0013] Optionally, when it is determined that the segment list of the Policy contains the SFF's local End.AS SID, the storage unit is specifically used for storing the Policy information when storing the Policy information: Extract the list of segments from this Policy message; If the list contains a SID that is the same as any End.AS SID configured locally in the SFF, then it is determined that the list contains the End.AS SID locally in the SFF, and the Policy information is stored.
[0014] Optionally, when generating the corresponding forwarding table entry based on the VPN private network route and the segment list of any policy, the generation unit is specifically used for: Generate an SRv6 SFF forwarding table entry, which includes at least: a first field for storing the destination IP address of the VPN private network route; a second field for storing the segment list of any policy; and a third field for storing the End.DT SID of the VPN carried in the VPN private network route.
[0015] Optionally, when the original packet is encapsulated with SRv6 based on the segment list of the target policy included in the target forwarding table entry and the End.DTSID of the target VPN to obtain an SRv6 packet, the encapsulation unit is specifically used for: Encapsulate the original message with an SRv6 header; The SID from the segment list of the target Policy and the End.DT SID of the target VPN are encapsulated into the SRH segment routing header of the SRv6 header to obtain the SRv6 packet.
[0016] Optionally, the receiving unit is further configured to receive the updated Policy information of the SC notification, wherein the updated Policy information includes an updated segment list; The storage unit is also used to replace the original segment list in the corresponding Policy information stored locally with the updated segment list. Specifically, when an original packet sent by SF with a destination IP address matching the corresponding Policy is received again, the original packet is encapsulated in SRv6 based on the updated segment list.
[0017] Optionally, the receiving unit is further configured to receive the updated VPN private network routing information announced by the SC, wherein the updated VPN private network routing information includes the updated End.DT SID; The storage unit is also used to update the End.DT SID in the corresponding forwarding table entry stored locally based on the updated End.DT SID; Specifically, when an original packet sent by SF with a destination IP address matching the corresponding forwarding table entry is received again, the original packet is encapsulated in SRv6 based on the updated End.DT SID.
[0018] Thirdly, embodiments of this application provide a message forwarding apparatus, which includes: Memory, used to store program instructions; A processor is configured to invoke program instructions stored in the memory and execute the steps of the method as described in any one of the first aspects above, according to the obtained program instructions.
[0019] Fourthly, embodiments of this application also provide a computer-readable storage medium storing computer-executable instructions for causing a computer to perform the steps of the method as described in any of the first aspects above.
[0020] In summary, the packet forwarding method provided in this application is applied to a service chain forwarding node (SFF). The method includes: receiving policy information announced by a service classification node (SC), and storing the policy information, which includes the segment list, when it is determined that the segment list of the policy contains the SFF's local End.AS SID; receiving VPN private network routing information announced by the SC, and generating a corresponding forwarding table entry based on the VPN private network route and the segment list of the any policy when it is determined that the next hop and / or outgoing interface of the VPN private network route points to any policy stored locally, wherein the forwarding table entry includes at least the destination IP address of the VPN private network route, the segment list of the any policy, and the VPN's End.DT SID; receiving an original packet sent by an application service node (SF), and if it is determined that there is a target forwarding table entry in the locally stored forwarding table that matches the destination address of the original packet, then forwarding the packet based on the segment list of the target policy and the target VPN's End.DT SID included in the target forwarding table entry. The SID encapsulates the original message with SRv6 to obtain an SRv6 message; the SRv6 message is then sent.
[0021] Using the packet forwarding method provided in this application, the SFF can automatically generate the encapsulation rules required for forwarding by dynamically receiving and associating the Policy and private network routing information issued by the SC, without the need for manual configuration of static policy lists, significantly reducing the complexity of operation and maintenance and the workload of configuration. It also has a high degree of adaptability; when the Policy path of the network head node changes, or the End.DT4 SID of the VPN instance at the tail node is updated, the SFF can detect this in real time and automatically refresh the local forwarding table entries, ensuring the continued effectiveness of the forwarding policy. The entire process requires no manual intervention, achieving dynamic synchronization between policy and forwarding, and guaranteeing business continuity and agility. Attached Figure Description
[0022] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments of this application or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this application. For those skilled in the art, other drawings can be obtained based on these drawings of the embodiments of this application.
[0023] Figure 1 This application provides a schematic diagram of a message processing process in a network based on related technologies. Figure 2 A detailed flowchart of a message forwarding method provided for an embodiment of this application; Figure 3A schematic diagram of a message processing process in an SRv6 network provided in this application embodiment; Figure 4 This is a schematic diagram of the structure of a message forwarding device provided in an embodiment of this application; Figure 5 This is a schematic diagram of the hardware architecture of a message forwarding device provided in an embodiment of this application. Detailed Implementation
[0024] The terminology used in the embodiments of this application is for the purpose of describing particular embodiments only and is not intended to limit the application. The singular forms “a,” “the,” and “the” as used in this application and claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used herein refers to any and all possible combinations comprising one or more of the associated listed items.
[0025] It should be understood that although the terms first, second, third, etc., may be used to describe various information in embodiments of this application, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, without departing from the scope of this application, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word "if" may also be interpreted as "when," "when," or "in response to a determination."
[0026] SRv6: SRv6 refers to the use of SR (Segment Routing) in IPv6 networks, where IPv6 addresses are used as SIDs for packet forwarding. SR employs a source node path selection mechanism, pre-encapsulating the SID (Segment Identifier) of the segments the path will traverse at the source node. When a packet passes through an SR node, the SR node forwards the packet based on its SID. Except for the source node, other nodes do not need to maintain path state.
[0027] END-DT4: END.DT4 is a forwarding behavior in an SRv6 network that stands for "Endpoint with Decapsulation and IPv4 Table Lookup". It is a core component for implementing L3VPN over SRv6.
[0028] SC (Service Classifier): Located at the edge of the SRv6 SFC service chain network, it is the source node of the service chain path. SC can use different traffic redirection methods to introduce service data into the SRv6 TE Policy tunnel for forwarding.
[0029] SF (Service Function): A node that provides specific application services for business traffic.
[0030] SFF (Service Function Forwarder): As a service chain proxy for SF, the SFF forwards received packets to several SFs associated with it, based on SRv6 encapsulation information. After processing the packet, the SF returns the packet to the SFF, which then decides whether to continue forwarding the packet.
[0031] For example, see Figure 1 The diagram illustrates the packet forwarding process in a network of related technologies. Assuming different End.AS (B1, B2, B3) are configured on the SFF device, VPN 1 accessing VPN A uses policy 1 with a segment list of (B1, C, D) and an encapsulated End.DT4 of D1. VPN 2 accessing VPN B uses policy 2 with a segment list of (B2, C, D) and an encapsulated End.DT4 of D2. VPN 3 accessing VPN C uses policy 3 with a segment list of (B3, C, D) and an encapsulated End.DT4 of D3. Therefore, on the SFF device, the cache list for End.AS B1 needs to be manually configured as (C, D, D1), the cache list for End.AS B2 as (C, D, D2), and the cache list for End.AS B3 as (C, D, D3).
[0032] In other words, there are many redundant configurations on the SC and SFF devices. The paths for all three policies on the SC device are identical, and the SIDs encapsulated in the End.AS cachelist on the SFF device also have overlapping configurations. When the raw data packets processed by the SF are sent to the SFF device, the SFF re-encapsulates them with SRV6 according to the manually configured cachelist and sends them to TAIL. Manual configuration has obvious drawbacks: it is cumbersome, labor-intensive, and prone to errors. Once configured, it cannot adaptively switch over if a link failure occurs.
[0033] Based on this, this application provides a technical solution that allows the SFF to automatically generate the encapsulation rules required for forwarding by dynamically receiving and associating the Policy and private network routing information issued by the SC.
[0034] For example, see Figure 2 The diagram shown is a detailed flowchart of a message forwarding method provided in an embodiment of this application. This method is applied to SFF and includes the following steps: Step 200: Receive Policy information from the Service Classification Node (SC), and when it is determined that the segment list of the Policy contains the End.AS SID of the SFF locality, store the Policy information, which includes the segment list.
[0035] In this embodiment of the application, a Border Gateway Protocol (BGP) neighbor relationship is established between the SFF and the SC; therefore, when receiving the Policy information announced by the SC, a preferred implementation is to receive the SRv6 Traffic Engineering Policy (SRv6 TE Policy) information announced by the SC through a BGP session, wherein the SRv6 TE Policy information includes the segment list.
[0036] For practical applications, see the examples below. Figure 3 The diagram shows an SRv6 network topology provided in this application embodiment. The SC's END SID is A, the SFF's END.AS SID is B, the DEVICE's END SID is C, and the TAIL's END SID is D. BGP is enabled on both the SFF and SC, and a BGP neighbor relationship (BGP session) is established. The SC is configured with SRv6 TE policy P1 (hereinafter referred to as P1) information, which is a Segment List (B, C, D). Assuming VPN 1, VPN 2, and VPN 3 are connected to the SC, and VPN A, VPN B, and VPN C2 are connected to the TAIL, then only one Policy (P1, Segment List (B, C, D)) needs to be configured for traffic from VPN 1 to VPN A, VPN 2 to VPN B, and VPN 3 to VPN C.
[0037] After configuring P1 information (B, C, D) on the SC, P1 is advertised to the SFF through a BGP session established with the SFF. Upon receiving the P1 advertised by the SC, the SFF determines whether the Segment List contained in P1 includes the local End.AS SID. Only if the Segment List of P1 contains the local End.AS SID will P1 be stored in the local Policy list. In other words, the SFF maintains a Policy list that meets the conditions.
[0038] In this embodiment of the application, at least one End.AS SID can be configured for a SFF. Therefore, when it is determined that the segment list of the Policy contains the local End.AS SID of the SFF, a preferred implementation for storing the Policy information is as follows: Extract the segment list from the Policy information; if the segment list contains a SID that is the same as any End.AS SID configured locally in the SFF, then determine that the segment list contains the End.AS SID locally in the SFF, and store the Policy information.
[0039] Step 210: Receive the VPN private network routing information announced by the SC, and when it is determined that the next hop and / or outgoing interface of the VPN private network route points to any Policy stored locally, generate the corresponding forwarding table entry based on the VPN private network route and the segment list of the policy.
[0040] In this embodiment of the application, the forwarding table entry includes at least the destination IP address of the VPN private network route, the segment list of any policy, and the End.DT SID of the VPN.
[0041] In this embodiment of the application, a BGP neighbor relationship is established between the SC and TAIL; then, when receiving the VPN private network routing information announced by the SC, a preferred implementation is to receive the VPN private network routing information announced by the SC through a BGP session. The VPN private network routing information includes at least the destination IP address, the next hop and / or outgoing interface information, and the End.DT SID of the VPN.
[0042] In practical applications, a BGP neighbor relationship is also established between the SC and TAIL. The SC learns the private network routing information corresponding to VPN A, VPN B, and VPN C advertised by TAIL, such as the private network routing information for VPN 1 to access VPN A. The SC advertises the received VPN private network routing information advertised by TAIL to the SFF through a BGP session. The private network routing information corresponding to a VPN may include the destination IP address (the IP address of the VPN), the next hop and / or outgoing interface information (for a certain policy), and the VPN's End.DT SID.
[0043] After receiving private network routing information for a VPN from the SC, the SFF determines whether the next-hop and / or outgoing interface information contained in the private network routing information matches any policy in its locally maintained policy list. If a target policy exists in the policy list that matches the next-hop and / or outgoing interface information contained in the private network routing information, a corresponding forwarding table entry (SRv6 SFF forwarding table entry) is generated based on the VPN private network route and the segment list of the target policy. This forwarding table entry includes at least the destination IP address (the IP address of the corresponding VPN (e.g., VPN A), the segment list of the target policy (e.g., if the target policy is P1, the segment list is B, C, D), and the End.DT SID of the VPN (e.g., VPN A).
[0044] In this embodiment of the application, each forwarding table entry maintained in the forwarding table is used for SRv6 encapsulation of each original service message returned by SF.
[0045] In this embodiment of the application, when generating the corresponding forwarding table entry based on the VPN private network route and the segment list of any policy, a preferred implementation is as follows: Generate an SRv6 SFF forwarding table entry, which includes at least: a first field for storing the destination IP address of the VPN private network route; a second field for storing the segment list of any policy; and a third field for storing the End.DT SID of the VPN carried in the VPN private network route.
[0046] In other words, the first field in the forwarding table entry is the index field. When SFF performs SRv6 repackaging on the original packet returned by SF, it encapsulates the segment routing header (SRH) based on the second field (the segment list of the policy) and the third field (the VPN's End.DTSID) in the forwarding table entry.
[0047] In this embodiment of the application, in the actual application scenario where the original message is an IPv4 message, End.DT is End.DT4; in the actual application scenario where the original message is an IPv6 message, End.DT is End.DT6. In this embodiment of the application, no specific limitation is made.
[0048] Step 220: Receive the original packet sent by the application service node SF. If it is determined that there is a target forwarding table entry in the locally stored forwarding table entry that matches the destination address of the original packet, then encapsulate the original packet with SRv6 based on the segment list of the target policy and the End.DT SID of the target VPN included in the target forwarding table entry to obtain an SRv6 packet.
[0049] In this embodiment of the application, when the original packet is encapsulated with SRv6 based on the segment list of the target policy and the End.DT SID of the target VPN included in the target forwarding table entry to obtain an SRv6 packet, a preferred implementation is as follows: An SRv6 header is encapsulated in the original message; the SID in the segment list of the target policy and the End.DT SID of the target VPN are encapsulated in the segment routing header SRH of the SRv6 header to obtain the SRv6 message.
[0050] In practical applications, the SC encapsulates the received raw packets accessing the target VPN with SRv6 and sends the encapsulated SRv6 packets to the SFF via the target policy. After the SFF decapsulates the SRv6 packets, it sends the raw packets to the SF for processing. The SF sends the processed raw packets back to the SFF. The SFF then searches its forwarding table for a target forwarding entry that matches the destination IP address of the raw packets. Based on the segment list of the target policy and the End.DT SID of the target VPN included in the target forwarding table entry, the SFF encapsulates the raw packets with SRv6 to obtain the SRv6 packets. Specifically, assuming the target policy is P1, the segment list of the target policy is (B, C, D), the target VPN is VPN A, and the End.DT SID of the target VPN A is D1, then when encapsulating the raw packets with SRv6, the SL in the SRH is encapsulated as 2 (D1, D, C, B).
[0051] For example, see still Figure 3As shown, the service of VPN1 accessing VPNA uses P1 and the segment list (B, C, D) for transmission. After receiving the original packet (Payload 1) of VPN1 accessing VPNA, SC encapsulates Payload 1 with SRv6. Specifically, in the IPv6 HDR, DA is the End.AS SID (B) of SFF, and the encapsulated information in SRH is SL=3 (D1, D, C, B). After receiving the encapsulated SRv6 packet, SFF decapsulates it to obtain Payload 1 and sends it to SF. SFF receives Payload 1 returned by SF and uses the second and third fields of the forwarding table entry that matches the End.DT4 SID (D1) of VPNA in the locally maintained SRv6 SFF forwarding table to encapsulate Payload 1 again with SRv6. Specifically, in the IPv6 HDR, DA is the End.AS SID (B) of SFF, and the encapsulated information in SRH is SL=3 (D1, D, C, B), thus obtaining the encapsulated SRv6 packet.
[0052] Step 230: Send the SRv6 message.
[0053] Specifically, the SRv6 message is sent by each SR device included in the target policy.
[0054] Furthermore, in this embodiment of the application, the above-mentioned message forwarding method may further include the following steps: The system receives the updated Policy information from the SC announcement, which includes an updated segment list. Based on the updated segment list, it replaces the original segment list in the corresponding Policy information stored locally. Thus, when the system receives an original packet sent by the SF with a destination IP address matching the corresponding Policy, it encapsulates the original packet with SRv6 based on the updated segment list.
[0055] In other words, when a Policy path configured on the SC changes, the SC can notify the SFF of the updated Policy information, which includes the updated segment list; the SFF then updates the segment list in the corresponding Policy information stored locally based on the updated segment list.
[0056] For example, if the SFF locally stores a list of segments (1, 2, 3) for Policy A, and the SC updates the list of segments (1, 2, 4) for Policy A, the SC will notify the SFF of the updated Policy A. The SFF will then update its locally stored list of segments for Policy A from (1, 2, 3) to (1, 2, 4). Correspondingly, the SRv6 SFF forwarding table entry (second field) generated on the SFF based on Policy A will also be automatically updated.
[0057] Furthermore, in this embodiment of the application, the above-mentioned message forwarding method may further include the following steps: The system receives the updated VPN private network routing information announced by the SC, which includes the updated End.DT SID. Based on the updated End.DT SID, it updates the End.DT SID in the corresponding forwarding table entry stored locally. Then, when it receives the original packet sent by the SF again, whose destination IP address matches the corresponding forwarding table entry, it encapsulates the original packet with SRv6 based on the updated End.DT SID.
[0058] In other words, when the End.DT SID of a VPN configured on TAIL changes, TAIL will notify the SC of the updated End.DT SID of the VPN, and the SC will then notify the SFF of the updated End.DT SID of the VPN. The SFF will then update the locally stored End.DT SID of the VPN based on the updated End.DT SID of the VPN.
[0059] For example, if the SFF locally stores the End.DT SID (D1) of VPN A, and the TAIL updates the End.DT SID (D11) of VPN A, the TAIL will notify the SC of the updated End.DT SID (D11) of VPN A. The SC will then notify the SFF of the updated End.DT SID (D11) of VPN A. The SFF will then update the locally stored End.DT SID of VPN A from D1 to D11. Correspondingly, the SRv6 SFF forwarding table entry (third field) generated on the SFF based on the End.DT SID of VPN A will also be automatically updated.
[0060] For example, see Figure 4 The diagram shown is a structural schematic of a message forwarding device provided in an embodiment of this application. This device is applied to a serving forwarding node (SFF); the device includes: The receiving unit 40 is used to receive Policy information announced by the Service Classification Node (SC). Storage unit 41 is used to store the Policy information, which includes the segment list, when it is determined that the segment list of the Policy contains the SFF local End.AS SID; The receiving unit 40 is further configured to receive the VPN private network routing information announced by the SC; The generation unit 42 is used to generate a corresponding forwarding table entry based on the VPN private network route and the segment list of the policy when it is determined that the next hop and / or the outgoing interface of the VPN private network route points to any policy stored locally. The forwarding table entry includes at least the destination IP address of the VPN private network route, the segment list of the policy, and the End.DTSID of the VPN. The receiving unit 40 is further configured to receive the original message sent by the application service node SF; If the encapsulation unit 43 determines that there is a target forwarding table entry in the locally stored forwarding table entry that matches the destination address of the original packet, then the encapsulation unit 43 is used to encapsulate the original packet with SRv6 based on the segment list of the target policy and the End.DT SID of the target VPN included in the target forwarding table entry to obtain an SRv6 packet. The sending unit 44 is used to send the SRv6 message.
[0061] Optionally, a Border Gateway Protocol (BGP) neighbor relationship is established between the SFF and the SC; when receiving Policy information advertised by the SC, the receiving unit 40 is specifically used for: The SRv6 Traffic Engineering Policy (SRv6 TE Policy) information announced by the SC is received via a BGP session. The SRv6 TE Policy information includes the segment list. A BGP neighbor relationship is established between the SC and TAIL; when receiving VPN private network routing information announced by the SC, the receiving unit 40 is specifically used for: The VPN private network routing information announced by the SC is received through the BGP session. The VPN private network routing information includes at least the destination IP address, next hop and / or outgoing interface information, and the VPN's End.DT SID.
[0062] Optionally, when storing the policy information after determining that the segment list of the policy contains the local End.AS SID of the SFF, the storage unit 41 is specifically used for: Extract the list of segments from this Policy message; If the list contains a SID that is the same as any End.AS SID configured locally in the SFF, then it is determined that the list contains the End.AS SID locally in the SFF, and the Policy information is stored.
[0063] Optionally, when generating the corresponding forwarding table entry based on the VPN private network route and the segment list of any policy, the generation unit 42 is specifically used for: Generate an SRv6 SFF forwarding table entry, which includes at least: a first field for storing the destination IP address of the VPN private network route; a second field for storing the segment list of any policy; and a third field for storing the End.DT SID of the VPN carried in the VPN private network route.
[0064] Optionally, when the original packet is encapsulated with SRv6 based on the segment list of the target policy and the End.DTSID of the target VPN included in the target forwarding table entry to obtain an SRv6 packet, the encapsulation unit 43 is specifically used for: Encapsulate the original message with an SRv6 header; The SID from the segment list of the target Policy and the End.DT SID of the target VPN are encapsulated into the SRH segment routing header of the SRv6 header to obtain the SRv6 packet.
[0065] Optionally, the receiving unit 40 is further configured to receive the updated Policy information of the SC notification, wherein the updated Policy information includes an updated segment list; The storage unit 41 is further configured to replace the original segment list in the corresponding Policy information stored locally with the updated segment list. Specifically, when an original packet sent by SF with a destination IP address matching the corresponding Policy is received again, the original packet is encapsulated in SRv6 based on the updated segment list.
[0066] Optionally, the receiving unit 40 is further configured to receive the updated VPN private network routing information announced by the SC, wherein the updated VPN private network routing information includes the updated End.DT SID; The storage unit 41 is further configured to update the End.DT SID in the corresponding forwarding table entry stored locally based on the updated End.DT SID; Specifically, when an original packet sent by SF with a destination IP address matching the corresponding forwarding table entry is received again, the original packet is encapsulated in SRv6 based on the updated End.DT SID.
[0067] These units can be one or more integrated circuits configured to implement the above methods, such as one or more Application Specific Integrated Circuits (ASICs), one or more digital signal processors (DSPs), or one or more Field Programmable Gate Arrays (FPGAs). Alternatively, when one of these units is implemented using processing element scheduler code, the processing element can be a general-purpose processor, such as a Central Processing Unit (CPU) or other processor capable of calling program code. Furthermore, these units can be integrated together to form a system-on-a-chip (SOC).
[0068] Furthermore, regarding the packet forwarding device provided in this application embodiment, from a hardware perspective, the hardware architecture diagram of the packet forwarding device can be found in [reference needed]. Figure 5 As shown, the message forwarding device may include: a memory 50 and a processor 51. The memory 50 is used to store program instructions; the processor 51 calls the program instructions stored in the memory 50 and executes the above method embodiment according to the obtained program instructions. The specific implementation method and technical effect are similar, and will not be described again here.
[0069] Optionally, this application also provides a service chain forwarding node device, including at least one processing element (or chip) for performing the above method embodiments.
[0070] Optionally, this application also provides a program product, such as a computer-readable storage medium storing computer-executable instructions for causing the computer to perform the above-described method embodiments.
[0071] Here, a machine-readable storage medium can be any electronic, magnetic, optical, or other physical storage device that can contain or store information, such as executable instructions, data, etc. For example, a machine-readable storage medium can be: RAM (Random Access Memory), volatile memory, non-volatile memory, flash memory, storage drives (such as hard disk drives), solid-state drives, any type of storage disk (such as optical discs, DVDs, etc.), or similar storage media, or combinations thereof.
[0072] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer, which can take the form of a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email sending and receiving device, game console, tablet computer, wearable device, or any combination of these devices.
[0073] For ease of description, the above devices are described separately by function as various units. Of course, in implementing this application, the functions of each unit can be implemented in one or more software and / or hardware.
[0074] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, embodiments of this application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0075] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0076] Furthermore, these computer program instructions can also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in the process. Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0077] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0078] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.
Claims
1. A message forwarding method, characterized in that, Applied to the Service Chain Forwarding Node (SFF); the method includes: Receive Policy information from the Service Classification Node (SC), and when it is determined that the segment list of the Policy contains the End.AS SID of the SFF locality, store the Policy information, which includes the segment list; Upon receiving the VPN private network routing information announced by the SC, and upon determining that the next hop and / or outgoing interface of the VPN private network route points to any Policy stored locally, a corresponding forwarding table entry is generated based on the VPN private network route and the segment list of the policy. The forwarding table entry includes at least the destination IP address of the VPN private network route, the segment list of the policy, and the End.DT SID of the VPN. If the application service node SF receives the original packet, and it is determined that there is a target forwarding table entry in the local storage that matches the destination address of the original packet, then the original packet is encapsulated in SRv6 based on the segment list of the target policy and the End.DT SID of the target VPN included in the target forwarding table entry to obtain an SRv6 packet. Send the SRv6 message.
2. The method as described in claim 1, characterized in that, A Border Gateway Protocol (BGP) neighbor relationship is established between the SFF and the SC. The steps for receiving Policy information from SC notifications include: The SRv6 Traffic Engineering Policy (SRv6 TE Policy) information announced by the SC is received through a BGP session. The SRv6 TE Policy information includes the segment list. A BGP neighbor relationship is established between the SC and TAIL; the steps for receiving VPN private network routing information announced by the SC include: The VPN private network routing information announced by the SC is received through the BGP session. The VPN private network routing information includes at least the destination IP address, next hop and / or outgoing interface information, and the VPN's End.DT SID.
3. The method as described in claim 1, characterized in that, When it is determined that the segment list of the Policy contains the SFF's local End.AS SID, the steps for storing the Policy information include: Extract the list of segments from this Policy message; If the list contains a SID that is the same as any End.AS SID configured locally in the SFF, then it is determined that the list contains the End.AS SID locally in the SFF, and the Policy information is stored.
4. The method as described in claim 3, characterized in that, The steps for generating the corresponding forwarding table entry based on the VPN private network route and the segment list of any policy include: Generate an SRv6 SFF forwarding table entry, which includes at least: a first field for storing the destination IP address of the VPN private network route; a second field for storing the segment list of any policy; and a third field for storing the End.DT SID of the VPN carried in the VPN private network route.
5. The method according to any one of claims 1-4, characterized in that, The steps for encapsulating the original packet with SRv6 based on the segment list of the target policy and the End.DT SID of the target VPN in the target forwarding table entry to obtain an SRv6 packet include: Encapsulate the original message with an SRv6 header; The SID from the segment list of the target Policy and the End.DT SID of the target VPN are encapsulated into the SRH segment routing header of the SRv6 header to obtain the SRv6 packet.
6. The method according to any one of claims 1-4, characterized in that, The method further includes: Receive the updated Policy information from the SC notification, wherein the updated Policy information includes the updated segment list; Based on the updated segment list, replace the original segment list in the corresponding Policy information stored locally; Specifically, when an original packet sent by SF with a destination IP address matching the corresponding Policy is received again, the original packet is encapsulated in SRv6 based on the updated segment list.
7. The method as described in claim 6, characterized in that, The method further includes: Receive the updated VPN private network routing information announced by the SC, wherein the updated VPN private network routing information includes the updated End.DT SID; Based on the updated End.DT SID, update the End.DT SID in the corresponding forwarding table entry stored locally; Specifically, when an original packet sent by SF with a destination IP address matching the corresponding forwarding table entry is received again, the original packet is encapsulated in SRv6 based on the updated End.DT SID.
8. A message forwarding device, characterized in that, Applied to the Service Chain Forwarding Node (SFF); the device includes: The receiving unit is used to receive Policy information announced by the Service Classification Node (SC). A storage unit is used to store the Policy information, which includes the segment list, when it is determined that the segment list of the Policy contains the SFF's local End.AS SID. The receiving unit is further configured to receive the VPN private network routing information announced by the SC; The generation unit is used to generate a corresponding forwarding table entry based on the VPN private network route and the segment list of the policy when it is determined that the next hop and / or the outgoing interface of the VPN private network route points to any policy stored locally. The forwarding table entry includes at least the destination IP address of the VPN private network route, the segment list of the policy, and the End.DTSID of the VPN. The receiving unit is also used to receive the original message sent by the application service node SF; If the encapsulation unit determines that there is a target forwarding table entry in the locally stored forwarding table entry that matches the destination address of the original packet, the encapsulation unit is used to encapsulate the original packet with SRv6 based on the segment list of the target policy included in the target forwarding table entry and the End.DT SID of the target VPN to obtain an SRv6 packet. The sending unit is used to send the SRv6 message.
9. The apparatus as claimed in claim 8, characterized in that, The receiving unit is further configured to receive the updated Policy information of the SC notification, wherein the updated Policy information includes an updated segment list; The storage unit is also used to replace the original segment list in the corresponding Policy information stored locally with the updated segment list. Specifically, when an original packet sent by SF with a destination IP address matching the corresponding Policy is received again, the original packet is encapsulated in SRv6 based on the updated segment list.
10. The apparatus as claimed in claim 9, characterized in that, The receiving unit is further configured to receive the updated VPN private network routing information announced by the SC, wherein the updated VPN private network routing information includes the updated End.DT SID; The storage unit is also used to update the End.DT SID in the corresponding forwarding table entry stored locally based on the updated End.DT SID; Specifically, when an original packet sent by SF with a destination IP address matching the corresponding forwarding table entry is received again, the original packet is encapsulated in SRv6 based on the updated End.DT SID.
11. A message forwarding device, characterized in that, The device includes: Memory, used to store program instructions; A processor is configured to invoke program instructions stored in the memory and execute the steps of the method as described in any one of claims 1-7 according to the obtained program instructions.
12. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions for causing the computer to perform the steps of the method as described in any one of claims 1-7.