Routing processing method and network equipment

By assigning a second identifier to the second route based on the first identifier in the first network device, the problem that the splicing node needs to perceive the VRF instance is solved, normal publishing of cross-domain routing and normal processing of packets is realized, and configuration pressure is reduced.

CN119728517APending Publication Date: 2025-03-28HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202411345474.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2020-09-30
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

At the splicing of newly built SRv6 networks and traditional MPLS networks, the splicing nodes need to perceive VRF instances to achieve routing crossover and republish, resulting in cumbersome configuration and high pressure.

Method used

By assigning a second identifier to the second route based on the first identifier in the first route in the first network device and carrying the second identifier in the second route, normal routing release in the cross-domain scenario is realized, avoiding the addition of a large number of configurations on the splicing nodes.

Benefits of technology

It realizes normal publishing of cross-domain routing, reduces the configuration pressure of splicing nodes, and controls the forwarding path through the identified one-to-one correspondence relationship to ensure the normal processing of messages.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119728517A_ABST
    Figure CN119728517A_ABST
Patent Text Reader

Abstract

A route processing method and a network device, the method comprising: a first network device receiving a first route sent by a second network device, the first route comprising a first identifier; the first network device allocates a second identifier corresponding to the first route according to the first identifier; the first network device sends a second route to a third network device according to the first route, wherein the second route comprises a second identifier; wherein the second network device is located in the first network domain, and the third network device is located in the second network domain. In the scheme, the first network device allocates the second identifier in the second network domain based on the first identifier in the first network domain, and the second identifier is carried in the second route, so that normal route release in a cross-domain scene can be realized, a large amount of configuration is prevented from being added at a splicing node, and the configuration pressure is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application. The application number of the original application is 202011066509.8, and the original application date is September 30, 2020. The entire contents of the original application are incorporated into this application by reference. Technical Field

[0002] The present application relates to the field of communication technology, and in particular to a routing processing method and a network device. Background Art

[0003] With the development of segment routing IPV6 (SRV6) technology based on Internet protocol version 6 (IPv6), more and more new networks have adopted SRv6 technology, resulting in the emergence of scenarios where new SRv6 networks are spliced ​​with traditional Multi-Protocol Label Switching (MPLS) networks.

[0004] There are a large number of cross-network services at the splicing nodes where the newly built network and the traditional network are spliced. Currently, when a splicing node learns a route published in a network, it needs to cross the route to the virtual routing forwarding (Virtual Routing Forwarding, VRF) instance of the private network (that is, filter and copy the route to the VRF instance), and then republish the route to another network based on the VRF instance. This routing processing method requires the splicing node to be able to perceive the VRF, which requires a lot of configuration to be added at the splicing node, resulting in cumbersome splicing node configuration. Summary of the invention

[0005] The present application provides a routing processing method, when a first network device receives a first route sent by a second network device in a first network domain, it allocates a corresponding second identifier to the first route based on the first identifier in the first route, and sends a second route carrying the second identifier to a third network device in the second network domain, and both the first identifier and the second identifier are used to guide message forwarding between network devices. On the one hand, the second identifier in the second network domain is allocated based on the first identifier in the first network domain, and the second identifier is carried in the second route, which can realize the normal release of routes in cross-domain scenarios, avoid adding a large number of configurations at the splicing nodes, and reduce the configuration pressure; on the other hand, it can also control the forwarding path of the first network device based on the one-to-one correspondence between the identifiers to ensure the normal processing of the message.

[0006] The first aspect of the present application provides a routing processing method, including: a first network device receives a first route sent by a second network device located in a first network domain, the first route including a first identifier; the first network device allocates a second identifier corresponding to the first route according to the first identifier; the first network device sends a second route including the second identifier to a third network device located in a second network domain according to the first route; wherein the first network domain and the second network domain use different forwarding types to forward messages, the second identifier is used to guide the third network device to forward the first message to the first network device, and the first identifier is used to guide the first network device to forward the first message to the second network device. The first network domain and the second network domain use different forwarding types to forward messages, for example, the first network domain and the second network domain may use different types of tunnel technologies to implement message forwarding.

[0007] In the present application, the second identifier in the second network domain is allocated based on the first identifier in the first network domain, and the second identifier is carried in the second route, so that the normal release of routes in cross-domain scenarios can be achieved, avoiding the addition of a large amount of configuration at the splicing node, and reducing the configuration pressure.

[0008] Optionally, in a possible implementation, the first route also includes the address of the second network device; the first network device assigns a corresponding second identifier to the first route according to the first identifier, including: the first network device assigns a corresponding second identifier to the first route according to the address of the second network device and the first identifier. That is, for the first network device, if the network device addresses are the same and the first identifiers are the same, a corresponding second identifier is assigned.

[0009] In the present application, by allocating an identifier in the second network domain based on the address of the network device sending the route in the first network domain and the identifier in the route, when multiple network devices in the first network domain carry the same identifier in the sent route, multiple identifiers in the second network domain can also be allocated, thereby forming a one-to-one correspondence between the identifier in the second network domain and the forwarding path in the first network domain, ensuring normal processing of the message.

[0010] Optionally, in a possible implementation, the first identifier is used to identify a service source corresponding to the first route. The service source may be, for example, a virtual private network (VPN) instance connected to the second network device, or an outbound interface on the second network device, or a virtual machine connected to the second network device.

[0011] Optionally, in a possible implementation, the method also includes: the first network device receives a third route sent by the second network device, the third route includes the address of the second network device and a third identifier, and the third identifier and the first identifier are used to identify different service sources; the first network device allocates a fourth identifier corresponding to the third route according to the address of the second network device and the third identifier; the first network device sends a fourth route to the third network device according to the third route, the fourth route includes the fourth identifier, and the fourth identifier is used to guide the third network device to forward a third message to the first network device.

[0012] In the present application, the first network device can be connected to multiple network devices in the first network domain, and based on the different routes received, it is assigned multiple identifiers in the second network domain, forming a one-to-one correspondence between the multiple identifiers in the second network domain and the multiple forwarding paths in the first network domain, ensuring that the message can be flexibly forwarded across network domains.

[0013] Optionally, in a possible implementation, the method also includes: the first network device receives a fifth route sent by a fourth network device, the fifth route includes the address of the fourth network device and the first identifier, the prefix address of the fifth route is the same as the prefix address of the first route, the fourth network device is located in the first network domain, and the fourth network device and the second network device are connected to, for example, the same virtual machine or VPN instance; the first network device assigns a corresponding fifth identifier to the third route according to the address of the fourth network device and the first identifier, and the address of the fourth network device can be, for example, carried in the next hop field of the fifth route; the first network device sends a sixth route to the third network device according to the third route, the sixth route includes the fifth identifier, and the fifth identifier is used to guide the third network device to forward the second message to the first network device.

[0014] In the present application, by allocating an identifier in the second network domain based on the address of the network device sending the route in the first network domain and the identifier in the route, it is possible to allocate multiple different identifiers corresponding to the second network domain based on the differences in the multiple network devices sending the route in the first network domain, thereby forming a one-to-one correspondence between the identifier in the second network domain and the forwarding path in the first network domain, ensuring normal processing of messages and load balancing in some business scenarios.

[0015] Optionally, in a possible implementation, the method also includes: the first network device establishes a correspondence between the first identifier and the second identifier; the first network device receives a first message sent by the third network device, the first message including the second identifier; the first network device updates the first message according to the second identifier and the correspondence to obtain a second message, the second message including the first identifier; the first network device sends the second message to the second network device.

[0016] In the present application, the first network device pre-establishes a correspondence between the identifier in the route received from the first network domain and the identifier allocated to the second network domain, so that when the first network device receives a message including the identifier allocated to the second network domain, it can determine the identifier in the first network domain based on the identifier in the message, thereby achieving normal forwarding of the message.

[0017] Optionally, in a possible implementation, the correspondence established by the first network device includes the address of the second network device, the correspondence between the first identifier and the second identifier, and the first network device sends the second message to the second network device, including: the first network device determines the address of the second network device based on the first identifier and the correspondence, and sends the second message to the second network device based on the address of the second network device.

[0018] Optionally, in a possible implementation, the first network domain uses an MPLS tunnel to transmit messages, and the second network domain uses an SRv6 tunnel to transmit messages; or, the first network domain uses an SRv6 tunnel to transmit messages, and the second network domain uses an MPLS tunnel to transmit messages.

[0019] Optionally, in a possible implementation manner, the first identifier is a segment identifier (SID), and the second identifier is an MPLS label; or, the first identifier is an MPLS label, and the second identifier is a SID.

[0020] Optionally, in a possible implementation manner, the first network device includes a gateway device of a data center or an aggregation device of an Internet Protocol Radio Access Network (IP RAN).

[0021] Optionally, in a possible implementation manner, the second network device includes a provider edge (PE) device.

[0022] The second aspect of the present application provides a network device, including: a transceiver unit and a processing unit; the transceiver unit is used to receive a first route sent by a second network device, the first route including a first identifier; the processing unit is used to allocate a second identifier corresponding to the first route according to the first identifier; the transceiver unit is used to send a second route to a third network device according to the first route, the second route including the second identifier; wherein the second network device is located in a first network domain, the third network device is located in a second network domain, the first network domain and the second network domain use different forwarding types to forward messages, the second identifier is used to guide the third network device to forward the first message to the first network device, and the first identifier is used to guide the first network device to forward the first message to the second network device.

[0023] Optionally, in a possible implementation, the first route also includes the address of the second network device; and the processing unit is specifically configured to assign a corresponding second identifier to the first route according to the address of the second network device and the first identifier.

[0024] Optionally, in a possible implementation manner, the first identifier is used to identify a service source corresponding to the first route.

[0025] Optionally, in a possible implementation manner, the service source includes a VPN instance connected to the second network device, or an outbound interface on the second network device, or a virtual machine connected to the second network device.

[0026] Optionally, in a possible implementation, the transceiver unit is further used to receive a third route sent by the second network device, the third route including the address of the second network device and a third identifier, the third identifier and the first identifier being used to identify different service sources; the processing unit is further used to allocate a fourth identifier corresponding to the third route according to the address of the second network device and the third identifier; the transceiver unit is further used to send a fourth route to the third network device according to the third route, the fourth route including the fourth identifier, and the fourth identifier being used to guide the third network device to forward a third message to the first network device.

[0027] Optionally, in a possible implementation, the transceiver unit is further used to receive a fifth route sent by a fourth network device, the fifth route includes the address of the fourth network device and the first identifier, the prefix address of the fifth route is the same as the prefix address of the first route, and the fourth network device is located in the first network domain; the processing unit is further used to assign a corresponding fifth identifier to the third route according to the address of the fourth network device and the first identifier; the transceiver unit is further used to send a sixth route to the third network device according to the third route, the sixth route includes the fifth identifier, and the fifth identifier is used to guide the third network device to forward a second message to the first network device.

[0028] Optionally, in a possible implementation, the processing unit is further used to establish a correspondence between the first identifier and the second identifier; the transceiver unit is further used to receive a first message sent by the third network device, the first message including the second identifier; the processing unit is further used to update the first message according to the second identifier and the correspondence to obtain a second message, the second message including the first identifier; the transceiver unit is further used to send the second message to the second network device.

[0029] Optionally, in a possible implementation, the correspondence established by the first network device includes the address of the second network device, the correspondence between the first identifier and the second identifier, and the processing unit is further used to determine the address of the second network device based on the first identifier and the correspondence, and control the transceiver unit to send the second message to the second network device based on the address of the second network device.

[0030] Optionally, in a possible implementation, the first network domain uses an MPLS tunnel to transmit messages, and the second network domain uses an SRv6 tunnel to transmit messages; or, the first network domain uses an SRv6 tunnel to transmit messages, and the second network domain uses an MPLS tunnel to transmit messages.

[0031] Optionally, in a possible implementation manner, the first identifier is a SID, and the second identifier is an MPLS label; or, the first identifier is an MPLS label, and the second identifier is a SID.

[0032] Optionally, in a possible implementation manner, the first network device includes a gateway device of a data center or an aggregation device of an IP RAN.

[0033] Optionally, in a possible implementation manner, the second network device includes a PE device.

[0034] The third aspect of the present application provides a network device, the network device comprising: a processor, which is used to enable the network device to implement the method described in any possible implementation of the first aspect. The device may also include a memory, the memory is coupled to the processor, and when the processor executes the instructions stored in the memory, the network device may implement the method described in any possible implementation of the first aspect. The device may also include a communication interface, the communication interface is used for the device to communicate with other devices, and illustratively, the communication interface may be a transceiver, circuit, bus, module or other type of communication interface.

[0035] The instructions in the memory in this application can be pre-stored or downloaded from the Internet when using the network device. This application does not specifically limit the source of the instructions in the memory. The coupling in this application is an indirect coupling or connection between devices, units or modules, which can be electrical, mechanical or other forms, for information exchange between devices, units or modules.

[0036] The fourth aspect of the present application provides a computer storage medium, which may be non-volatile; the computer storage medium stores computer-readable instructions, and when the computer-readable instructions are executed by a processor, the method described in any possible implementation of the first aspect is implemented.

[0037] A fifth aspect of the present application provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute the method described in any possible implementation of the first aspect.

[0038] A sixth aspect of the present application provides a network system, which includes a network device as described in any implementation of the second or third aspect and a second network device and a third network device as described in any implementation of the first aspect.

[0039] Optionally, in a possible implementation manner, the number of network devices as described in any implementation manner of the second aspect or the third aspect included in the network system may be multiple.

[0040] The solutions provided in the second to sixth aspects are used to implement or cooperate with the method provided in the first aspect, and thus can achieve the same or corresponding beneficial effects as the first aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] Figure 1 A schematic diagram of allocating MPLS labels based on prefix addresses in the related technology provided in an embodiment of the present application;

[0042] Figure 2A schematic diagram of a flow chart of a routing processing method 200 provided in an embodiment of the present application;

[0043] Figure 3 A schematic diagram of a routing processing method 300 provided in an embodiment of the present application;

[0044] Figure 4 A schematic diagram of a routing processing method provided in an embodiment of the present application;

[0045] Figure 5 A schematic diagram of a routing processing method 500 provided in an embodiment of the present application;

[0046] Figure 6 A schematic diagram of the structure of a network device 600 provided in an embodiment of the present application;

[0047] Figure 7 A schematic diagram of the structure of a network device 700 provided in an embodiment of the present application;

[0048] Figure 8 A schematic diagram of the structure of a network system 800 provided in an embodiment of the present application. DETAILED DESCRIPTION

[0049] In order to make the purpose, technical solutions and advantages of the present application more clear, the embodiments of the present application are described below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all of the embodiments. It is known to those skilled in the art that with the emergence of new application scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.

[0050] The terms "first", "second", etc. in the specification and claims of this 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 here can be implemented in an order other than that illustrated or described here. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or modules is not necessarily limited to those steps or modules clearly listed, but may include other steps or modules that are not clearly listed or inherent to these processes, methods, products or devices. The naming or numbering of steps in this application does not mean that the steps in the method flow must be executed in the time / logical sequence indicated by the naming or numbering. The process steps that have been named or numbered can change the execution order according to the technical purpose to be achieved, as long as the same or similar technical effects can be achieved. The division of units in this application is a logical division. There may be other division methods when it is implemented in actual applications. For example, multiple units can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, and the indirect coupling or communication connection between units can be electrical or other similar forms, which are not limited in this application. In addition, the units or sub-units described as separate components may or may not be physically separated, may or may not be physical units, or may be distributed in multiple circuit units, and some or all of the units may be selected according to actual needs to achieve the purpose of the present application.

[0051] With the development of SRv6 technology, more and more newly built networks have adopted SRv6 technology, resulting in the emergence of scenarios where newly built SRv6 networks are spliced ​​with traditional MPLS networks. For example, when a network in a certain area is newly deployed, the newly deployed network in the area is an SRv6 network, and the SRv6 network in the area needs to be connected to the MPLS network in other areas, so a scenario where a newly built SRv6 network is spliced ​​with a traditional MPLS network appears. For another example, in the case of local network transformation, the local network in a certain area is transformed from a traditional MPLS network to an SRv6 network, and the transformed SRv6 network is still connected to the untransformed MPLS network in the area, and the scenario where the SRv6 network is spliced ​​with the MPLS network will also appear.

[0052] There are a large number of cross-network services at the splicing nodes where the new network and the traditional network are spliced, that is, the nodes that connect two types of networks at the same time. At present, when the splicing node learns the routes published in one network, it needs to cross the routes to the virtual routing forwarding (Virtual Routing Forwarding, VRF) instance of the private network (that is, filter and copy the routes to the VRF instance), and then republish the routes to another network based on the VRF instance. This routing processing method requires the splicing node to be able to perceive the VRF, which requires a lot of configuration to be added at the splicing node, resulting in cumbersome splicing node configuration.

[0053] For example, see Figure 1 , Figure 1 This is a schematic diagram of allocating MPLS labels based on prefix addresses in the related technology provided by the embodiment of the present application. Figure 1 As shown, network device 1 and network device 2 are located in the newly built SRv6 network, network device 4 is located in the traditional MPLS network, and network device 3 is located at the junction of the newly built SRv6 network and the traditional MPLS network. Among them, network device 1 is connected to virtual machine (VM) 1 in the host device, and network device 1 can allocate a corresponding segment identifier (SID) 1 to VM1, and publish route 1 carrying SID1 to network device 3. Network device 2 is connected to VM2 and VM3 in the host device, and network device 2 can allocate corresponding SID2 and SID3 to VM2 and VM3, and publish route 2 carrying SID2 and route 3 carrying SID3 to network device 3. VM1, VM2 and VM3 in the host device are used to carry the same service and can be used to achieve load sharing of the service.

[0054] In the related art, when network device 3 receives the routes published by network device 1 and network device 2, network device 3 needs to cross the routes published by network device 1 and network device 2 to the VRF instance, and then republish the routes to network device 4 based on the VRF instance. Since network device 3 needs to perceive the VRF instance, a large amount of configuration needs to be added to network device 3, which makes the configuration of network device 3 cumbersome and increases the configuration pressure of operation and maintenance personnel.

[0055] In addition, when the network device 3 allocates the MPLS label based on the prefix address, since the prefix addresses of route 1, route 2 and route 3 are the same (all of which are the addresses of the host device), the network device 3 allocates an MPLS label to the three routes, and carries the MPLS label in the route to send it to the network device 4. In this case, when the network device 4 receives the message to the host device, the network device 4 determines that there is only one MPLS label corresponding to the message, and forwards the message to the network device 3 through the MPLS label. For the network device 3, the MPLS label corresponds to three SIDs, that is, the MPLS label corresponds to the path to the network device 1 and the path to the network device 2. Therefore, the network device 3 can select a path to send the message from the path to the network device 1 and the path to the network device 2. In this way, the network device 3 can actually randomly select one of the two paths or fixedly select a certain path to forward the message, that is, the ratio between the message to the network device 1 and the message to the network device 2 is 1:1. However, in reality, the network device is connected to 1 VM, and the network device 2 is connected to two VMs. The ratio of messages received by VM1, VM2, and VM3 is 2:1:1, resulting in an unbalanced load between VMs, thereby affecting the normal processing of messages and the efficiency of business execution or issuance.

[0056] In view of this, an embodiment of the present application provides a routing processing method, when a first network device receives a first route sent by a second network device in a first network domain, it allocates a corresponding second identifier to the first route based on the first identifier in the first route, and sends a second route carrying the second identifier to a third network device in the second network domain, and both the first identifier and the second identifier are used to guide message forwarding between network devices. On the one hand, the second identifier in the second network domain is allocated based on the first identifier in the first network domain, and the second identifier is carried in the second route, which can realize the normal release of routes in cross-domain scenarios, avoid adding a large number of configurations at the splicing nodes, and reduce the configuration pressure; on the other hand, it can also control the forwarding path of the first network device based on the one-to-one correspondence between the identifiers, ensure the normal processing of the message, and better guarantee the operation of the business.

[0057] See also Figure 2 , Figure 2 FIG. 2 is a flow chart of a routing processing method 200 provided in an embodiment of the present application. Figure 2 As shown, the routing processing method 200 can be applied to Figure 1 In the network architecture shown, the routing processing method 200 includes the following steps.

[0058] Step 201: A first network device receives a first route sent by a second network device, where the first route includes a first identifier.

[0059] In this embodiment, the first network device may be a border device at the intersection of the first network domain and the second network domain, for realizing the normal execution of cross-domain services. The first network device may be connected to the second network device in the first network domain, and to the third network device in the second network domain. Exemplarily, the first network device may be, for example, a gateway device of a data center or an aggregation device of an Internet Protocol Radio Access Network (IP RAN). The second network device and the third network device may be, for example, provider edge (PE) devices.

[0060] The first network domain and the second network domain may adopt different forwarding types to forward messages. The first network device and the second network device may be tunnel endpoint devices of the first network domain, and the first network device and the third network device may be tunnel endpoint devices of the second network domain. For example, the first network domain may be an SRv6 network, and the forwarding type adopted by the first network domain is to forward messages based on the SRv6 tunnel; the second network domain may be an MPLS network, and the forwarding type adopted by the second network domain is to forward messages based on the MPLS tunnel. Alternatively, the first network domain adopts a forwarding type based on the MPLS tunnel to forward messages, and the second network domain adopts a forwarding type based on the SRv6 tunnel to forward messages. In addition to the above-mentioned forwarding types of forwarding messages based on the SRv6 tunnel and forwarding messages based on the MPLS tunnel, the first network domain and the second network domain may also adopt other possible forwarding types to forward messages, and the forwarding types adopted by the first network domain and the second network domain are different.

[0061] In the process of route publishing, the first route sent by the second network device includes a first identifier, and the first identifier is used to guide the first network device to forward the first message to the second network device during the message forwarding process. Exemplarily, the first identifier can be used to identify the service source corresponding to the first route, and the service source can include, for example, a virtual private network (VPN) instance connected to the second network device, or an outbound interface on the second network device, or a virtual machine connected to the second network device.

[0062] In simple terms, the first identifier can be an identifier assigned by the second network device to the VPN instance to which it is connected; the first identifier can also be an identifier assigned by the second network device to its outbound interface, to which the corresponding VPN instance or virtual machine, etc., which can be used to process business, is connected; the first identifier can also be an identifier assigned by the second network device to the virtual machine to which it is connected, and the virtual machine is used to process business.

[0063] In a possible embodiment, when the first network domain where the second network device is located is an SRv6 network, the first identifier may be, for example, a SID. When the second network domain where the second network device is located is an MPLS network, the first identifier may be, for example, an MPLS label.

[0064] Step 202: The first network device allocates a second identifier corresponding to the first route according to the first identifier.

[0065] In this embodiment, the first identifier is the identifier corresponding to the first route in the first network domain, and the first network device can allocate the second identifier corresponding to the first route in the second network domain based on the first identifier. The second identifier is used to guide the third network device in the second network domain to forward the message to the first network device.

[0066] In a possible embodiment, when the second network domain where the third network device is located is an MPLS network, the second identifier may be, for example, an MPLS label. When the second network domain where the second network device is located is an SRv6 network, the second identifier may be, for example, an SID.

[0067] Step 203: The first network device establishes a corresponding relationship between the first identifier and the second identifier.

[0068] After the first network device assigns the second identifier to the first route carrying the first identifier, the first network device can establish a correspondence between the first identifier and the second identifier and save the correspondence so that the first identifier can be determined based on the second identifier during subsequent message forwarding.

[0069] In a possible embodiment, the first route received by the first network device may also include the address of the second network device. The address of the second network device may be carried in the next hop field of the first route, and the first network device may obtain the address of the second network device based on the next hop field of the first route.

[0070] In the case where the first network device can obtain the address of the second network device, the first network device may also assign a corresponding second identifier to the first route according to the address of the second network device and the first identifier.

[0071] At this time, the correspondence established by the first network device may be the correspondence between the address of the second network device, the first identifier and the second identifier, that is, the first network device may determine the address of the second network device corresponding to it and the first identifier based on the second identifier.

[0072] Step 204: The first network device sends a second route to a third network device according to the first route, where the second route includes the second identifier.

[0073] After the first network device is assigned the second identifier, the first network device can obtain the second route by updating or regenerating the first route, and the second route includes the second identifier. Then, the first network device sends the second route to the third network device located in the second network domain, so that the third network device can forward the corresponding message to the first network device based on the second identifier in the second route, so that the first network device further forwards the message to the second network device in another network domain.

[0074] Step 205: The first network device receives a first message sent by the third network device, where the first message includes the second identifier.

[0075] During the message forwarding process, the first network device may receive the first message including the second identifier sent by the third network device.

[0076] Step 206: The first network device updates the first message according to the second identifier and the corresponding relationship to obtain a second message, where the second message includes the first identifier.

[0077] In this embodiment, after receiving the first message, the first network device can determine the second identifier included in the first message, and determine the first identifier corresponding to the second identifier based on the above correspondence. Based on the first identifier determined by the second identifier, the first network device can update the first message, specifically, it can strip the second identifier in the first message, and add the first identifier to the first message, thereby obtaining the second message including the first identifier.

[0078] Step 207: The first network device sends the second message to the second network device.

[0079] In this embodiment, when the correspondence established by the first network device includes the first identifier, the second identifier, and the address of the second network device, the first network device can determine the address of the second network device based on the first identifier and the correspondence, and send the second message to the second network device based on the address of the second network device.

[0080] When the correspondence established by the first network device only includes the first identifier and the second identifier, the first network device can determine the address of the second network device corresponding to the first identifier based on the mapping relationship between the preset first identifier and the address of the second network device, thereby sending the second message to the second network device.

[0081] Exemplarily, when the second network device allocates the first identifier to the service source, the second network device may allocate the first identifier based on a pre-allocated address segment, thereby ensuring that the first identifier is within the allocable address segment corresponding to the second network device. In the first network device, a mapping relationship between the address of the second network device and the allocable address segment corresponding to the second network device may be preset. In this way, after the first network device obtains the first identifier, the first network device may determine that the first identifier is within the allocable address segment corresponding to the second network device, and based on the mapping relationship and the allocable address segment, determine the address of the second network device, that is, realize the determination of the address of the second network device based on the first identifier.

[0082] In the case where the second network device allocates the first identifier based on the pre-allocated address segment, the address segments allocated to the second network device and other network devices may be different. In this way, when each network device allocates an identifier to a service source, it can be ensured that the identifier allocated to each network device is different, thereby ensuring that the first network device can uniquely determine the address of the second network device based on the second identifier.

[0083] In a possible embodiment, in the above Figure 2 In a corresponding embodiment, the second network device may also be allocated with multiple identifiers corresponding to different service sources, and send corresponding routes to the first network device.

[0084] Exemplarily, the routing processing method 200 may also include: the first network device receives a third route sent by the second network device, the third route includes the address and the third identifier of the second network device, and the third identifier and the first identifier are used to identify different service sources. For example, when the second network device is connected to multiple virtual machines, the second network device may respectively assign a first identifier and a third identifier to different virtual machines. The first network device assigns a fourth identifier corresponding to the first route according to the address and the third identifier of the second network device, and the fourth identifier is the identifier corresponding to the third route in the second network domain. The first network device sends a fourth route to the third network device according to the third route, and the fourth route includes the fourth identifier, and the fourth identifier is used to guide the third network device to forward a third message to the first network device.

[0085] That is to say, when the second network device is connected to multiple virtual machines located in the same host device, the first network device can allocate multiple corresponding identifiers in the second network domain based on multiple routes carrying different identifiers sent by the second network device, thereby forming a one-to-one correspondence between the multiple identifiers in the second network domain and the multiple forwarding paths in the first network domain, so that the third network device can obtain multiple forwarding paths for messages with the same destination address, ensuring that the messages can be flexibly forwarded across network domains.

[0086] For ease of understanding, the routing processing method provided by the embodiment of the present application will be described in detail below with reference to specific examples. Figure 3 , Figure 3 Schematic diagram of a routing processing method 300 provided in an embodiment of the present application. Figure 3 As shown, network device 1 is located in the SRv6 network, network device 3 is located in the MPLS network, and network device 2 is located at the junction of the SRv6 network and the MPLS network. In addition, network device 1 is connected to VM1 and VM2 in the host device. The routing processing method 300 includes the following steps.

[0087] Step 301: Network device 1 sends route 1 to network device 2, where route 1 includes SID 1.

[0088] In this embodiment, after VM1 connected to network device 1 comes online, network device 1 may allocate corresponding SID1 to VM1 connected thereto, and network device 1 may also allocate corresponding SID1 to the outbound interface connected thereto of VM1.

[0089] After SID1 is allocated, when the host device sends a route to network device 1 through VM1, the route prefix of the route is the address of the host device, and network device 1 can generate route 1 based on the route sent by the host device. The route prefix of route 1 is the address of the host device, and route 1 also includes SID1 and the address of network device 1. SID1 can be located in the Prefix-sid field of route 1, for example, and the address of network device 1 can be located in the Next Hop field of route 1.

[0090] In addition, the correspondence between the host device 1 and VM1 may be configured in the network device 1 in a preconfigured manner, that is, the correspondence between the address of the host device 1 and VM1 is configured. In this way, the network device 1 may also generate the aforementioned route 1 based on the preconfigured correspondence between the address of the host device 1 and VM1.

[0091] Step 302: Network device 1 sends route 2 to network device 2, where route 2 includes SID 2.

[0092] Similarly, network device 1 may allocate corresponding SID2 to VM2 or the outbound interface connected to VM2, and send route 2 to network device 2, where the route prefix of route 2 is the address of the host device and route 2 also carries SID2.

[0093] Step 303: Network device 2 allocates MPLS label 1 to route 1 and allocates MPLS label 2 to route 2.

[0094] After receiving route 1 and route 2, network device 2 may allocate MPLS label 1 in the MPLS network to route 1 according to SID 1, and allocate MPLS label 2 in the MPLS network to route 2 according to SID 2. In addition, network device 2 may also establish corresponding relationship 1 between SID 1 and MPLS label 1, and corresponding relationship 2 between SID 2 and MPLS label 2.

[0095] In addition, network device 2 may also establish corresponding relationship 1 including network device 1 based on the address of network device 1 included in route 1, that is, corresponding relationship 1 may be a corresponding relationship between SID1, MPLS label 1, and the address of network device 1. Similarly, network device 2 may also establish corresponding relationship 2 including network device 1, that is, corresponding relationship 2 may be a corresponding relationship between SID2, MPLS label 2, and the address of network device 1.

[0096] It is understandable that the order in which the network device 2 allocates MPLS label 1 and MPLS label 2 can be based on the order in which the network device 2 receives route 1 and route 2. In the case that the network device 1 receives route 1 first, the network device first allocates MPLS label 1 corresponding to route 1; in the case that the network device 1 receives route 2 first, the network device first allocates MPLS label 2 corresponding to route 2.

[0097] Step 304 : Network device 2 sends route 3 including MPLS label 1 to network device 3 .

[0098] Step 305 , network device 2 sends route 4 including MPLS label 2 to network device 3 .

[0099] After the corresponding MPLS labels are allocated, network device 2 can generate corresponding routes 3 and 4 based on routes 1 and 2, and send route 3 including MPLS label 1 and route 4 including MPLS label 2 to network device 3. The route prefixes of routes 3 and 4 are the same as those of routes 1 and 2, that is, the address of the host device.

[0100] After receiving route 3 and route 4, network device 3 may generate a corresponding forwarding entry based on route 3 and route 4. The prefix address of the forwarding entry is the address of the host device, and the forwarding entry has corresponding MPLS label 1 and MPLS label 2.

[0101] Step 306: The network device 3 receives the message 1 sent by the server.

[0102] When the server connected to the network device 3 has business transmission, the network device 3 can receive the message 1 sent by the server, and the destination address of the message 1 can be the address of the host device.

[0103] Step 307 , network device 3 updates message 1 , obtains message 2 including MPLS label 2 , and sends message 2 to network device 2 .

[0104] Based on the destination address in the message 1, the network device 3 can search for a matching forwarding entry in the routing table, thereby determining the forwarding entry generated above and determining the corresponding MPLS label 1 and MPLS label 2.

[0105] After determining the MPLS label 1 and the MPLS label 2 corresponding to the message 1, the network device 3 may determine one of the two MPLS labels for forwarding the message 1. For example, in this embodiment, the network device 3 may select the MPLS label 2 for forwarding the message 1 based on the preset load balancing policy. In this way, the network device 3 encapsulates the MPLS label 2 in the message 1 to obtain the message 2 including the MPLS label 2, and sends the message 2 to the network device 2 based on the MPLS tunnel corresponding to the MPLS label 2.

[0106] Step 308 , network device 2 updates message 2 , obtains message 3 including SID 2 , and sends message 2 to network device 1 .

[0107] After receiving message 2, network device 2 can determine SID 2 corresponding to MPLS label 2 based on pre-established correspondence relationship 2 and MPLS label 2 in message 2. Then, network device 2 can decapsulate message 2, strip MPLS label 2 carried in message 2, and encapsulate SID 2 into message 2 to obtain message 3 including SID 2.

[0108] In a possible implementation, when the correspondence 2 established by the network device 2 further includes the address of the network device 1 corresponding to the SID2, the network device 2 may send a message 3 including the SID2 to the network device 1 based on the determined address of the network device 1.

[0109] In another possible implementation, when the correspondence relationship 2 established by the network device 2 does not include the address of the network device 1, the network device 2 can determine the address of the network device corresponding to SID2 (i.e., the address of the network device 1) based on the mapping relationship between the preset SID and the address of the network device, thereby sending the second message to the network device 1. In other words, the network device 1 can allocate SIDs to the VMs based on the pre-allocated address segments, thereby ensuring that the SID1 and SID2 allocated by the network device 1 are both within the allocatable address segment corresponding to the network device 1. In the network device 2, a mapping relationship between the address of the network device 1 and the allocatable address segment corresponding to the network device 1 can be preset. In this way, after the network device 2 obtains SID2, the network device 2 can determine that SID2 is within the allocatable address segment corresponding to the network device 1, thereby determining the address of the second network device.

[0110] Step 309: Network device 1 sends message 3 to VM2.

[0111] After receiving the message 3, the network device 1 can determine the corresponding VM2 based on the SID2 in the message 3, and thus send the message 3 to the VM2.

[0112] exist Figure 3 On the basis of the corresponding embodiment, the network device 2 can receive not only the routes with the same route prefix issued by the same network device, but also the routes with the same route prefix issued by different network devices.

[0113] For example, see Figure 4 , Figure 4 A schematic diagram of a routing processing method provided in an embodiment of the present application. Figure 4 As shown, in Figure 3 On the basis of, a VM3 for carrying services can be added to the host device, and the VM3 is connected to the network device 4.

[0114] Among them, network device 1 allocates SID1 and SID2 to VM1 and VM2 respectively, and network device 1 sends routes carrying SID1 and SID2 respectively to network device 2. Network device 4 allocates SID3 to VM3, and sends a route carrying SID3 to network device 2. In addition, the route prefixes sent by network device 4 and network device 1 are the same, both of which are the addresses of the host devices.

[0115] Network device 2 can generate a correspondence between SIDs and MPLS labels based on the routes sent by network device 1 and network device 4, that is, SID1 corresponds to MPLS label 1, SID2 corresponds to MPLS label 2, and SID3 corresponds to MPLS label 3. Network device 2 sends routes carrying MPLS label 1, MPLS label 2, and MPLS label 3 to network device 3.

[0116] After receiving the three routes sent by network device 2, network device 3 may generate a corresponding forwarding entry, the prefix address of which is the address of the host device, and the forwarding entry has corresponding MPLS label 1, MPLS label 2 and MPLS label 3.

[0117] In addition, network device 3 can also generate three corresponding forwarding table entries based on the three routes sent by network device 2. The prefix addresses of the three forwarding table entries are all the addresses of the host device, and the three forwarding table entries have corresponding MPLS label 1, MPLS label 2 and MPLS label 3 respectively.

[0118] In this way, when network device 3 receives a message destined for the host device, network device 3 can determine the corresponding MPLS labels as MPLS label 1, MPLS label 2, and MPLS label 3 by looking up the routing table. Network device 3 can select one of the three MPLS labels to transmit the message based on the preset load balancing strategy. Then, when network device 2 receives a message sent by network device 3, network device 2 can determine the corresponding SID based on the correspondence between the generated SID and the MPLS label, and send the message.

[0119] That is to say, when network device 3 selects MPLS labels based on the load balancing strategy, the ratio of MPLS label 1, MPLS label 2 and MPLS label 3 can be 1:1:1. Since the transmission paths corresponding to MPLS label 1, MPLS label 2 and MPLS label 3 are the paths to VM1, VM2 and VM3 respectively, the ratio of received messages between VM1, VM2 and VM3 is 1:1:1, which realizes load balancing between VMs and ensures the normal processing of messages.

[0120] In a possible embodiment, in the above Figure 2In the corresponding embodiment, the second network device may be connected to the service instance in a single-homing access mode or a dual-homing access mode. That is, in addition to the second network device, other network devices (such as a fourth network device) may be connected to the same VPN instance or virtual machine as the second network device. In the case where the second network device is dual-homing access, the identifiers assigned by the second network device and the fourth network device to the VPN instance or virtual machine may be the same.

[0121] Exemplarily, the routing processing method 200 may also include: the first network device receives a fifth route sent by a fourth network device, the fifth route includes the address of the fourth network device and the first identifier, the prefix address of the fifth route is the same as the prefix address of the first route, the fourth network device is located in the first network domain, and the fourth network device and the second network device are connected to, for example, the same virtual machine or VPN instance.

[0122] The first network device assigns a corresponding fifth identifier to the third route according to the address of the fourth network device and the first identifier, and the address of the fourth network device may be, for example, carried in the next hop field of the fifth route. The first network device sends a sixth route to the third network device according to the third route, and the sixth route includes the fifth identifier, and the fifth identifier is used to guide the third network device to forward the second message to the first network device.

[0123] For example, the second network device and the fourth network device are both in the SRv6 network, and the third network device is in the MPLS network. The first identifier carried in the first route sent by the second network device is SID, and the fifth route sent by the fourth network device also carries the SID. The first network device allocates MPLS label 1 to the first route based on the address of the second network device and the SID, and sends the MPLS label 1 to the third network device through the second route; the first network device allocates MPLS label 2 to the fifth route based on the address of the fourth network device and the SID, and sends the MPLS label 2 to the third network device through the sixth route.

[0124] For ease of understanding, the routing processing method provided by the embodiment of the present application will be described in detail below with reference to specific examples. Figure 5 , Figure 5 Schematic diagram of a routing processing method 500 provided in an embodiment of the present application. Figure 5As shown, network device 1 and network device 4 are located in the SRv6 network, network device 3 is located in the MPLS network, and network device 2 is located at the junction of the SRv6 network and the MPLS network. In addition, network device 1 and network device 4 are both connected to VM4 in the host device. The routing processing method 500 includes the following steps.

[0125] Step 501 : Network device 1 sends route 5 including SID 4 to network device 2 .

[0126] In this embodiment, network device 1 can allocate corresponding SID 4 to VM 4 connected thereto. After allocating SID 1, the network device sends route 5 to network device 2, the route prefix of route 1 being the address of the host device, and route 5 also carrying SID 4.

[0127] Step 502 , network device 4 sends route 6 including SID 4 to network device 2 .

[0128] Similarly, the network device 4 may allocate the corresponding SID4 to the VM4, and send a route 6 to the network device 2, wherein the route prefix of the route 6 is the address of the host device, and the route 6 also carries the SID4.

[0129] Step 503 : Network device 2 allocates MPLS label 4 and MPLS label 5 to route 5 and route 6 .

[0130] The route prefixes of routes 5 and 6 received by network device 2 are the same and both carry SID 4. At this time, network device 2 can allocate corresponding MPLS labels to the routes based on the address of the network device sending the routes and the SID.

[0131] That is, the network device 2 can allocate the MPLS label 4 to the route 5 according to the address and SID 4 of the network device 1. The network device 2 can also establish the corresponding relationship 3 between the address, SID 4 and the MPLS label 4 of the network device 1.

[0132] Similarly, network device 2 may allocate MPLS label 5 to route 6 according to the address and SID 4 of network device 4. Network device 2 may also establish a correspondence 4 between the address of network device 4, SID 4 and MPLS label 5.

[0133] Step 504 , network device 2 sends route 7 including MPLS label 4 to network device 3 .

[0134] Step 505 , network device 2 sends route 8 including MPLS label 5 to network device 3 .

[0135] Step 504 and step 505 are similar to the aforementioned step 304 and step 305. For details, please refer to the aforementioned step 304 and step 305, which will not be repeated here.

[0136] Step 506: The network device 3 receives the message 4 sent by the server.

[0137] When the server connected to the network device 3 has business transmission, the network device 3 can receive the message 4 sent by the server, and the destination address of the message 4 can be the address of the host device.

[0138] Step 507 , network device 3 updates message 4 , obtains message 5 , and sends message 5 to network device 2 .

[0139] Based on the destination address in the message 4, the network device 3 can search for a matching forwarding entry in the routing table, thereby determining the forwarding entry generated above and determining the corresponding MPLS label 4 and MPLS label 5.

[0140] After determining the MPLS label 4 and the MPLS label 5 corresponding to the message 4, the network device 3 can determine one of the two MPLS labels for forwarding the message 4. For example, in this embodiment, the network device 3 can select the MPLS label 5 for forwarding the message 1 based on the preset load balancing strategy. In this way, the network device 3 encapsulates the MPLS label 5 in the message 4 to obtain the message 5 including the MPLS label 5, and sends the message 5 to the network device 2 based on the MPLS tunnel corresponding to the MPLS label 5.

[0141] Step 508 , network device 2 updates message 5 , obtains message 6 , and sends message 6 to network device 4 .

[0142] After network device 2 receives message 5 sent by network device 3, it can obtain MPLS label 5 carried in message 5. Based on the above correspondence, network device 2 can determine SID 4 corresponding to MPLS label 5 and the address of network device 4. Therefore, network device 2 can decapsulate message 5, strip MPLS label 5 carried in message 5, and encapsulate SID 4 into message 5 to obtain message 6 including SID 4. Then, network device 2 sends message 6 to network device 4 according to the determined address of network device 4.

[0143] Step 509: Network device 4 sends message 6 to VM4.

[0144] After obtaining the message 6 , the network device 4 may determine the corresponding VM 4 based on the SID 4 in the message 6 , and send the message 6 to the VM 4 .

[0145] In order to implement the above embodiment, the present application also provides a network device. Figure 6 , Figure 6 A schematic diagram of the structure of a network device 600 provided in an embodiment of the present application.

[0146] Figure 6 Although the network device 600 shown shows certain specific features, those skilled in the art will appreciate from the embodiments of the present application that for the sake of brevity, Figure 6 Various other features are not shown to avoid confusing more relevant aspects of the implementation methods disclosed in the embodiments of the present application. To this end, as an example, in some implementations, the network device 600 includes one or more processors 601, a network interface 602, a programming interface 603, a memory 604 and one or more communication buses 605 for interconnecting various components. In other implementations, the network device 600 can also omit or add some functional components or units based on the above examples.

[0147] In some implementations, the network interface 602 is used, among other purposes, to connect to one or more other network devices / servers in the network system. In some implementations, the communication bus 605 includes circuits for interconnecting and controlling communications between system components. The memory 604 may include non-volatile memory, such as a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The memory 604 may also include a volatile memory, which may be a random access memory (RAM) that is used as an external cache.

[0148] In some implementations, the memory 604 or the non-transitory computer-readable storage medium of the memory 604 stores the following programs, modules, and data structures, or a subset thereof, including, for example, a transceiver unit (not shown in the figure), and a processing unit 6041 .

[0149] In a possible embodiment, the network device 600 may have any function of the first network device in the method 200 or the first network device in the method 800. The transceiver unit in the network device 600 is used to execute the above-mentioned step 201, step 207, step 304, step 305, step 308, step 504, step 505 or step 508; the processing unit 6041 is used to execute the above-mentioned step 202, step 203, step 206, step 303 or step 503.

[0150] It should be understood that network device 600 corresponds to the first network device in the above method embodiment, and the modules in network device 600 and the above other operations and / or functions are respectively for implementing the various steps and methods implemented by the first network device in the above method embodiment. For specific details, please refer to the above method 200, method 300 or method 500. For the sake of brevity, they will not be repeated here.

[0151] It should be understood that the functions of the above transceiver unit can be implemented by the processor calling the program code in the memory and cooperating with the network interface 602 when necessary; or the network interface 602 on the network device 600 can complete the data transmission and reception operation.

[0152] In various implementations, the network device 600 is used to execute the routing processing method provided in the embodiment of the present application, for example, to execute the above Figure 2 , Figure 3 or Figure 5 The routing processing method corresponding to the embodiment shown.

[0153] Corresponding to the method embodiment and virtual device embodiment provided in the present application, the embodiment of the present application further provides a network device, and the hardware structure of the network device is introduced below.

[0154] See also Figure 7 , Figure 7 A schematic diagram of the structure of a network device 700 provided in an embodiment of the present application, the network device 700 can be configured as the first network device in the above method embodiment.

[0155] The network device 700 may correspond to the first network device in the above method embodiment. The hardware, modules and other operations and / or functions in the network device 700 are respectively various steps and methods implemented by the first network device in the method embodiment. For the detailed process of how the network device 700 forwards the message, the specific details can be found in the above method embodiment. For the sake of brevity, it will not be repeated here. Among them, the steps of the above method 200, method 300 or method 500 are completed by the hardware integrated logic circuit or software instructions in the processor of the network device 700. The steps of the method disclosed in the embodiment of the present application can be directly embodied as the execution of the hardware processor, or the execution is completed by the combination of the hardware and software modules in the processor. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in a memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware. To avoid repetition, it is not described in detail here.

[0156] The network device 700 includes: a main control board 77 and an interface board 730 .

[0157] The main control board 77 is also called the main processing unit (MPU) or route processor card. The main control board 77 controls and manages various components in the network device 700, including routing calculation, device management, device maintenance, and protocol processing functions. The main control board 77 includes: a central processing unit 711 and a memory 712.

[0158] The interface board 730 is also called a line processing unit (LPU), a line card or a service board. The interface board 730 is used to provide various service interfaces and realize the forwarding of data packets. The service interface includes but is not limited to an Ethernet interface, a POS (Packet over SONET / SDH) interface, etc., and the Ethernet interface is, for example, a Flexible Ethernet Service Interface (Flexible Ethernet Clients, FlexE Clients). The interface board 730 includes: a central processing unit 731, a network processor 732, a forwarding table entry memory 734 and a physical interface card (Ph7sical interface card, PIC) 733.

[0159] The central processor 731 on the interface board 730 is used to control and manage the interface board 730 and communicate with the central processor 711 on the main control board 77 .

[0160] The network processor 732 is used to implement message forwarding processing. The network processor 732 may be in the form of a forwarding chip. Specifically, the processing of uplink messages includes: message inbound interface processing, forwarding table search; the processing of downlink messages: forwarding table search, etc.

[0161] The physical interface card 733 is used to implement the docking function of the physical layer, from which the original traffic enters the interface board 730, and the processed message is sent from the physical interface card 733. The physical interface card 733 includes at least one physical interface, which is also called a physical port. The physical interface card 733 corresponds to the FlexE physical interface in the system architecture. The physical interface card 733 is also called a daughter card, which can be installed on the interface board 730 and is responsible for converting the optical signal into a message and forwarding the message to the network processor 732 for processing after checking the legitimacy of the message. In some embodiments, the central processor 731 of the interface board 703 can also perform the functions of the network processor 732, such as implementing software forwarding based on a general-purpose CPU, so that the network processor 732 is not required in the physical interface card 733.

[0162] Optionally, the network device 700 includes a plurality of interface boards. For example, the network device 700 further includes an interface board 740 . The interface board 740 includes a central processor 741 , a network processor 742 , a forwarding table entry memory 744 , and a physical interface card 743 .

[0163] Optionally, the network device 700 further includes a switching fabric board 720. The switching fabric board 720 may also be referred to as a switch fabric unit (SFU). When the network device has multiple interface boards 730, the switching fabric board 720 is used to complete data exchange between the interface boards. For example, the interface board 730 and the interface board 740 may communicate via the switching fabric board 720.

[0164] The main control board 77 is coupled to the interface board 730. For example, the main control board 77, the interface board 730, the interface board 740, and the switching network board 720 are connected to the system backplane through a system bus to achieve intercommunication. In a possible implementation, an inter-process communication (IPC) channel is established between the main control board 77 and the interface board 730, and the main control board 77 and the interface board 730 communicate through the IPC channel.

[0165] Logically, the network device 700 includes a control plane and a forwarding plane. The control plane includes a main control board 77 and a central processor 731. The forwarding plane includes various components for performing forwarding, such as a forwarding table entry memory 734, a physical interface card 733, and a network processor 732. The control plane performs functions such as a router, generating a forwarding table, processing signaling and protocol messages, and configuring and maintaining the status of the device. The control plane sends the generated forwarding table to the forwarding plane. On the forwarding plane, the network processor 732 forwards the message received by the physical interface card 733 based on the forwarding table sent by the control plane. The forwarding table sent by the control plane can be stored in the forwarding table entry memory 734. In some embodiments, the control plane and the forwarding plane can be completely separated and not on the same device.

[0166] It should be understood that the operation on the interface board 740 in the embodiment of the present application is consistent with the operation of the interface board 730, and for the sake of brevity, it will not be repeated. It should be understood that the network device 700 of this embodiment can correspond to the first network device or the second network device in the above-mentioned various method embodiments, and the main control board 77, the interface board 730 and / or the interface board 740 in the network device 700 can implement the functions and / or various steps implemented by the first network device in the above-mentioned various method embodiments, and for the sake of brevity, it will not be repeated here.

[0167] It is worth noting that there may be one or more main control boards, and when there are multiple boards, they may include a primary main control board and a backup main control board. There may be one or more interface boards. The stronger the data processing capability of the network device, the more interface boards are provided. There may also be one or more physical interface cards on the interface board. There may be no switching network board, or there may be one or more switching network boards. When there are multiple switching network boards, they can jointly realize load sharing and redundant backup. In a centralized forwarding architecture, network devices may not need switching network boards, and the interface board is responsible for processing the service data of the entire system. In a distributed forwarding architecture, network devices can have at least one switching network board, which realizes data exchange between multiple interface boards and provides large-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of network devices with distributed architecture are greater than those of devices with centralized architecture. Optionally, the network device may have only one board, that is, no switching board, and the functions of the interface board and the main control board are integrated on the board. In this case, the central processor on the interface board and the central processor on the main control board can be combined into one central processor on the board to perform the functions of the two. This type of device has low data exchange and processing capabilities (for example, low-end switches or routers and other network devices). The specific architecture to be adopted depends on the specific networking deployment scenario, and is not limited here.

[0168] In some possible embodiments, the above-mentioned first network device can be implemented as a virtualized device. For example, the virtualized device can be a virtual machine (English: Virtual Machine, VM) running a program for sending message functions, and the virtual machine is deployed on a hardware device (for example, a physical server). A virtual machine refers to a complete computer system with complete hardware system functions simulated by software and running in a completely isolated environment. The virtual machine can be configured as a first network device or a second network device. For example, the first network device or the second network device can be implemented based on a general physical server in combination with network function virtualization (NFV) technology. The first network device or the second network device is a virtual host, a virtual router or a virtual switch. Those skilled in the art can virtualize the first network device or the second network device with the above-mentioned functions on a general physical server in combination with NFV technology by reading this application. It will not be repeated here.

[0169] It should be understood that the network devices in the above-mentioned various product forms respectively have any functions of the first network device in the above-mentioned method embodiment, which will not be repeated here.

[0170] An embodiment of the present application provides a computer program product. When the computer program product is executed on a network device, the network device executes the method executed by the first network device in the above method 200, method 300 or method 500.

[0171] See also Figure 8 The embodiment of the present application provides a network system 800, and the system 800 includes: a first network device 801, a second network device 802, and a third network device 803. Optionally, the first network device 801 can be the first network device in the method 200, the network device 600, and the network device 700 described above; the second network device 802 can be the second network device in the method 200; and the third network device 803 can be the third network device in the method 200.

[0172] The embodiment of the present application also provides a chip, including a processor and an interface circuit, the interface circuit is used to receive instructions and transmit them to the processor. The processor is coupled to a memory, the memory is used to store programs or instructions, and when the program or instruction is executed by the processor, the chip system implements the method in any of the above method embodiments.

[0173] Optionally, the processor in the chip system may be one or more. The processor may be implemented by hardware or by software. When implemented by hardware, the processor may be a logic circuit, an integrated circuit, etc. When implemented by software, the processor may be a general-purpose processor implemented by reading software code stored in a memory.

[0174] Optionally, the memory in the chip system may be one or more. The memory may be integrated with the processor or may be separately provided with the processor, which is not limited in the present application. Exemplarily, the memory may be a non-transient processor, such as a read-only memory ROM, which may be integrated with the processor on the same chip or may be provided on different chips. The present application does not specifically limit the type of memory and the arrangement of the memory and the processor.

[0175] Exemplarily, the chip system can be a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on chip (SoC), a central processor unit (CPU), a network processor (NP), a digital signal processor (DSP), a microcontroller unit (MCU), a programmable logic device (PLD) or other integrated chips.

[0176] The above describes the embodiments of the present application in detail. The steps in the method of the embodiments of the present application can be scheduled in sequence, merged or deleted according to actual needs; the modules in the device of the embodiments of the present application can be divided, merged or deleted according to actual needs.

[0177] It should be understood that "one embodiment" or "an embodiment" mentioned throughout the specification means that specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in various embodiments of the present application, the size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.

[0178] The term "and / or" in this article is only a description of the association relationship of the associated objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article generally indicates that the associated objects before and after are in an "or" relationship.

[0179] It should be understood that in the embodiment of the present application, "B corresponding to A" means that B is associated with A, and B can be determined according to A. However, it should also be understood that determining B according to A does not mean determining B only according to A, and B can also be determined according to A and / or other information.

[0180] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0181] 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.

[0182] 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 function 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.

[0183] 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.

[0184] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0185] If the integrated unit is implemented in the form of a software functional 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, which is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, a server, or a network device / server, etc.) to perform all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory, a random access memory, a magnetic disk or an optical disk.

Claims

1. A message forwarding method, characterized in that: The method is performed by a first network device, where the first network device is a splicing node of a first network and a second network, and includes: receiving a first message from the first network, where the first message includes a second identifier; According to the second identifier included in the first message and the corresponding relationship between the second identifier and the first identifier, the first message is updated to obtain a second message, where the second message includes the first identifier; Forwarding the second message to a second network device in the second network; The first network is a multi-protocol label switching MPLS network, the second network is a segment routing SRv6 network of Internet Protocol version 6, the first message is an MPLS message, the second identifier is an MPLS label, the second message is an SRv6 message, and the first identifier is an SRv6 segment identifier SID; or The first network is an SRv6 network, the second network is an MPLS network, the first message is an SRv6 message, the second identifier is an SRv6 SID, the second message is an MPLS message, and the first identifier is an MPLS label.

2. The method according to claim 1, characterized in that The method further comprises: receiving a first route sent by the second network device, where the first route includes the first identifier; Allocating the second identifier corresponding to the first route according to the first identifier; A second route is sent to a third network device according to the first route, where the second route includes the second identifier.

3. The method according to claim 2, characterized in that The first route also includes an address of the second network device; The allocating the second identifier corresponding to the first route according to the first identifier includes: The second identifier is allocated to the first route according to the address of the second network device and the first identifier.

4. The method according to claim 2 or 3, characterized in that: The first identifier is used to identify the service source corresponding to the first route.

5. The method according to claim 4, characterized in that The service source includes a virtual private network VPN instance connected to the second network device, or an outbound interface on the second network device, or a virtual machine connected to the second network device.

6. The method according to any one of claims 2 to 5, characterized in that: The method further comprises: receiving a third route sent by the second network device, wherein the third route includes an address and a third identifier of the second network device, and the third identifier and the first identifier are used to identify different service sources; Allocating a fourth identifier corresponding to the third route according to the address of the second network device and the third identifier; A fourth route is sent to the third network device according to the third route, wherein the fourth route includes the fourth identifier, and the fourth identifier is used to guide the third network device to forward a third message to the first network device.

7. The method according to any one of claims 2 to 6, characterized in that: The method further comprises: receiving a fifth route sent by a fourth network device, wherein the fifth route includes an address of the fourth network device and the first identifier, a prefix address of the fifth route is the same as a prefix address of the first route, and the fourth network device and the second network device belong to the same network domain; Allocating a corresponding fifth identifier to the third route according to the address of the fourth network device and the first identifier; A sixth route is sent to the third network device according to the fifth route, wherein the sixth route includes the fifth identifier, and the fifth identifier is used to guide the third network device to forward a fourth message to the first network device.

8. The method according to any one of claims 2 to 7, characterized in that: The method further comprises: After receiving the first route, a corresponding relationship between the second identifier and the first identifier is established.

9. The method according to any one of claims 2 to 8, characterized in that: After receiving the first route and before sending the second route, the first network device does not need to cross the route to the virtual route forwarding VRF instance of the private network.

10. The method according to any one of claims 1 to 9, characterized in that: The first network device includes a gateway device of a data center or a convergence device of an Internet Protocol Radio Access Network (IP RAN).

11. The method according to any one of claims 1 to 10, characterized in that: The second network device includes a provider edge PE device.

12. A routing processing method, characterized in that: The method is performed by a first network device, where the first network device is a splicing node of a first network and a second network, and includes: receiving a first route sent by a second network device in the second network, where the first route includes a first identifier; Allocating the second identifier corresponding to the first route according to the first identifier; Sending a second route to a third network device in the first network according to the first route, where the second route includes the second identifier; The second network is an Internet Protocol version 6 segment routing SRv6 network, the first network is a multi-protocol label switching MPLS network, the first identifier is an SRv6 segment identifier SID, and the second identifier is an MPLS label; or The second network is an MPLS network, the first network is an SRv6 network, the first identifier is an MPLS label, and the second identifier is an SRv6 SID.

13. A first network device, characterized in that: include: processor; The processor is used to execute instructions in the memory, so that the first network device executes the method according to any one of claims 1-12.

14. A communication system, characterized in that: include: A first network device, a second network device and a third network device, wherein the first network device is used to execute the method according to any one of claims 1 to 12.

15. A computer-readable storage medium, characterized in that: The computer storage medium stores computer-readable instructions, and when the computer-readable instructions are executed by a processor, the method according to any one of claims 1 to 12 is implemented.

16. A computer program product, characterized in that The method comprises instructions, which, when executed by a processor, implement the method according to any one of claims 1 to 12.

17. A first network device, characterized in that: include: A transceiver unit, configured to receive a first message from a first network, wherein the first message includes a second identifier, and the first network device is a splicing node of the first network and the second network; a processing unit, configured to update the first message according to the second identifier included in the first message and a correspondence between the second identifier and the first identifier, so as to obtain a second message, wherein the second message includes the first identifier; The transceiver unit is further configured to forward the second message to a second network device in the second network; The first network is a multi-protocol label switching MPLS network, the second network is an Internet Protocol version 6 segment routing SRv6 network, the first message is an MPLS message, the second identifier is an MPLS label, the second message is an SRv6 message, and the first identifier is an SRv6 segment identifier SID; or The first network is an SRv6 network, the second network is an MPLS network, the first message is an SRv6 message, the second identifier is an SRv6 segment identifier SID, the second message is an MPLS message, and the first identifier is an MPLS label.

Citation Information

Patent Citations

  • A method and equipment for generating route

    CN110535766A

  • Message forwarding method, message sending device and message receiving device

    CN111147383A

  • VPN cross-domain implementation method, device, and border node

    WO2020029976A1

  • CROSS-DOMAIN CONTROL PLANE COLLABORATION FOR END-TO-END SRv6 SLA CONSTRAINED SERVICE DELIVERY

    WO2020072079A1