Routing transmission method and device
By not verifying the next hop reachability in the autonomous domain and forwarding BGP routes directly or when iteration fails, the problem of excessive number of IBGP connections is solved, and the routing release efficiency and routing reflection efficiency in SRv6 networks are improved.
Patent Information
- Application Number
- CN202080107543.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-12-21
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2040-12-21
AI Technical Summary
In the autonomous domain, too many connections between IBGP peers lead to high consumption of network resources and controller resources, and the routing reflector checks the next hop accessibility without data forwarding affecting the routing release efficiency, especially in the lack of location information in the SRv6 network, which leads to failure of routing reflection.
Network devices do not verify the next hop reachability, and forward the BGP route to other devices directly or when iteration fails, reducing additional service deployment, using segment identifiers to indicate the destination device in the SRv6 network, and updating the route when iteration succeeds.
It improves routing release efficiency, reduces additional service deployment, ensures normal reflection and forwarding of routing information, and is suitable for routing transmission in SRv6 networks.
Smart Images

Figure CN116648885B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a routing transmission method and device. Background Art
[0002] During data transmission, in order to ensure the connectivity between internal border gateway protocol (IBGP) peers, it is necessary to establish a full connection between IBGP peers. Figure 1a As shown in the figure, an autonomous domain (AS) includes 4 routers (IBGP peers). In order to ensure the connectivity between routers, 6 IBGP connections need to be established. When the AS includes more routers, the number of IBGP connections that need to be established is large, and the consumption of network resources and controller resources is very large. In order to solve the above problem, a route reflection solution is proposed. Specifically, in an AS, one of the routers is used as a route reflector (router reflector, RR), and the other routers are used as clients to establish IBGP connections with the RR respectively. There is no need to establish IBGP connections between the clients. The RR transmits routing information to each client, or reflects routing information. As shown in the figure, Figure 1b As shown in the figure, R0 is used as RR and IBGP connections are established with R1, R2 and R3 respectively.
[0003] In actual applications, according to the current BGP protocol standard, after receiving a route, a network device needs to verify the reachability of the next hop of the route through the next hop information carried in the route. Only when it is confirmed that the next hop of the route is reachable will it forward the route. In this way, for RRs that support the BGP protocol, after receiving a route, the RR also needs to verify the reachability of the next hop of the route. Only when it is confirmed that the next hop route is reachable will it reflect the route. For example, Figure 1bAs shown in the figure, after receiving routing information from R1, RR needs to verify whether the route from RR to R1 is active. If the route from RR to R1 is active, RR reflects the routing information from R1 to R2 and R3. However, in some application scenarios, RR only provides route reflection and does not need to forward data packets. This verification operation by RR affects the efficiency of route advertising. In addition, in some possible application scenarios, such as using the segment routing protocol on Internet Protocol version 6 (SRv6) to transmit Internet Protocol version 4 (IPv4) data over the public network, network devices use the segment identity (SID) attribute to verify route reachability. However, RRs typically lack locator information, making it impossible to iterate routes using SIDs. To ensure normal reflection of routing information, a default route must be configured for RR so that when the default route is determined to be active, RR will reflect the received route. This increases the workload of deploying additional services. Summary of the Invention
[0004] In view of this, embodiments of the present application provide a routing transmission method and apparatus, which eliminate the need to verify next-hop reachability and reduce the deployment of additional services.
[0005] To solve the above problems, the technical solutions provided in the embodiments of the present application are as follows:
[0006] In a first aspect, a message transmission method is provided, comprising: a first network device obtaining a first Border Gateway Protocol (BGP) route; the first network device directly forwarding the first BGP route to a second network device without iterating the first BGP route. Alternatively, the first network device iterates the first BGP route, and if the iteration fails, the first network device still forwards the first BGP route to the second network device. Specifically, in this implementation, the first network device can be any network device in the network. When broadcasting the first BGP route, after obtaining the first BGP route, the first network device can determine whether to iterate the first BGP route based on a locally configured policy. Regardless of whether the first network device iterates, or if the iteration fails, the first network device can forward the received first BGP route to the second network device, enabling the second network device to learn the first BGP route without deploying additional services, thereby improving the efficiency of the first network device in advertising the first BGP route. For example, if the first network device is a route reflector and does not participate in subsequent message forwarding, the first BGP route can be directly forwarded to the second network device without iterating the first BGP route.
[0007] In a specific embodiment, when the first network device successfully iterates the first BGP route, the method further includes: the first network device forwarding traffic based on the first BGP route. In this implementation, when the first network device participates in subsequent message forwarding, after successfully iterating the first BGP route, it can send the first BGP route to the forwarding plane so that when traffic is received, it can forward the traffic based on the first BGP route.
[0008] In a specific embodiment, the first network device has a route reflection function. For example, the first network device is a route reflector, which, after receiving the first BGP route, may not iterate the first BGP route but directly reflect the received first BGP route to the second network device.
[0009] In a specific embodiment, the first BGP route is applied to a segment-routed SRv6 network based on Internet Protocol version 6, and the first BGP route includes a first segment identifier (SID) for indicating a destination network device. In this implementation, for the SRv6 network, since each network device forwards messages based on the segment identifier, when the first BGP route is broadcast, the first BGP route will include the first segment identifier (SID) indicating the destination network device, so that other network devices can forward the message to the destination network device based on the first segment identifier (SID).
[0010] In a specific embodiment, when a first network device fails to iterate a first BGP route, the first network device still forwards the first BGP route to a second network device, including: the first network device determining that the first BGP route iteration has failed based on the fact that the first SID is not locally stored; and the first network device forwarding the first BGP route to the second network device. That is, in an SRv6 network, if the first network device does not store the first SID, it does not have the ability to perceive the SID and cannot perform route iteration based on the SID, and thus determines that the first BGP route iteration has failed.
[0011] In a specific embodiment, when the first network device successfully iterates the first BGP route, the method further includes: the first network device replacing the first SID in the first BGP route with the second SID to obtain an updated first BGP route; and the first network device sending the updated first BGP route to the second network device. In this implementation, when the first network device successfully iterates the first BGP route, it indicates that the first network device has the ability to perceive SIDs. If the first network device allocates a corresponding second SID, the first SID in the first BGP route is replaced with the second SID, and the first BGP route is updated, thereby allowing the second network device to learn the route to the first network device.
[0012] In a specific embodiment, the first network device obtains a first BGP route, including: the first network device obtains the first BGP route from a third network device; the first network device guides traffic forwarding according to the first BGP route, including: the first network device determines an egress port for reaching the third network device according to the first BGP route to guide forwarding of traffic sent to the third network device.
[0013] In a specific embodiment, the first network device and the second network device are network devices on a segment routing best effort SRv6-BE tunnel based on the sixth version of the Internet Protocol; or, the first network device and the second network device are network devices on a segment routing traffic engineering SRv6-TE tunnel based on the sixth version of the Internet Protocol.
[0014] In a specific embodiment, the first BGP route is received from a third network device, and a segment routing best effort SRv6-BE tunnel based on the sixth version of the Internet Protocol is established between the third network device and the second network device; or, a segment routing traffic engineering SRv6-TE tunnel based on the sixth version of the Internet Protocol is established between the third network device and the second network device.
[0015] In a specific embodiment, the first network device and the second network device are external Border Gateway Protocol (EBGP) neighbors, or the first network device and the second network device are internal Border Gateway Protocol (IBGP) neighbors.
[0016] In a specific implementation, the first network device is a first route reflector RR.
[0017] In a specific implementation, the first network device is a primary RR or a secondary RR.
[0018] In a specific implementation, the third network device is a first operator edge PE device, and the second network device is a second RR or a second PE device.
[0019] In a specific implementation, the first network device and the second network device are network devices applied to a multicast virtual private network (MVPN) scenario.
[0020] In the second aspect, an embodiment of the present application provides a message transmission device, characterized in that the device includes: an acquisition unit, a user obtains a first Border Gateway Protocol BGP route; a sending unit, used to directly forward the first BGP route to a second network device without iterating the first BGP route; the sending unit is also used to forward the first BGP route to the second network device when the iteration of the first BGP route fails.
[0021] In a specific implementation, when the iteration of the first BGP route is successful, the sending unit is further configured to guide traffic forwarding according to the first BGP route.
[0022] In a specific implementation, the device has a route reflection function.
[0023] In a specific embodiment, the first BGP route is applied to a segment routing SRv6 network based on the sixth version of the Internet Protocol, and the first BGP route includes a first segment identifier SID for indicating a destination network device.
[0024] In a specific implementation, when iteration of the first BGP route fails, the sending unit is specifically configured to determine that the iteration of the first BGP route fails based on the first SID not being stored locally; and forward the first BGP route to the second network device.
[0025] In a specific embodiment, when the iteration of the first BGP route is successful, the device also includes: a processing unit, used to replace the first SID in the first BGP route with a second SID to obtain an updated first BGP route; the sending unit is used to send the updated first BGP route to the second network device.
[0026] In a specific embodiment, the acquisition unit is specifically used to obtain the first BGP route from the third network device; the sending unit is specifically used to determine the egress port for reaching the third network device based on the first BGP route to guide the forwarding of traffic sent to the third network device.
[0027] In a specific embodiment, the apparatus and the second network device are network devices on a segment routing best effort SRv6-BE tunnel based on the sixth version of the Internet Protocol; or, the apparatus and the second network device are network devices on a segment routing traffic engineering SRv6-TE tunnel based on the sixth version of the Internet Protocol.
[0028] In a specific embodiment, the first BGP route is received from a third network device, and a segment routing best effort SRv6-BE tunnel based on the sixth version of the Internet Protocol is established between the third network device and the second network device; or, a segment routing traffic engineering SRv6-TE tunnel based on the sixth version of the Internet Protocol is established between the third network device and the second network device.
[0029] In a specific embodiment, the apparatus and the second network device are external Border Gateway Protocol (EBGP) neighbors, or the apparatus and the second network device are internal Border Gateway Protocol (IBGP) neighbors.
[0030] In a specific implementation, the device is a first route reflector RR.
[0031] In a specific embodiment, the device is a primary RR or a secondary RR.
[0032] In a specific implementation, the third network device is a first operator edge PE device, and the second network device is a second RR or a second PE device.
[0033] In a specific implementation, the apparatus and the second network device are network devices applied to a multicast virtual private network (MVPN) scenario.
[0034] In a third aspect, a communication device is provided, comprising: a processor and a memory; the memory is used to store computer-readable instructions or computer programs; the processor is used to read the computer-readable instructions or the computer program so that the communication device implements the message transmission method described in the first aspect.
[0035] In a fourth aspect, a computer-readable storage medium is provided, comprising instructions or a computer program, which, when executed on a computer, enables the computer to execute the message transmission method described in the first aspect.
[0036] According to the technical solution provided in the embodiment of the present application, when the first network device obtains the first BGP route, it may not perform an iterative operation on the first BGP route, but directly send the first BGP route to the second network device. Alternatively, the first network device performs an iterative operation on the first BGP route, and when the iteration of the first BGP route fails, the first network device still sends the first BGP route to the second network device. In other words, regardless of whether the first network device performs an iteration, or in the event of an iteration failure, the first network device can forward the received first BGP route to the second network device, so that the second network device can learn the first BGP route without deploying additional services, thereby improving the efficiency of the first network device in publishing the first BGP route. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] In order to more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the specific embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0038] Figure 1a A schematic diagram of a fully connected BGP network architecture;
[0039] Figure 1b A schematic diagram of route reflection in a BGP network architecture;
[0040] Figure 2a A schematic diagram of an application scenario provided in an embodiment of the present application;
[0041] Figure 2b A schematic diagram of another application scenario provided by an embodiment of the present application;
[0042] Figure 3 A routing transmission flow chart provided in an embodiment of the present application;
[0043] Figure 4 Another routing transmission flow chart provided in an embodiment of the present application;
[0044] Figure 5 A structural diagram of a message transmission device provided in an embodiment of the present application;
[0045] Figure 6 A structural diagram of a communication device provided in an embodiment of the present application;
[0046] Figure 7 A structural diagram of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0047] In order to enable those skilled in the art to better understand the solutions of the present invention, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the embodiments described are only part of the embodiments of the present invention, rather than all the embodiments. Based on the embodiments of the present invention, all should fall within the scope of protection of the present invention.
[0048] To facilitate understanding of the specific implementation of this application, the network elements and technical names involved in this application will be explained below.
[0049] Segment routing (SR) is a source routing protocol in which the source node specifies a path for application packets and converts the path into an ordered list of segments, which are encapsulated in the packet header. Intermediate nodes along the path simply forward the packet according to the path specified in the packet header. The basic concept of SR is to divide the network into segments and guide packet forwarding along the specified path by splicing these segments together. Segment identifiers (SIDs) are used to identify a segment. When SR is deployed on the IPv6 data plane, it is called SRv6 technology.
[0050] In SRv6 applications, forwarding path information is carried by a segment routing header (SRH) containing a segment identifier list (SID list). The SID list includes multiple segment identifiers (SIDs) arranged in sequence, each representing a plurality of segments, each segment being an instruction or set of instructions for processing a message. Each SID may include a locator field and a function field. The content of the locator field, which may also be referred to as locator, is an identifier assigned to a network node in the network topology and is used to identify the network node in the network topology. The content of the function field, which may also be referred to as function, is used to represent an instruction or set of instructions for processing a message, which is equivalent to the opcode of a computer instruction. When the instruction or set of instructions represented by the function is executed on the network node, the network node will perform the corresponding forwarding behavior.
[0051] A multicast virtual private network (MVPN) implements multicast services within a virtual private network (VPN) based on a Border Gateway Protocol (BGP) / Multi-Protocol Label Switching (MPLS) network. MVPNs offer a variety of data transport modes, including BGP- or tunnel-based signaling, protocol independent multicast-sparse mode (PIM-SM), protocol independent multicast-source specific multicast (PIM-SSM), and multicast label distribution protocol (MLDP).
[0052] Route recursion occurs when, due to the inherent characteristics of the BGP protocol, the next hop of a route generated by it may not be a network device directly connected to the current router. A common reason for this is that when two adjacent routers are Internal Border Gateway Protocol (IBGP) neighbors, they advertise routes without changing the next hop. In this situation, to correctly forward packets, the routers must first find a directly reachable address that can be used to reach the network device corresponding to the next hop indicated in the routing table. Routes to directly reachable addresses are called dependent routes, and BGP routes rely on these routes to guide packet forwarding. The process of finding dependent routes based on the next hop address is called route recursion.
[0053] See also Figure 2a The schematic diagram of an application scenario shown in the figure takes a first-level route reflector device as an example in the network system. Specifically, it includes a route reflector device RR1, a network device PE1, a network device PE2, and a network device P. Among them, the network device PE1 and the network device PE2 serve as clients corresponding to the route reflector device RR1, PE1 and PE2 are peers to each other, and the network device P is a forwarding device between the network devices PE1 and PE2, which can be, for example, a backbone device in a service provider network. Among them, RR1, PE1, and PE2 can be network devices on an IPv6-based segment routing best-effort (SRv6-BE) tunnel; or, RR1, PE1, and PE2 can be network devices on an IPv6-based segment routing traffic engineering (SRv6-TE) tunnel.
[0054] In one possible scenario, the route reflection device RR1 has the route reflection function but does not have the traffic forwarding function. In this case, RR1 reflects the BGP routes received from PE1 to PE2, but does not guide the subsequent traffic forwarding. Alternatively, in another possible scenario, RR1 has both route reflection and forwarding functions. In this case, RR1 not only sends the BGP routes received from PE1 to PE2, but also establishes a route to PE1 to guide the subsequent traffic forwarding. In this case, RR1 can actually serve as a forwarding node between PE1 and PE2. For example, Figure 2a In this case, RR1 and the P device can be the same network device. Therefore, the P device has components that implement both route reflection and traffic forwarding functions.
[0055] For example Figure 2bThe diagram of another application scenario is shown, using a network system with two levels of route reflectors as an example. Specifically, the network system includes a first-level route reflector, RR1, and a second-level route reflector, RR2. First-level route reflector RR1 is connected to PE1 and RR2, respectively. In this case, PE1 and RR2 can be clients of RR1, and PE1 and RR2 are peers. Second-level route reflector RR2 is connected to PE2 and PE3, respectively. In this case, PE2 and PE3 are clients of RR2, and PE2 and PE3 are peers. PE1, RR1, RR2, and PE2 can be network devices on one SRv6-BE tunnel; PE1, RR1, RR2, and PE3 can be network devices on another SRv6-BE tunnel. Alternatively, PE1, RR1, RR2, and PE2 can be network devices on one SRv6-TE tunnel; PE1, RR1, RR2, and PE3 can be network devices on another SRv6-TE tunnel.
[0056] in, Figure 2a and Figure 2b The various network devices included in the system shown can also be called nodes, which are devices with route reflection and / or message forwarding functions in the network system. For example, they can be routers, switches, transponders, reflectors or label switching routers (LSRs), etc. The functions that can be realized by each node can be set according to the actual application scenario and requirements. Figure 2a In the application scenario shown, there is a routing transmission path PE1-RR-PE2. Figure 2b In the application scenario shown, there are two routing transmission paths, namely PE1-RR1-RR2-PE2 and PE1-RR1-RR2-PE3.
[0057] For ease of understanding, the following will be combined Figure 2b The network system structure shown is used as an example for description. For example, PE1 is the first node 201, RR1 is the second node 202, RR2 is the third node 203, and PE2 or PE3 is the fourth node 204. The roles of first node 201, second node 202, third node 203, and fourth node 204 named in the following embodiments are mainly used to distinguish and describe the corresponding functions that can be performed by network devices with different roles in the process of publishing BGP routes. The position and number of network devices with different roles in the network topology can be specifically determined in combination with different business scenarios. In some possible scenarios, the number of network devices with a certain role on the transmission path can be zero.
[0058] See also Figure 3, which is a flow chart of a routing transmission method provided by an embodiment of the present application, such as Figure 3 As shown, the method may include:
[0059] S301: The first node 201 obtains a first BGP route.
[0060] In this embodiment, when the first node 201 is the corresponding egress device during message transmission, the first node 201 may generate a first BGP route, which may carry a device identifier of the first node 201. The device identifier may uniquely identify the first node 201, such as an interface Internet Protocol (IP) address or a loopback address of the first node 201. As the first node 201 publishing routes, the private network route in the first BGP route may also carry a service identifier assigned by the first node 201, such as a VPN identifier, so that neighboring nodes in the network can learn the private network route to the first node 201, and the service identifier may be carried in the message of the service sent to the first node 201, such as in a destination address (DA) field, to instruct the first node 201 to receive and forward the message.
[0061] In an example, when the first node 201 is located in an MVPN network, the device identifier carried in the next hop attribute field in the first BGP route may be the interface address of the first node 201, or a loopback address, etc. Figure 2b For example, the first node 201 is the network device PE1, and the loopback address corresponding to the network device PE1 is 1::1\128, so the next hop field in the first BGP route is 1::1\128.
[0062] In another example, when the first node 201 is located in an SRv6 network, the device identifier may be a segment identifier SID indicating a network device, that is, a segment identifier SID corresponding to the first node 201. Figure 2bFor example, if the first node 201 is a network device PE1 and the segment identifier SID of the network device PE1 is 1001::1, then the first segment identifier SID in the first BGP route is 1001::1. Furthermore, when the first node 201 is a network device on an SRv6-BE tunnel, when the first node 201 publishes the first BGP route, the segment identifier SID corresponding to the destination address DA field in the first BGP route remains unchanged and indicates the first node 201, so that each node in the network can learn the route to the first node 201. When the first node 201 is a network device on the SRv6-TE tunnel, the segment identifier corresponding to the destination address DA field in the first BGP route is constantly changing during the process of the first node 201 publishing the first BGP route. When each node in the network receives the BGP route sent by its neighboring node, when the intermediate node has a corresponding segment identifier, the intermediate node can update the DA field in the first BGP route so that the segment identifier corresponding to the DA field is the segment identifier of the current node, so that the neighboring node corresponding to the intermediate node can learn the route to the intermediate node when receiving the BGP route sent by the intermediate node.
[0063] S302: The first node 201 sends a first BGP route to the second node 202.
[0064] When the first node 201 obtains its own corresponding first BGP route, it publishes the first BGP route to other neighboring nodes in the network according to the BGP routing protocol, so that the other neighboring nodes can learn the route to the first node 201 and then establish a forwarding path to the first node 201. The first node 201 and the second node 202 can be external Border Gateway Protocol (EBGP) neighbors, that is, the first node 201 and the second node 202 belong to different autonomous systems (AS), for example, the first node 201 is in the AS1 domain, and the second node 202 is in the AS2 domain. Alternatively, the first node 201 and the second node 202 can also be IBGP neighbors, that is, the first node 201 and the second node 202 belong to the same AS domain.
[0065] S303: The second node 202 determines whether to iterate the first BGP route. If yes, execute S304; otherwise, execute S306.
[0066] In this embodiment, in order to solve the problem that the second node 202 forwards the received first BGP route to other nodes only when the iteration is successful, resulting in low route reflection efficiency in some possible application scenarios, a forwarding policy for the first BGP route can be pre-configured in the second node 202. For example, the second node 202 is configured not to iterate the first BGP route when the first BGP route is received; or the second node 202 is configured to iterate the first BGP route when the first BGP route is received, and when the iteration fails, the first BGP route is still forwarded to other nodes.
[0067] In an example, when the second node 202 only has a route reflection function, for example, the second node 202 is a route reflector, the second node 202 may be configured not to perform an iteration operation on the first BGP route.
[0068] In another example, when the second node 202 has both the route reflection function and the forwarding function, for example, the second node 202 is Figure 2b If RR1 has a route reflection function and RR1 also serves as a packet forwarding node in the network, the second node 202 is configured to iterate the first BGP route. In this case, to ensure normal route forwarding, it can be further configured that when the second node 202 iterates the first BGP route, even if the iteration fails, the second node 202 executes S306 to obtain a second BGP route based on the first BGP route.
[0069] The above example is only one implementation method. In other possible application scenarios or design methods, the user can configure the second node 202 differently according to the actual application situation. For example, when the second node 202 receives the first BGP route sent by the first node 201, the second node 202 defaults to the state of the first BGP route as active, and does not need to perform an iterative operation. S306 is directly executed to obtain the second BGP route.
[0070] When the second node 202 obtains the first BGP route, it can determine whether to iterate the first BGP route based on its own configuration. If the second node 202 determines that it needs to iterate the first BGP route, it executes S304; if it does not need to iterate the first BGP route, it executes S306. Iterating the first BGP route includes the second node 202 searching the routing table for an egress port to the first node 201 based on the first BGP route. For example, in an MVPN network, the second node 202 searches for an egress port to the first node 201 based on the next hop information in the first BGP route; or, in an SRv6 network, the second node 202 searches for an egress port to the first node 201 based on the first segment identifier SID in the first BGP route.
[0071] S304: The second node 202 iterates the first BGP route. If the iteration result is iteration failure, S306 is executed; if the iteration result is iteration success, S305 is executed.
[0072] In this embodiment, when second node 202 needs to iterate the first BGP route, second node 202 searches its routing table for an outbound port to the next-hop node (first node 201) based on the device identifier in the first BGP route. If the routing table of second node 202 does not contain an outbound port to first node 201, the iteration of the first BGP route by second node 202 fails, and second node 202 executes S306. If the routing table of second node 202 contains an outbound port to first node 201, the iteration of the first BGP route by second node 202 succeeds, and second node 202 executes S305.
[0073] Examples of iterative routing failures include the following:
[0074] As an example, in an SRv6 network, each node in the network directs packet forwarding based on the SID carried in the packet, not on next-hop information. Therefore, during route publication, nodes in the SRv6 network iterate routes based on SIDs. However, some nodes in the SRv6 network, such as nodes that only perform route reflection, lack SID awareness and are unable to iterate routes based on SIDs. In other words, for such nodes, iterating routes based on SIDs will fail. Based on this, the failure of second node 202 to iterate the first BGP route can be determined because second node 202 does not locally store the first SID. Specifically, second node 202 obtains the first SID from the first BGP route and searches its corresponding routing table for the egress port corresponding to the first SID. If the routing table does not store an entry containing the first SID, the route forwarding table cannot be found, and the route iteration fails. If the first SID exists in the entry of the routing table, the egress port of the network device corresponding to the first SID can be searched and determined, and the iteration is successful, so that the second node 202 can subsequently guide the traffic to be forwarded to the first node 201 according to the egress port.
[0075] In another example, in the MVPN network, the failure of the second node 202 to iterate the first BGP route may be that the second node 202 fails to iterate the route according to the next hop information carried in the first BGP route.
[0076] S305: The second node 202 directs traffic forwarding according to the first BGP route.
[0077] In this embodiment, when the second node 202 successfully iterates the first BGP route and the second node 202 also has a forwarding function, the second node 202 sends the forwarding route to the first node 201 to the forwarding plane, so that the forwarding plane sends traffic to the first node 201 according to the sent route.
[0078] S306: The second node 202 obtains a second BGP route according to the first BGP route.
[0079] In this embodiment, if the second node 202 does not iterate the first BGP route, the second BGP route is directly obtained based on the first BGP route; or, when the second node 202 fails to iterate the first BGP route, the second BGP route can also be obtained based on the first BGP route; or, when the second node 202 successfully iterates the first BGP route, the second BGP route can be obtained based on the first BGP route.
[0080] The second node 202 obtains the second BGP route according to the first BGP route in the following application scenarios:
[0081] In one example, when the second node 202 does not iterate the first BGP route and directly obtains the second BGP route based on the first BGP route, or when the second node 202 fails to iterate the first BGP route, the second node 202 only modifies the content of the BGP attributes in the first BGP route, for example, adding the router identifier of the second node 202 or other identification information to the BGP cluster list attribute in the BGP attribute, and the cluster list can be used to avoid loops. In this example, the second node 202 does not modify the next hop information or segment identifier in the first BGP route to obtain the second BGP route. In this example, the second node 202 can only have a route reflection function, or can also be set based on other requirements to not iterate the BGP route, or to continue forwarding when the iteration fails.
[0082] In another example, when the second node 202 successfully iterates the first BGP route, the second node 202 can obtain the second BGP route in the following manner. In one possible scenario, the second node 202 can modify the next hop information or segment identifier in the first BGP route to obtain the second BGP route. Specifically, the following scenario can be included: the second node 202 has both route reflection and forwarding functions. When the second node 202 and the third node 203 are EBGP neighbors, before the second node 202 sends the first BGP route to the third node 203, the next hop information or segment identifier in the first BGP route is modified from the first node 201 to the second node 202. For example, when the second node 202 is a node in an MVPN network, the second node 202 can modify the next hop information in the first BGP route to the device identifier corresponding to the second node 202. The device identifier can be the interface address or loopback address of the second node 202, etc. Alternatively, when the second node 202 is a node in the SRv6 network and the second node 202 has a corresponding second segment identifier SID, the second node 202 uses the second SID to replace the first SID in the first BGP route to obtain an updated first BGP route, i.e., the second BGP route. In another possible scenario, the second node 202 may only modify the content of the BGP attributes in the first BGP route, such as modifying the information about forwarding the BGP route, without modifying the next hop information or segment identifier in the first BGP route, thereby obtaining the second BGP route. Wherein, not modifying the next hop information or segment identifier in the first BGP route may include the following application scenarios: the second node 202 and the first node 201 belong to different BGP domains, i.e., they are EBGP neighbors, and the second node 202 and the third node 203 belong to the same BGP domain, i.e., they are IBGP neighbors. That is, when the second node 202 sends the route learned from the EBGP neighbor to the IBGP neighbor, the second node 202 does not modify the next hop information or segment identifier in the first BGP route. For example, the first node 201 belongs to the autonomous domain AS65022, and the second node 202 and the third node 203 belong to the autonomous domain AS65300. Then the second node 202 may not modify the next hop information or segment identifier in the first BGP route, and the next hop in the first BGP route is still the first node 201.
[0083] In the MVPN network, the second node 202 generally does not modify the next hop information in the first BGP route, even if the second node 202 and the third node 203 are EBGP neighbors.
[0084] S307 : The second node 202 sends the second BGP route to the third node 203 .
[0085] After obtaining the second BGP route, the second node 202 publishes the second BGP route to the EBGP neighbor or the IBGP neighbor according to the BGP routing protocol, so that other nodes can learn the route to the first node 201 or the route to the second node 202. Specifically, when the next hop in the second BGP route is the first node 201, the third node 203 can learn the route to the first node 201; when the next hop node in the second BGP route is the second node 202, the third node 203 can learn the route to the second node 202.
[0086] S308: The third node 203 determines whether to iterate the second BGP route. If yes, execute S309; otherwise, execute S311.
[0087] In this embodiment, upon obtaining the second BGP route, the third node 203 may determine whether to iterate the second BGP route based on its own configuration. For example, if the third node 203 only has the route reflection function, the third node 203 may be configured not to iterate the second BGP route. If the third node 203 has both the route reflection and forwarding functions, the third node 203 may be configured to iterate the second BGP route. For details on how to configure the iterative operation for the third node 203, see the description of S303.
[0088] S309: The third node 203 iterates the second BGP route. If the iteration result is iteration failure, S311 is executed; if the iteration result is iteration success, S310 is executed.
[0089] In this embodiment, when the third node 203 needs to iterate the second BGP route, the third node 203 can search the routing table for an outbound port to the next hop node (first node 201 or second node 202) based on the next hop information or segment identifier in the second BGP route. If the outbound port to the next hop node does not exist in the routing table of the third node 203, the third node 203 fails to iterate the second BGP route, and the third node 203 executes S310. If the outbound port to the next hop node exists in the routing table of the third node 202, the third node successfully iterates the second BGP route, and the third node 203 executes S309. In an SRv6 network, the third node 203 can also iterate based on SID information. If the iteration of the second BGP route fails, the third node 203 can determine that the iteration of the second BGP route fails based on the fact that the first SID or the second SID is not stored locally. For the specific implementation of the failure of the third node 203 to iterate the second BGP route, please refer to the relevant description of S304.
[0090] S310: The third node 203 guides traffic forwarding according to the second BGP route.
[0091] In this embodiment, when the third node 203 successfully iterates the second BGP route and the third node 203 is also used for traffic forwarding, the third node 203 sends the forwarding path to the first node 201 to the forwarding plane or sends the forwarding path to the second node 202 to the forwarding plane, so that the forwarding plane sends traffic to the first node 201 or the second node 202 according to the path information.
[0092] S311: The third node 203 obtains a third BGP route according to the second BGP route.
[0093] In this embodiment, if the third node 203 does not iterate the second BGP route, the third BGP route is directly obtained based on the second BGP route; alternatively, if the third node 203 iterates the second BGP route and the iteration fails, the third node 203 can obtain the third BGP route based on the second BGP route; alternatively, if the third node 203 successfully iterates the second BGP route, the third BGP route can be obtained based on the second BGP route.
[0094] The third node 203 obtains the third BGP route according to the second BGP route. The process of obtaining the third BGP route according to the second BGP route can refer to the description of the second node 202 obtaining the second BGP route according to the first BGP route in S306.
[0095] S312 : The third node 203 sends the third BGP route to the fourth node 204 .
[0096] In this embodiment, after receiving the third BGP route, the fourth node 204 may perform the following operations: the fourth node 204 no longer forwards the third BGP route after receiving it. For example, when the fourth node 204 is a network device connected to the user equipment, such as Figure 2b In this case, the fourth node 204 can iterate the third BGP route, and when the iteration is successful, it can establish a route to the third node 203 and send the relevant information of the route to the forwarding plane so that the forwarding plane sends traffic to the third node 203.
[0097] It can be understood that the above scenario is only an example, and the processing operation performed by the fourth node 204 on the third BGP route can be determined in combination with a specific application scenario.
[0098] This embodiment uses Figure 2b The network system shown in the figure is used as an example. Figure 2a In the network system architecture shown in FIG, after obtaining the first BGP route, PE1 as the first node 201 sends the first BGP route to RR1 as the second node 202, wherein Figure 2a RR1 is a route reflector with only route reflection functionality. Second node 202 may not iterate the first BGP route, but may directly obtain a second BGP route based on the first BGP route and send the second BGP route to fourth node 204. For specific implementation, see the relevant descriptions in S301-S305 and S311. Alternatively, the method provided in this embodiment may also be applied to a possible network system architecture, such as a network system including three or more levels of RRs, where each level of RRs may utilize the corresponding method provided by this embodiment to send BGP routes to the next level network device. This next level network device may, for example, be an RR with route reflection functionality or a client without route reflection functionality.
[0099] To facilitate understanding of the technical solutions provided in the embodiments of this application, see Figure 4 , which is a flow chart of another routing transmission method provided by an embodiment of the present application, such as Figure 4 As shown, the method may include:
[0100] S401: A first network device obtains a first BGP route.
[0101] In this embodiment, the first network device may be the first node 201, the second node 202 or the third node 203 described in the above embodiments.
[0102] When the first network device is the first node 201, the first network device may obtain the first BGP route by generating the first BGP route or obtaining the route from the controller. Specific implementation of the first network device obtaining the first BGP route can be seen in S301.
[0103] When the first network device is second node 202, the first network device can receive a BGP route from a third network device, which is the upper-level neighbor node. For example, if the first network device is second node 202 and the upper-level neighbor node is first node 201, first node 201 generates a first BGP route and sends it to the first network device. For details on how the first network device obtains the first BGP route, see S302.
[0104] When the first network device is third node 203, the first network device can receive a BGP route from the third network device, which is the upper-level neighbor node. For example, if the first network device is third node 203 and the upper-level neighbor node is second node 202, after obtaining a second BGP route, second node 202 sends the second BGP route to the first network device. For details on how the first network device obtains the first BGP route, see S306.
[0105] In a specific implementation, when the first BGP route is applied to the SRv6 network, the first BGP route includes a first segment identifier SID for indicating a destination network device.
[0106] S402: The first network device does not iterate the first BGP route, and directly forwards the first BGP route to the second network device.
[0107] In this embodiment, when the first network device does not need to iterate the first BGP route, it can directly forward the first BGP route to the second network device. For example, the first network device only has a route reflection function. For details on how the first network device directly forwards the first BGP route to the second network device, see S306 or S311.
[0108] S403: When the first network device fails to iterate the first BGP route, the first network device still forwards the first BGP route to the second network device.
[0109] In this embodiment, when the first network device needs to iterate the first BGP route and the iteration fails, to ensure that the first BGP route can still be advertised to other neighboring nodes, the first network device continues to forward the first BGP route to the second network device. The specific implementation of the first network device continuing to forward the first BGP route to the second network device can be seen in S306 or S311.
[0110] In one specific implementation, when a first network device fails to iterate a first BGP route, the first network device still forwards the first BGP route to a second network device, including: the first network device determines that the first BGP route iteration has failed based on the fact that the first SID is not locally stored; then the first network device forwards the first BGP route to the second network device. Alternatively, in some possible application scenarios, such as an MVPN network, the first network device may also perform route iteration based on the next hop information carried in the first BGP route and determine that the first BGP route iteration has failed.
[0111] In a specific implementation, when the first network device successfully iterates the first BGP route, the first network device may direct traffic forwarding based on the first BGP route. For example, the first network device may search for an egress port to the next hop in the first BGP route based on the first BGP route, and send the egress port information to the forwarding plane for subsequent traffic forwarding.
[0112] In a specific implementation, when the first network device is an intermediate node, the first network device obtains a first BGP route from a third network device. The first network device then directs traffic forwarding based on the first BGP route by determining, based on the first BGP route, an egress port for reaching the third network device, and directing the forwarding of traffic destined for the third network device based on the egress port. For example, when the first network device is third node 203, the first network device may obtain a second BGP route from second node 202, and the first network device may determine, based on the second BGP route, an egress port for reaching second node 202.
[0113] Wherein, an SRv6-BE tunnel is established between the third network device and the second network device; or an SRv6-TE tunnel is established between the third network device and the second network device. For example, the third network device is Figure 2b PE1 in the second network device is Figure 2b For PE2 or PE3, an SRv6-BE tunnel is established between PE1 and PE2, and an SRv6-TE tunnel is established between PE1 and PE3.
[0114] In one specific implementation, when the first network device successfully iterates the first BGP route and the first network device has a corresponding segment identifier, i.e., a second SID, before forwarding the first BGP route to the second network device, the first network device replaces the first SID in the first BGP route with the second SID to obtain an updated first BGP route, and then forwards the updated first BGP route to the second network device. For details on how to obtain the updated first BGP route, see the relevant description of S306 or S310.
[0115] In a specific implementation manner, the first network device and the second network device are network devices based on an SRv6-BE tunnel; or, the first network device and the second network device are network devices based on an SRv6-TE tunnel.
[0116] In a specific implementation manner, the first network device and the second network device are EBGP neighbors, or the first network device and the second network device are IBGP neighbors.
[0117] In a specific implementation, the first network device may be a first route reflector RR. For example, the first network device may be Figure 2a RR1 or Figure 2b RR1 or RR2 in.
[0118] In a specific implementation, the first network device is a first-level RR or a second-level RR. Figure 2b RR1 or RR2 in.
[0119] In a specific implementation, the third network device may be a first provider edge (PE) device, and the second network device may be a second RR or a second PE device. Figure 2a In PE1, the second network device can be Figure 2a RR1 or PE2 in the network.
[0120] In a specific implementation, the first network device and the second network device are network devices used in a multicast virtual private network (MVPN) scenario.
[0121] Based on the above method embodiments, an embodiment of the present application provides a message transmission device, which will be described below with reference to the accompanying drawings.
[0122] See also Figure 5 , which is a structural diagram of a message transmission device provided in an embodiment of the present application, the device 500 can be applied to a first network device, executing Figure 4 The function of the first network device in the illustrated embodiment, the apparatus 500 may include: an acquiring unit 501 and a sending unit 502 .
[0123] In an acquisition unit 501 , a user acquires a first Border Gateway Protocol (BGP) route.
[0124] When the first network device used in the apparatus 500 is the first node 201, the specific implementation of the acquisition unit 201 acquiring the first BGP route can be found in Figure 3 In S301 of the embodiment, when the first network device used by the apparatus 500 is the second node 202, the third node 203 or the fourth node 204, the specific implementation of the acquisition unit 501 acquiring the first BGP route can refer to S302, S307 or S312.
[0125] The sending unit 502 is configured to directly forward the first BGP route to the second network device without iterating the first BGP route.
[0126] The sending unit 502 is further configured to forward the first BGP route to the second network device when iteration of the first BGP route fails.
[0127] For the specific implementation of the sending unit 502, please refer to the relevant description of S306-S307 or S311-S312.
[0128] In a possible implementation, when the iteration of the first BGP route is successful, the sending unit 502 is further configured to guide traffic forwarding according to the first BGP route.
[0129] For the specific implementation of the sending unit 502 guiding traffic forwarding according to the first BGP route, reference may be made to the relevant description of S305 or S310 .
[0130] In a possible implementation, the device has a route reflection function.
[0131] The first network device used by the apparatus 500 may have a route reflection function. For example, the first network device is the second node 202 or the third node 203 .
[0132] In a possible implementation, the first BGP route is applied to a segment routing SRv6 network based on the sixth version of the Internet Protocol, and the first BGP route includes a first segment identifier SID for indicating a destination network device.
[0133] In a possible implementation, when iteration of the first BGP route fails, the sending unit 502 is specifically configured to determine that the iteration of the first BGP route fails based on the first SID not being stored locally; and forward the first BGP route to the second network device.
[0134] For the specific implementation of the sending unit 502, please refer to the relevant description of S304 or S309.
[0135] In one possible implementation, when the iteration of the first BGP route is successful, the apparatus further includes: a processing unit 503, which is configured to replace the first SID in the first BGP route with a second SID to obtain an updated first BGP route; and a sending unit 502, which is configured to send the updated first BGP route to the second network device.
[0136] For the specific implementation of the processing unit 503 and the sending unit 502 , please refer to the relevant description of S306 or S311 .
[0137] In one possible implementation, the acquisition unit 501 is specifically used to obtain the first BGP route from the third network device; the sending unit 502 is specifically used to determine the egress port for reaching the third network device based on the first BGP route to guide the forwarding of traffic sent to the third network device.
[0138] For the specific implementation of the acquisition unit 501 , please refer to the relevant description of S307 or S312 ; for the specific implementation of the sending unit 502 , please refer to the relevant description of S305 or S310 .
[0139] In one possible implementation, the apparatus and the second network device are network devices on a segment routing best effort SRv6-BE tunnel based on the sixth version of the Internet Protocol; or, the apparatus and the second network device are network devices on a segment routing traffic engineering SRv6-TE tunnel based on the sixth version of the Internet Protocol.
[0140] In one possible implementation, the first BGP route is received from a third network device, and a segment routing best-effort SRv6-BE tunnel based on the sixth version of the Internet Protocol is established between the third network device and the second network device; or, a segment routing traffic engineering SRv6-TE tunnel based on the sixth version of the Internet Protocol is established between the third network device and the second network device.
[0141] In a possible implementation, the apparatus and the second network device are external Border Gateway Protocol (EBGP) neighbors, or the apparatus and the second network device are internal Border Gateway Protocol (IBGP) neighbors.
[0142] In a possible implementation manner, the device is a first route reflector RR.
[0143] When the first network device used by the apparatus 500 is the first route reflector RR, it is, for example, the second node 202 or the third node 203 .
[0144] In a possible implementation, the device is a primary RR or a secondary RR.
[0145] The first network device used by the apparatus 500 is a primary RR or a secondary RR, for example, the first network device is the second node 202 or the third node 203 .
[0146] In a possible implementation, the third network device is a first operator edge PE device, and the second network device is a second RR or a second PE device. For example, the third network device is the first node 201, and the second network device is the second node 202 or the third node 203.
[0147] In a possible implementation, the apparatus and the second network device are network devices applied to a multicast virtual private network (MVPN) scenario.
[0148] The first network device and the second network device used by the apparatus 500 may be network devices in an MVPN network.
[0149] For details on the specific functions and implementations of the message transmission device 500, please refer to Figure 4 The corresponding description about the first network device in the illustrated embodiment will not be repeated here.
[0150] Figure 6 A schematic diagram of the structure of a communication device provided in an embodiment of the present application, the communication device may be Figure 3 In the embodiment shown, the first node 201, the second node 202, the third node 203 or the fourth node 204, or may be Figure 4 In the embodiment shown, the first network device, the second network device or the third network device may also be Figure 5 The device implementation of the message transmission apparatus 500 in the illustrated embodiment.
[0151] See also Figure 6 As shown, the communication device 600 includes at least a processor 610. The communication device 600 may also include a communication interface 620 and a memory 630. The number of processors 610 in the communication device 600 may be one or more. Figure 6 In the embodiment of the present application, the processor 610, the communication interface 620 and the memory 630 may be connected via a bus system or other means, wherein: Figure 6 The connection via bus system 640 is taken as an example.
[0152] Processor 610 may be a CPU, an NP, or a combination of a CPU and an NP. Processor 610 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
[0153] When the communication device is the first network device, the processor 610 may execute related functions such as obtaining the first BGP route and iterating the first BGP route in the above method embodiment.
[0154] The communication interface 620 is used to receive and send messages. Specifically, the communication interface 620 may include a receiving interface and a sending interface. The receiving interface may be used to receive messages, and the sending interface may be used to send messages. The number of the communication interface 620 may be one or more.
[0155] Memory 630 may include volatile memory, such as random-access memory (RAM); non-volatile memory, such as flash memory, a hard disk drive (HDD), or a solid-state drive (SSD); or a combination of these types of memory. Memory 630 may, for example, store the first BGP route described above.
[0156] Optionally, the memory 630 stores an operating system and programs, executable modules or data structures, or subsets thereof, or extended sets thereof, wherein the programs may include various operating instructions for implementing various operations. The operating system may include various system programs for implementing various basic services and processing hardware-based tasks. The processor 610 can read the programs in the memory 630 to implement the message transmission method provided in the embodiment of the present application.
[0157] The memory 630 may be a storage device in the communication device 600 , or a storage device independent of the communication device 600 .
[0158] The bus system 640 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus system 640 may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 6 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.
[0159] Figure 7 7 is a structural diagram of another communication device 700 provided in an embodiment of the present application. The communication device 700 can be configured as the first node 201, the second node 202, the third node 203 or the fourth node 204 in the aforementioned embodiment, or can also be the first network device, the second network device or the third network device in the aforementioned embodiment, or Figure 5 The device implementation of the message transmission apparatus 500 in the illustrated embodiment.
[0160] The communication device 700 includes a main control board 710 and an interface board 730 .
[0161] Main control board 710, also known as the main processing unit (MPU) or route processor card, controls and manages the various components in communication device 700, including routing calculation, device management, device maintenance, and protocol processing. Main control board 710 includes a central processing unit (CPU) 711 and memory 712.
[0162] Interface board 730 is also known as a line processing unit (LPU), line card, or service board. It provides various service interfaces and implements data packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces and POS (Packet over SONET / SDH) interfaces. Ethernet interfaces, for example, are Flexible Ethernet Clients (FlexE Clients). Interface board 730 includes a central processing unit (CPU) 731, a network processor (NPU) 732, a forwarding table memory 734, and a physical interface card (PIC) 733.
[0163] The central processing unit 731 on the interface board 730 is used to control and manage the interface board 730 and communicate with the central processing unit 711 on the main control board 710 .
[0164] The network processor 732 is used to implement packet forwarding processing. The network processor 732 can be in the form of a forwarding chip. Specifically, the processing of uplink packets includes: processing of the packet input interface, forwarding table lookup; processing of downlink packets includes: forwarding table lookup, etc.
[0165] The physical interface card 733 implements the physical layer interconnection function. Raw traffic enters the interface board 730 through this card, and processed packets are sent from this physical interface card 733. The physical interface card 733 includes at least one physical interface, also known as a physical port. The physical interface card 733 corresponds to the FlexE physical interface 204 in the system architecture 200. Also known as a daughter card, the physical interface card 733 can be installed on the interface board 730 and is responsible for converting optical and electrical signals into packets, performing a validity check on the packets, and forwarding them to the network processor 732 for processing. In some embodiments, the central processing unit 731 of the interface board 730 can also perform the functions of the network processor 732, such as implementing software forwarding based on a general-purpose CPU. This eliminates the need for the network processor 732 in the physical interface card 733.
[0166] Optionally, the communication device 700 includes multiple interface boards. For example, the communication device 700 further includes an interface board 740 . The interface board 740 includes a central processing unit 741 , a network processor 742 , a forwarding table memory 744 , and a physical interface card 743 .
[0167] Optionally, the communication 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). If the network device has multiple interface boards 730, the switching fabric board 720 is used to exchange data between the interface boards. For example, the interface board 730 and the interface board 740 can communicate via the switching fabric board 720.
[0168] The main control board 710 and the interface board 730 are coupled. For example, the main control board 710, the interface board 730, the interface board 740, and the switching network board 720 are connected to the system backplane via a system bus to achieve intercommunication. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 710 and the interface board 730, and communication between the main control board 710 and the interface board 730 is performed via the IPC channel.
[0169] Logically, communication device 700 includes a control plane and a forwarding plane. The control plane includes a main control board 710 and a central processing unit 731. The forwarding plane includes various components that perform 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 routing, generating forwarding tables, processing signaling and protocol messages, and configuring and maintaining device status. The control plane sends the generated forwarding tables to the forwarding plane. On the forwarding plane, the network processor 732 forwards messages received by the physical interface card 733 based on the forwarding tables sent by the control plane. The forwarding tables sent by the control plane can be stored in the forwarding table entry memory 734. In some embodiments, the control plane and forwarding plane can be completely separate and not located on the same device.
[0170] If the communication device 700 is configured as a first network device, the central processor 711 may obtain a first BGP route and iterate the first BGP route. The network processor 732 may trigger the physical interface card 733 to forward the first BGP route to the second network device.
[0171] It should be understood that the sending unit 502 in the message transmission device 500 can be equivalent to the physical interface card 733 or the physical interface card 743 in the communication device 700; the acquisition unit 501 and the processing unit 503 in the message transmission device 700 can be equivalent to the central processing unit 711 or the central processing unit 731 in the communication device 700.
[0172] It should be understood that the operations on the interface board 740 in the embodiment of the present application are consistent with the operations on the interface board 730. For the sake of brevity, detailed description is omitted. It should be understood that the communication device 700 of this embodiment may correspond to the first network device, the second network device, or the third network device in each of the above-mentioned method embodiments. The main control board 710, the interface board 730, and / or the interface board 740 in the communication device 700 may implement the functions and / or various steps of the first network device, the second network device, or the third network device in each of the above-mentioned method embodiments. For the sake of brevity, detailed description is omitted here.
[0173] It should be understood 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 achieve load sharing and redundant backup. In a centralized forwarding architecture, the network device may not need a switching network board, and the interface board is responsible for processing the business data of the entire system. In a distributed forwarding architecture, the network device can have at least one switching network board, which realizes data exchange between multiple interface boards through the switching network board, providing large-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of network devices with a distributed architecture are greater than those of devices with a centralized architecture. Alternatively, a network device can consist of a single card, without a switching fabric board (SFB), integrating the functions of the interface board and the main control board. In this case, the CPUs on the interface board and the main control board can be combined into a single CPU, performing the combined functions of the two. This type of device has lower data exchange and processing capabilities (for example, low-end network devices such as switches or routers). The specific architecture used depends on the specific network deployment scenario.
[0174] In some possible embodiments, the above-mentioned first network device, second network device or third 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 the first network device or the second network device. For example, the first network device, the second network device or the third network device can be implemented based on a general physical server in combination with Network Function Virtualization (NFV) technology. The first network device, the second network device or the third network device is a virtual host, a virtual router or a virtual switch. Those skilled in the art can virtualize the first network device, the second network device or the third network device with the above-mentioned functions on a general physical server in combination with NFV technology by reading this application, and will not be repeated here.
[0175] It should be understood that the various network devices in the above-mentioned product forms respectively have any functions of the first network device, the second network device or the third network device in the above-mentioned method embodiment, which will not be repeated here.
[0176] 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, for example, can be Figure 5 A specific implementation of the message transmission device 500 shown can be used to perform the above-mentioned message transmission method. The processor is coupled to a memory, and the memory is used to store programs or instructions. When the program or instructions are executed by the processor, the chip system implements the method in any of the above-mentioned method embodiments.
[0177] Optionally, there may be one or more processors in the chip system. The processor may be implemented in hardware or software. When implemented in hardware, the processor may be a logic circuit, an integrated circuit, etc. When implemented in software, the processor may be a general-purpose processor implemented by reading software code stored in a memory.
[0178] Optionally, the memory in the chip system may be one or more memories. The memory may be integrated with the processor or may be provided separately from the processor, which is not limited in this application. For example, 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 provided on different chips. This application does not specifically limit the type of memory or the configuration of the memory and the processor.
[0179] 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.
[0180] An embodiment of the present application also provides a computer-readable storage medium, including instructions or a computer program, which, when executed on a computer, enables the computer to execute the message transmission method provided in the above embodiment.
[0181] An embodiment of the present application also provides a computer program product comprising instructions or a computer program, which, when executed on a computer, enables the computer to execute the message transmission method provided in the above embodiment.
[0182] It should be noted that the various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. Reference can be made to the common and similar parts between the various embodiments. For the systems or devices disclosed in the embodiments, since they correspond to the methods disclosed in the embodiments, the description is relatively simple, and the relevant parts can be referred to the method description.
[0183] It should be understood that in this application, "at least one (item)" means one or more, and "plurality" means two or more. "And / or" is used to describe the association relationship of associated objects, indicating that three relationships may exist. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist at the same time, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, c can be single or multiple.
[0184] It should also be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of additional identical elements in the process, method, article, or device comprising the element.
[0185] The steps of the methods or algorithms described in conjunction with the embodiments disclosed herein may be implemented directly using hardware, a software module executed by a processor, or a combination of the two. The software module may be placed in a random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
[0186] The above description of the disclosed embodiments is intended to enable one skilled in the art to implement or use the present application. Various modifications to these embodiments will be readily apparent to one skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application is not limited to the embodiments shown herein, but is intended to conform to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A message transmission method, characterized in that: The method comprises: The first network device obtains a first Border Gateway Protocol BGP route, where the first network device has a route reflection function; When the first network device fails to iterate the first BGP route, the first network device still forwards the first BGP route to the second network device.
2. The method according to claim 1, characterized in that When the first network device successfully iterates the first BGP route, the method further includes: The first network device guides traffic forwarding according to the first BGP route.
3. The method according to claim 1 or 2, characterized in that The first BGP route is applied to a segment routing SRv6 network based on the sixth version of the Internet Protocol, and the first BGP route includes a first segment identifier SID for indicating a destination network device.
4. The method according to claim 3, characterized in that When the first network device fails to iterate the first BGP route, the first network device still forwards the first BGP route to the second network device, including: The first network device determines, based on not locally storing the first SID, that the first BGP route iteration fails; The first network device forwards the first BGP route to the second network device.
5. The method according to claim 3, characterized in that When the first network device successfully iterates the first BGP route, the method further includes: The first network device replaces the first SID in the first BGP route with the second SID to obtain an updated first BGP route; The first network device sends the updated first BGP route to the second network device.
6. The method according to claim 1, characterized in that The first network device acquiring the first BGP route includes: the first network device acquiring the first BGP route from a third network device; The first network device guides traffic forwarding according to the first BGP route, including: the first network device determines an egress port for reaching the third network device according to the first BGP route to guide forwarding of traffic sent to the third network device.
7. The method according to claim 2, characterized in that The first network device and the second network device are network devices on a segment routing best effort SRv6-BE tunnel based on the sixth version of the Internet Protocol; or, the first network device and the second network device are network devices on a segment routing traffic engineering SRv6-TE tunnel based on the sixth version of the Internet Protocol.
8. The method according to claim 1, characterized in that The first BGP route is received from a third network device, and a segment routing best-effort SRv6-BE tunnel based on Internet Protocol version 6 is established between the third network device and the second network device; Alternatively, a segment routing traffic engineering SRv6-TE tunnel based on the sixth version of the Internet Protocol is established between the third network device and the second network device.
9. The method according to claim 1, characterized in that The first network device and the second network device are external Border Gateway Protocol (EBGP) neighbors, or the first network device and the second network device are internal Border Gateway Protocol (IBGP) neighbors.
10. The method according to claim 1, characterized in that The first network device is a first route reflector RR.
11. The method according to claim 10, characterized in that The first network device is a primary RR or a secondary RR.
12. The method according to claim 6, characterized in that The third network device is a first operator edge PE device, and the second network device is a second RR or a second PE device.
13. The method according to claim 1, wherein The first network device and the second network device are network devices applied to a multicast virtual private network (MVPN) scenario.
14. A message transmission device, characterized in that: The device has a route reflection function, including: An acquisition unit, wherein a user acquires a first Border Gateway Protocol BGP route; The sending unit is further configured to forward the first BGP route to the second network device when iteration of the first BGP route fails.
15. The device according to claim 14, characterized in that When the iteration of the first BGP route is successful, the sending unit is further configured to guide traffic forwarding according to the first BGP route.
16. The device according to claim 14 or 15, characterized in that The first BGP route is applied to a segment routing SRv6 network based on the sixth version of the Internet Protocol, and the first BGP route includes a first segment identifier SID for indicating a destination network device.
17. The device according to claim 16, characterized in that When the iteration of the first BGP route fails, the sending unit is specifically configured to determine that the iteration of the first BGP route fails based on the fact that the first SID is not stored locally; and forward the first BGP route to the second network device.
18. The device according to claim 16, characterized in that When the iteration of the first BGP route is successful, the apparatus further includes: a processing unit, configured to replace the first SID in the first BGP route with a second SID to obtain an updated first BGP route; The sending unit is configured to send the updated first BGP route to the second network device.
19. The device according to claim 14, characterized in that The acquiring unit is specifically configured to acquire the first BGP route from a third network device; The sending unit is specifically configured to determine an egress port for reaching the third network device according to the first BGP route, so as to guide forwarding of traffic sent to the third network device.
20. The device according to claim 15, characterized in that The apparatus and the second network device are network devices on a segment routing best effort SRv6-BE tunnel based on the sixth version of the Internet Protocol; or, the apparatus and the second network device are network devices on a segment routing traffic engineering SRv6-TE tunnel based on the sixth version of the Internet Protocol.
21. The device according to claim 14, characterized in that The first BGP route is received from a third network device, and a segment routing best-effort SRv6-BE tunnel based on Internet Protocol version 6 is established between the third network device and the second network device; Alternatively, a segment routing traffic engineering SRv6-TE tunnel based on the sixth version of the Internet Protocol is established between the third network device and the second network device.
22. The device according to claim 14, characterized in that The device and the second network device are external Border Gateway Protocol (EBGP) neighbors, or the device and the second network device are internal Border Gateway Protocol (IBGP) neighbors.
23. The device according to claim 14, characterized in that The device is a first route reflector RR.
24. The device according to claim 23, characterized in that The device is a one-stage RR or a two-stage RR.
25. The device according to claim 19, characterized in that The third network device is a first operator edge PE device, and the second network device is a second RR or a second PE device.
26. The device according to claim 14, characterized in that The apparatus and the second network device are network devices applied to a multicast virtual private network (MVPN) scenario.
27. A communication device, characterized in that: Including: processor, memory; The memory is used to store computer-readable instructions or computer programs; The processor is configured to read the computer-readable instructions or the computer program so that the communication device implements the message transmission method according to any one of claims 1 to 13.
28. A computer-readable storage medium comprising instructions or a computer program, which, when executed on a computer, enables the computer to execute the message transmission method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Method, device and system for controlling route iteration
CN111670565A