Automatic discovery of route reflector peers
Patent Information
- Application Number
- CN202211393947.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-05
- Filing Date
- 2020-11-27
- Publication Date
- 2026-10-23
- Estimated Expiration
- 2040-11-27
AI Technical Summary
[0007]根据一些实现,一种非瞬态计算机可读介质可以存储一个或多个指令。一个或多个指令当被路由反射器客户端(RR客户端)的一个或多个处理器执行时,可以使一个或多个处理器:经由自动发现路由反射器(自动发现RR)从始发路由反射器(RR)接收路由反射器通告路由;处理该RR通告路由,以确定标识始发RR的信息、标识与始发RR相关联的地址族的信息、和与始发RR有关的附加信息;更新数据结构,以包括标识始发RR的信息、标识与始发RR相关联的地址族的信息、和与始发RR有关的附加信息中的至少一些附加信息;确定与始发RR相关联的地址族是否与关联于RR客户端的地址族匹配;以及基于确定与始发RR相关联的地址族与关联于RR客户端的地址族匹配,更新RR客户端的一个或多个设置,以允许始发RR能够使与RR客户端的连接被建立。
Smart Images

Figure CN116489068B_ABST
Abstract
Description
[0001] Divisional Application Instructions
[0002] This application is a divisional application of Chinese invention patent application filed on November 27, 2020, with a priority date of December 5, 2019, application number 202011358757.X, entitled "Automatic Discovery of Peer Endpoints via Route Reflection". Technical Field
[0003] This invention relates to the field of communications, and in particular to the automatic discovery of peer endpoints via route reflection. Background Technology
[0004] Networks compliant with the Border Gateway Protocol (BGP) can utilize route reflection, which allows network devices to send traffic to one or more network devices (e.g., BGP peers) instead of sending traffic individually to each of the one or more network devices. Summary of the Invention
[0005] According to some implementations, a method may include: obtaining routes from an originating network device by an auto-discovery route reflector (auto-discovery RR); updating a data structure by the auto-discovery RR to include at least some information contained in the routes; identifying multiple target network devices by the auto-discovery RR based on the data structure, wherein the multiple target network devices include at least one route reflector (RR) and at least one route reflector client (RR client); and sending routes by the auto-discovery RR to the multiple target network devices to facilitate the establishment of a connection between the originating network device and at least one of the multiple target network devices.
[0006] According to some implementations, a route reflector (RR) may include one or more memories and one or more processors for: receiving a route from an originating network device via an auto-discovery route reflector (auto-discovery RR); processing the route to determine information identifying the originating network device and additional information related to the originating network device; updating a data structure to include at least some of the additional information identifying the originating network device and the additional information related to the originating network device; and establishing a connection between the RR and the originating network device based on the information identifying the originating network device.
[0007] According to some implementations, a non-transient computer-readable medium may store one or more instructions. When executed by one or more processors of a route reflector client (RR client), the one or more instructions may cause the one or more processors to: receive a route advertised by a route reflector from an originating route reflector (RR) via an auto-discovery route reflector (auto-discovery RR); process the RR advertised route to determine information identifying the originating RR, information identifying the address family associated with the originating RR, and additional information related to the originating RR; update a data structure to include at least some of the additional information, including the information identifying the originating RR, the information identifying the address family associated with the originating RR, and the additional information related to the originating RR; determine whether the address family associated with the originating RR matches an address family associated with the RR client; and based on the determination that the address family associated with the originating RR matches an address family associated with the RR client, update one or more settings of the RR client to allow the originating RR to establish a connection with the RR client. Attached Figure Description
[0008] Figure 1A-1D It is a graph of one or more example implementations described in this article.
[0009] Figure 2A-2C This is a diagram depicting the example routes described in this article.
[0010] Figure 3 This is a diagram of an example environment in which the systems and / or methods described in this paper can be implemented.
[0011] Figures 4A-4B yes Figure 3 A diagram of example components of one or more devices.
[0012] Figure 5-7 This is a flowchart of an example process for the automatic discovery of peer endpoints using route reflection. Detailed Implementation
[0013] The following detailed description of the example implementation is with reference to the accompanying drawings. The same reference numerals in different figures may identify the same or similar elements.
[0014] Route reflection in a BGP-enabled network allows one or more network devices to communicate with each other without having to individually connect the devices to each other (e.g., full interconnection). For example, a route reflection cluster can include one or more route reflectors (RRs) serving one or more RR clients. The one or more RRs can be fully interconnected, and each RR can individually connect to each of the one or more RR clients. Therefore, in some cases, a network device outside the cluster can connect to at least one of the one or more RRs to send traffic to one or more RR clients via at least one RR. In this way, external network devices do not need to individually connect to one or more RR clients to send traffic to one or more RR clients, which reduces the total number of connections required for network devices serving the network. However, designing and implementing a network utilizing route reflection requires manual configuration to ensure proper operation of each network device. This can be a resource-intensive and time-consuming process susceptible to human error. Furthermore, in many cases, due to the configuration complexity involved in route reflection, existing network devices cannot be easily modified and / or removed from the network, and new network devices cannot be easily added to the network.
[0015] Some implementations described herein provide an autodiscovery route reflector (autodiscovery RR) (also known as a bootstrap RR) that connects to each network device in the network. In some implementations, the autodiscovery RR can reflect autodiscovery signaling routes (also known as bootstrap signaling routes) between network devices in the network. For example, in some implementations, a specific RR can send RR advertised routes (e.g., when the specific RR is added or updated) to the autodiscovery RR, which can then send (e.g., reflect RR advertised routes) to one or more RRs and / or one or more RR clients in the network. In some implementations, one or more RRs can connect to a specific RR, and / or one or more RR clients can each update one or more settings to allow the specific RR to establish a connection with one or more RR clients. In another example, in some implementations, a specific RR client can send an RR client request route to the autodiscovery RR, which can then send (e.g., reflect RR client request routes) to one or more RRs in the network. In some implementations, at least some of the one or more RRs can each establish a connection with a specific RR client. In some implementations, one or more RRs can send RR neighbor advertisement routes to other RRs to indicate that an active connection has been established between the RR and the specific RR client.
[0016] In this way, automatic route reflection (RR) discovery facilitates the automatic configuration of route reflection within the network. Due to the automatic discovery of signaling routes, RR discovery facilitates the proper route reflection configuration of RRs and / or RR clients when they are updated and / or removed from the network and / or new RRs and / or new RR clients are added to the network. Therefore, RRs and RR clients do not need to be manually configured every time an RR or RR client is updated, removed from the network, and / or added to the network. Thus, RR discovery reduces the amount of time spent configuring or reconfiguring network devices, thereby improving network performance compared to configuring network devices using manual configuration procedures. Furthermore, RR discovery facilitates the network's automatic adaptation to dynamic changes in network devices to maintain proper route reflection configurations, which is impossible using manual configuration procedures.
[0017] Figure 1A-1D This is a diagram illustrating one or more example implementations of 100 described in this article. For example... Figure 1A As shown, (multiple) example implementations 100 may include multiple network devices, such as auto-discover RRs, one or more RRs (e.g., in...). Figure 1A The numbers are shown as RR 1 to RR N, where N is greater than or equal to 1), and one or more RR clients (e.g., in...). Figure 1A The diagram shows RR clients 1 through RR client M, where M is greater than or equal to 1. Multiple network devices can be included in a network (such as a network utilizing BGP route reflection). As described herein, RR or RR clients can be configured to have only the address of the automatically discovered RR when added to the network to facilitate the automatic discovery of route reflection peer endpoints.
[0018] Each RR can be connected to each of the other RRs in one or more RRs (e.g., one or more RRs can be fully networked as BGP peers). Furthermore, a set of RRs in one or more RRs and a set of RR clients in one or more RR clients can form a cluster (e.g., an RR cluster). A cluster can be associated with a specific addressing family. Each RR in a cluster can be connected to each RR client in the cluster (e.g., as a BGP peer). One or more clusters can be formed from one or more RRs and one or more RR clients.
[0019] Automatically discoverable RRs can be connected to each of one or more RRs individually and / or can be connected to each of one or more RR clients individually. For example, see reference. Figure 1AAn auto-discovery RR can connect to each of RR 1 through RRN individually and / or to each of RR client 1 through RR client M (e.g., an auto-discovery RR has all RRs and all RR clients as configured BGP neighbors). An auto-discovery RR may include and / or maintain data structures including: information identifying each of one or more RRs and / or each of one or more RR clients; routing information associated with each of one or more RRs and / or each of one or more RR clients; and so on. Therefore, as described herein, an auto-discovery RR can facilitate the automatic configuration of route reflection for a network.
[0020] In some implementations, one or more RRs can generate autodiscovery signaling routes (such as RR advertised routes) and / or send autodiscovery signaling routes to the autodiscovery RR. For example, such as Figure 1B As shown by reference numeral 102 in the attached figure, the originating RR (e.g., RR1) can generate RR advertisement routes and / or send RR advertisement routes to the auto-discovery RR. When the originating RR is added to the network, when the originating RR is updated (e.g., an address change associated with the originating RR, a change in the address family supported by the originating RR, etc.), etc., the originating RR can generate RR advertisement routes and / or send RR advertisement routes to the auto-discovery RR. RR advertised routes may include: information identifying the route's route distinguisher (e.g., a unique identifier); information identifying the type of route (e.g., information indicating that the route is an RR advertised route); information identifying at least one address family associated with the originating RR (e.g., an Address Family Indicator (AFI) indicating support for IPv4 and / or IPv6; a Subsequent Address Family Indicator (SAFI) indicating support for unicast, multicast, Virtual Private Network (VPN), etc.); information identifying the originating RR (e.g., the Internet Protocol (IP) address associated with the originating RR, the physical location of the originating RR, etc.); information identifying the network associated with the originating RR (e.g., the Automatic System (AS) associated with the originating RR); information identifying at least one configuration preference of the originating RR (e.g., the maximum number of connections supported by the originating RR); information identifying at least one routing target associated with the originating RR (e.g., a routing target indicating that the originating RR belongs to a specific group (such as a group that includes one or more RRs); and so on.
[0021] As shown by reference numeral 104, when an autodiscovered RR receives an RR advertised route, it can update the data structure included in the autodiscovered RR to include at least some of the information contained in the RR advertised route. For example, the autodiscovered RR can update the data structure to include information identifying the originating RR, information identifying the network associated with the originating RR, information identifying at least one configuration preference of the originating RR, and information identifying at least one route destination associated with the originating RR. As shown by reference numeral 106, the autodiscovered RR can search the data structure to identify one or more RRs and can send the RR advertised route to at least one of the one or more RRs (e.g., at least one target RR). (For example, the autodiscovered RR can send the RR advertised route to RR N, such as...) Figure 1B (As shown in the diagram). In some implementations, the autodiscovery RR can send RR announcements to each of one or more RRs (e.g., RR 1 to RR N), to each of one or more RRs excluding the originating RR (e.g., RR 2 to RR N), etc.
[0022] The target RR that receives the RR advertisement route can process the RR advertisement route to determine information identifying the originating RR and / or additional information related to the originating RR (e.g., information identifying at least one address family associated with the originating RR; information identifying the network associated with the originating RR; information identifying at least one configuration preference of the originating RR; information identifying at least one route target associated with the originating RR; etc.). The target RR can update its data structure (e.g., included in the target RR) to include at least some of the additional information identifying the originating RR and / or the additional information related to the originating RR.
[0023] In some implementations, a target RR can enable the establishment of a connection (e.g., a BGP session) between the originating RR and the target RR. For example, the target RR can determine the address of the originating RR based on information identifying the originating RR, and can generate and / or send a connection initiation request to the originating RR to establish a connection between the RR and the originating RR. As shown by reference numeral 108, RR N can enable the establishment of a connection (e.g., based on routes advertised by the RR) between RR 1 and RR N.
[0024] In some implementations, after the connection between the originating RR and the destination RR is established, the destination RR may send information identifying the destination RR, information identifying at least one address family associated with the destination RR, etc., to the originating RR. The originating RR may update its data structure (e.g., included in the originating RR) to include information identifying the destination RR, information identifying at least one address family associated with the destination RR, etc. Additionally or alternatively, the destination RR may update one or more settings of the destination RR (e.g., the destination RR may enable the advertisement of multiple paths for the same addressing prefix to ensure that all routes about other RRs are stored in the destination RR's data structure).
[0025] In some implementations, the originating RR can generate RR advertisement routes and / or send RR advertisement routes to the autodiscovered RR, and the autodiscovered RR can send RR advertisement routes to at least one RR client among one or more RR client RRs. For example, such as Figure 1C As shown in Figure 110, the originating RR (e.g., RR 1) can generate RR advertised routes and / or send RR advertised routes to autodiscovered RRs (e.g., in accordance with the descriptions in this document regarding...). Figure 1B (Similar to the manner described by reference numeral 102). As shown by reference numeral 112, the autodiscovery RR can update the data structures included in the autodiscovery RR (e.g., in accordance with the description herein). Figure 1B (Similar to the manner described by reference numeral 104). As shown by reference numeral 114, automatic RR discovery can search a data structure to identify one or more RR clients, and can route RR advertisements to at least one of the one or more RR clients (e.g., at least one target RR client) (e.g., as described herein regarding...). Figure 1B (Similar to the method described by reference numeral 106 in the attached figure). In some implementations, automatic RR discovery can send RR announcements to each of one or more RR clients (e.g., RR client 1 to RR client M).
[0026] The target RR client that receives the RR advertisement route can process the RR advertisement route to determine information identifying the originating RR, information identifying the address family associated with the originating RR, and / or additional information related to the originating RR (e.g., information identifying the network associated with the originating RR; information identifying at least one configuration preference of the originating RR; information identifying at least one route destination associated with the originating RR; etc.). The target RR client can update data structures (e.g., included in the target RR client) to include at least some of the additional information among the information identifying the originating RR, information identifying the address family associated with the originating RR, and / or additional information related to the originating RR.
[0027] In some implementations, the target RR client can determine whether the address family associated with the originating RR matches the address family associated with the RR client (e.g., based on one or more configurations of the target RR client indicated by information included in the target RR client's data structure). When the target RR client determines that the address family associated with the originating RR matches the address family associated with the RR client, the target RR client can update one or more settings of the RR client. For example, as shown by reference numeral 116, RR client 1 can update one or more settings of RR client 1 (e.g., based on RR advertised routes). In some implementations, updating one or more settings of the target RR client can allow the originating RR to establish a connection with the target RR client. For example, the target RR client can update at least one setting of the target RR client (e.g., this at least one setting can be stored in the target RR client's data structure) to indicate that the target RR client can accept a connection request from the originating RR.
[0028] In some implementations, one or more RR clients can generate autodiscovery signaling routes (such as RR client request routes) and / or send autodiscovery signaling routes to autodiscovery RRs. For example, such as Figure 1DAs shown by reference numeral 118 in the attached figure, the originating RR client (e.g., RR client 1) can generate RR client request routes and / or send RR client request routes to the auto-discovery RR. When the originating RR client is added to the network, or when the originating RR client is updated (e.g., a change in the address associated with the originating RR client, a change in the address family supported by the originating RR client, a change in the number of connections to the originating RR client, etc.), the originating RR client can generate RR client request routes and / or send RR client request routes to the auto-discovery RR. The route request from an RR client may include information identifying the route's route distinguisher (e.g., a unique identifier); information identifying the type of route (e.g., information indicating that the route is requested by the RR client); information identifying at least one address family associated with the originating RR client (e.g., AFI, SAFI, etc.); information identifying the originating RR client (e.g., the IP address associated with the originating RR client, the physical location of the originating RR client, etc.); information identifying the network associated with the originating RR client (e.g., the AS associated with the originating RR client); information identifying at least one configuration preference of the originating RR (e.g., the maximum number of connections supported by the originating RR client, preferences for connecting to RRs with physical locations within a threshold distance of the originating RR client's physical location; etc.); information identifying at least one route target associated with the originating RR (e.g., a route target indicating that the originating RR client belongs to a specific group (e.g., a group that includes one or more RR clients, a group that includes only the originating RR client, etc.); etc.
[0029] As shown by reference numeral 120, when an autodiscovery RR receives a route request from an RR client, it can update the data structures included in the autodiscovery RR to include at least some of the information contained in the RR client's route request. For example, the autodiscovery RR can update the data structures to include: information identifying the originating RR client, information identifying the network associated with the originating RR client, information identifying at least one configuration preference of the originating RR client, information identifying at least one route destination associated with the originating RR client, etc. In some implementations, the autodiscovery RR can search data structures to identify one or more RRs and can send the RR client's route request to at least one of the one or more RRs (e.g., at least one target RR). For example, as shown by reference numerals 122-1 and 122-2, the autodiscovery RR can send the RR client's route request to RR 1 and RR N. In some implementations, the autodiscovery RR can send the RR client's route request to each of the one or more RRs (e.g., RR 1 to RR N).
[0030] The target RR that receives the route request from the RR client can process the route request to determine information identifying the originating RR client and / or additional information related to the originating RR client (e.g., information identifying at least one address family associated with the originating RR client; information identifying the network associated with the originating RR client; information identifying at least one configuration preference of the originating RR client; information identifying at least one route target associated with the originating RR client; etc.). The target RR can update data structures (e.g., those included in the target RR) to include at least some of the additional information from the information identifying the originating RR client and / or the additional information related to the originating RR client.
[0031] In some implementations, the target RR can initiate a connection (e.g., a BGP session) between the originating RR client and the target RR. For example, as shown by reference numeral 124, RR 1 can initiate a connection (e.g., based on an RR client request route) between RR client 1 and RR 1. The target RR can initiate a connection between the target RR and the originating RR client by determining the address of the originating RR client based on information identifying the originating RR client and sending a connection initiation request to the originating RR client based on that address.
[0032] In some implementations, the target RR can determine whether to establish a connection between itself and the originating RR client based on additional information related to the originating RR client. For example, the target RR can determine the address family associated with the originating RR client based on this additional information, and it can also determine the address family associated with itself based on configuration information included in its data structure. When the target RR determines that the address family associated with the originating network device matches the address family associated with itself, it can send a connection initiation request to the originating RR client to establish a connection. Alternatively, when the target RR determines that the address family associated with the originating network device does not match the address family associated with itself, it can decide not to send a connection initiation request to the originating RR client, thereby preventing the connection between itself and the originating RR client from being established.
[0033] In an additional example, the target RR can determine the maximum number of connections to the originating RR client based on additional information related to the originating RR client, and can search the target RR's data structure to determine the number of active connections to the originating RR client. When the target RR determines that the number of active connections is less than the maximum number of connections, the target RR can send a connection initiation request to the originating RR client to establish a connection between the target RR and the originating RR client. Alternatively, when the target RR determines that the number of active connections is greater than or equal to the maximum number of connections, the target RR can decide not to send a connection initiation request to the originating RR client, thereby preventing the connection between the target RR and the originating RR client from being established.
[0034] In another example, the target RR can determine the physical location of the originating RR client based on additional information related to the originating RR client, and can also determine the physical location of the target RR based on information stored in the target RR's data structure. When the target RR determines that its physical location is within a threshold distance (e.g., 1 km, 10 km, 100 km, 1,000 km, etc.) of the originating RR client's physical location (e.g., less than or equal to the threshold distance), the target RR can send a connection initiation request to the originating RR client to establish a connection between the target RR and the originating RR client. Alternatively, when the target RR determines that its physical location is not within a threshold distance (e.g., greater than the threshold distance) of the originating RR client's physical location, the target RR can decide not to send a connection initiation request to the originating RR client, thereby preventing the connection between the target RR and the originating RR client from being established.
[0035] In some implementations, upon receiving a connection initiation request from a target RR (e.g., as described in the example above), the originating RR client can determine (e.g., by searching data structures included in the RR client) the number of active connections the originating RR client has with at least some of one or more RRs. The originating RR client can determine whether the number of active connections meets (e.g., is greater than or equal to) a threshold (e.g., the maximum number of connections supported by the originating RR client). When the originating RR client determines that the number of active connections does not meet the threshold (e.g., the number of active sessions is less than the maximum number of connections supported by the originating RR client), the originating RR client can send a connection initiation request acceptance to the target RR to establish a connection between the originating RR client and the target RR. Therefore, the originating RR client can update data structures included in the RR client and / or the target RR can update data structures included in the target RR to indicate, respectively, the existence of an active connection between the originating RR client and the target RR. Additionally or alternatively, when the originating RR client determines that the number of active connections meets a threshold (e.g., the number of active sessions is greater than or equal to the maximum number of connections supported by the originating RR client), the originating RR client may refuse to send a connection initiation request to the target RR to prevent a connection from being established between the originating RR client and the target RR.
[0036] In some implementations, after a connection is established between a target RR and the originating RR client, the target RR may generate an autodiscovery signaling route and / or send an autodiscovery signaling route (such as an RR neighbor advertisement route) to at least one different target RR among one or more RRs. For example, as indicated by reference numeral 126, RR 1 may generate an RR neighbor advertisement route and / or send an RR neighbor advertisement route to RR N (e.g., based on the establishment of a connection between RR1 and RR client 1). In some implementations, the target RR may send an RR neighbor advertisement route to the autodiscovery RR, causing the autodiscovery RR to send the RR neighbor advertisement route to at least one different target RR among one or more RRs (e.g., in accordance with the provisions of this document regarding...). Figure 1B (Similar to the described method). Additionally or alternatively, the target RR may directly send RR neighbor advertisement routes to at least one different target RR among one or more RRs (e.g., based on the corresponding connections between the target RR and one or more RRs).
[0037] RR neighbor advertised routes may include information indicating that the target RR has established a connection with the originating RR client. Additionally or alternatively, RR neighbor advertised routes may include: information identifying the route distinguisher of the RR neighbor advertised route (e.g., a unique identifier); information identifying the type of RR neighbor advertised route (e.g., information indicating that the route is an RR neighbor advertised route); information identifying the address of the originating RR client; information identifying the address family associated with the target RR (e.g., AFI, SAFI, etc.); information identifying the target RR (e.g., the IP address associated with the target RR, the physical location of the target RR, etc.); information identifying at least one configuration preference of the target RR (e.g., the maximum number of connections supported by the target RR); information identifying at least one routing target associated with the target RR (e.g., information indicating that the target RR belongs to a specific group (e.g., a group that includes one or more RRs, a group that includes only the target RR, etc.); information indicating the cost (e.g., the Interior Gateway Protocol (IGP) cost used to route from the target RR to the originating RR client); etc.
[0038] Different target RRs that receive RR neighbor advertisement routes can process the RR neighbor advertisement routes to determine information indicating that the target RR has established a connection with the originating RR client and / or additional information related to the target RR (e.g., information identifying the address of the originating RR client; information identifying the address family associated with the target RR; information identifying the target RR; information identifying at least one configuration preference of the target RR; information identifying at least one routing target associated with the target RR; information indicating the cost of routing from the target RR to the originating RR client; etc.). Different target RRs can update data structures (e.g., included in different target RRs) to include at least some of the additional information indicating that the target RR has established a connection with the originating RR client and / or additional information related to the target RR.
[0039] In some implementations, different target RRs can receive routes requested by RR clients after receiving and processing routes advertised by RR neighbors. For example, such as... Figure 1D As shown, after receiving an RR neighbor advertisement route sent by RR 1 (e.g., described herein with reference to reference numeral 126), RR N can receive an RR client request route sent by an autodiscovery RR (e.g., described herein with reference numerals 122-2). Different target RRs can process the RR client request route to determine whether a connection is established between the different target RR and the originating RR client in a manner similar to that described herein with reference to reference numeral 124.
[0040] For example, different target RRs can search their own data structures (e.g., after updating the data structures based on routes advertised by received RR neighbors) to determine the number of active connections with the originating RR client. When different target RRs determine that the number of active connections with the originating RR client is less than the maximum number of connections with the RR client (e.g., as indicated by a route requested by the RR client), different target RRs can send a connection initiation request to the originating RR client to establish a connection between the different target RRs and the originating RR client.
[0041] Additionally or alternatively, when different target RRs determine that the number of active connections with the originating RR client is greater than or equal to the maximum number of connections with the RR client, the different target RRs may determine not to send connection initiation requests to the originating RR client, and thus may prevent connections from being established between different target RRs and the originating RR client. For example, as indicated by reference numeral 128, RR N may determine that the number of active connections with RR client 1 is greater than or equal to the maximum number of connections with RR client 1, and may determine to prevent connections from being established between RR N and RR client 1.
[0042] As indicated above, Figure 1A-1D This is provided merely as one or more examples. Other examples may be provided in conjunction with... Figure 1A-1D The examples described are different.
[0043] Figure 2A-2C Describe the example routes described in this article. For example... Figure 2A As shown, the example RR advertisement route 200 may include a prefix comprising a "route distinguisher" field (e.g., a unique identifier for the route), a "type" field (e.g., indicating that the route is an RR advertisement route), a "version" field (e.g., indicating the version of the RR advertisement route), and / or an "AFI" field and a "SAFI" field (e.g., indicating the address family of the originating RR that sent the RR advertisement route). Furthermore, the RR advertisement route may include (e.g., in the payload of the RR advertisement route) a "Nexthop" attribute or a "Multinexthop" attribute (e.g., indicating the IP address of the originating RR), an "origin-AS" attribute (e.g., indicating the AS associated with the originating RR), a "Local-pref" attribute (e.g., indicating one or more configuration preferences of the originating RR), an "optional" attribute (e.g., indicating a unique identifier associated with the originating RR), an "RT" attribute (e.g., indicating that the originating RR belongs to a specific group, such as an RR group), etc.
[0044] like Figure 2BAs shown, example RR client request route 210 may include a prefix including a "route distinguisher" field (e.g., a unique identifier for the route), a "type" field (e.g., indicating that the route is an RR client request route), a "version" field (e.g., indicating the version of the RR client request route), and / or an "AFI" field and a "SAFI" field (e.g., indicating the address family of the originating RR client sending the RR client request route). Furthermore, the RR client request route may include (e.g., in the payload of the RR client request route) a "Nexthop" attribute or a "Multinexthop" attribute (e.g., indicating the IP address of the originating RR client), an "origin-AS" attribute (e.g., indicating the AS associated with the originating RR client), a "Config attr" attribute (e.g., indicating one or more configuration preferences of the originating RR client), an "optional" attribute (e.g., indicating a unique identifier associated with the originating RR client), an "RT" attribute (e.g., indicating that the originating RR belongs to a specific group, such as an RR client group), etc.
[0045] like Figure 2C As shown, the example RR neighbor advertisement route 220 may include a prefix that includes a "route distinguisher" field (e.g., a unique identifier for the route), a "type" field (e.g., indicating that the route is an RR neighbor advertisement route), a "version" field (e.g., indicating the version of the RR neighbor advertisement route), a "ver" field (e.g., indicating the IP version of the address of the RR client connected to the originating RR that sent the RR neighbor advertisement route), a "client address" field (e.g., indicating the IP address of the RR client), and / or an "AFI" field and a "SAFI" field (indicating the address family of the originating RR). In addition, RR neighbor advertisement routes may include (e.g., in the payload of the RR neighbor advertisement route) "Nexthop" or "Multinexthop" attributes (e.g., indicating the IP address of the originating RR), "MED" attributes (e.g., indicating the cost used to route from the originating RR to the RR client), "Optional" attributes (e.g., indicating a unique identifier associated with the originating RR), "RT" attributes (e.g., indicating that the originating RR belongs to a specific group, such as an RR group, a group that includes only the originating RR, etc.), etc.
[0046] As indicated above, Figure 2A-2C This is provided merely as one or more examples. Other examples may be provided in conjunction with... Figure 2A-2C The examples described are different.
[0047] Figure 3 This is a diagram of an example environment 300 in which the systems and / or methods described in this document can be implemented. (See diagram 300 for example.) Figure 3 As shown, environment 300 may include auto-discovery RR 310, RR 320-1 to RR 320-N (hereinafter collectively referred to as "RR 320", and individually as "RR320"), RR clients 330-1 to RR clients 330-M (hereinafter collectively referred to as "RR client 330", and individually as "RR client 330"), and network 340. Devices in environment 300 may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.
[0048] The AutoDiscover RR 310 includes one or more devices (e.g., one or more service delivery devices) capable of processing and / or delivering services. For example, the AutoDiscover RR 310 may include firewalls, routers, gateways, switches, hubs, bridges, reverse proxies, servers (e.g., proxy servers), security devices, intrusion detection devices, load balancers, or similar devices. In some implementations, the AutoDiscover RR 310 may be connected to the RR 320 and / or RR client 330 via links, multiple links, etc. In some implementations, the AutoDiscover RR 310 may deliver services to and / or receive services from the RR 320 and / or RR client 330, as described elsewhere herein. In some implementations, the AutoDiscover RR 310 may be a physical device implemented within a enclosure (such as a chassis). In some implementations, the AutoDiscover RR 310 may be a virtual device implemented by one or more computer devices in a cloud computing environment or data center.
[0049] RR 320 includes one or more devices (e.g., one or more service delivery devices) capable of processing and / or delivering services. For example, RR 320 may include firewalls, routers, gateways, switches, hubs, bridges, reverse proxies, servers (e.g., proxy servers), security devices, intrusion detection devices, load balancers, or similar types of devices. In some implementations, RR 320 may be fully networked. In some implementations, one or more RR 320s may be used as RRs for a cluster comprising one or more RR 320s and one or more RR clients 330. In some implementations, RR 320 may deliver services to and / or receive services from auto-discovered RR 310s and / or RR clients 330, as described elsewhere herein. In some implementations, RR 320 may be a physical device implemented within a housing (such as a rack). In some implementations, RR 320 may be a virtual device implemented by one or more computer devices in a cloud computing environment or data center.
[0050] RR Client 330 includes one or more devices (e.g., one or more service delivery devices) capable of processing and / or delivering services. For example, RR Client 330 may include firewalls, routers, gateways, switches, hubs, bridges, reverse proxies, servers (e.g., proxy servers), security devices, intrusion detection devices, load balancers, or similar devices. In some implementations, one or more RR Client 330s may be in a cluster including one or more RR 320s. In some implementations, RR Client 330 may deliver services to and / or receive services from autodiscovered RR 310s and / or RR 320s, as described elsewhere herein. In some implementations, RR Client 330 may be a physical device implemented within a housing (such as a rack). In some implementations, RR Client 330 may be a virtual device implemented by one or more computer devices in a cloud computing environment or data center.
[0051] Network 340 includes one or more wired and / or wireless networks. For example, network 340 may include cellular networks (e.g., Long Term Evolution (LTE) networks, 3G networks, 4G networks, 5G networks, New Radio (NR) networks, Code Division Multiple Access (CDMA) networks, etc.), Public Land Mobile Networks (PLMNs), Local Area Networks (LANs), Wide Area Networks (WANs), Metropolitan Area Networks (MANs), telephone networks (e.g., Public Switched Telephone Networks (PSTN)), Ethernet, VPNs (e.g., VPLS, EVPN, VPWS, L2VPN, L3VPN, etc.), private networks, ad hoc networks, intranets, the Internet, fiber-based networks, cloud computing networks, etc., and / or combinations of these or other types of networks. Network 340 may employ routing protocols such as BGP.
[0052] Figure 3 The number and arrangement of devices and networks shown are provided as one or more examples. In fact, with... Figure 3 Compared to what is shown, there may be additional equipment, fewer devices and / or networks, different devices and / or networks, or devices and / or networks arranged differently. Furthermore, Figure 3 The two or more devices shown can be implemented within a single device, or Figure 3 The single device shown can be implemented as multiple distributed devices. Additionally or alternatively, a collection of devices in environment 300 (e.g., one or more devices) can perform one or more functions described as being performed by another collection of devices in environment 300.
[0053] Figures 4A-4B yes Figure 3 A diagram of example components of one or more devices. Figure 4AThis is a diagram of example components of device 400. Device 400 may correspond to auto-discovery RR 310, RR 320, RR client 330, etc. In some implementations, auto-discovery RR 310, RR 320, RR client 330, etc., may include one or more devices 400 and / or one or more components of device 400. For example... Figure 4A As shown, device 400 may include bus 405, processor 410, memory 415, storage component 420, input component 425, output component 430, and communication interface 435.
[0054] Bus 405 includes components that allow communication between components of device 400. Processor 410 is implemented in hardware, firmware, or a combination of hardware and software. Processor 410 may take the form of a central processing unit (CPU), graphics processing unit (GPU), accelerated processing unit (APU), microprocessor, microcontroller, digital signal processor (DSP), field-programmable gate array (FPGA), ASIC, or another type of processing component. In some implementations, processor 410 includes one or more processors that can be programmed to perform functions. Memory 415 includes random access memory (RAM), read-only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, and / or optical memory) for storing information and / or instructions for use by processor 410.
[0055] Storage component 420 stores information and / or software related to the operation and use of device 400. For example, storage component 420 may include hard disks (e.g., magnetic disks, optical disks, magneto-optical disks, and / or solid-state drives), compact discs (CDs), digital versatile optical discs (DVDs), floppy disks, cartridges, magnetic tapes, and / or other types of non-transitory computer-readable media, and corresponding drives.
[0056] Input component 425 includes components that allow device 400 to receive information, such as via user input (e.g., touchscreen display, keyboard, keypad, mouse, buttons, switch, and / or microphone). Additionally or alternatively, input component 425 may include sensors for sensing information (e.g., a Global Positioning System (GPS) component, accelerometer, gyroscope, and / or actuator). Output component 430 includes components that provide output information from device 400 (e.g., a display, speaker, and / or one or more light-emitting diodes (LEDs)).
[0057] Communication interface 435 includes transceiver components (e.g., transceivers and / or separate receivers and transmitters) that enable device 400 to communicate with other devices, such as via wired connections, wireless connections, or a combination of wired and wireless connections. Communication interface 435 may permit device 400 to receive information from and / or provide information to another device. For example, communication interface 435 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, etc.
[0058] Device 400 can perform one or more processes described herein. Device 400 can perform these processes based on software instructions stored in non-transitory computer-readable media (such as memory 415 and / or storage component 420) executed by processor 410. Computer-readable media are defined herein as non-transitory memory devices. Memory devices include memory space within a single physical storage device or memory space spread across multiple physical storage devices.
[0059] Software instructions may be read into memory 415 and / or storage component 420 from another computer-readable medium or another device via communication interface 435. When executed, the software instructions stored in memory 415 and / or storage component 420 may cause processor 410 to perform one or more processes described herein. Additionally or alternatively, hardwired circuitry may be used in place of or in combination with the software instructions to perform one or more processes described herein. Therefore, the implementations described herein are not limited to any particular combination of hardware circuitry and software.
[0060] Figure 4A The number and arrangement of components shown are provided as an example. In fact, with... Figure 4A Compared to the example shown, device 400 may include additional components, fewer components, different components, or components arranged differently. Additionally or alternatively, a set of components of device 400 (e.g., one or more components) may perform one or more functions described as being performed by another set of components of device 400.
[0061] Figure 4B This is a diagram of example components of device 450. Device 450 may correspond to auto-discovery RR 310, RR 320, RR client 330, etc. In some implementations, auto-discovery RR 310, RR 320, RR client 330, etc., may include one or more devices 450 and / or one or more components of device 450. For example... Figure 4BAs shown, device 450 may include one or more input components 455-1 to 455-B (B≥1) (hereinafter collectively referred to as input components 455, and individually referred to as input components 455), switching component 460, one or more output components 465-1 to 465-C (C≥1) (hereinafter collectively referred to as output components 465, and individually referred to as output components 465), and controller 470.
[0062] Input component 455 may be an attachment point for a physical link and an entry point for incoming traffic, such as packets. Input component 455 may process incoming traffic, such as by performing data link layer encapsulation or decapsulation. In some implementations, input component 455 may send and / or receive packets. In some implementations, input component 455 may include an input line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more interface cards (IFCs), packet forwarding components, line card controller components, input ports, processors, memory, and / or input queues. In some implementations, device 450 may include one or more input components 455.
[0063] Switching component 460 interconnects input component 455 with output component 465. In some implementations, switching component 460 may be implemented via one or more crossbars, via a bus, and / or with shared memory. Shared memory may act as a temporary buffer to store packets from input component 455 before packets are finally scheduled for delivery to output component 465. In some implementations, switching component 460 enables communication between input component 455, output component 465, and / or controller 470.
[0064] Output component 465 can store packets and schedule packets for transmission on the output physical link. Output component 465 can support data link layer encapsulation or decapsulation, and / or many higher-level protocols. In some implementations, output component 465 can send and / or receive packets. In some implementations, output component 465 may include an output line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more IFCs, packet forwarding components, line card controller components, output ports, processors, memory, and / or output queues. In some implementations, device 450 may include one or more output components 465. In some implementations, input component 455 and output component 465 may be implemented by the same set of components (e.g., and the input / output component may be a combination of input component 455 and output component 465).
[0065] Controller 470 includes a processor in the form of, for example, a CPU, GPU, APU, microprocessor, microcontroller, DSP, FPGA, ASIC, and / or another type of processor. The processor is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, controller 470 may include one or more processors that can be programmed to perform functions.
[0066] In some implementations, controller 470 may include RAM, ROM, and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, optical memory, etc.) for storing information and / or instructions for use by controller 470.
[0067] In some implementations, controller 470 can communicate with other devices, networks, and / or systems connected to device 400 to exchange information about the network topology. Controller 470 can create routing tables based on the network topology information, create forwarding tables based on the routing tables, and forward the forwarding tables to input component 455 and / or output component 465. Input component 455 and / or output component 465 can use the forwarding tables to perform route looks for incoming and / or outgoing packets.
[0068] The controller 470 can perform one or more processes described herein. The controller 470 can perform these processes in response to the execution of software instructions stored in a non-transient computer-readable medium.
[0069] Software instructions may be read from another computer-readable medium or from another device via a communication interface into the memory and / or storage components associated with controller 470. When executed, the software instructions stored in the memory and / or storage components associated with controller 470 may cause controller 470 to perform one or more processes described herein. Additionally or alternatively, hardwired circuitry may be used in place of or in combination with the software instructions to perform one or more processes described herein. Therefore, the implementations described herein are not limited to any particular combination of hardware circuitry and software.
[0070] Figure 4B The number and arrangement of components shown are provided as an example. In fact, with... Figure 4B Compared to the example shown, device 450 may include additional components, fewer components, different components, or components arranged differently. Additionally or alternatively, a set of components of device 450 (e.g., one or more components) may perform one or more functions described as being performed by another set of components of device 450.
[0071] Figure 5This is a flowchart of an example process 500 for the automatic discovery of peer endpoints using route reflection. In some implementations, Figure 5 One or more process boxes can be executed by auto-discover RR (e.g., auto-discover RR 310). In some implementations, Figure 5 One or more process frames can be executed by another device or a group of devices that are separate from or include an autodiscovery RR (such as another autodiscovery RR, etc.).
[0072] like Figure 5 As shown, process 500 may include obtaining a route from the originating network device (block 510). For example, automatic discovery RR (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) can obtain a route from the originating network device as described above.
[0073] like Figure 5 As further shown, process 500 may include updating data structures to include at least some of the information contained in the route (box 520). For example, automatic discovery routes (RRs) (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may update data structures to include at least some of the information contained in the route, as described above.
[0074] like Figure 5 Further illustrated, process 500 may include identifying multiple target network devices based on a data structure, wherein the multiple target network devices include at least one RR and at least one RR client (box 530). For example, automatic RR discovery (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may identify multiple target network devices based on a data structure, as described above. In some implementations, the multiple target network devices include at least one RR and at least one RR client.
[0075] like Figure 5As further shown, process 500 may include sending routes to a plurality of target network devices to facilitate the establishment of a connection between the originating network device and at least one of the plurality of target network devices (block 540). For example, an auto-discovery route (RR) (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may send routes to a plurality of target network devices to facilitate the establishment of a connection between the originating network device and at least one of the plurality of target network devices, as described above.
[0076] Process 500 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in conjunction with one or more other processes described elsewhere in this document.
[0077] In the first implementation, the autodiscovery RR is connected to the originating network device and each of the multiple target network devices.
[0078] In a second implementation, either alone or in combination with the first implementation, the route includes at least one of the following: information identifying a route distinguisher; information identifying the type of route; information identifying the address family associated with the originating network device; information identifying the originating network device; information identifying the network associated with the originating network device; information identifying at least one configuration preference of the originating network device; or information identifying at least one route destination associated with the originating network device.
[0079] In a third implementation, either alone or in combination with one or more of the first and second implementations, the originating network device and at least one target network device are RRs, and the route is an RR advertised route, wherein sending the route to multiple target network devices causes at least one target network device to establish a connection with the originating network device.
[0080] In a fourth implementation, either alone or in combination with one or more of the first to third implementations, the originating network device and at least one target network device are RRs, and the route is an RR advertised route, wherein sending the route to the plurality of target network devices causes at least one target network device to: establish a connection with the originating network device, and send information about at least one address family supported by the at least one target network device via the connection to the originating network device.
[0081] In a fifth implementation, either alone or in combination with one or more of the first to fourth implementations, the originating network device is an RR, at least one target network device is an RR client, and the route is an RR advertised route, wherein sending the route to multiple target network devices causes at least one target network device to update one or more settings of the at least one target network device to allow the originating network device to enable a connection to the at least one target network device to be established.
[0082] In a sixth implementation, either alone or in combination with one or more of the first to fifth implementations, the originating network device is an RR client, at least one target network device is an RR, and the routing is an RR client request route, wherein sending routes to multiple target network devices causes at least one target network device to establish a connection with the originating network device.
[0083] In a seventh implementation, either alone or in combination with one or more of the first to sixth implementations, the originating network device is an RR client, at least one target network device is an RR, and the route is an RR client-requested route, wherein sending routes to a plurality of target network devices causes at least one target network device to: establish a connection with the originating network device, and based on establishing a connection with the originating network device, send an RR neighbor advertisement route to at least one other target network device among the plurality of target network devices.
[0084] although Figure 5 The example box for process 500 is shown, but in some implementations, it differs from... Figure 5 Compared to what is depicted, process 500 may include additional boxes, fewer boxes, different boxes, or boxes arranged differently. Additionally or alternatively, two or more boxes of process 500 may be executed in parallel.
[0085] Figure 6 This is a flowchart of an example process 600 for the automatic discovery of peer endpoints using route reflection. In some implementations, Figure 6 One or more process frames can be executed by RR (e.g., RR 320). In some implementations, Figure 6 One or more process frames can be executed by another device or a group of devices (such as another RR) that are separate from or include the RR.
[0086] like Figure 6As shown, process 600 may include receiving routes from the originating network device via auto-discovery RR (block 610). For example, the RR (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may receive routes from the originating network device via auto-discovery RR, as described above.
[0087] like Figure 6 As further shown, process 600 may include: processing routing to determine information identifying the originating network device and additional information related to the originating network device (box 620). For example, RR (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may process routing to determine information identifying the originating network device and additional information related to the originating network device, as described above.
[0088] like Figure 6 As further shown, process 600 may include updating a data structure to include at least some of the additional information, including information identifying the originating network device and additional information relating to the originating network device (box 630). For example, RR (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may update the data structure to include at least some of the additional information, including information identifying the originating network device and additional information relating to the originating network device, as described above.
[0089] like Figure 6 As further shown, process 600 may include establishing a connection between the RR and the originating network device based on information identifying the originating network device (block 640). For example, the RR (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may establish a connection between the RR and the originating network device based on information identifying the originating network device, as described above.
[0090] Process 600 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in conjunction with one or more other processes described elsewhere in this document.
[0091] In the first implementation, the originating network device is the RR, and the route is an RR-advertised route. When a connection with the originating network device is established, the RR can: determine the address of the originating network device based on information identifying the originating network device; send a connection initiation request to the originating network device based on the address of the originating network device so that a connection between the RR and the originating network device is established; and send information about at least one address family supported by the RR to the originating network device via the connection.
[0092] In a second implementation, either alone or in combination with the first implementation, the originating network device is an RR client, and the routing is an RR client-requested route. When a connection with the originating network device is established, the RR can: determine the address family associated with the originating network device based on additional information related to the originating network device; determine that the address family associated with the originating network device matches an address family supported by the RR; and, based on the determination that the address family associated with the originating network device matches an address family supported by the RR, send a connection initiation request to the originating network device to establish a connection between the RR and the originating network device.
[0093] In a third implementation, either alone or in combination with one or more of the first and second implementations, the originating network device is the RR client, and the routing is a route requested by the RR client. When a connection to the originating network device is established, the RR can: determine, based on additional information related to the originating network device, the address families associated with the originating network device and the maximum number of connections to the originating network device; determine that the address families associated with the originating network device match address families supported by the RR; determine, based on a data structure, that the number of active connections to the originating network device is less than the maximum number of connections to the originating network device; and establish a connection between the RR and the originating network device based on the determination that the address families associated with the originating network device match address families supported by the RR and the determination that the number of active connections to the originating network device is less than the maximum number of connections to the originating network device.
[0094] In a fourth implementation, either alone or in combination with one or more of the first to third implementations, the originating network device is the RR client, and the routing is a route requested by the RR client. When a connection with the originating network device is established, the RR can: determine the address family associated with the originating network device and the physical location of the originating network device based on additional information related to the originating network device; determine that the address family associated with the originating network device matches an address family supported by the RR; determine that the physical location of the RR is within a threshold distance of the physical location of the originating network device; and establish a connection between the RR and the originating network device based on the determination that the address family associated with the originating network device matches an address family supported by the RR and the determination that the physical location of the RR is within a threshold distance of the physical location of the originating network device.
[0095] In a fifth implementation, either alone or in combination with one or more of the first to fourth implementations, the originating network device is an RR client, and the route is an RR client-requested route, and the RR may also: generate an RR neighbor advertisement route indicating that the RR has established a connection with the originating network device; identify at least one other RR based on a data structure, and send the RR neighbor advertisement route to the at least one other RR.
[0096] In a sixth implementation, either alone or in combination with one or more of the first to fifth implementations, the originating network device is an RR client, and the routing is an RR client-requested route. When a connection with the originating network device is established, the RR may: determine the address family associated with the originating network device and the maximum number of connections to the originating network device based on additional information related to the originating network device; determine that the address family associated with the originating network device matches an address family supported by the RR; receive an RR neighbor advertisement route from another RR indicating that the other RR has established a connection with the originating network device; determine, based on a data structure and the RR neighbor advertisement route, that the number of active connections to the originating network device is less than the maximum number of connections to the originating network device; and establish a connection between the RR and the originating network device based on the determination that the address family associated with the originating network device matches an address family supported by the RR and the determination that the number of active connections to the originating network device is less than the maximum number of connections to the originating network device.
[0097] In a seventh implementation, either alone or in combination with one or more of the first to sixth implementations, the RR neighbor advertised route includes at least one of the following: information identifying the route distinguisher of the RR neighbor advertised route; information identifying the type of the RR neighbor advertised route; information identifying the address of the originating network device; information identifying the address family associated with other RRs; information identifying other RRs; information identifying at least one configuration preference of other RRs; or information identifying at least one route destination associated with other RRs.
[0098] although Figure 6 The example box for process 600 is shown, but in some implementations, it is different. Figure 6 Compared to the description herein, process 600 may include additional boxes, fewer boxes, different boxes, or boxes arranged differently. Additionally or alternatively, two or more boxes of process 600 may be executed in parallel.
[0099] Figure 7 This is a flowchart of an example process 700 for the automatic discovery of peer endpoints using route reflection. In some implementations, Figure 7One or more procedure frames can be executed by an RR client (e.g., RR client 330). In some implementations, Figure 7 One or more process frames can be executed by another device or a group of devices (such as another RR client) that are separate from or include the RR client.
[0100] like Figure 7 As shown, process 700 may include receiving route advertised by a route reflector from the originating RR via auto-discovery RR (block 710). For example, an RR client (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may receive route advertised by a route reflector from the originating RR via auto-discovery RR, as described above.
[0101] like Figure 7 As further shown, process 700 may include processing RR advertisement routes to determine information identifying the originating RR, information identifying the address family associated with the originating RR, and additional information related to the originating RR (box 720). For example, an RR client (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may process RR advertisement routes to determine information identifying the originating RR, information identifying the address family associated with the originating RR, and additional information related to the originating RR, as described above.
[0102] like Figure 7 As further shown, process 700 may include updating a data structure to include at least some of the following additional information: information identifying the originating RR, information identifying the address family associated with the originating RR, and additional information related to the originating RR (box 730). For example, an RR client (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may update the data structure to include at least some of the following additional information: information identifying the originating RR, information identifying the address family associated with the originating RR, and additional information related to the originating RR, as described above.
[0103] like Figure 7As further shown, process 700 may include: determining whether the address family associated with the originating RR matches the address family associated with the RR client (box 740). For example, the RR client (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may determine whether the address family associated with the originating RR matches the address family associated with the RR client, as described above.
[0104] like Figure 7 As further shown, process 700 may include updating one or more settings of the RR client based on determining that the address family associated with the originating RR matches the address family associated with the RR client, to allow the originating RR to establish a connection with the RR client (box 750). For example, the RR client (e.g., using processor 410, memory 415, storage component 420, input component 425, output component 430, communication interface 435, input component 455, switching component 460, output component 465, controller 470, etc.) may update one or more settings of the RR client based on determining that the address family associated with the originating RR matches the address family associated with the RR client, to allow the originating RR to establish a connection with the RR client, as described above.
[0105] Process 700 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in conjunction with one or more other processes described elsewhere in this document.
[0106] In the first implementation, the RR client can also receive a connection initiation request from the originating RR; send a connection initiation request acceptance to the originating RR to establish a connection between the originating RR and the RR client; and update a data structure to indicate that an active connection exists between the originating RR and the RR client.
[0107] In a second implementation, either alone or in combination with the first implementation, the RR client may further: send an RR client request route to a plurality of RRs, wherein the plurality of RRs includes the originating RR; receive a connection initiation request from the originating RR based on sending the RR client request route; after receiving the connection initiation request, determine, based on a data structure, whether the number of active connections of the RR client meets a threshold; based on the determination that the number of active connections of the RR client does not meet the threshold, send a connection initiation request acceptance to the originating RR to establish a connection between the originating RR and the RR client; and update the data structure to indicate that an active connection exists between the originating RR and the RR client.
[0108] In a third implementation, either alone or in combination with one or more of the first and second implementations, the RR client may further: send an RR client request route to a plurality of RRs, wherein the plurality of RRs includes an originating RR and different RRs; receive a first connection initiation request from different RRs based on the RR client request route; after receiving the first connection initiation request, determine, based on a data structure, that the number of active connections of the RR client does not meet a threshold; based on determining that the number of active connections of the RR client does not meet the threshold, send a connection initiation request acceptance to different RRs to establish a connection between the different RRs and the RR client; update the data structure to indicate that there is an active connection between the different RRs and the RR client; receive a second connection initiation request from the originating RR based on the RR client request route; after receiving the second connection initiation request, determine, based on a data structure, that the number of active connections of the RR client meets a threshold; and based on determining that the number of active connections of the RR client meets the threshold, send a connection initiation request rejection to the originating RR to prevent a connection between the originating RR and the RR client from being established.
[0109] although Figure 7 The example box for process 700 is shown, but in some implementations, it differs from... Figure 7 Compared to what is depicted, process 700 may include additional boxes, fewer boxes, different boxes, or boxes arranged differently. Additionally or alternatively, two or more boxes of process 700 may be executed in parallel.
[0110] Example 1. A method comprising:
[0111] Routes are obtained from the originating network device by the Auto Discovery Route Reflector (Auto Discovery RR);
[0112] The automatic discovery RR update data structure is used to include at least some of the information contained in the route;
[0113] The automatic discovery RR identifies multiple target network devices based on the data structure;
[0114] The plurality of target network devices includes at least one route reflector (RR) and at least one route reflector client (RR client); and
[0115] The route is sent by the automatic discovery route (RR) to the plurality of target network devices to facilitate the establishment of a connection between the originating network device and at least one of the plurality of target network devices.
[0116] Example 2. According to the method of Example 1, wherein the automatic discovery RR is connected to each of the originating network device and the plurality of target network devices.
[0117] Example 3. According to the method described in Example 1, the route includes at least one of the following:
[0118] Information identifying the route's route distinguisher;
[0119] Information identifying the type of the route;
[0120] Information identifying the address family associated with the originating network device;
[0121] Information identifying the originating network device;
[0122] Information identifying the network associated with the originating network device;
[0123] Information identifying at least one configuration preference of the originating network device; or
[0124] Information identifying at least one routing target associated with the originating network device.
[0125] Example 4. According to the method described in Example 1, wherein the originating network device and the at least one target network device are both RRs, and the route is an RR advertised route.
[0126] The route is sent to the plurality of target network devices such that at least one target network device establishes a connection with the originating network device.
[0127] Example 5. According to the method described in Example 1, wherein the originating network device and the at least one target network device are both RRs, and the route is an RR advertised route.
[0128] The route is sent to the plurality of target network devices, causing the at least one target network device to:
[0129] A connection to the originating network device is established; and
[0130] Information about at least one address family supported by the at least one target network device is sent to the originating network device via the connection.
[0131] Example 6. According to the method described in Example 1, wherein the originating network device is an RR, the at least one target network device is an RR client, and the route is an RR advertised route.
[0132] The route is sent to the plurality of target network devices to cause the at least one target network device to update one or more settings of the at least one target network device to allow the originating network device to establish a connection with the at least one target network device.
[0133] Example 7. According to the method described in Example 1, wherein the originating network device is an RR client, the at least one target network device is an RR, and the route is an RR client-requested route.
[0134] The route is sent to the plurality of target network devices such that at least one target network device establishes a connection with the originating network device.
[0135] Example 8. According to the method described in Example 1, wherein the originating network device is an RR client, the at least one target network device is an RR, and the route is an RR client-requested route.
[0136] The route is sent to the plurality of target network devices, causing the at least one target network device to:
[0137] A connection to the originating network device is established; and
[0138] Based on the establishment of the connection with the originating network device, an RR neighbor advertisement route is sent to at least one other target network device among the plurality of target network devices.
[0139] Example 9. A route reflector (RR) includes:
[0140] One or more memories; and
[0141] One or more processors, used to:
[0142] Routes are received from the originating network device via an Auto Discovery Route Reflector (Auto Discovery RR);
[0143] The routing is processed to determine information identifying the originating network device and additional information related to the originating network device;
[0144] The data structure is updated to include at least some of the additional information, including the information identifying the originating network device and the additional information relating to the originating network device; and
[0145] Based on the information identifying the originating network device, a connection is established between the RR and the originating network device.
[0146] Example 10. The RR as described in Example 9, wherein the originating network device is an RR, and the route is an RR advertised route.
[0147] When the connection with the originating network device is established, the one or more processors are configured to:
[0148] Based on the information identifying the originating network device, the address of the originating network device is determined;
[0149] Based on the address of the originating network device, a connection initiation request is sent to the originating network device to establish a connection between the RR and the originating network device; and
[0150] Information about at least one address family supported by the RR is sent to the originating network device via the connection.
[0151] Example 11. RR as described in Example 9, wherein the originating network device is a route reflector client (RR client), and the route is a route requested by the RR client.
[0152] When the connection with the originating network device is established, the one or more processors are configured to:
[0153] Based on the additional information related to the originating network device, the address family associated with the originating network device is determined;
[0154] Determine that the address family associated with the originating network device matches the address family supported by the RR; and
[0155] Based on the determination that the address family associated with the originating network device matches the address family supported by the RR, a connection initiation request is sent to the originating network device so that the connection between the RR and the originating network device is established.
[0156] Example 12. RR as described in Example 9, wherein the originating network device is a route reflector client (RR client), and the route is a route requested by the RR client.
[0157] When the connection with the originating network device is established, the one or more processors are configured to:
[0158] Based on the additional information related to the originating network device, the address family associated with the originating network device and the maximum number of connections to the originating network device are determined;
[0159] Determine that the address family associated with the originating network device matches the address family supported by the RR;
[0160] Based on the data structure, it is determined that the number of active connections to the originating network device is less than the maximum number of connections to the originating network device; and
[0161] The connection between the RR and the originating network device is established based on determining that the address family associated with the originating network device matches the address family supported by the RR, and determining that the number of active connections to the originating network device is less than the maximum number of connections to the originating network device.
[0162] Example 13. RR as described in Example 9, wherein the originating network device is a route reflector client (RR client), and the route is a route requested by the RR client.
[0163] When the connection with the originating network device is established, the one or more processors are configured to:
[0164] Based on the additional information related to the originating network device, the address family associated with the originating network device and the physical location of the originating network device are determined;
[0165] Determine that the address family associated with the originating network device matches the address family supported by the RR;
[0166] The physical location of the RR is determined to be within a threshold distance of the physical location of the originating network device; and
[0167] The connection between the RR and the originating network device is established based on determining that the address family associated with the originating network device matches the address family supported by the RR, and determining that the physical location of the RR is within the threshold distance of the physical location of the originating network device.
[0168] Example 14. RR as described in Example 9, wherein the originating network device is a route reflector client (RR client), and the route is a route requested by the RR client.
[0169] The one or more processors mentioned above are further used to:
[0170] Generate an RR neighbor advertisement route, the RR neighbor advertisement route indicating that the RR has established a connection with the originating network device;
[0171] Based on the data structure, at least one other RR is determined; and
[0172] Send the RR neighbor announcement route to at least one other RR.
[0173] Example 15. RR as described in Example 9, wherein the originating network device is a route reflector client (RR client), and the route is a route requested by the RR client.
[0174] When the connection with the originating network device is established, the one or more processors are configured to:
[0175] Based on the additional information related to the originating network device, the address family associated with the originating network device and the maximum number of connections to the originating network device are determined;
[0176] Determine that the address family associated with the originating network device matches the address family supported by the RR;
[0177] Receive RR neighbor advertised routes from another RR, the RR neighbor advertised routes indicating that the other RR has established a connection with the originating network device;
[0178] Based on the data structure and the RR neighbor advertisement route, it is determined that the number of active connections to the originating network device is less than the maximum number of connections to the originating network device; and
[0179] The connection between the RR and the originating network device is established based on determining that the address family associated with the originating network device matches the address family supported by the RR, and determining that the number of active connections to the originating network device is less than the maximum number of connections to the originating network device.
[0180] Example 16. The RR as described in Example 15, wherein the RR neighbor advertised route includes at least one of the following:
[0181] Information identifying the route distinguisher of the route advertised by the RR neighbor;
[0182] Information identifying the type of route advertised by the RR neighbor;
[0183] Information identifying the address of the originating network device;
[0184] Information identifying the address family associated with the other RRs;
[0185] Information identifying the other RRs;
[0186] Information identifying at least one configuration preference of the other RR; or
[0187] Information identifying at least one routing target associated with the other RR.
[0188] Example 17. A non-transitory computer-readable medium storing instructions, the instructions comprising:
[0189] One or more instructions, when executed by one or more processors of a route reflector client (RR client), cause the one or more processors to:
[0190] Receive routes advertised by the originating route reflector (RR) via the auto-discovery route reflector (auto-discovery RR);
[0191] The RR advertisement route is processed to determine information identifying the originating RR, information identifying the address family associated with the originating RR, and additional information related to the originating RR;
[0192] The data structure is updated to include at least some of the following additional information: the information identifying the originating RR, the information identifying the address family associated with the originating RR, and the additional information related to the originating RR.
[0193] Determine whether the address family associated with the originating RR matches the address family associated with the RR client; and
[0194] Based on the determination that the address family associated with the originating RR matches the address family associated with the RR client, one or more settings of the RR client are updated to allow the originating RR to establish a connection with the RR client.
[0195] Example 18. A non-transient computer-readable medium according to Example 17, wherein the one or more instructions, when executed by the one or more processors, also cause the one or more processors to:
[0196] Receive a connection request from the originating RR;
[0197] Send a connection initiation request acceptance to the originating RR to establish a connection between the originating RR and the RR client; and
[0198] Update the data structure to indicate that there is an active connection between the originating RR and the RR client.
[0199] Example 19. A non-transient computer-readable medium according to Example 17, wherein the one or more instructions, when executed by the one or more processors, also cause the one or more processors to:
[0200] Send RR client request routes to multiple RRs.
[0201] The plurality of RRs includes the originating RR;
[0202] Based on the route for sending the RR client request, a connection initiation request is received from the originating RR;
[0203] After receiving the connection initiation request, based on the data structure, it is determined whether the number of active connections of the RR client meets the threshold;
[0204] Based on the determination that the number of active connections of the RR client does not meet the threshold, a connection initiation request acceptance is sent to the originating RR to establish a connection between the originating RR and the RR client; and
[0205] Update the data structure to indicate that there is an active connection between the originating RR and the RR client.
[0206] Example 20. A non-transient computer-readable medium according to Example 17, wherein the one or more instructions, when executed by the one or more processors, also cause the one or more processors to:
[0207] Send RR client request routes to multiple RRs.
[0208] The plurality of RRs includes the initial RR and different RRs;
[0209] Based on the route for sending the RR client request, a first connection request is received from the different RRs;
[0210] After receiving the first connection initiation request, based on the data structure, it is determined that the number of active connections of the RR client does not meet the threshold;
[0211] Based on the determination that the number of active connections of the RR client does not meet the threshold, a connection initiation request acceptance is sent to the different RRs so that a connection is established between the different RRs and the RR client.
[0212] Update the data structure to indicate the existence of active connections between the different RRs and the RR client;
[0213] Based on the route for sending the RR client request, a second connection initiation request is received from the originating RR;
[0214] After receiving the second connection initiation request, based on the data structure, it is determined that the number of active connections of the RR client meets the threshold; and
[0215] Based on the determination that the number of active connections of the RR client meets the threshold, a connection initiation request rejection is sent to the originating RR to prevent a connection from being established between the originating RR and the RR client.
[0216] The foregoing disclosure provides explanations and descriptions, but is not intended to be exhaustive or to limit the implementation to the precise form disclosed. Modifications and variations can be made based on the foregoing disclosure, or modifications and variations can be derived from the practice of implementation.
[0217] As used herein, the term "service" or "content" can include a collection of packets. A packet can refer to a communication structure used to convey information, such as a Protocol Data Unit (PDU), network packet, datagram, segment, message, block, cell, frame, subframe, slot, symbol, any part of the above, and / or another type of formatted or unformatted data unit that can be transmitted over the network.
[0218] As used in this article, the term "component" is intended to be interpreted broadly as hardware, firmware, and / or a combination of hardware and software.
[0219] As used in this article, depending on the context, a threshold can refer to a value that is greater than the threshold, more than the threshold, higher than the threshold, greater than or equal to the threshold, less than the threshold, less than the threshold, lower than the threshold, less than or equal to the threshold, equal to the threshold, etc.
[0220] It will be apparent that the systems and / or methods described herein can be implemented in various forms, including hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not limited to a single implementation. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to any specific software code—it should be understood that software and hardware can be designed to implement the systems and / or methods based on the descriptions herein.
[0221] Even if specific combinations of features are described in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of various implementations. In fact, many of these features can be combined in ways not specifically described in the claims and / or disclosed in the specification. Although each dependent claim listed below may depend directly on only one claim, the disclosure of various implementations includes every dependent claim in combination with every other claim in the claim set.
[0222] Unless explicitly stated otherwise, no element, action, or instruction used herein should be construed as critical or necessary. Furthermore, as used herein, the articles “a” and “one” are intended to include one or more items and may be used interchangeably with “one or more.” Furthermore, as used herein, the article “the” is intended to include one or more items referenced in conjunction with the article “the” and may be used interchangeably with “the one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, combinations of related and unrelated items, etc.) and may be used interchangeably with “one or more.” Where only one item is intended, the phrase “only one” or similar language is used. Furthermore, as used herein, the term “having” is intended to be an open-ended term. Furthermore, unless explicitly stated otherwise, the phrase “based on” is intended to mean “at least partially based on.” Furthermore, as used herein, unless otherwise expressly stated (e.g., in conjunction with “any one” or “only one of the following”), the term “or” is intended to be inclusive when used in series and may be used interchangeably with “and / or”.
Claims
1. An electronic device, comprising: One or more memory units; as well as One or more processors, used to: Obtain the route from the first network device; Update the data structure to include at least some of the information contained in the route; Multiple second network devices are identified based on the aforementioned data structure. The plurality of second network devices includes at least one route reflector and at least one route reflector client, and The route reflector and the route reflector client are devices different from the electronic device, which is an auto-discovery route reflector; as well as The route is sent to the plurality of second network devices to establish a connection between the first network device and at least one of the plurality of second network devices.
2. The electronic device of claim 1, wherein the electronic device is associated with the first network device.
3. The electronic device according to claim 1, wherein the second network device is a route reflector, and wherein the route is a route advertised by the route reflector.
4. The electronic device of claim 1, wherein the first network device is a route reflector, the at least one second network device is a route reflector client, and the route is a route advertised by the route reflector. One or more settings associated with the at least one second network device are updated based on sending the route to the plurality of second network devices, and The connection is established based on the updated settings.
5. The electronic device of claim 1, wherein the first network device is a route reflector client, and the at least one second network device is a route reflector, and the route is a route requested by the route reflector client. The connection is established based on sending the route to the plurality of second network devices.
6. The electronic device of claim 1, wherein the routing comprises at least one of the following: Information identifying the route's route distinguisher; Information identifying the type of the route; Information identifying the address family associated with the first network device; Information identifying the first network device; Information identifying the network associated with the first network device; Information identifying at least one configuration preference of the first network device; or Information identifying at least one routing target associated with the first network device.
7. The electronic device of claim 1, wherein the first network device and the at least one second network device are respectively route reflectors, and the route is a route advertised by the route reflector. Information associated with at least one address family supported by the at least one second network device is transmitted via the connection.
8. A routing method, comprising: Routes are received from the first network device by the route reflector via an auto-discovery route reflector. The automatic discovery route reflector is different from the route reflector; The route is processed by the route reflector to determine information identifying the first network device and additional information related to the first network device; The data structure is updated by the route reflector to include at least some of the additional information, including the information identifying the first network device and the additional information. as well as The route reflector establishes a connection with the first network device based on the information identifying the first network device.
9. The method of claim 8, wherein the route reflector is a first route reflector. The first network device is a second route reflector, and the route is a route advertised by the route reflector. The establishment of the connection includes: Based on the information identifying the first network device, the address of the first network device is determined; Based on the address of the first network device, a request is sent associated with establishing the connection with the first route reflector; as well as Information associated with at least one address family supported by the first route reflector is sent to the first network device via the connection.
10. The method of claim 8, wherein the first network device is a route reflector client, and the route is a route requested by the route reflector client, and The establishment of the connection includes: Based on the additional information, a first address family associated with the first network device is determined; Determine that the first address family matches a second address family supported by the route reflector; and Based on the determination that the first address family matches the second address family, a connection initiation request is sent to the first network device so that the connection is established.
11. The method of claim 8, further comprising: Based on the data structure, it is determined that the number of active connections associated with the first network device is less than the maximum number of connections to the first network device. as well as A connection is established based on the fact that the number of active connections to the first network device is less than the maximum number of connections to the first network device.
12. The method of claim 8, further comprising: The first location of the route reflector is determined to be within a threshold distance of the second location of the first network device; as well as The connection is established based on the determination that the first position is within the threshold distance of the second position.
13. The method of claim 8, further comprising: Generate a route reflector neighbor advertisement route, which indicates that the route reflector has enabled the connection to be established; Based on the data structure, at least one other route reflector is identified; as well as Send the route reflector neighbor advertisement route to the at least one other route reflector.
14. The method of claim 8, further comprising: Receive a route advertised by a route reflector neighbor from another route reflector, the route advertised by the route reflector neighbor indicating that the other route reflector has established another connection with the first network device; Based on the data structure and the route reflector neighbor advertised routes, it is determined that the number of active connections associated with the first network device is less than the maximum number of connections associated with the first network device. as well as The connection between the route reflector and the first network device is established based on the fact that the number of active connections associated with the first network device is less than the maximum number of connections to the first network device.
15. A non-transient computer-readable medium, the non-transient computer-readable medium storing instructions, the instructions comprising: One or more instructions, when executed by one or more processors of an electronic device, cause the one or more processors to: Obtain the route from the first network device; Update the data structure to include at least some of the information contained in the route; Multiple second network devices are identified based on the aforementioned data structure. The plurality of second network devices includes at least one route reflector and at least one route reflector client, and The route reflector and the route reflector client are devices different from the electronic device, which is an auto-discovery route reflector; as well as The route is sent to the plurality of second network devices to establish a connection between the first network device and at least one of the plurality of second network devices.
16. The non-transient computer-readable medium of claim 15, wherein the electronic device is associated with the first network device.
17. The non-transient computer-readable medium of claim 15, wherein the second network device is a route reflector, and wherein the route is a route advertised by the route reflector.
18. The non-transient computer-readable medium of claim 15, wherein the first network device is a route reflector, the at least one second network device is a route reflector client, and the route is a route advertised by the route reflector. One or more settings associated with the at least one second network device are updated based on sending the route to the plurality of second network devices, and The connection is established based on the updated settings.
19. The non-transient computer-readable medium of claim 15, wherein the first network device is a route reflector client, and the at least one second network device is a route reflector, and the route is a route requested by the route reflector client. The connection is established based on sending the route to the plurality of second network devices.
20. The non-transient computer-readable medium of claim 15, wherein the first network device and the at least one second network device are respectively route reflectors, and the route is a route advertised by the route reflector. Information associated with at least one address family supported by the at least one second network device is transmitted via the connection.
Citation Information
Patent Citations
VPNv4 ROUTE CONTROL FOR LTE X2 SON USING UNIQUE ROUTE TARGETS
CN105814943A
Symmetric intersubnet traffic load balancing in multihomed networks
CN107872389A