Routing method, information processing method and device
The user site egress device receives the path performance information advertised by the gateway and selects a high-quality path, which solves the problem of low service quality when the user site egress device accesses the target object, and improves access speed and user experience.
Patent Information
- Application Number
- CN202310901434.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-20
- Publication Date
- 2025-01-21
AI Technical Summary
When the user's site exit device directly accesses the target object through the Internet, the service quality obtained is not high, resulting in slow access speed and poor user experience.
Through a routing method, the user site egress device receives the identification information, path index and path performance measurement value of the target object advertised by the gateway, and selects the target path to access the target object based on the path performance measurement value, thereby improving service quality.
By selecting a path with better performance to access the target object, the access speed and user experience are significantly improved, and a higher quality of service is provided.
Smart Images

Figure CN119341971A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communications, and in particular to a routing method, an information processing method and a device. Background Art
[0002] With the widespread use of enterprise information technology (IT) architecture and public cloud, more and more enterprises are abandoning traditional closed IT architecture and moving their infrastructure (such as data centers) to the cloud, thereby using open network architecture. To further achieve this goal, the key applications and software systems of enterprises are migrated to the cloud. In this case, enterprises are increasingly relying on SaaS applications provided by application providers, and tend to access SaaS applications from the cloud through the Internet to achieve access to the aforementioned key applications. SaaS is a software delivery model in which software can be used only through the network without going through traditional installation steps. The software and its related data are centrally hosted in the cloud service. Users usually use a streamlined client, generally through a web browser to access and access software as a service. The biggest feature of SaaS is that the software itself is not downloaded to the user's hard drive, but is stored in the provider's cloud or server. Compared with traditional software that needs to be purchased and downloaded, SaaS only requires users to rent software and use it online, which not only greatly reduces the user's purchase risk, but also does not require the download of the software itself, and there is no restriction on device requirements.
[0003] User site egress devices can access the target objects they want to access through the Internet, such as data centers, SaaS applications, etc. However, currently, when user site egress devices directly access the target objects they want to access through the Internet, the service quality they obtain is not high. For example, due to the large Internet traffic, packet loss rate, delay, and jitter, the speed at which user site egress devices access SaaS applications is slow, resulting in a poor user experience.
[0004] Therefore, a solution is urgently needed to solve the above problems. Summary of the invention
[0005] The embodiments of the present application provide a routing method, an information notification method and an apparatus, which can improve the service quality obtained by a user site egress device accessing a target object and improve the access experience.
[0006] In a first aspect, an embodiment of the present application provides a routing method, which can be applied to a first user site egress device. The first user site egress device can receive identification information, a first path index, and a first path performance metric value of a target object announced by a first gateway, wherein the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates the performance of the first path. After the first user site egress device receives the identification information, the first path index, and the first path performance metric value of the target object, it can select a target path for accessing the target object according to the first path performance metric value. In one example, when the performance of the first path is better than the performance of other paths, a path including the first path can be selected as the target path for accessing the target object. The other paths mentioned here can be a path for directly accessing the target object through the first user site egress device, can be other paths for the first gateway to access the target object, or can be a path for other gateways, such as a second gateway, to access the target object. It can be seen that, by utilizing the solution of the embodiment of the present application, the first user site exit device can select the target path for accessing the target object based on the performance of the first path for accessing the target object by the first gateway, so that the selected target path can provide better service quality. Correspondingly, when accessing the target object through the target path, better service quality can be obtained, thereby improving the access experience of accessing the target object.
[0007] In a possible implementation, after the first user site egress device receives the identification information, the first path index, and the first path performance metric value of the target object announced by the first gateway, the correspondence between the identification information of the target object, the path index 1, and the path performance metric value 1 can be saved to facilitate subsequent selection of the target path for accessing the target object based on the correspondence.
[0008] In a possible implementation, the target object is a software as a service (SaaS) application. Using the solution of the embodiment of the present application, a target path with better performance can be selected to access the SaaS application, thereby improving the access experience of the SaaS application, for example, improving the speed of accessing the SaaS application.
[0009] In a possible implementation, the target object is a data center. By using the solution of the embodiment of the present application, the access experience of accessing the data center can be improved.
[0010] In a possible implementation, the identification information of the target object is used to identify the target object, and the identification information of the target object may be a global identification of the target object or other information that can be used to identify the target object. As an example, when the target object is a SaaS application, the identification information of the target object may include an application ID, an application name and / or an application domain name. When the target object is a data center, the identification information of the target object may be an IP address and a tenant identifier of the data center.
[0011] In one possible implementation, the first path index is a path number of the first path. For example, the paths for the first gateway to access the target object may be numbered, with each path corresponding to a number. In another possible implementation, the first path index may be a Multi-Protocol Label Switching (MPLS) label assigned by the first gateway to the first path. In another possible implementation, the first path index may be an Internet Protocol Version 6 Segment Routing (SRv6 SID) assigned by the first gateway to the first path.
[0012] In a possible implementation, when the first path index is SRv6 SID, the node function associated with the SRv6 SID is: the node removes the SRv6 encapsulation and sends the message to the target object according to the outbound interface corresponding to the SRv6 SID. When the target object is a SaaS application, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0013] In a possible implementation, the first gateway may notify the identification information, the first path index, and the first path performance metric value of the aforementioned target object to the first user site export device through the first route. In other words, in one example, when the first site export device receives the identification information, the first path index, and the first path performance metric value of the target object announced by the first gateway, it may receive the first route announced by the first gateway, and the first route includes the identification information of the target object, the first path index, and the first path performance metric value. In this way, the first user site export device can obtain the first path performance metric value based on the first route and further select the target path for accessing the target object based on the first path performance metric value, so as to improve the access experience of accessing the target object.
[0014] In a possible implementation, the first route may include indication information, and the indication information is used to indicate the type of the first path index carried in the first route, and the type of the first path index may be the path number, MPLS label, or SRv6 SID mentioned above. For example, the first route includes a path index type field, and the path index type field carries indication information indicating the type of the first path index. In this case, the first user site egress device may determine the type of the first path index based on the indication information.
[0015] In a possible implementation, the route type field of the first route indicates that the first route is a path performance route associated with the target object. The first user site egress device may determine, based on the route type field, that the first route is used to announce the performance of the path to access the target object. When the target object is a SaaS application, the path performance route may be a SaaS path performance route, and when the target object is a data center, the path performance route may be a data center path performance route.
[0016] In one possible implementation, the first route may be a route based on a software-defined wide area network (SD-WAN) address family or an SD-WAN sub-address family announcement. For example, if the first gateway and the first user site egress device enable the SD-WAN address family, the first route may be a route based on an SD-WAN address family announcement. For another example, if the first gateway and the first user site egress device enable the SD-WAN sub-address family, the first route may be a route based on an SD-WAN sub-address family announcement. In a specific example, if the target object is a SaaS application, the first route is a route based on an SD-WAN address family or an SD-WAN sub-address family announcement.
[0017] In a possible implementation, the first route may be a virtual private network (VPN) route. In a specific example, if the target object is a data center, the first route is a VPN route.
[0018] In a possible implementation, the first user site device may also receive the site identifier of the site to which the first gateway belongs, the application type, and the node identifier (node ID) of the first gateway announced by the first gateway, so that the first user site egress device can obtain richer information. The site identifier of the site to which the first gateway belongs may be the identifier of the gateway site to which the first gateway belongs. The application type may indicate at least one type of traffic quality requirement supported by the target object. The traffic quality requirement may include: optimal, allowed, and default, where the optimal requirement requires the use of the optimal path, the requirement for the quality of service is allowed to be lower than the optimal, and the default indicates that there is no special requirement for the quality of service.
[0019] In a possible implementation, the first path performance metric may include at least one metric indicating the performance of the first path. Considering that delay, packet loss rate, jitter, bandwidth, path status and service experience (quality of experience, QoE) can all reflect the performance of the path 1. Therefore, in one example, the first path performance metric may include one or more of delay, packet loss rate, jitter, bandwidth, path status and QoE. In one example: the path status may be determined, for example, based on performance parameters such as delay, packet loss rate, jitter and bandwidth. In another example, the QoE may be determined, for example, based on performance parameters such as delay, packet loss rate, jitter and bandwidth, and the QoE may be a specific value. The higher the value corresponding to the QoE, the better the performance of the path.
[0020] In a possible implementation, if the first gateway can notify the identification information of the aforementioned target object, the first path index, and the first path performance metric value to the first user site egress device through the first route, the first route may include at least one of a first sub-type length value (Sub-TLV) indicating a transmission delay of the first path, a second Sub-TLV for indicating a packet loss rate of the first path, a third Sub-TLV for indicating a jitter of the first path, a fourth Sub-TLV for indicating a bandwidth of the first path, a fifth Sub-TLV for indicating a path state of the first path, a sixth Sub-TLV for indicating a QoE of the first path, a seventh Sub-TLV for indicating a name of the target object, and an eighth Sub-TLV for indicating a domain name of the target object.
[0021] In a possible implementation, the at least one Sub-TLV may be carried in a Border Gateway Protocol (BGP) path attribute of the first route. For example, the at least one Sub-TLV may be carried in a Metadata Path Attribute or a Tunnel Encapsulation Attribute of the first route.
[0022] In another possible implementation manner, the at least one Sub-TLV may be carried in network layer reachability information (NLRI) of the first route.
[0023] In a possible implementation, the first user site egress device may also receive identification information of the target object, a second path index, and a second path performance metric value notified by the second gateway, the second path index identifying the second path for the second gateway to access the target object, and the second path performance metric value indicating the performance of the second path. Accordingly, when selecting a target path, the first user site egress device may select the target path for accessing the target object based on the first path performance metric value and the second path performance metric value. For example, when the performance of the second path is better than the performance of the first path, the path including the second path is preferably determined as the target path. In this way, the first user site egress device can select a target path with better performance as much as possible, thereby effectively improving the access experience of accessing the target object.
[0024] In a possible implementation, the first gateway and the second gateway may belong to the same gateway site. The first gateway and the second gateway belong to the same site, the gateways of the gateway site constitute a cluster gateway, the cluster gateway may include multiple gateways, and the first gateway and the second gateway may be two gateways in the cluster gateway.
[0025] In a possible implementation, the second gateway may notify the first user site device of the identification information of the target object, the second path index, and the second path performance metric value through the second route. In other words, when the first user site egress device receives the identification information of the target object, the second path index, and the second path performance metric value notified by the second gateway, it may receive the second route notified by the second gateway, and the second route includes the identification information of the target object, the second path index, and the second path performance metric value.
[0026] In a possible implementation, the second path index is: a path number of the second path, an MPLS label assigned by the second gateway to the second path, or an SRv6 SID assigned by the second gateway to the second path. In a possible implementation, when the target object is a SaaS application and the second path index is an SRv6 SID, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0027] In a possible implementation manner, the second route also includes indication information, where the indication information is used to indicate a type of the second path index carried in the second route, where the type is a path number, an MPLS label, or an SRv6 SID.
[0028] In a possible implementation manner, the route type field of the second route indicates that the second route is a path performance route associated with the target object.
[0029] In one possible implementation, the second route is a route announced based on the SD-WAN address family or the SD-WAN sub-address family.
[0030] In a possible implementation, the first user site egress device may also receive identification information of the target object, a third path index, and a third path performance metric value notified by the second user site egress device, wherein the third path index identifies a third path for the second user site egress device to access the target object via the Internet, and the third path performance metric value indicates the performance of the third path. Accordingly, when selecting a target path, the first user site egress device may select a target path for accessing the target object based on the first path performance metric value and the third path performance metric value. For example, based on the first path performance metric value and the third performance metric value, a path with better performance may be selected as the target path.
[0031] In a possible implementation, the second user site egress device may notify the first user site device of the identification information of the target object, the third path index, and the third path performance metric value through a first protocol message. In other words, when the first user site egress device receives the identification information of the target object, the third path index, and the third path performance metric value notified by the second user site egress device, the first protocol message may be received from the second user site egress device, and the first protocol message includes the identification information of the target object, the third path index, and the third path performance metric value.
[0032] In a possible implementation, the first user site egress device and the second user site egress device may belong to the same user site. The user site egress devices of the user site constitute a cluster egress device, which may include multiple user site egress devices, and the first user site egress device and the second user site egress device may be two of the user site egress devices in the cluster egress device. The aforementioned first protocol message may be a protocol message exchanged between user site egress devices between the cluster egress devices.
[0033] In one possible implementation, the first user site egress device accesses the first gateway through an SD-WAN tunnel.
[0034] In a possible implementation manner, the first user site egress device accesses the first gateway through the Internet.
[0035] In a possible implementation, when the first gateway can also access the target object through a fourth path, the first user site egress device can receive the identification information of the target object, the fourth path index, and the fourth path performance metric value notified by the first gateway, the fourth path index identifies the fourth path for the first gateway to access the target object, and the fourth path performance metric value indicates the performance of the fourth path. Accordingly, when selecting a target path, the first user site egress device can select a target path for accessing the target object based on the first path performance metric value and the fourth path performance metric value. For example, based on the first path performance metric value and the fourth performance metric value, select a path with better performance as the target path.
[0036] In a possible implementation, the receiving the identification information of the target object, the fourth path index, and the fourth path performance metric value announced by the first gateway includes: receiving a third route announced by the first gateway, the third route including the identification information of the target object, the fourth path index, and the fourth path performance metric value.
[0037] In a possible implementation, the first user site egress device may also notify the second user site egress device of the identification information of the target object, the fifth path index, and the fifth path performance metric value, wherein the fifth path index identifies the fifth path for the first user site egress device to access the target object through the Internet, and the fifth path performance metric value indicates the performance of the fifth path, so that the second user site egress device can select the target path for accessing the target object according to the fifth path performance metric value when selecting the target path.
[0038] In a possible implementation, the first user site egress device and the second user site egress device can also inform each other of the performance of the path between themselves and the gateway site, so as to better select the target path to access the target object. For example, the first user site egress device and the second user site egress device can inform each other of the performance of the SD-WAN tunnel path between themselves and the first gateway, and for another example, the first user site egress device and the second user site egress device can inform each other of the performance of the SD-WAN tunnel path between themselves and the second gateway.
[0039] In a possible implementation, the first user site egress device may receive a first service message for accessing the target object. The target path index identifying the target path is encapsulated in the first service message to obtain a second service message. After obtaining the second service message, the first user site egress device may send a second service message. The target path index is used to indicate the target path for accessing the target object. By adopting this solution, the target path index for accessing the target path of the target object may be encapsulated in the service message, so that the forwarding device accesses the target object based on the target path, thereby improving the access experience of accessing the target object.
[0040] In a possible implementation, the second service message may adopt generic routing encapsulation (GRE). In this case, the second service message includes a generic routing encapsulation GRE header, and the GRE header includes the target path index.
[0041] In a specific example, when the target path index is an MPLS label, the second service message can be encapsulated using the MPLS in GRE protocol. At this time, the second service message includes an outer Internet Protocol (IP) header, a GRE header, and a payload, the GRE header includes an MPLS label stack, the MPLS label stack includes the target path index, and the payload includes the first service message. In an example, the target path index can be a bottom label of the MPLS label stack.
[0042] In another specific example, when the target path index is an SRv6 SID, the second service message may be encapsulated using the SRv6in GRE protocol, in which case the second service message includes an outer IP header, a GRE header, and a payload, the GRE header includes an SRv6SID list, the SRv6 SID list includes the target path index, and the payload includes the first service message. In one example, the target path index may be the last SID in the SRv6 SID list.
[0043] In a possible implementation, when the target path index is an MPLS label, the second service message can be encapsulated using MPLS in User Datagram Protocol (UDP). At this time, the second service message includes an outer IP header, a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the target path index, the payload includes the first service message, and the MPLS label stack is located between the UDP header and the payload. In one example, the target path index can be a bottom label of the MPLS label stack.
[0044] In a possible implementation, when the target path index is an SRv6 SID, the second service message may be encapsulated using the SRv6in generic network virtualization encapsulation (GENEVE) protocol. At this time, the second service message includes an outer IP header, a GENEVE header, and a payload, the GENEVE header includes an SRv6 SID list, the SRv6 SID list includes the target path index, and the payload includes the first service message. In a specific example, the target path index may be the last SID of the SRv6 SIDlist.
[0045] In a possible implementation, the first user site egress device may receive the first service message, and in the specific implementation, may receive the first service message sent by the second user site device. Specifically, the first user site egress device may receive the third service message sent by the second user site egress device, and the third service message includes the first service message and the second path index. For this case, in one example, if the path from the first user site egress device to the second gateway is reachable, the first user site egress device may determine the second path index as the target path index, and encapsulate the target path index into the first service message, thereby obtaining the second service message, thereby realizing the second path access to the target object through the second gateway. In another example, if the first user site egress device determines that the path to the second gateway is unreachable, the first user site egress device may reselect the target path for accessing the target object, and further encapsulate the target path index into the first service message to obtain the second service message. For example, the first user site egress device selects the first path or the fourth path for accessing the target object through the aforementioned first gateway to access the target object, and further encapsulates the first service message into the first path index or the fourth path index to obtain the second service message.
[0046] In a possible implementation, the third service message may include an IP header and a payload, the payload includes the first service message, and the second path index is included between the IP header and the payload. In this case, the encapsulation form of the third service message is simple, and no GRE or GENEVE is used for encapsulation, which simplifies the encapsulation form of the third service message and simplifies the performance overhead required for transmitting the service message between user sites.
[0047] In another possible implementation, the first user site egress device may receive a first service message sent by a user device such as a user terminal, and further encapsulate the first service message with a target path index of a target path selected by the first user site egress device to obtain a second service message.
[0048] In a possible implementation, when the first user site egress device sends the second service message, the second service message can be sent to the first gateway through a path established between the first user site egress device and the first gateway; or, the second service message can be sent to the second user site egress device to forward the second service message through the second user site egress device.
[0049] In the second aspect, an embodiment of the present application provides an information notification method, which can be applied to a first gateway. The first gateway can obtain a first path performance metric value of a first path for the first gateway to access a target object, and the first path performance metric value indicates the performance of the first path. After the first gateway obtains the first path performance metric value, it can notify the first user site export device of the identification information of the target object, the first path index, and the first path performance metric value, and the first path index identifies the first path. It can be seen that the first gateway can notify the first user site export device of the first path performance metric value of its own access to the target object. In this way, the first user site export device can select a target path to access the target object based on the performance of the first path for the first gateway to access the target object, so that the selected target path can provide a better quality of service. Correspondingly, when accessing the target object through the target path, a better quality of service can be obtained, thereby improving the access experience of accessing the target object.
[0050] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.
[0051] In a possible implementation, the first path index is: a path number, a multi-protocol label switching MPLS label, or an Internet Protocol version 6 segment routing segment identifier SRv6 SID.
[0052] In a possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0053] In a possible implementation, the notifying the first user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: notifying the first user site egress device of a first route, wherein the first route includes the identification information of the target object, the first path index, and the first path performance metric value.
[0054] In a possible implementation manner, the first route further includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.
[0055] In a possible implementation manner, the route type field of the first route indicates that the first route is a path performance route associated with the target object.
[0056] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.
[0057] In a possible implementation manner, the method further includes: notifying the first user site egress device of a site identifier of a site to which the first gateway belongs, an application type, and a node ID of the first gateway.
[0058] In a possible implementation manner, the first path performance metric value includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).
[0059] In a possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.
[0060] In a possible implementation manner, the method further includes: notifying the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value.
[0061] In a possible implementation, the notifying the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: notifying the second user site egress device of a second route, wherein the second route includes the identification information of the target object, the first path index, and the first path performance metric value.
[0062] In a possible implementation manner, the method further includes: notifying the second gateway of identification information of the target object, the first path index, and the first path performance metric value.
[0063] In a possible implementation, the method further includes: obtaining a second path performance metric value of a second path for the first gateway to access a target object, the second path performance metric value indicating the performance of the second path; and notifying the first user site egress device of identification information of the target object, a second path index, and the second path performance metric value, the second path index identifying the second path.
[0064] In a possible implementation, the notifying the first user site egress device of the identification information of the target object, the second path index, and the second path performance metric value includes: notifying the first user site egress device of a third route, wherein the third route includes the identification information of the target object, the second path index, and the second path performance metric value.
[0065] In a possible implementation manner, the method further includes: receiving an encapsulated first service message, wherein an outer layer of the first service message is encapsulated with the first path index; and forwarding the first service message through the first path according to the first path index.
[0066] In a possible implementation manner, the encapsulated first service message includes a generic routing encapsulation GRE header, and the GRE header includes the first path label.
[0067] In one possible implementation, when the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.
[0068] In a possible implementation, when the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.
[0069] In a third aspect, an embodiment of the present application provides a routing device, which may include a transceiver unit and a processing unit; the transceiver unit is used to perform the receiving and / or sending operations performed by the first user site exit device as described in the first aspect above; the processing unit is used to perform operations other than the receiving and / or sending operations performed by the first user site exit device as described in the first aspect above.
[0070] In a specific example: the routing device includes a receiving unit and a processing unit. The receiving unit is used to receive identification information of a target object notified by a first gateway, a first path index, and a first path performance metric value, wherein the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates the performance of the first path; and the processing unit is used to select a target path for accessing the target object according to the first path performance metric value.
[0071] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.
[0072] In a possible implementation, the first path index is: a path number, a multi-protocol label switching MPLS label, or an Internet Protocol version 6 segment routing segment identifier SRv6 SID.
[0073] In a possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0074] In a possible implementation manner, the receiving unit is configured to: receive a first route announced by the first gateway, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.
[0075] In a possible implementation manner, the first route also includes indication information, where the indication information is used to indicate a type of the first path index carried in the first route, where the type is a path number, an MPLS label, or an SRv6 SID.
[0076] In a possible implementation manner, the route type field of the first route indicates that the first route is a path performance route associated with the target object.
[0077] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.
[0078] In a possible implementation manner, the receiving unit is further configured to: receive a site identifier of a site to which the first gateway belongs, an application type, and a node ID of the first gateway notified by the first gateway.
[0079] In a possible implementation manner, the first path performance metric value includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).
[0080] In a possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.
[0081] In a possible implementation, the receiving unit is further used to: receive identification information, a second path index, and a second path performance metric value of the target object announced by the second gateway, the second path index identifies a second path for the second gateway to access the target object, and the second path performance metric value indicates the performance of the second path; the processing unit is used to: select the target path for accessing the target object according to the first path performance metric value and the second path performance metric value.
[0082] In a possible implementation manner, the receiving unit is configured to: receive a second route announced by the second gateway, where the second route includes identification information of the target object, the second path index, and the second path performance metric value.
[0083] In a possible implementation, the receiving unit is further used to: receive identification information, a third path index, and a third path performance metric value of the target object announced by a second user site egress device, wherein the third path index identifies a third path for the second user site egress device to access the target object via the Internet, and the third path performance metric value indicates the performance of the third path; and the processing unit is used to: select a target path for accessing the target object according to the first path performance metric value and the third path performance metric value.
[0084] In one possible implementation, the first user site egress device accesses the first gateway through an SD-WAN tunnel.
[0085] In a possible implementation, the receiving unit is further used to: receive identification information of the target object, a fourth path index, and a fourth path performance metric value notified by the first gateway, the fourth path index identifies a fourth path for the first gateway to access the target object, and the fourth path performance metric value indicates the performance of the fourth path; and the processing unit is used to: select a target path for accessing the target object according to the first path performance metric value and the fourth path performance metric value.
[0086] In a possible implementation manner, the receiving unit is configured to: receive a third route announced by the first gateway, where the third route includes identification information of the target object, the fourth path index, and a fourth path performance metric value.
[0087] In one possible implementation, the receiving unit is further used to: receive a first business message for accessing the target object; the processing unit is further used to encapsulate the first business message with a target path index that identifies the target path to obtain a second business message; the device also includes a sending unit for sending the second business message.
[0088] In a possible implementation, the second service message includes a generic routing encapsulation (GRE) header, and the GRE header includes the target path index.
[0089] In one possible implementation, when the target path index is an MPLS label, the second service message includes a User Datagram Protocol UDP header, an MPLS label stack and a payload, the MPLS label stack includes the target path index, the payload includes the first service message, and the MPLS label stack is located between the UDP header and the payload.
[0090] In a possible implementation, when the target path index is an SRv6 SID, the second service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes an SRv6 segment list SID list, and the SRv6 SID list includes the target path index.
[0091] In a possible implementation, the sending unit is used to: send the second service message to the first gateway through the path established between the first user site egress device and the first gateway; or send the second service message to the second user site egress device to forward the second service message through the second user site egress device.
[0092] In a possible implementation, the receiving unit is used to: receive a third service message from a second user site egress device, the third service message including the first service message and a second path index, the second path index identifying a second path for the second gateway to access the target object; the processing unit is used to: in response to determining that the path to the second gateway is unreachable, encapsulate the first service message with the target path index to obtain the second service message; or, determine the second path index as the target path index, and encapsulate the first service message with the target path index to obtain the second service message.
[0093] In a possible implementation manner, the third service message includes an IP header and a payload, the second path index is located between the IP header and the payload, and the payload includes the first service message.
[0094] In a possible implementation manner, the processing unit is further configured to: save a correspondence between the identification information of the target object, the first path index, and the first path performance metric value.
[0095] In a fourth aspect, an embodiment of the present application provides an information notification device, which may include a transceiver unit and a processing unit; the transceiver unit is used to perform the receiving and / or sending operations performed by the first gateway as described in the second aspect above; the processing unit is used to perform operations other than the receiving and / or sending operations performed by the first gateway as described in the second aspect above.
[0096] In a specific example: the information notification device includes a processing unit and a sending unit. The processing unit is used to obtain a first path performance metric value of a first path for the first gateway to access a target object, wherein the first path performance metric value indicates the performance of the first path; and the sending unit is used to notify the identification information of the target object, a first path index, and the first path performance metric value to a first user site egress device, wherein the first path index identifies the first path.
[0097] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.
[0098] In a possible implementation, the first path index is: a path number, a multi-protocol label switching MPLS label, or an Internet Protocol version 6 segment routing segment identifier SRv6 SID.
[0099] In a possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0100] In a possible implementation manner, the sending unit is configured to: notify the first user site egress device of a first route, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.
[0101] In a possible implementation manner, the first route further includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.
[0102] In a possible implementation manner, the route type field of the first route indicates that the first route is a path performance route associated with the target object.
[0103] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.
[0104] In a possible implementation manner, the sending unit is further configured to: notify the first user site egress device of the site identifier of the site to which the first gateway belongs, the application type, and the node identifier nodeID of the first gateway.
[0105] In a possible implementation manner, the first path performance metric value includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).
[0106] In a possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.
[0107] In a possible implementation manner, the sending unit is further configured to: notify the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value.
[0108] In a possible implementation manner, the sending unit is configured to: notify the second user site egress device of a second route, where the second route includes identification information of the target object, the first path index, and the first path performance metric value.
[0109] In a possible implementation manner, the sending unit is further configured to: notify the second gateway of the identification information of the target object, the first path index, and the first path performance metric value.
[0110] In a possible implementation, the processing unit is further used to: obtain a second path performance metric value of a second path for the first gateway to access the target object, where the second path performance metric value indicates the performance of the second path; the sending unit is further used to notify the first user site egress device of the identification information of the target object, the second path index and the second path performance metric value, where the second path index identifies the second path.
[0111] In a possible implementation manner, the sending unit is configured to: notify the first user site egress device of a third route, where the third route includes identification information of the target object, the second path index, and the second path performance metric value.
[0112] In a possible implementation, the device also includes: a receiving unit, used to receive an encapsulated first business message, the outer layer of the first business message being encapsulated with the first path index; the sending unit is also used to forward the first business message through the first path according to the first path index.
[0113] In a possible implementation manner, the encapsulated first service message includes a generic routing encapsulation GRE header, and the GRE header includes the first path label.
[0114] In one possible implementation, when the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.
[0115] In a possible implementation, when the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.
[0116] In a fifth aspect, an embodiment of the present application provides a communication device, characterized in that it includes: a processor and a memory;
[0117] The memory is used to store instructions; the processor is used to execute the instructions, so that the communication device executes the method described in the first aspect and any one of the first aspect above, or the communication device executes the method described in the second aspect and any one of the second aspect above.
[0118] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, including instructions or a computer program. When the instructions or the computer program are executed on a processor, the method described in the first aspect and any one of the first aspect is implemented, or the method described in the second aspect and any one of the second aspect is implemented.
[0119] In the seventh aspect, an embodiment of the present application provides a computer program product, including a computer program product, which, when running on a processor, implements the method described in the first aspect and any one of the first aspects, or implements the method described in the second aspect and any one of the second aspects.
[0120] In an eighth aspect, an embodiment of the present application provides a communication system, which includes a first user site exit device that executes the method described in the first aspect and any one of the first aspects, and a first gateway that executes the method described in the second aspect and any one of the second aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0121] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0122] Figure 1a A schematic diagram of an exemplary application scenario provided for an embodiment of the present application;
[0123] Figure 1b A schematic diagram of another exemplary application scenario provided for an embodiment of the present application;
[0124] Figure 1c A schematic diagram of another exemplary application scenario provided for an embodiment of the present application;
[0125] Figure 2 A signaling interaction diagram of a routing method provided in an embodiment of the present application;
[0126] Figure 3a A schematic diagram of the structure of MP_REACH_NLRI provided in an embodiment of the present application;
[0127] Figure 3b A schematic diagram of the structure of a sub-TLV1 provided in an embodiment of the present application;
[0128] Figure 3c A schematic diagram of the structure of a sub-TLV2 provided in an embodiment of the present application;
[0129] Figure 3d A schematic diagram of the structure of a sub-TLV3 provided in an embodiment of the present application;
[0130] Figure 3e A schematic diagram of the structure of a sub-TLV4 provided in an embodiment of the present application;
[0131] Figure 3f A schematic diagram of the structure of a sub-TLV5 provided in an embodiment of the present application;
[0132] Figure 3g A schematic diagram of the structure of a sub-TLV6 provided in an embodiment of the present application;
[0133] Figure 3h A schematic diagram of the structure of a sub-TLV7 provided in an embodiment of the present application;
[0134] Figure 3i A schematic diagram of the structure of a sub-TLV8 provided in an embodiment of the present application;
[0135] Figure 3j A schematic diagram of the structure of MP_REACH_NLRI provided in an embodiment of the present application;
[0136] Figure 3k A schematic diagram of the structure of a protocol message provided in an embodiment of the present application;
[0137] Figure 4 A flowchart of a message forwarding method provided in an embodiment of the present application;
[0138] Figure 5a A schematic diagram of the structure of a service message 2 provided in an embodiment of the present application;
[0139] Figure 5bA schematic diagram of the structure of another service message 2 provided in an embodiment of the present application;
[0140] Figure 5c A schematic diagram of the structure of another service message 2 provided in an embodiment of the present application;
[0141] Figure 5d A schematic diagram of the structure of another service message 2 provided in an embodiment of the present application;
[0142] Figure 5e A schematic diagram of the structure of another service message 2 provided in an embodiment of the present application;
[0143] Figure 5f A schematic diagram of the structure of another service message 2 provided in an embodiment of the present application;
[0144] Figure 6 A schematic diagram of an exemplary application scenario provided for an embodiment of the present application;
[0145] Figure 7a A schematic diagram of a flow chart of a routing method provided in an embodiment of the present application;
[0146] Figure 7b A flowchart of an information notification method provided in an embodiment of the present application;
[0147] Figure 8a A schematic diagram of the structure of a communication device provided in an embodiment of the present application;
[0148] Figure 8b A schematic diagram of the structure of a communication device provided in an embodiment of the present application;
[0149] Fig. 9 A schematic diagram of the structure of a communication device provided in an embodiment of the present application;
[0150] Fig.10 A schematic diagram of the structure of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0151] The embodiments of the present application provide a routing method, an information notification method and a device.
[0152] For ease of understanding, possible application scenarios of the embodiments of the present application are first introduced.
[0153] See also Figure 1a , which is a schematic diagram of an exemplary application scenario provided by an embodiment of the present application. Figure 1aAs shown, the user site egress device 110 of the user site can access the target object 130 through a direct internet access (DIA) link 111 or 112 connected to the user site egress device 110. In addition, the gateway in the gateway site has strong capabilities and can provide the user site egress device with a service for accessing the target object. Specifically, Figure 1a As shown: the user site egress device 110 can access the target object 130 through the gateway site. As an example, in Figure 1a In the example, the user site egress device 110 can access the target object 130 through the path 121 connected to the gateway 120 of the gateway site. As another example, the user site egress device 110 can access the target object 130 through the path 122 connected to the gateway 120. The present application does not limit the specific manner in which the user site egress device 110 accesses the gateway 120. For example, the user site egress device 110 can access the gateway 120 through the Internet or through the SD-WAN tunnel.
[0154] In one example, the gateway site may include a gateway 140 in addition to the gateway 120. Figure 1b As shown, Figure 1b Another exemplary application scenario diagram provided for an embodiment of the present application. In this scenario, as an example, the user site egress device 110 can access the target object 130 via a path 141 connected to the gateway 140, and as another example, the user site egress device 110 can access the target object 130 via a path 142 connected to the gateway 140.
[0155] In some embodiments, the gateways 120 and 140 in the gateway site may form a cluster gateway, and the multiple gateways in the cluster gateway may communicate via a protocol within the cluster. In addition, the number of gateways included in the gateway site is not limited to Figure 1b In the two shown, the gateway site may include network devices with other roles in addition to the gateway.
[0156] In another example, the user site may include a user site egress device 150 in addition to the user site egress device 110, such as Figure 1c As shown, Figure 1cAnother exemplary application scenario diagram provided for an embodiment of the present application. The user site egress device 150 can access the target object 130 through the DIA link 151 or 152 connected to the user site egress device 150. The user site egress device 150 can also access the target object 130 through a gateway site. For example, the user site egress device can access the target object 130 through the path 121 or the path 122 connected to the gateway 120. For another example, the user site egress device can access the target object 130 through the path 141 or the path 142 connected to the gateway 140.
[0157] In some embodiments, the user site egress device 110 and the user site egress device 150 in the user site may form a cluster egress device, and multiple user site egress devices in the cluster egress device may communicate via a protocol within the cluster. In addition, the number of user site egress devices included in the user site is not limited to Figure 1c Two shown.
[0158] Figure 1a to Figure 1c The user site egress equipment shown may be, for example, customer-premises equipment (CPE) at a branch site.
[0159] Figure 1a to Figure 1c The target object shown may be, for example, a data center or a SaaS application.
[0160] At present, when accessing a target object, a user site export device can select a path to access the target object in combination with the performance of the path to access the target object detected locally. Taking the user site export device 110 as an example, the user site export device 110 can determine the path to access the target object 130 based on the performance of the DIA link 111 detected by itself, the performance of the DIA link 112, and the performance of the DIA link or SD-WAN tunnel between itself and the gateway site. However, in this way, the determined path may not be the most reasonable path, and accordingly, the service quality obtained when accessing the target object 130 using the selected path is not good. Because the user site export device cannot know the path performance between the gateway site and the target object, the gateway site export device cannot accurately select a better path to access the target object.
[0161] In view of this, the embodiment of the present application provides a routing method and an information notification method, so that the user site egress device can select a path to access the target object in combination with the performance of the path of the gateway to access the target object, so that the selected target path can provide better service quality and improve the access experience. Next, the method provided by the embodiment of the present application is introduced in conjunction with the accompanying drawings.
[0162] See also Figure 2 , this figure is a signaling interaction diagram of a routing method provided in an embodiment of the present application. Figure 2 The routing method 100 shown may include the following S101 - S104 .
[0163] In the embodiments of the present application, Figure 2 The method 100 shown can be applied to Figure 1a or Figure 1b or Figure 1c The application scenario shown.
[0164] When method 100 is applied to Figure 1a In the scenario shown, the gateway 1 can correspond to Figure 1a The gateway 120 shown in the figure, the user site egress device can correspond to Figure 1a As shown in the user site egress device 110, path 1 can be Figure 1a Path 121 or path 122 shown.
[0165] When method 100 is applied to Figure 1b In the application scenario shown, in one example, the gateway 1 may correspond to Figure 1b The gateway 120 shown in the figure, the user site egress device can correspond to Figure 1b As shown in the user site egress device 110, path 1 can be Figure 1b The path 121 or the path 122 shown. In another example, the gateway 1 may correspond to Figure 1b The gateway 140 shown in the figure, the user site egress device can correspond to Figure 1b As shown in the user site egress device 110, path 1 can be Figure 1b Path 141 or path 142 is shown.
[0166] When method 100 is applied to Figure 1c In the application scenario shown, in one example, the gateway 1 may correspond to Figure 1c The gateway 120 shown in the figure, the user site egress device can correspond to Figure 1c As shown in the user site egress device 110 or user site egress device 150, path 1 can be Figure 1c The path 121 or the path 122 shown. In another example, the gateway 1 may correspond to Figure 1c The gateway 140 shown in the figure, the user site egress device can correspond to Figure 1c As shown in the user site egress device 110 or user site egress device 150, path 1 can be Figure 1c Path 141 or path 142 is shown.
[0167] S101: Gateway 1 obtains path performance metric value 1 of path 1 for gateway 1 to access a target object, where the path performance metric value 1 indicates the performance of path 1.
[0168] In one example, the gateway 1 may detect the performance of the path 1, thereby obtaining a path performance metric 1 indicating the performance of the path 1. The embodiment of the present application does not specifically limit the specific implementation method of the gateway 1 detecting the performance of the path 1. In one example, the gateway 1 may detect the performance of the path 1 through a data message or a protocol message, thereby obtaining one or more performance parameters such as delay, packet loss rate, jitter, and bandwidth.
[0169] In an embodiment of the present application, the path performance metric 1 may include at least one metric value for indicating the performance of path 1. Considering that delay, packet loss rate, jitter, bandwidth, path status and QoE can all reflect the performance of path 1. Therefore, in one example, the path performance metric 1 may include one or more of delay, packet loss rate, jitter, bandwidth, path status and QoE. In one example: the path status may be determined, for example, based on performance parameters such as delay, packet loss rate, jitter and bandwidth, and the path status includes but is not limited to: best, good, acceptable and problematic. In another example, the QoE may be determined, for example, based on performance parameters such as delay, packet loss rate, jitter and bandwidth, and the QoE may be a specific value, for example, 75, 80, or 85, etc. The higher the value corresponding to the QoE, the better the performance of the path.
[0170] S102: Gateway 1 notifies identification information of a target object, path index 1 and path performance metric value 1 to user site egress device 1, where path index 1 identifies path 1.
[0171] S103: The user site egress device 1 receives the identification information of the target object, the path index 1 and the path performance metric value 1 notified by the gateway 1.
[0172] After obtaining the path performance metric value 1 of the path 1, the gateway 1 may notify the identification information of the target object, the path index 1 identifying the path 1, and the path performance metric value 1 to the user site egress device 1. Accordingly, the user site egress device 1 may receive the identification information of the target object, the path index 1, and the path performance metric value 1 notified by the gateway 1.
[0173] The identification information of the target object is used to identify the target object. The identification information of the target object may be a global identification of the target object or other information that can be used to identify the target object. As an example, when the target object is a SaaS application, the identification information of the target object may include an application ID, an application name and / or an application domain name. When the target object is a data center, the identification information of the target object may be an IP address and a tenant identification of the data center.
[0174] Path index 1 is used to identify path 1, and path index 1 can be any information that can identify path 1. Path index 1 can be used to identify the outgoing interface for accessing the target object. In other words, the gateway device can determine the outgoing interface for accessing the target object based on path index 1. In one example, the path index 1 can be the path number of path 1. For example, multiple paths for gateway 1 to access the target object can be numbered in sequence, and each path corresponds to a path number. The path number can be a local number or a global number. In another example, the path index 1 can be an MPLS label assigned by gateway 1 to path 1. In another example, the path index 1 can be an SRv6 SID assigned by gateway 1 to path 1.
[0175] When the path index 1 is SRv6 SID, the node function associated with the SRv6 SID is: remove the SRv6 encapsulation and forward the message to the target object through the outbound interface corresponding to the SRv6 SID. In one example, when the target object is a SaaS application, the node function associated with the SRv6 SID is End.DT2SaaSPath, which means: the node removes the SRv6 encapsulation and forwards the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0176] As an example, the gateway 1 may notify the identification information of the aforementioned target object, the path index 1, and the path performance metric value 1 to the user site egress device 1 through a protocol message. The embodiment of the present application does not specifically limit the protocol message. In a specific example, the gateway 1 may notify the identification information of the target object, the path index 1, and the path performance metric value 1 to the user site egress device 1 by notifying the route 1 to the user site egress device 1. In other words, the gateway 1 may notify the route 1 to the user site egress device 1, and the route 1 includes the identification information of the target object, the path index 1, and the path performance metric value 1. Accordingly, the user site egress device 1 may receive the route 1 notified by the gateway 1.
[0177] In one example, gateway 1 may notify route 1 to user site egress device 1 via Multi-Protocol Extensions for BGP (MP-BGP). Gateway 1 may notify BGP message 1 to user site egress device 1. BGP message 1 includes Multi-Protocol reach network layer reachability information (MP_REACH_NLRI), and MP_REACH_NLRI is used to carry route 1. In one example, the structure of MP_REACH_NLRI is as follows: Figure 3a As shown, Figure 3a A schematic diagram of the structure of MP_REACH_NLRI provided in an embodiment of the present application. Figure 3a As shown, the MP_REACH_NLRI includes an address family identifier (AFI), a subsequent address family identifier (SAFI), a next hop information length field, a next hop information field and an NLRI field.
[0178] As an example, the AFI field can identify the network layer protocol, for example, the value of the AFI field is 1 to identify IPv4, the value of the AFI field is 2 to identify IPv6, and the value of the AFI field can refer to the relevant description of the address family number in the request for comments (RFC) 1700, which is not described in detail here. The SAFI field identifies the type of the sub-address family, for example, the value of the SAFI field is 1 to identify unicast, the value of the SAFI field is 2 to identify multicast, the value of the SAFI field is 74 to identify SD-WAN, and the value of the SAFI field is 128 to identify a virtual private network (VPN).
[0179] In an example, the aforementioned next-hop network address may refer to the network address of the next device on the path to the destination device.
[0180] In an example, the NLRI field may include one or more NLRIs, each NLRI includes a length field and an NLRI value field, and the specific content of the NLRI value may be determined according to a combination of the AFI field and the SAFI field.
[0181] The NLRI information field includes a route type field, a length field, and a type specific value field. The route type field is used to indicate the route type, the length field is the length of the type specific value field, and the type specific value field is used to carry the value related to the type corresponding to the route type field. In the embodiment of the present application, the type indicated by the route type field is path performance routing.
[0182] In one example, the route 1 may include indication information 1, which is used to indicate the type of path index 1 carried in the route 1. The type of path index 1 may include the aforementioned path number, MPLS label, or SRv6 SID. In this case, the user site egress device 1 may determine the type of path label 1 identifying the path 1 based on the indication information 1.
[0183] In one example, the route type field of route 1 may indicate that route 1 is a path performance route associated with a target object. When the target object is a SaaS application, the path performance route may be a SaaS path performance route, and when the target object is a data center, the path performance route may be a data center path performance route.
[0184] In one example, an SD-WAN tunnel may be established between the gateway 1 and the user site egress device 1. In a specific example, the gateway 1 and the user site egress device 1 may enable the SD-WAN address family, in which case the route 1 may be a route based on the SD-WAN address family announcement. For example, the aforementioned AFI field indicates the SD-WAN address family. In another specific example, the gateway 1 and the user site egress device 1 may enable the SD-WAN sub-address family, in which case the route 1 may be a route based on the SD-WAN sub-address family announcement. For example, the aforementioned SAFI field indicates the SD-WAN sub-address family.
[0185] In one example, the gateway 1 may also notify other information to the user site egress device 1, so that the user site egress device 1 can obtain more abundant information. As an example, the gateway 1 may notify the user site egress device 1 of the site identifier, application type, and node identifier of the gateway 1 of the site to which the gateway 1 belongs. Among them:
[0186] The site to which the gateway 1 belongs may be the gateway site described by the gateway 1 .
[0187] The application type may indicate at least one type of traffic quality of service requirement supported by the target object. The traffic quality of service requirement may include: optimize, allow, and default. The optimal type requires the use of the optimal path, the service quality requirement is allowed to be lower than the optimal, and the default type indicates no special service quality requirement.
[0188] The node identifier of the gateway 1 may be, for example, the IP address of the gateway 1 or the global identifier of the gateway 1. In an example, the node identifier of the gateway 1 may be used as the identification information of the gateway 1.
[0189] In one example, when gateway 1 notifies path performance metric value 1 to user site egress device 1 by notifying route 1 to user site egress device 1, the route 1 may include a target TLV for carrying several metric values in path performance metric value 1 and information of a target object. For example, the value field of the target TLV may carry the transmission delay of path 1, the packet loss rate of path 1, the bandwidth of path 1, the path status of path 1, the QoE of path 1, the name of the target object, and the domain name of the target object.
[0190] In another example, when the gateway 1 notifies the path performance metric value 1 to the user site egress device 1 by notifying the route 1 to the user site egress device 1, the route 1 may include at least one sub-TLV, and the at least one sub-TLV is used to carry several metric values in the path performance metric value 1 and information of the target object. In this way, the scalability of the route 1 is better. For example, when the path performance metric value 1 notified by the gateway 1 increases or decreases the metric value, the corresponding sub-TLV can be added or deleted in the route 1.
[0191] In one example, if the path performance metric value 1 includes delay, the route 1 may include sub-TLV1, and the sub-TLV1 is used to carry the transmission delay of the path 1. In other words, the sub-TLV1 may indicate the transmission delay of the path 1. The sub-TLV1 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV1 indicates that the sub-TLV1 is used to carry the transmission delay of the path 1. The length field of the sub-TLV1 indicates the length of the value field of the sub-TLV1, and the value field of the sub-TLV1 is used to carry the transmission delay. The structure of the sub-TLV1 can refer to Figure 3b understand, Figure 3b A schematic diagram of the structure of a sub-TLV1 provided in an embodiment of the present application. Figure 3bAs shown, the value of the type field of the sub-TLV1 is TBD1, and TBD1 indicates that the sub-TLV1 is used to carry transmission delay.
[0192] In another example, if the path performance metric value 1 includes packet loss, the route 1 may include a sub-TLV2, and the sub-TLV2 is used to carry the packet loss rate of the path 1. In other words, the sub-TLV2 may indicate the packet loss rate of the path 1. The sub-TLV2 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV2 indicates that the sub-TLV2 is used to carry the packet loss rate. The length field of the sub-TLV2 indicates the length of the value field of the sub-TLV2, and the value field of the sub-TLV2 is used to carry the packet loss rate of the path 1. The structure of the sub-TLV2 can refer to Figure 3c understand, Figure 3c A schematic diagram of the structure of a sub-TLV2 provided in an embodiment of the present application. Figure 3c As shown, the value of the type field of the sub-TLV2 is TBD2, and TBD2 indicates that the sub-TLV2 is used to carry the packet loss rate.
[0193] In another example, if the path performance metric value 1 includes jitter, the route 1 may include a sub-TLV3, and the sub-TLV3 is used to carry the jitter of the path 1. In other words, the sub-TLV3 may indicate the jitter of the path 1. The sub-TLV3 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV3 indicates that the sub-TLV3 is used to carry jitter. The length field of the sub-TLV3 indicates the length of the value field of the sub-TLV3, and the value field of the sub-TLV3 is used to carry the jitter of the path 1. The structure of the sub-TLV3 can refer to Figure 3d understand, Figure 3d A schematic diagram of the structure of a sub-TLV3 provided in an embodiment of the present application. Figure 3d As shown, the value of the type field of the sub-TLV3 is TBD3, and TBD3 indicates that the sub-TLV3 is used to carry jitter.
[0194] In another example, if the path performance metric 1 includes bandwidth, the route 1 may include sub-TLV4, and the sub-TLV4 is used to carry the bandwidth of the path 1. In other words, the sub-TLV4 may indicate the bandwidth of the path 1. The sub-TLV4 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV4 indicates that the sub-TLV4 is used to carry bandwidth. The length field of the sub-TLV4 indicates the length of the value field of the sub-TLV4, and the value field of the sub-TLV4 is used to carry the bandwidth of the path 1. The structure of the sub-TLV4 can refer to Figure 3e understand, Figure 3e A schematic diagram of the structure of a sub-TLV4 provided in an embodiment of the present application. Figure 3e As shown, the value of the type field of the sub-TLV4 is TBD4, and TBD4 indicates that the sub-TLV4 is used to carry bandwidth.
[0195] In another example, if the path performance metric value 1 includes a path state, the route 1 may include a sub-TLV5, and the sub-TLV5 is used to carry the path state of the path 1. In other words, the sub-TLV5 may indicate the path state of the path 1. The sub-TLV5 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV5 indicates that the sub-TLV5 is used to carry the path state. The length field of the sub-TLV5 indicates the length of the value field of the sub-TLV5, and the value field of the sub-TLV5 is used to carry the path state of the path 1. The structure of the sub-TLV5 can refer to Figure 3f understand, Figure 3f A schematic diagram of the structure of a sub-TLV5 provided in an embodiment of the present application. Figure 3f As shown, the value of the type field of the sub-TLV5 is TBD5, and TBD5 indicates that the sub-TLV5 is used to carry the path status.
[0196] In another example, if the path performance metric value 1 includes QoE, the route 1 may include a sub-TLV6, and the sub-TLV6 is used to carry the QoE of the path 1. In other words, the sub-TLV6 may indicate the QoE of the path 1. The sub-TLV6 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV6 indicates that the sub-TLV6 is used to carry QoE. The length field of the sub-TLV6 indicates the length of the value field of the sub-TLV6, and the value field of the sub-TLV6 is used to carry the QoE of the path 1. The structure of the sub-TLV6 can refer to Figure 3g understand, Figure 3g A schematic diagram of the structure of a sub-TLV6 provided in an embodiment of the present application. Figure 3g As shown, the value of the type field of the sub-TLV6 is TBD6, and TBD6 indicates that the sub-TLV6 is used to carry QoE.
[0197] In another example, if the route 1 includes the name of the target object, the route 1 may include sub-TLV7, and sub-TLV6 is used to carry the name of the target object. In other words, the sub-TLV7 may indicate the name of the target object. The sub-TLV7 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV7 indicates that the sub-TLV7 is used to carry the name of the target object. The length field of the sub-TLV7 indicates the length of the value field of the sub-TLV7, and the value field of the sub-TLV7 is used to carry the name of the target object of the route 1. The structure of the sub-TLV7 can refer to Figure 3h understand, Figure 3h A schematic diagram of the structure of a sub-TLV7 provided in an embodiment of the present application. Figure 3h As shown, the value of the type field of the sub-TLV7 is TBD7, and TBD7 indicates that the sub-TLV7 is used to carry the name of the target object.
[0198] In another example, if the route 1 includes the domain name of the target object, the route 1 may include a sub-TLV8, and the sub-TLV8 is used to carry the domain name of the target object. In other words, the sub-TLV8 may indicate the domain name of the target object. The sub-TLV8 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV8 indicates that the sub-TLV8 is used to carry the domain name of the target object. The length field of the sub-TLV8 indicates the length of the value field of the sub-TLV8, and the value field of the sub-TLV8 is used to carry the domain name of the target object of path 1. The structure of the sub-TLV8 can refer to Figure 3i understand, Figure 3i A schematic diagram of the structure of a sub-TLV8 provided in an embodiment of the present application. Figure 3i As shown, the value of the type field of the sub-TLV8 is TBD8, and TBD8 indicates that the sub-TLV8 is used to carry the domain name of the target object.
[0199] In a specific example, the structure of the MP_REACH_NLRI for announcing the route 1 may be as follows: Figure 3j As shown, Figure 3j A schematic diagram of the structure of MP_REACH_NLRI provided in an embodiment of the present application. Figure 3j The NLRI information field of the MP_REACH_NLRI shown includes: a route type field 301, a length field 302, a site ID field 303, an application ID (APP ID) field 304, an application type (APP type) field 305, a path index type field 306, a path index value field 307, an SD-WAN node ID field 308, and a sub-TLVs field 309. Among them:
[0200] The route type field 301 is used to indicate that the route type is a path performance route associated with a target object;
[0201] The site ID field 303 is used to indicate the site identifier of the site to which the gateway 1 belongs;
[0202] The APP ID field 304 is used to identify the target object. Exemplarily, when the target object is a SaaS application, the APP ID field 304 is used to carry the identifier of the SaaS application; when the target object is a data center, the APP ID field 304 is used to carry the IP address and tenant ID of the data center;
[0203] The APP type field 305 is used to indicate the service quality requirement of at least one type of traffic supported by the target object. For example, type 1 indicates default; type 2 indicates allow; type 3 indicates optimize, where the optimal path is required to be used and the service quality requirement is allowed to be lower than the optimal one, and the default indicates that there is no special requirement for the service quality.
[0204] The path index type field 306 is used for the type of the path index. In this solution, the path index type field 306 is used to indicate the type of the path index 1;
[0205] The path index value field 307 is used to carry the path index. In this solution, the path index value field 307 is used to carry the path index 1; the path index value can be used to identify the outbound interface for accessing the target object.
[0206] The SD-WAN node ID field 308 is used to carry the identification of gateway 1, such as the IPv4 or IPv6 address of gateway 1;
[0207] The sub-TLVs field 309 may include one or more sub-TLVs among the aforementioned sub-TLV1 to sub-TLV8.
[0208] In another example, the aforementioned sub-TLVs field 309 may be carried not through the NLRI information field but through a BGP path attribute. For example, the sub-TLVs may be carried through a metadata path attribute (Metadata Path Attribute) or a tunnel encapsulation attribute (Tunnel Encapsulation Attribute).
[0209] In another example, the NLRI information field may not include the sub-TLVs field 309, but include the aforementioned target TLV. In yet another example, the target TLV may not be carried through the NLRI information field, but may be carried through MetadataPath Attribute or Tunnel Encapsulation Attribute.
[0210] S104: User site egress device 1 selects a target path for accessing the target object according to path performance metric value 1.
[0211] After receiving the identification information, path index 1, and path performance metric value 1 of the target object notified by the gateway 1, the user site egress device 1 may select a target path for accessing the target object based on the path index metric value 1. In a specific example, the user site egress device 1 may save the corresponding relationship between the identification information, path index 1, and path performance metric value 1 of the target object, so as to select the target path for accessing the target object based on the corresponding relationship later.
[0212] In one example, the user site egress device 1 can obtain a path performance metric value 1' for the user site egress device 1 to access the target object through a path 1' including the path 1 based on the path performance metric value 1 and the path performance metric value of the link between the user site egress device 1 and the gateway 1, thereby selecting a target path for accessing the target object based on the path performance metric value 1'. For example, the user site egress device 1 can select a target path for accessing the target object based on the path performance metric value 1' and the path performance metric values of other paths for the user site device 1 to access the target object, for example, selecting a path with the best performance as the target path. The path 1' includes the link between the user site egress device 1 and the gateway 1 and the path 1. The link between the user site egress device 1 and the gateway 1 can be an Internet link or an SD-WAN tunnel.
[0213] From the above description, it can be seen that by utilizing the solution of the embodiment of the present application, the user site export device 1 can select the target path for accessing the target object based on the performance of the path 1 for accessing the target object by the gateway 1, so that the selected target path can provide better service quality. Accordingly, when accessing the target object through the target path, better service quality can be obtained, thereby improving the access experience of accessing the target object.
[0214] In one example, for example, when the method 100 is applied to Figure 1b In the application scenario shown, the user site egress device 1 can also receive the identification information of the target object, the path index 2 and the path performance metric 2 notified by the gateway 2. The path index 2 identifies the path 2 for the gateway 2 to access the target object, and the path performance metric 2 indicates the performance of the path 2. Regarding the gateway 2 and the path 2, in one example, if the gateway 1 corresponds to Figure 1b The gateway 120 shown in FIG. 1 , the gateway 2 may correspond to Figure 1b The gateway 140 shown, accordingly, path 2 may correspond to Figure 1b Path 141 or path 142 shown. In another example, if gateway 1 corresponds to Figure 1b The gateway 140 shown, the gateway 2 can correspond to Figure 1bThe gateway 120 shown, accordingly, path 2 may correspond to Figure 1b Path 121 or path 122 shown.
[0215] In an embodiment of the present application, the gateway 2 may, for example, notify the identification information of the target object, the path index 2, and the path performance metric 2 to the user site egress device 1 through a protocol message. In a specific example, the gateway 2 may notify the route 2 to the user site egress device 1, and the route 2 includes the identification information of the target object, the path index 2, and the path performance metric 2.
[0216] For the identification information of the target object, please refer to the relevant description above, and no repeated description will be given here.
[0217] In one example, the gateway 2 may detect the performance of the path 2, thereby obtaining a path performance metric 2 indicating the performance of the path 2. The embodiment of the present application does not specifically limit the specific implementation method of the gateway 2 detecting the performance of the path 2. In one example, the gateway 2 may detect the performance of the path 2 through a data message or a protocol message.
[0218] In the embodiment of the present application, similar to the path performance metric value 1, the path performance metric value 2 may include at least one metric value for indicating the performance of the path 2. Considering that delay, packet loss rate, jitter, bandwidth, path status, and QoE can all reflect the performance of the path 1. Therefore, in one example, the path performance metric value 2 may include one or more of delay, packet loss rate, jitter, bandwidth, path status, and QoE.
[0219] Path index 2 is used to identify path 2, and path index 2 can be any information that can identify path 2. In one example, the path index 2 can be the path number of path 2. For example, multiple paths for gateway 2 to access the target object can be numbered in sequence, and each path corresponds to a path number. In another example, the path index 2 can be an MPLS label assigned by gateway 2 to path 2. In another example, the path index 2 can be an SRv6 SID assigned by gateway 2 to path 2.
[0220] When the path index 2 is SRv6 SID, the node function associated with the SRv6 SID is: the node removes the SRv6 encapsulation and forwards the message to the target object through the outbound interface corresponding to the SRv6 SID. In an example, when the target object is a SaaS application, the node function associated with the SRv6 SID is End.DT2SaaSPath, which means: the node removes the SRv6 encapsulation and forwards the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0221] In one example, the route 2 may include indication information 2, which is used to indicate the type of path index 2 carried in the route 2. The type of path index 2 may include the aforementioned path number, MPLS label, or SRv6 SID. In this case, the user site egress device 1 may determine the type of path label 2 identifying the path 2 based on the indication information 2.
[0222] In one example, the route type field of route 2 may indicate that route 2 is a path performance route associated with a target object. When the target object is a SaaS application, the path performance route may be a SaaS path performance route, and when the target object is a data center, the path performance route may be a data center path performance route.
[0223] In one example, an SD-WAN tunnel may be established between the gateway 2 and the user site egress device 1. In a specific example, the gateway 2 and the user site egress device 1 may enable the SD-WAN address family, in which case the route 2 may be a route based on the SD-WAN address family announcement. For example, the aforementioned AFI field indicates the SD-WAN address family. In another specific example, the gateway 2 and the user site egress device 1 may enable the SD-WAN sub-address family, in which case the route 2 may be a route based on the SD-WAN sub-address family announcement. For example, the aforementioned SAFI field indicates the SD-WAN sub-address family.
[0224] In one example, the gateway 2 may also notify other information to the user site egress device 1, so that the user site egress device 1 can obtain more abundant information. As an example, the gateway 2 may notify the user site egress device 1 of the site identifier, application type, and node identifier of the site to which the gateway 2 belongs. Among them:
[0225] The site to which the gateway 2 belongs may be the gateway site described by the gateway 2 .
[0226] The application type may indicate the service quality requirement of at least one type of traffic supported by the target object. For the application type, reference may be made to the related description in the foregoing text, and no repetitive description is given here.
[0227] The node identifier of the gateway 2 may be, for example, the IP address of the gateway 2 or the global identifier of the gateway 2. In an example, the node identifier of the gateway 2 may be used as the identification information of the gateway 2.
[0228] In the embodiment of the present application, when the gateway 2 notifies the path performance metric value 2 to the user site egress device 1 by notifying the route 2 to the user site egress device 1, the route 2 may include at least one sub-TLV, and the at least one sub-TLV is used to carry several metric values in the path performance metric value 2 and information of the target object. For the at least one sub-TLV, reference may be made to the description of sub-TLV1 to sub-TLV8 in the foregoing text, and no repeated description is given here.
[0229] When the user site egress device 1 receives the identification information of the target object, the path index 2, and the path performance metric value 2 announced by the gateway 2, the target path for accessing the target object can be selected based on the path index metric value 1 and the path index metric value 2. In one example, the user site egress device 1 can obtain the path performance metric value 1' for the user site egress device 1 to access the target object through the path 1' including the path 1 according to the path performance metric value 1 and the path performance metric value of the link between the user site egress device 1 and the gateway 1, and obtain the path performance metric value 2' for the user site egress device 1 to access the target object through the path 2' including the path 2 according to the path performance metric value 2 and the path performance metric value of the link between the user site egress device 1 and the gateway 2. Further, the user site egress device 1 can select the target path for accessing the target object based on the path performance metric value 1' and the path performance metric value 2'.
[0230] In one example, the user site egress device 1 may select a target path from path 1' and path 2' based on the path performance metric value 1' and the path performance metric value 2'. For example, the path with better performance between path 1' and path 2' is selected as the target path. Among them, the path 1' includes the link between the user site egress device 1 and the gateway 1 and the path 1. The path 2' includes the link between the user site egress device 1 and the gateway 2 and the path 2. The link between the user site egress device 1 and the gateway 1 may be an Internet link or an SD-WAN tunnel, and the link between the user site egress device 1 and the gateway 2 may be an Internet link or an SD-WAN tunnel.
[0231] In another example, the user site egress device 1 may select a target path for accessing the target object based on the path performance metric value 1', the path performance metric value 2', and the path performance metric values of other paths for the user site device 1 to access the target object, for example, selecting a path with the best performance as the target path.
[0232] In one example, for example, when the method 100 is applied to Figure 1c In the application scenario shown, the user site egress device 1 can also receive identification information of the target object, path index 3 and path performance metric value 3 notified by the user site egress device 2, the path index 3 identifies the path 3 for the user site egress device 2 to access the target object through the Internet, and the path performance metric value 3 indicates the performance of the path 3. The path 2 can also be understood as the path for the user site egress device 2 to access the target object through its own DIA link.
[0233] Regarding the user site egress device 2 and path 3, in one example, if the user site egress device 1 corresponds to Figure 1c The user site egress device 110 shown in FIG. 1 , the user site egress device 2 may correspond to Figure 1c The user site egress device 150 shown in FIG. 1 , accordingly, the path 3 may correspond to Figure 1c In another example, if the user site egress device 1 corresponds to Figure 1c The user site egress device 150 shown in FIG. 1 , the user site egress device 2 may correspond to Figure 1c The user site egress device 110 shown in FIG. 1 , accordingly, the path 3 may correspond to Figure 1c Path 111 or 112 is shown.
[0234] As before for Figure 1c It can be seen from the description that in one example, the user site egress device 1 and the user site egress device 2 can be located at the same user site, and the user egress devices in the same user site can constitute a cluster egress device. In one example, the user site egress device 2 can notify the user site egress device 1 of the identification information of the aforementioned target object, the path index 3, and the path performance metric value 3 through the cluster protocol. For example, the user site egress device 2 can send a protocol message 1 to the user site egress device 1, and the protocol message 1 includes the identification information of the target object, the path index 3, and the path performance metric value 3. Accordingly, the user site egress device 1 can receive the protocol message 1 sent by the user site egress device 2.
[0235] In the embodiment of the present application, similar to the path performance metric value 1, the path performance metric value 3 may include at least one metric value for indicating the performance of the path 3. Considering that delay, packet loss rate, jitter, bandwidth, path status, and QoE can all reflect the performance of the path 1. Therefore, in one example, the path performance metric value 3 may include one or more of delay, packet loss rate, jitter, bandwidth, path status, and QoE.
[0236] Path index 3 is used to identify path 3, and path index 3 can be any information that can identify path 3. In one example, the path index 3 can be the path number of path 3. For example, multiple paths for the user site egress device 2 to access the target object can be numbered in sequence, and each path corresponds to a path number. In another example, the path index 3 can be the MPLS label assigned by the user site egress device 2 to the path 3. In another example, the path index 3 can be the SRv6 SID assigned by the user site egress device 2 to the path 3.
[0237] When the path index 3 is SRv6 SID, the node function associated with the SRv6 SID is: the node removes the SRv6 encapsulation and forwards the message to the target object through the outbound interface corresponding to the SRv6 SID. In one example, when the target object is a SaaS application, the node function associated with the SRv6 SID is End.DT2SaaSPath, which means: the node removes the SRv6 encapsulation and forwards the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0238] In one example, the protocol message 1 may include indication information 3, and the indication information 3 is used to indicate the type of path index 3. Among them, the type of path index 3 may include the path number, MPLS label or SRv6SID mentioned above. In this case, the user site export device 1 can determine the type of path label 3 that identifies the path 3 based on the indication information 3. In an example, the user site export device 2 can also notify other information to the user site export device 1, so that the user site export device 1 can obtain richer information. As an example, the user site export 2 can notify the user site export device 1 of the site identifier of the site to which the user site export device 2 belongs, the application type and the node identifier of the user site export device 2. Among them:
[0239] The site to which the user site egress device 2 belongs may be the user site described by the user site egress device 2 .
[0240] The application type may indicate the service quality requirement of at least one type of traffic supported by the target object. For the application type, reference may be made to the related description in the foregoing text, and no repetitive description is given here.
[0241] The node identifier of the user site egress device 2 may be, for example, an IP address of the user site egress device 2 or a global identifier of the user site egress device 2 .
[0242] In the embodiment of the present application, when the user site egress device 2 notifies the path performance metric value 3 to the user site egress device 1 by sending a protocol message 1 to the user site egress device 1, the protocol message 1 may include at least one sub-TLV, and the at least one sub-TLV is used to carry several metric values in the path performance metric value 3 and information of the target object. For the at least one sub-TLV, reference may be made to the description of sub-TLV1 to sub-TLV8 in the foregoing text, and no repeated description is given here.
[0243] In a specific example, the structure of the protocol message 1 can be as follows: Figure 3k As shown, Figure 3k A schematic diagram of the structure of a protocol message provided in an embodiment of the present application. Figure 3k The protocol message shown includes: a message type field 401, a length field 402, a site ID field 403, an application ID (APP ID) field 404, an application type (APP type) field 405, a path index type field 406, a path index value field 40 / 7, an SD-WAN node ID field 408, and a sub-TLVs field 409. Among them:
[0244] The message type field 401 is used to indicate the message type of the protocol message 1. In one example, when the target object is a SaaS application, the message type is SaaS path information (path information).
[0245] The site ID field 403 is used to indicate the site identifier of the site to which the user site egress device 2 belongs, for example, the system IP (system IP) of the site is used;
[0246] The SD-WAN node ID field 408 is used to carry the identification of the user site egress device 2, for example, the IP address of the user site egress device 2;
[0247] The meaning of the APP ID field 404 is the same as that of the aforementioned APP ID field 304, and will not be repeated here;
[0248] The meaning of the APP type field 405 is the same as that of the aforementioned APP type field 305, and will not be repeated here;
[0249] The meaning of the path index type field 406 is similar to that of the aforementioned path index type field 306, except that the path index type field 306 is used to carry the type of path index 1, and the path index type field 406 is used to indicate the type of path index 3;
[0250] The meaning of the path index value field 407 is similar to that of the aforementioned path index value field 307, except that the path index value field 307 is used to carry the path index 1, while the path index value field 407 is used to carry the path index 3;
[0251] The meaning of the sub-TLVs field 409 is the same as that of the aforementioned sub-TLVs field 309, and may also include one or more sub-TLVs among the aforementioned sub-TLV1 to sub-TLV8.
[0252] When the user site export device 1 receives the identification information of the target object, the path index 3 and the path performance metric value 3 announced by the user site export 2, the target path for accessing the target object can be selected based on the path index metric value 1 and the path index metric value 3. In one example, the user site export device 1 can obtain the path performance metric value 1' for the user site export device 1 to access the target object through the path 1' including the path 1 based on the path performance metric value 1 and the path performance metric value of the link between the user site export device 1 and the gateway 1. Further, the user site export device 1 can select the target path for accessing the target object based on the path performance metric value 1' and the path performance metric value 3. For example, the path with better performance between path 1' and path 3 is selected as the target path. Wherein, regarding the path 1', please refer to the relevant description part above, and no repeated description is made here.
[0253] In one example, gateway 1 can access the target object through multiple paths. For example, in addition to accessing the target object through path 1, gateway 1 can also access the target object through path 4. Figure 1aIt is understood that the gateway 120 can access the target object through the path 121 (corresponding to the path 1) and the path 122 (corresponding to the path 4). In this scenario, the gateway 1 can obtain the path performance metric value 4 of the path 4, and notify the identification information of the target object, the path index 4 and the path performance metric value 4 to the user site egress device 1. Accordingly, the user site egress device 1 can receive the identification information of the target object, the path index 4 and the path performance metric value 4 notified by the gateway 1.
[0254] In the embodiment of the present application, the gateway 1 may, for example, notify the identification information of the target object, the path index 4, and the path performance metric value 4 to the user site egress device 1 through a protocol message. In a specific example, the gateway 1 may notify the route 3 to the user site egress device 1, and the route 3 includes the identification information of the target object, the path index 4, and the path performance metric value 4.
[0255] In the embodiment of the present application, similar to the path performance metric value 1, the path performance metric value 4 may include at least one metric value for indicating the performance of the path 4. Considering that delay, packet loss rate, jitter, bandwidth, path status and QoE can all reflect the performance of the path 1. Therefore, in one example, the path performance metric value 4 may include one or more of delay, packet loss rate, jitter, bandwidth, path status and QoE.
[0256] Path index 4 is used to identify path 4, and path index 4 may be any information that can identify path 4. In one example, path index 4 may be a path number of path 4. In another example, path index 4 may be an MPLS label assigned by gateway 1 to path 4. In another example, path index 4 may be an SRv6SID assigned by gateway 1 to path 4.
[0257] When the path index 4 is SRv6 SID, the node function associated with SRv6 SID4 is: the node removes the SRv6 encapsulation and forwards the message to the target object through the outbound interface corresponding to the SRv6 SID. In one example, when the target object is a SaaS application, the node function associated with the SRv6 SID is End.DT2SaaSPath, which means: the node removes the SRv6 encapsulation and forwards the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0258] In one example, the route 3 may include indication information 4, which is used to indicate the type of the path index 4 carried in the route 3. The type of the path index 4 may include the aforementioned path number, MPLS label or SRv6 SID. In this case, the user site egress device 1 may determine the type of the path label 4 identifying the path 4 based on the indication information 4.
[0259] In one example, the route type field of route 3 may indicate that route 3 is a path performance route associated with a target object. When the target object is a SaaS application, the path performance route may be a SaaS path performance route, and when the target object is a data center, the path performance route may be a data center path performance route.
[0260] In one example, an SD-WAN tunnel may be established between the gateway 1 and the user site egress device 1. In a specific example, the gateway 1 and the user site egress device 1 may enable the SD-WAN address family, in which case the route 3 may be a route based on the SD-WAN address family announcement. For example, the aforementioned AFI field indicates the SD-WAN address family. In another specific example, the gateway 1 and the user site egress device 1 may enable the SD-WAN sub-address family, in which case the route 3 may be a route based on the SD-WAN sub-address family announcement. For example, the aforementioned SAFI field indicates the SD-WAN sub-address family.
[0261] In an example, the gateway 1 may also notify other information to the user site egress device 1 through the route 3, so that the user site egress device 1 can obtain more abundant information. As an example, the gateway 1 may notify the user site egress device 1 of the site identifier, application type, and node identifier of the site to which the gateway 1 belongs through the route 3.
[0262] In the embodiment of the present application, when the gateway 1 notifies the path performance metric value 4 to the user site egress device 1 by notifying the route 3 to the user site egress device 1, the route 3 may include at least one sub-TLV, and the at least one sub-TLV is used to carry several metric values in the path performance metric value 4 and information of the target object. For the at least one sub-TLV, reference may be made to the description of sub-TLV1 to sub-TLV8 in the foregoing text, and no repeated description is given here.
[0263] When the user site egress device 1 receives the identification information of the target object, the path index 4, and the path performance metric value 4 announced by the gateway 1, the target path for accessing the target object can be selected based on the path index metric value 1 and the path index metric value 4. In an example, the user site egress device 1 can obtain the path performance metric value 1' for the user site egress device 1 to access the target object through the path 1' including the path 1 according to the path performance metric value 1 and the path performance metric value of the link between the user site egress device 1 and the gateway 1, and obtain the path performance metric value 2' for the user site egress device 1 to access the target object through the path 4' including the path 4 according to the path performance metric value 4 and the path performance metric value of the link between the user site egress device 1 and the gateway 1. Further, the user site egress device 1 can select the target path for accessing the target object based on the path performance metric value 1' and the path performance metric value 4'.
[0264] In one example, the user site egress device 1 may select a target path from path 1' and path 4' based on the path performance metric value 1' and the path performance metric value 4'. For example, a path with better performance between path 1' and path 4' is selected as the target path. The path 4' includes a link between the user site egress device 1 and the gateway 1 and the path 4. For the path 1', reference may be made to the relevant description above, and no repetitive description is given here.
[0265] In another example, the user site egress device 1 may select a target path for accessing the target object based on the path performance metric value 1', the path performance metric value 4', and the path performance metric values of other paths for the user site device 1 to access the target object, for example, selecting a path with the best performance as the target path.
[0266] In one example, in addition to notifying the identification information, path index 1 and path performance metric value 1 of the target object to the user site export device 1, the gateway 1 may also notify the identification information, path index 1 and path performance metric value 1 of the target object to the user site export device 2, so that the user site export device 2 can select the target path to access the target object based on the path performance metric value 1. In a specific example, the gateway 1 may notify the route 1 to the user site export device 2, thereby notifying the identification information, path index 1 and path performance metric value 1 of the target object to the user site export device 2. For the route 1, please refer to the relevant description part of the previous text, and no repeated description is made here.
[0267] In another example, in addition to notifying the identification information, path index 4 and path performance metric value 4 of the target object to the user site export device 1, the gateway 1 may also notify the identification information, path index 4 and path performance metric value 4 of the target object to the user site export device 2, so that the user site export device 2 selects the target path to access the target object based on the path performance metric value 1 and the path performance metric value 4. In a specific example, the gateway 1 may notify the route 3 to the user site export device 2, thereby notifying the identification information, path index 4 and path performance metric value 4 of the target object to the user site export device 2. For the route 3, please refer to the relevant description part of the previous text, and no repeated description is made here.
[0268] Similarly, in addition to notifying the identification information, path index 2 and path performance metric value 2 of the target object to the user site export device 1, the gateway 2 can also notify the identification information, path index 2 and path performance metric value 2 of the target object to the user site export device 2, so that the user site export device 2 can select the target path to access the target object based on the path performance metric value 1 and the path performance metric value 2. In a specific example, the gateway 2 can notify the route 2 to the user site export device 2, thereby notifying the identification information, path index 2 and path performance metric value 2 of the target object to the user site export device 2. Regarding the route 2, please refer to the relevant description part of the previous text, and no repeated description is made here.
[0269] In addition, the user site egress device 1 may also notify the user site egress device 2 of the identification of the target object, the path index 5, and the path performance metric value 5, so that the user site egress device 2 can select the target path to access the target object based on the path performance metric value 1 and the path performance metric value 5. In a specific example, the user site egress device 1 may send a protocol message 2 to the user site egress device 2, thereby notifying the user site egress device 2 of the identification information, the path index 5, and the path performance metric value 5 of the target object. Among them: the path index 5 is used to identify the path 5 for the user site egress device 1 to access the target object through the Internet, and the path performance metric value 5 is used to indicate the performance of the path 5. Regarding the path index 5, please refer to the description of the path index 3 in the previous text, regarding the path performance metric value 5, please refer to the relevant description of the path performance metric value 3 in the previous text, and regarding the protocol message 2, please refer to the description of the protocol message 1 in the previous text, and no repeated description is made here.
[0270] In addition, the user site egress device 1 and the user site egress device 2 can also inform each other of the performance of the path between themselves and the gateway site. For example, the user site egress device 1 and the user site egress device 2 can inform each other of the performance of the path between themselves and the gateway 1, and for another example, the user site egress device 1 and the user site egress device 2 can inform each other of the performance of the path between themselves and the gateway 2.
[0271] Next, in conjunction with the accompanying drawings, the operations performed by the user site egress device 1 in the traffic forwarding phase are described. Figure 4 , which is a flow chart of a message forwarding method provided in an embodiment of the present application. Figure 4 The method 200 shown may include the following S201 - S203 .
[0272] S201: User site egress device 1 receives service message 1 for accessing a target object.
[0273] In the embodiment of the present application, the service message 1 may be a message sent by a user device for accessing a target object. The service message 1 may include a source IP address, a destination IP address, and a payload. The source IP address may be an IP address of the user device, and the destination IP address may be an IP address of the target object.
[0274] In an example, a user site egress device 1 may receive a service message 1 sent by a user device, such as a user terminal.
[0275] In another example, the user site egress device 1 may receive a service message 1 sent by the user site device 2. Specifically, the user site egress device 1 may receive a service message 3 sent by the user site egress device 2, wherein the service message 3 includes the service message 1 and the path index 2.
[0276] In a specific example, the service message 3 may be encapsulated using GRE. In this case, the service message 3 includes a GRE header and a payload, the GRE header includes the path index 2, and the payload includes the service message 1. When the path index 2 is an MPLS label, the service message 3 may be encapsulated using the MPLS in GRE protocol, the GRE header of the service message 3 includes an MPLS label stack, and the MPLS label stack includes the path index 2. When the path index 2 is an SRv6 SID, the service message 2 is encapsulated using the SRv6 in GRE protocol, the GRE header of the service message 3 includes an SRv6 SID list, and the SRv6 SID list includes the path index 2. In an embodiment of the present application, the format of the GRE header may be in accordance with the standard format of the GRE header included in request for comments (RFC) 1701.
[0277] In another specific example, when the path index 2 is an MPLS label, the service message 3 can be encapsulated using MPLS in UDP. In this case, the service message 3 includes a UDP header, an MPLS label stack, and a payload, the MPLS label stack includes the path index 2, the payload includes the service message 1, and the MPLS label stack is located between the UDP header and the payload.
[0278] In another specific example, when the path index 2 is an SRv6 SID, the service message 3 may be encapsulated using the SRv6 in GENEVE protocol. In this case, the service message 3 includes a GENEVE header and a payload, the GENEVE header includes an SRv6 SID list, the SRv6 SID list includes the path index 2, and the payload includes the service message 1.
[0279] In another specific example, the service message 3 may include an IP header and a payload, the payload includes the service message 1, and the IP header and the payload include a path index 2. In this case, the encapsulation form of the service message 3 is simple, and no GRE or GENEVE is used for encapsulation, which simplifies the encapsulation form of the service message 3 and also simplifies the performance overhead required for transmitting the service message between user sites.
[0280] S202: The user site egress device 1 encapsulates the target path index of the target path for the service message 1 to obtain the service message 2.
[0281] In some embodiments, if the user site device 1 receives a service message 1 from a user device, the user site device 1 may encapsulate the target path index of the selected target path for the service message 1 to obtain the service message 2, wherein the service message 1 may serve as the payload of the service message 2. The target path index mentioned here may be an index of a path for accessing a target object by gateway 1 or gateway 2, for example, the aforementioned path index 1, path index 2, or path index 4. The target path index mentioned here may also be an index of a path for accessing a target object by the user site egress device 2 through the Internet, for example, the aforementioned path index 3.
[0282] In an example, the service message 2 may be encapsulated using GRE. Figure 5a To understand, Figure 5a A schematic diagram of the structure of a service message 2 provided in an embodiment of the present application. Figure 5a As shown, the service message 2 includes a GRE header 501 and a payload 502, the GRE header 501 includes the target path index, and the payload 502 includes the service message 1, wherein the service message 1 includes a source IP address, a destination IP address and a payload.
[0283] In a specific example, when the target path index is an MPLS label, the service message 2 may be encapsulated using the MPLS in GRE protocol. Figure 5b To understand, Figure 5b A schematic diagram of the structure of another service message 2 provided in an embodiment of the present application. Figure 5b As shown, the service message 2 includes an outer IP header 503, a GRE header 504 and a payload 505, the GRE header 504 includes an MPLS label stack, the MPLS label stack includes the target path index, and the payload 505 includes the service message 1. In an example, the target path index may be a bottom label of the MPLS label stack.
[0284] In another specific example, when the target path index is SRv6 SID, the service message 2 can be encapsulated using the SRv6 in GRE protocol. Figure 5c To understand, Figure 5c A schematic diagram of the structure of another service message 2 provided in an embodiment of the present application. Figure 5cAs shown, the service message 2 includes an outer IP header 506, a GRE header 507 and a payload 508, the GRE header 507 includes an SRv6 SID list, the SRv6 SID list includes the target path index, and the payload 508 includes the service message 1. In an example, the target path index may be the last SID in the SRv6 SID list.
[0285] In another example, when the target path index is an MPLS label, the service message 2 may be encapsulated using MPLS in UDP. Figure 5d To understand, Figure 5d A schematic diagram of the structure of another service message 2 provided in an embodiment of the present application. Figure 5d As shown: the service message 2 includes an outer IP header 509, a UDP header 510, an MPLS label stack 511 and a payload 512, the MPLS label stack 511 includes the target path index, the payload 512 includes the service message 1, and the MPLS label stack 511 is located between the UDP header 510 and the payload 512. In an example, the target path index may be a bottom label of the MPLS label stack 511.
[0286] In another example, when the target path index is SRv6 SID, the service message 2 may be encapsulated using the SRv6 in GENEVE protocol. Figure 5e To understand, Figure 5e A schematic diagram of the structure of another service message 2 provided in an embodiment of the present application. Figure 5e As shown: the service message 2 includes an outer IP header 513, a GENEVE header 514 and a payload 515, the GENEVE header 515 includes an SRv6 SID list, the SRv6 SID list includes the target path index, and the payload 515 includes the service message 1. In a specific example, the target path index may be the last SID in the SRv6 SID list.
[0287] In another example, if the target path index is an index of a path for accessing the target object through the Internet by the user site egress device 2, then in order to reduce the performance overhead required for transmitting the service message between the user sites, the encapsulation of the service message 2 can also be adopted. Figure 5f The package shown. Figure 5f A schematic diagram of the structure of another service message 2 provided in an embodiment of the present application. Figure 5fAs shown, the service message 2 may include an IP header 516 and a payload 517 , the payload includes the service message 1 , and a target path index is included between the IP header 516 and the payload 517 .
[0288] In other embodiments, if the user site egress device 1 receives the service message 3 from the user site egress device 2, as described above, the service message 3 includes the path index 2. For this case, in one example, if the path from the user site egress device 1 to the gateway 2 is reachable, the user site egress device 1 can determine the path index 2 as the target path index, and encapsulate the target path index into the service message 1, thereby obtaining the service message 2, thereby accessing the target object through the path 2 of the gateway 2. In another example, if the user site egress device 1 determines that the path to the gateway 2 is unreachable, the user site egress device 1 can reselect the target path for accessing the target object, and further encapsulate the target path index into the service message 1, to obtain the service message 2. For example, the user site egress device 1 selects the path 1 or the path 4 for accessing the target object through the aforementioned gateway 1 to access the target object, and further encapsulates the path index 1 or the path index 4 into the service message 1, to obtain the service message 2.
[0289] S203: The user site egress device 1 sends the service message 2.
[0290] In one example, if the target path index is path index 2, the user site export device 1 can send the service message 2 to the gateway 2. Correspondingly, after receiving the service message 2, the gateway 2 can forward the service message 1 through the path corresponding to the path index 2, thereby accessing the target object through the path 2. In a specific example, the gateway 2 can forward the service message 1 through the output interface corresponding to the path index 2. In another example, if the target path index is path index 2, and the performance of the path between the user site export device 1 and the gateway 2 is inferior to the performance of the path between the user site export device 2 and the gateway 2, the user site export device 1 can send the service message 2 to the user site export device 2, so that the user site export device 2 forwards the service message 2.
[0291] In one example, if the target path index is path index 1 or path index 4, the user site export device 1 can send the service message 2 to the gateway 1. Accordingly, after receiving the service message 2, the gateway 1 can forward the service message 1 through the path corresponding to the path index 1 or the path index 4, thereby accessing the target object through the path 1 or the path 4. In a specific example, the gateway 1 can forward the service message 1 through the output interface corresponding to the target path index. In another example, if the target path index is path index 1 or path index 4, and the performance of the path between the user site export device 1 and the gateway 1 is inferior to the performance of the path between the user site export device 2 and the gateway 1, the user site export device 1 can send the service message 2 to the user site export device 2, so that the user site export device 2 forwards the service message 2.
[0292] In another example, if the target path index is an index of a path for the user site egress device 2 to access the target object through the Internet, for example, the aforementioned path index 3. Then the user site egress device 1 can send the service message 2 to the user site egress device 2. Accordingly, the user site egress device 2 can forward the service message 1 through the path corresponding to the target path index (for example, the target path index 3).
[0293] The above is an introduction to the routing method and information notification method provided in the embodiment of the present application. Next, taking the target object as a SaaS application as an example, Figure 6 The application scenario shown introduces the routing method and information notification method provided by the embodiments of the present application.
[0294] Figure 6 This is a schematic diagram of an exemplary application scenario provided in the embodiment of the present application. Figure 6 As shown, SaaS application 630 includes application (APP) 1, APP2 and APP3. Figure 6 In the example, the user site includes user site egress devices 610 and 650 , and the gateway site includes gateway 620 and gateway 640 .
[0295] The user site egress device 610 can access APP1 through the DIA link 611 or 612 connected to itself; the gateway 620 can access APP1 through the path 621 or 622; the gateway 640 can access APP1 through the path 641 and the path 642; the user site egress device 650 can access APP1 through the DIA link 651 or 652 connected to itself.
[0296] In addition, although Figure 6Not shown, but the user site export device 610 can access APP2 through the DIA link 613 connected to itself, and access APP3 through the DIA link 614 connected to itself; the gateway 620 can access APP2 through the path 623, and access APP3 through the path 624; the gateway 640 can access APP2 through the path 643, and access APP3 through the path 644.
[0297] The gateway 620 may notify the identification information of APP1 , the path index of the path 621 , and the path performance metric value of the path 621 to the user site egress devices 610 and 650 .
[0298] The gateway 620 may notify the identification information of APP1 , the path index of the path 622 , and the path performance metric value of the path 622 to the user site egress devices 610 and 650 .
[0299] The gateway 620 may notify the identification information of APP2 , the path index of the path 623 , and the path performance metric value of the path 623 to the user site egress devices 610 and 650 .
[0300] The gateway 620 may notify the identification information of APP3 , the path index of the path 624 , and the path performance metric value of the path 624 to the user site egress devices 610 and 650 .
[0301] The gateway 640 may notify the identification information of APP1 , the path index of the path 641 , and the path performance metric value of the path 641 to the user site egress devices 610 and 650 .
[0302] The gateway 640 may notify the identification information of APP1 , the path index of the path 642 , and the path performance metric value of the path 642 to the user site egress devices 610 and 650 .
[0303] The gateway 640 may notify the identification information of APP2 , the path index of the path 643 , and the path performance metric value of the path 643 to the user site egress devices 610 and 650 .
[0304] The gateway 640 may notify the identification information of APP3 , the path index of the path 644 , and the path performance metric value of the path 644 to the user site egress devices 610 and 650 .
[0305] After receiving the information notified by the gateways 620 and 640 , the user site egress device 610 may save the information shown in Table 1 below.
[0306] Table 1
[0307]
[0308]
[0309] In Table 1:
[0310] The path outbound interface may be an outbound interface connected to the DIA link, and the remote IP may be the IP address of the gateway.
[0311] When the path corresponding to the path index is a DIA link connected to the local area, the original QoE and the final QoE have the same value. When the path corresponding to the path index is a path for the gateway to access the SaaS application, the final QoE can be obtained based on the original QoE and the performance of the link between the user site egress device 610 and the gateway.
[0312] In one example, when the user site egress device 610 receives message 1 for accessing APP1, according to Table 1, the user site egress device 1 selects a path with a path index of 642 to access APP1, because its final QoE is the highest among the six paths for accessing APP1 shown in Table 1. In a specific example, the user site egress device 1 can encapsulate the path index 642 for message 1, obtain message 2, and send message 2 to the gateway 640. After receiving message 2, the gateway 640 can forward message 1 through the path 642 according to the path index 642.
[0313] Similarly, in one example, when the user site egress device 610 receives message 3 for accessing APP2, according to Table 1, the user site egress device 1 selects the path with path index 623 to access APP2, because its final QoE is the highest among the three paths for accessing APP2 shown in Table 1. In a specific example, the user site egress device 1 can encapsulate the path index 623 for message 3, obtain message 4, and send message 4 to the gateway 620. After receiving message 4, the gateway 620 can forward message 3 through the path 621 according to the path index 623.
[0314] Similarly, in one example, when the user site egress device 610 receives the packet 5 for accessing APP3, according to Table 1, the user site egress device 1 selects the path with the path index 614 to access APP3, because its final QoE is the highest among the three paths for accessing APP3 shown in Table 1. Path 614 is a DIA link connected to itself, so the user site egress device 1 can send the insulation 5 through the outbound interface GE 0 / 0 / 1.1.
[0315] Similarly, the user site egress device 650 can also locally store information similar to that shown in Table 1, and when receiving a message for accessing a SaaS application, select a path for accessing the SaaS application (e.g., APP1, APP2, and APP3) in combination with the stored information. For the specific implementation of the user site egress device 650 selecting a path for accessing the SaaS application, reference can be made to the specific implementation of the user site egress device 610 selecting a path for accessing the aforementioned APP1, APP2, and APP3, which will not be repeated here.
[0316] See also Figure 7a , which is a flow chart of a routing method provided in an embodiment of the present application. Figure 7a The routing method 300 shown can be applied to the above method 100 or 200 .
[0317] Figure 7a The routing method 300 shown may be executed by a first site egress device, which may correspond to the user site egress device 1 in the method 100 or the method 200 .
[0318] In a specific example, the method 300 may include the following S301 - S302 .
[0319] S301: Receive identification information of a target object notified by a first gateway, a first path index, and a first path performance metric value, where the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates performance of the first path.
[0320] S302: Select a target path for accessing the target object according to the first path performance metric value.
[0321] The first gateway in method 300 may correspond to gateway 1 in method 100; the first path index in method 300 may correspond to path index 1 in method 100; the first path in method 300 may correspond to path 1 in method 100; the first path performance metric value in method 300 may correspond to path performance metric value 1 in method 100.
[0322] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.
[0323] In a possible implementation, the first path index is: a path number, a multi-protocol label switching MPLS label, or an Internet Protocol version 6 segment routing segment identifier SRv6 SID.
[0324] In a possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0325] In a possible implementation, the receiving of identification information of a target object, a first path index, and a first path performance metric value announced by a first gateway includes: receiving a first route announced by the first gateway, wherein the first route includes the identification information of the target object, the first path index, and the first path performance metric value.
[0326] The first route in method 300 may correspond to route 1 in method 100 .
[0327] In a possible implementation manner, the first route also includes indication information, where the indication information is used to indicate a type of the first path index carried in the first route, where the type is a path number, an MPLS label, or an SRv6 SID.
[0328] In a possible implementation manner, the route type field of the first route indicates that the first route is a path performance route associated with the target object.
[0329] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.
[0330] In a possible implementation manner, the method further includes: receiving a site identifier of a site to which the first gateway belongs, an application type, and a node ID of the first gateway announced by the first gateway.
[0331] In a possible implementation manner, the first path performance metric value includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).
[0332] In a possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.
[0333] The first Sub-TLV in method 300 may correspond to Sub-TLV1 in method 100; the second Sub-TLV in method 300 may correspond to Sub-TLV2 in method 100; the third Sub-TLV in method 300 may correspond to Sub-TLV3 in method 100; the fourth Sub-TLV in method 300 may correspond to Sub-TLV4 in method 100; the fifth Sub-TLV in method 300 may correspond to Sub-TLV5 in method 100; the sixth Sub-TLV in method 300 may correspond to Sub-TLV6 in method 100; the seventh Sub-TLV in method 300 may correspond to Sub-TLV7 in method 100; and the eighth Sub-TLV in method 300 may correspond to Sub-TLV8 in method 100.
[0334] In a possible implementation, the method further includes: receiving identification information of the target object announced by the second gateway, a second path index, and a second path performance metric value, wherein the second path index identifies a second path for the second gateway to access the target object, and the second path performance metric value indicates the performance of the second path; and selecting a target path for accessing the target object according to the first path performance metric value, including: selecting the target path for accessing the target object according to the first path performance metric value and the second path performance metric value.
[0335] The second gateway in method 300 may correspond to gateway 2 in method 100; the second path index in method 300 may correspond to path index 2 in method 100; the second path in method 300 may correspond to path 2 in method 100; the second path performance metric value in method 300 may correspond to path performance metric value 2 in method 100.
[0336] In a possible implementation, the receiving the identification information of the target object, the second path index, and the second path performance metric value announced by the second gateway includes: receiving a second route announced by the second gateway, the second route including the identification information of the target object, the second path index, and the second path performance metric value.
[0337] The second route in method 300 may correspond to route 2 in method 100 .
[0338] In a possible implementation, the method further includes: receiving identification information of the target object announced by a second user site export device, a third path index, and a third path performance metric value, wherein the third path index identifies a third path for the second user site export device to access the target object via the Internet, and the third path performance metric value indicates the performance of the third path; and selecting a target path for accessing the target object according to the first path performance metric value, including: selecting a target path for accessing the target object according to the first path performance metric value and the third path performance metric value.
[0339] The second user site egress device in method 300 may correspond to user site egress device 2 in method 100; the third path index in method 300 may correspond to path index 3 in method 100; the third path performance metric value in method 300 may correspond to path performance metric value 3 in method 100; the third path in method 300 may correspond to path 3 in method 100.
[0340] In one possible implementation, the first user site egress device accesses the first gateway through an SD-WAN tunnel.
[0341] In a possible implementation, the method further includes: receiving identification information of the target object announced by the first gateway, a fourth path index, and a fourth path performance metric value, the fourth path index identifying a fourth path for the first gateway to access the target object, and the fourth path performance metric value indicating the performance of the fourth path; and selecting a target path for accessing the target object according to the first path performance metric value includes: selecting a target path for accessing the target object according to the first path performance metric value and the fourth path performance metric value.
[0342] The fourth path index in method 300 may correspond to path index 4 in method 100 ; the fourth path performance metric value in method 300 may correspond to path performance metric value 4 in method 100 ; and the fourth path in method 300 may correspond to path 4 in method 100 .
[0343] In a possible implementation, the receiving the identification information of the target object, the fourth path index, and the fourth path performance metric value announced by the first gateway includes: receiving a third route announced by the first gateway, the third route including the identification information of the target object, the fourth path index, and the fourth path performance metric value.
[0344] The third route in method 300 may correspond to route 3 in method 100 .
[0345] In a possible implementation, the method further includes: receiving a first service message for accessing the target object; encapsulating a target path index identifying the target path for the first service message to obtain a second service message; and sending the second service message.
[0346] The first service message in method 300 may correspond to service message 1 in method 200 ; the second service message in method 300 may correspond to service message 2 in method 200 .
[0347] In a possible implementation, the second service message includes a generic routing encapsulation (GRE) header, and the GRE header includes the target path index.
[0348] In one possible implementation, when the target path index is an MPLS label, the second service message includes a User Datagram Protocol UDP header, an MPLS label stack and a payload, the MPLS label stack includes the target path index, the payload includes the first service message, and the MPLS label stack is located between the UDP header and the payload.
[0349] In a possible implementation, when the target path index is an SRv6 SID, the second service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes an SRv6 segment list SID list, and the SRv6 SID list includes the target path index.
[0350] In one possible implementation, sending the second service message includes: sending the second service message to the first gateway through a path established between the first user site egress device and the first gateway; or sending the second service message to the second user site egress device to forward the second service message through the second user site egress device.
[0351] In a possible implementation manner, the receiving the first service message includes:
[0352] A third service message is received from a second user site egress device, wherein the third service message includes the first service message and a second path index, wherein the second path index identifies a second path for the second gateway to access the target object; in response to determining that the path to the second gateway is unreachable, the first service message is encapsulated with the target path index to obtain the second service message; or, the second path index is determined as the target path index, and the first service message is encapsulated with the target path index to obtain the second service message.
[0353] The third service message in method 300 may correspond to service message 3 in method 100 .
[0354] In a possible implementation manner, the third service message includes an IP header and a payload, the second path index is located between the IP header and the payload, and the payload includes the first service message.
[0355] In a possible implementation manner, the method further includes: saving a correspondence between identification information of the target object, the first path index, and the first path performance metric value.
[0356] See also Figure 7b , which is a flow chart of an information notification method provided in an embodiment of the present application. Figure 7b The information notification method 400 shown can be applied to the above method 100 or 200.
[0357] Figure 7b The information notification method 400 shown may be executed by a first gateway. The first gateway may correspond to the gateway 1 in the method 100 or the method 200.
[0358] In a specific example, the method 400 may include the following S401 - S402 .
[0359] S401: Obtain a first path performance metric value of a first path for the first gateway to access a target object, where the first path performance metric value indicates performance of the first path.
[0360] S402: Notify a first user site egress device of identification information of the target object, a first path index, and the first path performance metric value, where the first path index identifies the first path.
[0361] The first path index in method 400 may correspond to path index 1 in method 100 ; the first path in method 400 may correspond to path 1 in method 100 ; and the first path performance metric value in method 400 may correspond to path performance metric value 1 in method 100 .
[0362] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.
[0363] In a possible implementation, the first path index is: a path number, a multi-protocol label switching MPLS label, or an Internet Protocol version 6 segment routing segment identifier SRv6 SID.
[0364] In a possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0365] In a possible implementation, the notifying the first user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: notifying the first user site egress device of a first route, wherein the first route includes the identification information of the target object, the first path index, and the first path performance metric value.
[0366] The first route in method 400 may correspond to route 1 in method 100 .
[0367] In a possible implementation manner, the first route further includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.
[0368] In a possible implementation manner, the route type field of the first route indicates that the first route is a path performance route associated with the target object.
[0369] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.
[0370] In a possible implementation manner, the method further includes: notifying the first user site egress device of a site identifier of a site to which the first gateway belongs, an application type, and a node ID of the first gateway.
[0371] In a possible implementation manner, the first path performance metric value includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).
[0372] In a possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.
[0373] The first Sub-TLV in method 400 may correspond to Sub-TLV1 in method 100; the second Sub-TLV in method 400 may correspond to Sub-TLV2 in method 100; the third Sub-TLV in method 400 may correspond to Sub-TLV3 in method 100; the fourth Sub-TLV in method 400 may correspond to Sub-TLV4 in method 100; the fifth Sub-TLV in method 400 may correspond to Sub-TLV5 in method 100; the sixth Sub-TLV in method 400 may correspond to Sub-TLV6 in method 100; the seventh Sub-TLV in method 400 may correspond to Sub-TLV7 in method 100; and the eighth Sub-TLV in method 400 may correspond to Sub-TLV8 in method 100.
[0374] In a possible implementation manner, the method further includes: notifying the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value.
[0375] The second user site egress device in method 400 may correspond to the user site egress device 2 in method 100 .
[0376] In a possible implementation, the notifying the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: notifying the second user site egress device of a second route, wherein the second route includes the identification information of the target object, the first path index, and the first path performance metric value.
[0377] The second route in method 400 may correspond to route 1 in method 100 .
[0378] In a possible implementation manner, the method further includes: notifying the second gateway of identification information of the target object, the first path index, and the first path performance metric value.
[0379] The second gateway in method 400 may correspond to gateway 2 in method 100 .
[0380] In a possible implementation, the method further includes: obtaining a second path performance metric value of a second path for the first gateway to access a target object, the second path performance metric value indicating the performance of the second path; and notifying the first user site egress device of identification information of the target object, a second path index, and the second path performance metric value, the second path index identifying the second path.
[0381] The second path in method 400 may correspond to path 4 in method 100 ; the second path performance metric value in method 400 may correspond to path performance metric value 4 in method 100 ; the second path in method 400 may correspond to path 4 in method 100 .
[0382] In a possible implementation, the notifying the first user site egress device of the identification information of the target object, the second path index, and the second path performance metric value includes: notifying the first user site egress device of a third route, wherein the third route includes the identification information of the target object, the second path index, and the second path performance metric value.
[0383] The third route in method 400 may correspond to route 3 in method 100 .
[0384] In a possible implementation manner, the method further includes: receiving an encapsulated first service message, wherein an outer layer of the first service message is encapsulated with the first path index; and forwarding the first service message through the first path according to the first path index.
[0385] The first service message in method 400 may correspond to service message 2 in method 200 .
[0386] In a possible implementation manner, the encapsulated first service message includes a generic routing encapsulation GRE header, and the GRE header includes the first path label.
[0387] In one possible implementation, when the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.
[0388] In a possible implementation, when the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.
[0389] See also Figure 8a , which is a structural diagram of a communication device provided in an embodiment of the present application.
[0390] Figure 8a The communication device 810 shown includes: a receiving unit 811 and a processing unit 812. The receiving unit 811 is used to perform a receiving operation, and the processing unit 812 is used to perform other operations except the receiving operation and the sending operation.
[0391] In an example, the communication device 810 may be applied to a first user site egress device, and is used to perform the operations performed by the first user site egress device provided in the above method embodiment.
[0392] A receiving unit 811 is configured to receive identification information of a target object, a first path index, and a first path performance metric value notified by a first gateway, wherein the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates performance of the first path;
[0393] The processing unit 812 is configured to select a target path for accessing the target object according to the first path performance metric value.
[0394] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.
[0395] In a possible implementation, the first path index is: a path number, a multi-protocol label switching MPLS label, or an Internet Protocol version 6 segment routing segment identifier SRv6 SID.
[0396] In a possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0397] In a possible implementation manner, the receiving unit 811 is configured to: receive a first route announced by the first gateway, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.
[0398] In a possible implementation manner, the first route also includes indication information, where the indication information is used to indicate a type of the first path index carried in the first route, where the type is a path number, an MPLS label, or an SRv6 SID.
[0399] In a possible implementation manner, the route type field of the first route indicates that the first route is a path performance route associated with the target object.
[0400] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.
[0401] In a possible implementation manner, the receiving unit 811 is further configured to: receive a site identifier of a site to which the first gateway belongs, an application type, and a node ID of the first gateway notified by the first gateway.
[0402] In a possible implementation manner, the first path performance metric value includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).
[0403] In a possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.
[0404] In a possible implementation, the receiving unit 811 is further used to: receive identification information, a second path index, and a second path performance metric value of the target object announced by the second gateway, wherein the second path index identifies a second path for the second gateway to access the target object, and the second path performance metric value indicates the performance of the second path; and the processing unit 812 is used to: select the target path for accessing the target object according to the first path performance metric value and the second path performance metric value.
[0405] In a possible implementation manner, the receiving unit 811 is configured to: receive a second route announced by the second gateway, where the second route includes identification information of the target object, the second path index, and the second path performance metric value.
[0406] In a possible implementation, the receiving unit 811 is further used to: receive identification information, a third path index, and a third path performance metric value of the target object announced by a second user site export device, wherein the third path index identifies a third path for the second user site export device to access the target object via the Internet, and the third path performance metric value indicates the performance of the third path; and the processing unit 812 is used to: select a target path for accessing the target object according to the first path performance metric value and the third path performance metric value.
[0407] In one possible implementation, the first user site egress device accesses the first gateway through an SD-WAN tunnel.
[0408] In a possible implementation, the receiving unit 811 is further used to: receive identification information of the target object, a fourth path index, and a fourth path performance metric value notified by the first gateway, the fourth path index identifies a fourth path for the first gateway to access the target object, and the fourth path performance metric value indicates the performance of the fourth path; the processing unit 812 is used to: select a target path for accessing the target object according to the first path performance metric value and the fourth path performance metric value.
[0409] In a possible implementation manner, the receiving unit 811 is configured to: receive a third route announced by the first gateway, where the third route includes identification information of the target object, the fourth path index, and a fourth path performance metric value.
[0410] In one possible implementation, the receiving unit 811 is further used to: receive a first business message for accessing the target object; the processing unit 812 is further used to encapsulate the first business message with a target path index that identifies the target path to obtain a second business message; the device also includes a sending unit for sending the second business message.
[0411] In a possible implementation, the second service message includes a generic routing encapsulation (GRE) header, and the GRE header includes the target path index.
[0412] In one possible implementation, when the target path index is an MPLS label, the second service message includes a User Datagram Protocol UDP header, an MPLS label stack and a payload, the MPLS label stack includes the target path index, the payload includes the first service message, and the MPLS label stack is located between the UDP header and the payload.
[0413] In a possible implementation, when the target path index is an SRv6 SID, the second service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes an SRv6 segment list SID list, and the SRv6 SID list includes the target path index.
[0414] In a possible implementation, the sending unit is used to: send the second service message to the first gateway through the path established between the first user site egress device and the first gateway; or send the second service message to the second user site egress device to forward the second service message through the second user site egress device.
[0415] In a possible implementation, the receiving unit 811 is used to: receive a third service message from a second user site egress device, the third service message including the first service message and a second path index, the second path index identifying a second path for the second gateway to access the target object; the processing unit 812 is used to: in response to determining that the path to the second gateway is unreachable, encapsulate the first service message with the target path index to obtain the second service message; or, determine the second path index as the target path index, and encapsulate the first service message with the target path index to obtain the second service message.
[0416] In a possible implementation manner, the third service message includes an IP header and a payload, the second path index is located between the IP header and the payload, and the payload includes the first service message.
[0417] In a possible implementation manner, the processing unit 812 is further configured to: save a correspondence between the identification information of the target object, the first path index, and the first path performance metric value.
[0418] See also Figure 8b , which is a structural diagram of a communication device provided in an embodiment of the present application.
[0419] Figure 8bThe communication device 820 shown includes: a processing unit 821 and a sending unit 822. The sending unit 822 is used to perform a sending operation, and the processing unit 821 is used to perform other operations except the receiving operation and the sending operation.
[0420] In one example, the communication device 820 may be applied to the first gateway to perform the operations performed by the first gateway provided in the above method embodiment.
[0421] The processing unit 821 is configured to obtain a first path performance metric value of a first path for the first gateway to access a target object, where the first path performance metric value indicates performance of the first path;
[0422] The sending unit 822 is configured to notify the first user site egress device of the identification information of the target object, a first path index, and the first path performance metric value, where the first path index identifies the first path.
[0423] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.
[0424] In a possible implementation, the first path index is: a path number, a multi-protocol label switching MPLS label, or an Internet Protocol version 6 segment routing segment identifier SRv6 SID.
[0425] In a possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
[0426] In a possible implementation manner, the sending unit 822 is configured to: notify the first user site egress device of a first route, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.
[0427] In a possible implementation manner, the first route further includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.
[0428] In a possible implementation manner, the route type field of the first route indicates that the first route is a path performance route associated with the target object.
[0429] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.
[0430] In a possible implementation manner, the sending unit 822 is further configured to: notify the first user site egress device of the site identifier of the site to which the first gateway belongs, the application type, and the node ID of the first gateway.
[0431] In a possible implementation manner, the first path performance metric value includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).
[0432] In a possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.
[0433] In a possible implementation manner, the sending unit 822 is further configured to: notify the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value.
[0434] In a possible implementation manner, the sending unit 822 is configured to: notify the second user site egress device of a second route, where the second route includes the identification information of the target object, the first path index, and the first path performance metric value.
[0435] In a possible implementation manner, the sending unit 822 is further configured to: notify the second gateway of the identification information of the target object, the first path index, and the first path performance metric value.
[0436] In a possible implementation, the processing unit 821 is further used to: obtain a second path performance metric value of a second path for the first gateway to access the target object, where the second path performance metric value indicates the performance of the second path; the sending unit 822 is further used to notify the first user site egress device of the identification information of the target object, the second path index and the second path performance metric value, where the second path index identifies the second path.
[0437] In a possible implementation manner, the sending unit 822 is configured to: notify the first user site egress device of a third route, where the third route includes the identification information of the target object, the second path index, and the second path performance metric value.
[0438] In a possible implementation, the device also includes: a receiving unit, used to receive an encapsulated first business message, the outer layer of the first business message being encapsulated with the first path index; the sending unit 822 is also used to forward the first business message through the first path according to the first path index.
[0439] In a possible implementation manner, the encapsulated first service message includes a generic routing encapsulation GRE header, and the GRE header includes the first path label.
[0440] In one possible implementation, when the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.
[0441] In a possible implementation, when the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.
[0442] In addition, the present application embodiment also provides a communication device 900, see Fig. 9 As shown, Fig. 9 The present invention provides a schematic diagram of the structure of a communication device provided in an embodiment of the present application. The communication device 900 includes a communication interface 901 and a processor 902 connected to the communication interface 901. The communication device 900 can be used to execute the method 100, method 200, method 300, or method 400 in the above embodiments.
[0443] When the communication device 900 is used to execute the above method 100:
[0444] In one example, the communication device 900 is equivalent to the gateway 1 in the method 100. The communication interface 901 is used to perform the sending and receiving operations performed by the gateway 1 in the method 100. The processor 902 is used to perform operations other than the sending and receiving operations performed by the gateway 1 in the method 100. For example: the processor 902 is used to obtain the path performance metric value 1 of the path 1 for the gateway 1 to access the target object, and the path performance metric value 1 indicates the performance of the path 1; the communication interface 901 is used to notify the identification information of the target object, the path index 1, and the path performance metric value 1 to the user site egress device 1, and the path index 1 identifies the path 1.
[0445] In another example, the communication device 900 is equivalent to the gateway 1 in the method 100. The communication interface 901 is used to perform the sending and receiving operations performed by the user site egress device 1 in the method 100. The processor 902 is used to perform operations other than the sending and receiving operations performed by the user site egress device 1 in the method 100. For example: the communication interface 901 is used to receive the identification information of the target object, the path index 1, and the path performance metric value 1 announced by the gateway 1; the processor 902 is used to select the target path for accessing the target object according to the path performance metric value 1.
[0446] When the communication device 900 is used to execute the above method 200, the communication device 900 is equivalent to the user site egress device 1 in the method 200. The communication interface 901 is used to execute the sending and receiving operations executed by the user site egress device 1 in the method 200. The processor 902 is used to execute operations other than the sending and receiving operations executed by the user site egress device 1 in the method 200. For example: the communication interface 901 is used to receive a service message 1 for accessing a target object; the processor 902 is used to encapsulate the target path index of the target path for the service message 1 to obtain the service message 2; the communication interface 901 is also used to send the service message 2.
[0447] When the communication device 900 is used to execute the above method 300, the communication device 900 is equivalent to the first user site egress device in the method 300. The communication interface 901 is used to execute the sending and receiving operations executed by the first user site egress device in the method 300. The processor 902 is used to execute operations other than the sending and receiving operations executed by the first user site egress device in the method 300. For example: the communication interface 901 is used to receive the identification information, the first path index and the first path performance metric value of the target object announced by the first gateway, the first path index identifies the first path for the first gateway to access the target object, and the first path performance metric value indicates the performance of the first path; the processor 902 is used to select the target path for accessing the target object according to the first path performance metric value.
[0448] When the communication device 900 is used to execute the above method 400, the communication device 900 is equivalent to the first gateway in the method 400. The communication interface 901 is used to execute the sending and receiving operations executed by the first gateway in the method 400. The processor 902 is used to execute operations other than the sending and receiving operations executed by the first gateway in the method 400. For example: the processor 902 is used to obtain a first path performance metric value of a first path for the first gateway to access a target object, and the first path performance metric value indicates the performance of the first path; the communication interface 901 is used to notify the first user site egress device of the identification information of the target object, the first path index and the first path performance metric value, and the first path index identifies the first path.
[0449] In addition, the present application embodiment also provides a communication device 1000, see Fig.10 As shown, Fig.10 The present invention provides a schematic diagram of the structure of a communication device according to an embodiment of the present invention. The communication device 1000 can be used to execute the method 100, 200, 300 or 400 in the above embodiment.
[0450] like Fig.10As shown, the communication device 1000 may include a processor 1010, a memory 1020 coupled to the processor 1010, and a transceiver 1030. The transceiver 1030 may be, for example, a communication interface, an optical module, etc. The processor 1010 may be a central processing unit (CPU), a network processor (NP), or a combination of a CPU and a NP. The processor may also be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. The processor 1010 may refer to one processor or may include multiple processors. The memory 1020 may include a volatile memory (English: volatile memory), such as a random access memory (English: random-access memory, abbreviated: RAM); the memory may also include a non-volatile memory (English: non-volatile memory), such as a read-only memory (English: read-only memory, abbreviated: ROM), a flash memory (English: flash memory), a hard disk drive (English: hard disk drive, abbreviated: HDD) or a solid-state drive (English: solid-state drive, abbreviated: SSD); the memory 1020 may also include a combination of the above-mentioned types of memories. The memory 1020 may refer to a memory or may include multiple memories. In one embodiment, the memory 1020 stores computer-readable instructions, and the computer-readable instructions include multiple software modules, such as a sending module 1021, a processing module 1022 and a receiving module 1023. After executing each software module, the processor 1010 may perform corresponding operations according to the instructions of each software module. In this embodiment, the operation performed by a software module actually refers to the operation performed by the processor 1010 according to the instructions of the software module.
[0451] When the communication device 1000 is used to execute the above method 100:
[0452] In one example, the communication device 1000 is equivalent to the gateway 1 in the method 100. The transceiver 1030 is used to perform the transceiver operation performed by the gateway 1 in the method 100. The processor 1010 is used to perform operations other than the transceiver operation performed by the gateway 1 in the method 100. For example: the processor 1010 is used to obtain a path performance metric value 1 of a path 1 for gateway 1 to access a target object, wherein the path performance metric value 1 indicates the performance of the path 1; the transceiver 1030 is used to notify the identification information of the target object, the path index 1, and the path performance metric value 1 to the user site egress device 1, wherein the path index 1 identifies the path 1.
[0453] In another example, the communication device 1000 is equivalent to the gateway 1 in the method 100. The transceiver 1030 is used to perform the transceiver operation performed by the user site egress device 1 in the method 100. The processor 1010 is used to perform operations other than the transceiver operation performed by the user site egress device 1 in the method 100. For example: the transceiver 1030 is used to receive the identification information of the target object, the path index 1, and the path performance metric value 1 announced by the gateway 1; the processor 1010 is used to select a target path for accessing the target object according to the path performance metric value 1.
[0454] When the communication device 1000 is used to execute the above method 200, the communication device 1000 is equivalent to the user site egress device 1 in the method 200. The transceiver 1030 is used to execute the transceiver operation executed by the user site egress device 1 in the method 200. The processor 1010 is used to execute the operation other than the transceiver operation executed by the user site egress device 1 in the method 200. For example: the transceiver 1030 is used to receive a service message 1 for accessing a target object; the processor 1010 is used to encapsulate the target path index of the target path for the service message 1 to obtain the service message 2; the transceiver 1030 is also used to send the service message 2.
[0455] When the communication device 1000 is used to execute the above method 300, the communication device 1000 is equivalent to the first user site egress device in the method 300. The transceiver 1030 is used to execute the transceiver operation executed by the first user site egress device in the method 300. The processor 1010 is used to execute operations other than the transceiver operation executed by the first user site egress device in the method 300. For example: the transceiver 1030 is used to receive the identification information, the first path index and the first path performance metric value of the target object announced by the first gateway, the first path index identifies the first path for the first gateway to access the target object, and the first path performance metric value indicates the performance of the first path; the processor 1010 is used to select the target path for accessing the target object according to the first path performance metric value.
[0456] When the communication device 1000 is used to execute the above method 400, the communication device 1000 is equivalent to the first gateway in the method 400. The transceiver 1030 is used to execute the transceiver operation executed by the first gateway in the method 400. The processor 1010 is used to execute operations other than the transceiver operation executed by the first gateway in the method 400. For example: the processor 1010 is used to obtain a first path performance metric value of a first path for the first gateway to access a target object, and the first path performance metric value indicates the performance of the first path; the transceiver 1030 is used to notify the identification information of the target object, the first path index, and the first path performance metric value to the first user site egress device, and the first path index identifies the first path.
[0457] The present application also provides a computer-readable storage medium, in which instructions or computer programs are stored. When the instruction computer program runs on a processor, any one or more operations of the methods described in the foregoing embodiments (for example, method 100 or method 200 or method 300 or method 400) can be implemented.
[0458] The present application also provides a computer program product, including a computer program, which, when executed on a processor, can implement any one or more operations of the methods described in the foregoing embodiments (eg, method 100 or method 200 or method 300 or method 400).
[0459] The embodiment of the present application also provides a communication system for executing the routing method and / or information notification method provided in the above method embodiment. In one example, the communication system includes: the gateway 1 and the user site egress device 1 in method 100. In another example, the communication system includes: the first user site egress device executing the above method 300 and the first gateway executing the above method 400.
[0460] The terms "first", "second", "third", "fourth", etc. (if any) in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0461] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0462] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of units is only a logical business division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
[0463] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0464] In addition, each business unit in each embodiment of the present application can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software business units.
[0465] If the integrated unit is implemented in the form of a software business unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk and other media that can store program codes.
[0466] Those skilled in the art will appreciate that in one or more of the above examples, the services described in the present invention may be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, the services may be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any media that facilitates the transmission of computer programs from one place to another. Storage media may be any available media that can be accessed by a general-purpose or special-purpose computer.
[0467] The above specific implementation modes further describe the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above are only specific implementation modes of the present invention.
[0468] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person of ordinary skill in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features thereof may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A routing method, characterized in that: Applied to a first user site egress device, the method comprises: receiving identification information of a target object notified by a first gateway, a first path index, and a first path performance metric value, wherein the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates performance of the first path; A target path for accessing the target object is selected according to the first path performance metric value.
2. The method according to claim 1, characterized in that The target object is a Software as a Service (SaaS) application or a data center.
3. The method according to claim 1 or 2, characterized in that: The first path index is: Path number, Multiprotocol Label Switching (MPLS) label, or Internet Protocol version 6 Segment Routing (SRv6) Segment Identifier (SRv6SID).
4. The method according to claim 3, characterized in that When the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
5. The method according to any one of claims 1 to 4, characterized in that: The receiving of identification information of the target object, the first path index and the first path performance metric value notified by the first gateway includes: A first route announced by the first gateway is received, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.
6. The method according to claim 5, characterized in that The first route also includes indication information, where the indication information is used to indicate a type of the first path index carried in the first route, where the type is a path number, an MPLS label, or an SRv6 SID.
7. The method according to claim 5 or 6, characterized in that: The route type field of the first route indicates that the first route is a path performance route associated with the target object.
8. The method according to any one of claims 5 to 7, characterized in that: The first route is a route announced based on the software-defined wide area network SD-WAN address family or SD-WAN sub-address family.
9. The method according to any one of claims 1 to 8, characterized in that: The method further comprises: Receive the site identifier of the site to which the first gateway belongs, the application type, and the node identifier of the first gateway notified by the first gateway.
10. The method according to any one of claims 1 to 9, characterized in that: The first path performance metric value includes one or more of the following: Delay, packet loss rate, jitter, bandwidth, path status and quality of experience (QoE).
11. The method according to any one of claims 5 to 8, characterized in that: The first route includes one or more of the following: A first subtype length value Sub-TLV, indicating a transmission delay of the first path; A second Sub-TLV, indicating a packet loss rate of the first path; A third Sub-TLV indicating jitter of the first path; A fourth Sub-TLV, indicating a bandwidth of the first path; A fifth Sub-TLV, indicating a path status of the first path; A sixth Sub-TLV, indicating the QoE of the first path; The seventh Sub-TLV indicates the name of the target object; The eighth Sub-TLV indicates the domain name of the target object.
12. The method according to any one of claims 1 to 11, characterized in that: The method further comprises: receiving identification information of the target object, a second path index, and a second path performance metric value notified by a second gateway, wherein the second path index identifies a second path for the second gateway to access the target object, and the second path performance metric value indicates performance of the second path; Selecting a target path for accessing the target object according to the first path performance metric value includes: The target path for accessing the target object is selected according to the first path performance metric value and the second path performance metric value.
13. The method according to claim 12, characterized in that The receiving the identification information of the target object, the second path index and the second path performance metric value notified by the second gateway includes: A second route announced by the second gateway is received, where the second route includes identification information of the target object, the second path index, and the second path performance metric value.
14. The method according to any one of claims 1 to 13, characterized in that: The method further comprises: receiving identification information of the target object, a third path index, and a third path performance metric value notified by a second user site egress device, wherein the third path index identifies a third path for the second user site egress device to access the target object through the Internet, and the third path performance metric value indicates performance of the third path; Selecting a target path for accessing the target object according to the first path performance metric value includes: A target path for accessing the target object is selected according to the first path performance metric value and the third path performance metric value.
15. The method according to any one of claims 1 to 14, characterized in that: The first user site egress device accesses the first gateway through the SD-WAN tunnel.
16. The method according to any one of claims 1 to 15, characterized in that: The method further comprises: receiving identification information of the target object, a fourth path index, and a fourth path performance metric value notified by the first gateway, wherein the fourth path index identifies a fourth path for the first gateway to access the target object, and the fourth path performance metric value indicates performance of the fourth path; The step of selecting a target path for accessing the target object according to the first path performance metric value includes: A target path for accessing the target object is selected according to the first path performance metric value and the fourth path performance metric value.
17. The method according to claim 16, characterized in that The receiving the identification information of the target object, the fourth path index, and the fourth path performance metric value notified by the first gateway includes: A third route announced by the first gateway is received, where the third route includes identification information of the target object, the fourth path index, and a fourth path performance metric value.
18. The method according to any one of claims 1 to 17, characterized in that: The method further comprises: Receiving a first service message for accessing the target object; Encapsulating the first service message with a target path index that identifies the target path to obtain a second service message; Send the second service message.
19. The method according to claim 18, characterized in that The second service message includes a generic routing encapsulation (GRE) header, and the GRE header includes the target path index.
20. The method according to claim 18, characterized in that When the target path index is an MPLS label, the second service message includes a User Datagram Protocol UDP header, an MPLS label stack and a payload, the MPLS label stack includes the target path index, the payload includes the first service message, and the MPLS label stack is located between the UDP header and the payload.
21. The method according to claim 18, characterized in that When the target path index is SRv6 SID, the second service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes an SRv6 segment list SIDlist, and the SRv6SID list includes the target path index.
22. The method according to any one of claims 18 to 21, characterized in that: The sending the second service message includes: sending the second service message to the first gateway through a path established between the first user site egress device and the first gateway; or, The second service message is sent to a second user site egress device so that the second service message is forwarded through the second user site egress device.
23. The method according to any one of claims 18 to 21, characterized in that: The receiving the first service message includes: receiving a third service message from a second user site egress device, wherein the third service message includes the first service message and a second path index, wherein the second path index identifies a second path for a second gateway to access the target object; The step of encapsulating the first service message and identifying the target path index of the target path to obtain a second service message includes: In response to determining that the path to the second gateway is unreachable, encapsulating the target path index into the first service message to obtain the second service message; or, determining the second path index as the target path index, and encapsulating the target path index into the first service message to obtain the second service message.
24. The method according to claim 23, characterized in that The third service message includes an IP header and a payload, the second path index is located between the IP header and the payload, and the payload includes the first service message.
25. The method according to any one of claims 1 to 24, characterized in that: The method further comprises: The corresponding relationship among the identification information of the target object, the first path index and the first path performance metric value is saved.
26. An information notification method, characterized in that: Applied to a first gateway, the method includes: Acquire a first path performance metric value of a first path for the first gateway to access a target object, where the first path performance metric value indicates performance of the first path; The identification information of the target object, the first path index, and the first path performance metric value are notified to a first user site egress device, where the first path index identifies the first path.
27. The method according to claim 26, characterized in that The target object is a Software as a Service (SaaS) application or a data center.
28. The method according to claim 26 or 27, characterized in that The first path index is: Path number, Multiprotocol Label Switching (MPLS) label, or Internet Protocol version 6 Segment Routing (SRv6) Segment Identifier (SRv6SID).
29. The method according to claim 28, characterized in that When the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.
30. The method according to any one of claims 26 to 29, characterized in that: The notifying the first user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: A first route is notified to the first user site egress device, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.
31. The method according to claim 30, characterized in that The first route also includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.
32. The method according to claim 30 or 31, characterized in that The route type field of the first route indicates that the first route is a path performance route associated with the target object.
33. The method according to any one of claims 30 to 32, characterized in that: The first route is a route announced based on the software-defined wide area network SD-WAN address family or SD-WAN sub-address family.
34. The method according to any one of claims 26 to 33, characterized in that: The method further comprises: The first user site egress device is notified of the site identifier of the site to which the first gateway belongs, the application type, and the node identifier of the first gateway.
35. The method according to any one of claims 26 to 34, characterized in that: The first path performance metric value includes one or more of the following: Delay, packet loss rate, jitter, bandwidth, path status and quality of experience (QoE).
36. The method according to any one of claims 30 to 33, characterized in that: The first route includes one or more of the following: A first subtype length value Sub-TLV, indicating a transmission delay of the first path; A second Sub-TLV, indicating a packet loss rate of the first path; A third Sub-TLV indicating jitter of the first path; A fourth Sub-TLV, indicating a bandwidth of the first path; A fifth Sub-TLV, indicating a path status of the first path; A sixth Sub-TLV, indicating the QoE of the first path; The seventh Sub-TLV indicates the name of the target object; The eighth Sub-TLV indicates the domain name of the target object.
37. The method according to any one of claims 26 to 36, characterized in that: The method further comprises: The identification information of the target object, the first path index, and the first path performance metric value are notified to a second user site egress device.
38. The method according to claim 37, characterized in that The notifying the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: A second route is notified to the second user site egress device, where the second route includes identification information of the target object, the first path index, and the first path performance metric value.
39. The method according to any one of claims 26 to 38, characterized in that: The method further comprises: The identification information of the target object, the first path index, and the first path performance metric value are notified to the second gateway.
40. The method according to any one of claims 26 to 39, characterized in that: The method further comprises: Acquire a second path performance metric value of a second path for the first gateway to access the target object, where the second path performance metric value indicates performance of the second path; The identification information of the target object, the second path index, and the second path performance metric value are notified to the first user site egress device, where the second path index identifies the second path.
41. The method according to claim 40, characterized in that The notifying the first user site egress device of the identification information of the target object, the second path index, and the second path performance metric value includes: A third route is notified to the first user site egress device, where the third route includes identification information of the target object, the second path index, and the second path performance metric value.
42. The method according to claims 26-41, characterized in that The method further comprises: receiving an encapsulated first service message, wherein an outer layer of the first service message is encapsulated with the first path index; The first service message is forwarded through the first path according to the first path index.
43. The method according to claim 42, characterized in that The encapsulated first service message includes a general routing encapsulation GRE header, and the GRE header includes the first path label.
44. The method according to claim 42, characterized in that When the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.
45. The method according to claim 42, characterized in that When the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.
46. A communication device, characterized in that: The device comprises: Transceiver unit and processing unit; The transceiver unit is used to perform the receiving and / or sending operations performed by the first user site egress device as described in any one of claims 1-25; the processing unit is used to perform operations other than the receiving and / or sending operations performed by the first user site egress device as described in any one of claims 1-25; or, The transceiver unit is used to perform the receiving and / or sending operations performed by the first gateway as described in any one of claims 26-45; the processing unit is used to perform operations other than the receiving and / or sending operations performed by the first gateway as described in any one of claims 26-45.
47. A communication device, characterized in that: include: Processor and memory; The memory is used to store instructions; The processor is used to execute the instructions so that the communication device performs the method described in any one of claims 1-45.
48. A communication system, characterized in that: The system comprises: A first user site egress device that executes the method described in any one of claims 1 to 25, and a first gateway that executes the method described in any one of claims 26 to 45.
49. A computer-readable storage medium, characterized in that The method comprises instructions or computer programs, which, when executed on a processor, implement the method according to any one of claims 1 to 45.
Citation Information
Cited By
Path selection method, information processing method and apparatus
EP4727086A1
Path selection method, information processing method and apparatus
WO2025016249A1