Automatically extending network topology using unique identifiers
The use of unique label identifiers in network topologies allows for automated expansion and modification, addressing the limitations of traditional systems by enabling self-managed and scalable network configurations, improving efficiency and reducing management complexity.
Patent Information
- Application Number
- CN202380057824.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-11
- Filing Date
- 2023-08-08
- Publication Date
- 2025-03-14
AI Technical Summary
Traditional network topologies lack the ability to automatically expand and modify network structures in response to new nodes, interfaces, and technologies, leading to complex management and inefficiencies in routing protocols.
The implementation of unique label identifiers that can be applied to nodes, interfaces, and links within the network, enabling automated expansion and reconfiguration of network topologies, independent of specific protocols such as BGP, RSVP, or OSPF, allowing for self-managed and scalable network configurations.
This approach eliminates the need for manual intervention in network expansion and modification, enhancing scalability, reducing management complexity, and ensuring accurate validation of network states by automatically updating routing configurations.
Smart Images

Figure CN119631360A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to computing networks, and in particular, to network topologies and routing protocols in a computer network environment. Background Art
[0002] Network computing is the way that multiple computers or nodes work together and communicate with each other over a network. There are wide area networks (WANs) and local area networks (LANs). Both WANs and LANs allow computers to be interconnected. LANs are usually used for smaller, more localized networks, which can be used in homes, businesses, schools, etc. WANs cover larger areas such as cities, and can even allow computers in different countries to connect. LANs are usually faster and more secure than WANs, but WANs enable connectivity over large areas. LANs are usually owned, controlled, and managed internally by the organization that deploys them, while WANs usually require two or more constituent LANs to be connected via the public Internet, or through a dedicated connection established by a telecommunications provider.
[0003] Local and wide area networks enable computers to connect to each other and transfer data and other information. For both local and wide area networks, there must be a way to determine the path that data takes from one computing instance to another. This is called routing. Routing is the process of selecting a path for traffic within a network or between or across multiple networks. The routing process is typically based on routing tables that keep a record of routes to various network destinations. Routing tables can be specified by an administrator, learned by observing network traffic, or constructed with the help of routing protocols.
[0004] Small networks may use manually configured routing tables to determine how information should be transmitted from one computer to another. A routing table may include a list of "best paths" that indicate the most efficient or optimal path between a starting computer and a destination computer. Larger networks, including networks connected to the public Internet, may rely on complex topologies that can change so rapidly that manually building routing tables is not feasible. Dynamic routing attempts to address this problem by automatically building routing tables based on information carried by routing protocols. Dynamic routing enables networks to avoid network failures and congestion almost autonomously. There are a variety of routing protocols that provide rules or instructions for determining the best path between networked devices. Examples of dynamic routing protocols and algorithms include Routing Information Protocol (RIP), Open Shortest Path First (OSPF), Enhanced Interior Gateway Routing Protocol (EIGRP), and Border Gateway Protocol (BGP).
[0005] In some cases, path selection involves applying routing metrics to multiple routes to select or predict the best route. Most routing algorithms use only one network path at a time. Multipath routing techniques enable the use of multiple alternative paths. In computer networks, routing algorithms can be used to predict the best path between two computing instances. Routing algorithms can be based on multiple factors, such as bandwidth, network latency, number of hops, path cost, load, maximum transmission unit, reliability, and communication cost. A routing table stores a list of the best paths. A topology database can store a list of the best paths and can further store additional information.
[0006] In some networks, routing is complex because no single entity is responsible for selecting the best path. Instead, multiple entities participate in selecting the best path, or even parts of a single path. In the computer network environment of the Internet, the Internet is divided into autonomous systems (AS), such as Internet service providers (ISPs). Each AS controls the routing involving its network. AS-level paths are selected based on the Border Gateway Protocol (BGP). Each AS-level path includes a series of autonomous systems through which packets travel from one computing instance to another. Each autonomous system can have multiple paths provided by neighboring autonomous systems to choose from.
[0007] In many instances, it is important to expand and modify the network topology in real time to cope with new nodes, new interfaces, new technologies, etc. However, traditional network topology systems do not support automatic expansion and modification of network topology.
[0008]
[0013] In view of the foregoing, disclosed herein are systems, methods, and apparatus for automatically extending a network topology by implementing unique tag identifiers as described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Non-limiting and non-exhaustive embodiments of the present disclosure are described with reference to the following drawings, wherein, unless otherwise specified, like reference numerals refer to like parts in the various views. The advantages of the present disclosure will become better understood in conjunction with the following description and drawings, wherein:
[0010] Figure 1 is a schematic diagram of an exemplary system of networked devices communicating via the Internet;
[0011] Figure 2 is a schematic block diagram of an exemplary network topology including a core layer, an edge layer and a client layer known in the prior art;
[0012] Figure 3 is a schematic block diagram of an exemplary network topology including a core layer, an edge layer and a client layer known in the prior art;
[0013] Figure 4 yes Figure 4 A schematic block diagram of an exemplary network topology shown in A, further including an indication of hardware and routing protocols implemented by nodes and interfaces in the network topology;
[0014] Figure 5 is a schematic flow chart of a method for constructing and implementing a network configuration including a unique tag identifier for automatic expansion and reconfiguration;
[0015] Figure 6 is a block diagram illustrating an exemplary format of a unique tag identifier at a node level and an interface level;
[0016] Figure 7 is a block diagram illustrating an exemplary network topology including unique label identifiers for nodes, interfaces, and links;
[0017] FIG. 8A to FIG. 8B is a block diagram illustrating an exemplary automatically generated configuration template for a unique tag identifier;
[0018] Fig. 9 is a block diagram illustrating an exemplary automatically generated configuration template for an Internet Protocol network topology using a unique tag identifier;
[0019] Fig.10 is a block diagram illustrating an exemplary automatically generated configuration template for a network topology implementing a unique tag identifier; and
[0020] Fig.11 is a schematic diagram illustrating components of an exemplary computing device. DETAILED DESCRIPTION
[0021] Disclosed herein are systems, methods, and apparatus for topology-independent automation of extending and modifying network topologies. The systems, methods, and apparatus described herein implement the use of "tags," which may be referred to herein as tag identifiers. Tag identifiers may be applied to nodes, interfaces, and links within a network topology.
[0022] The label identifiers described herein are implemented to automatically extend and modify network topologies for end-to-end configuration and verification. The label identifiers described herein can be implemented in topologies that use the following protocols: Border Gateway Protocol (BGP), Resource Reservation Protocol (RSVP), Internet Protocol Security (IPSEC), Language Server Protocol (LSP), Virtual Private Network (VPN) Protocol, Intermediate System-Intermediate System (IS-IS) Protocol, Open Shortest Path First (OSPF) Protocol, and other protocols not specifically described herein. The label identifiers described herein are topology independent and protocol agnostic.
[0023] In traditional systems, data in the network topology must be manually constructed. Depending on the implementation, this data may include, for example, peer Internet Protocol (IP) addresses, peer label switching path (LSP) IP addresses, interface names, etc. Manually constructing this data and manually mapping each node in the network topology is both laborious and inaccurate. In addition, these traditional systems make automation too complex. Traditional systems do not provide scalable methods for increasing the scale of the topology (i.e., adding additional nodes, interfaces, and links) or modifying existing topologies. In these traditional systems, when the topology changes, the corresponding data of the deleted node must be manually updated in order to delete the node from the configurable list. This change must be updated on each data list at each node level, which stores the peer address details of the deleted node. This further affects the verification process of the peer status; if the change is not updated, the verification check performed on the corresponding node will be negatively affected.
[0024] The label identifiers described herein solve the problems summarized above. The systems, methods, and apparatus described herein implement label identifiers that are mapped to a network topology. When label identifiers are implemented, a computing system can automatically extend a network topology by identifying new nodes, resolving label identifiers, retrieving information about the new nodes, and creating configurations to send to routers within the topology. This virtually eliminates the need for manual interaction when extending and adjusting a network topology.
[0025] Label identifiers can be implemented at the node level ("node label identifier") and at the interface level ("interface label identifier"). The node label identifier includes information about the role of the node, the number of the node in the protocol, the name of the node label identifier, etc. The interface label identifier includes information about the protocol and the name of the interface label identifier. These label identifiers are used to automatically expand and adjust the network topology.
[0026] The following is introduced as a further background of the disclosure herein. In a computer network environment, a networking device such as a switch or a router can be used to transmit information from one destination to another destination. In an embodiment, data packets and messages can be generated at a first location, such as on a computer at a personal home. Data packets and messages can be generated by a person interacting with a web browser and requesting information or providing information to a remote server accessible via the Internet. In an example, data packets and messages can be information that a person enters into a form accessible on a web page connected to the Internet. Data packets and messages may need to be transmitted to a remote server that may be geographically far away from a personal computer. There is likely to be no direct communication between the router at a personal home and the remote server. Therefore, data packets and messages must be propagated by "jumping" to different networking devices until they reach the destination at the remote server. The router at a personal home must determine the route of transmitting data packets and messages through multiple different devices connected to the Internet until the data packets and messages reach the destination of the remote server.
[0027] The process of determining the best path from a first location to a destination and forwarding data packets and messages to the next destination is an important function performed by a networking device such as a switch or router. The connections between networking devices in a network are called network topology. Network topology is the arrangement of elements such as links and nodes in a communication network. Network topology can include wired links, wireless links, or a combination of wired links and wireless links between nodes in a network. Some examples of wired links include coaxial cables, telephone lines, power lines, ribbon cables, optical fibers, etc. Some examples of wireless links include satellites, cellular signals, radio signals, free space optical communications, etc. The network topology includes an indication of all nodes (e.g., computers, routers, switches, and other devices) in the network and an indication of the links between the nodes. Systems, methods, and devices for improving network topology and network routing are disclosed herein.
[0028] To further understand the present disclosure, some explanation will be provided of a number of network computing devices and protocols.
[0029] A BGP instance is a device used to route information in a network. A BGP instance can take the form of a route reflector device. A BGP instance can run on a switch, a router, or a BGP speaker on a switch. In general, a BGP instance sends all the paths it has learned for a prefix to the best path controller. The best path controller responds with a set of the best paths among these paths. The best path controller has the authority to modify the next hop and attributes of any path. Once the best path is received, the BGP instance updates the local routing information base (RIB) and announces the best path to its neighboring devices.
[0030] A switch (which may alternatively be referred to as a switching hub, bridging hub, or MAC bridge) creates a network. Most internal networks use switches to connect computers, printers, phones, cameras, lights, and servers in a building or campus. A switch acts as a controller, enabling networked devices to communicate with each other efficiently. A switch connects devices on a computer network by using packet switching to receive data, process it, and forward it to the destination device. A network switch is a multi-port bridge that processes and forwards data at the data link layer (layer 2) of the Open Systems Interconnection (OSI) model using hardware addresses. Some switches can also process data at the network layer (layer 3) by adding routing capabilities. Such switches are often referred to as layer 3 switches or multilayer switches.
[0031] Routers connect networks. Switches and routers perform similar functions, but each has its own distinct functions to perform on a network. A router is a networking device that forwards packets of data between computer networks. Routers perform traffic directing functions on the Internet. Data such as web pages, emails, or other forms of information sent over the Internet is sent in packets. Packets are typically forwarded from one router to another through the networks that make up an internetwork (e.g., the Internet) until the packet reaches its destination node. A router connects to two or more data lines from different networks. When a packet of data comes in through one of these lines, the router reads the network address information in the packet to determine the final destination. Then, using information in the router's routing table or routing policy, the router directs the packet to the next network on its journey. A BGP speaker is a router that has the Border Gateway Protocol (BGP) enabled.
[0032] A customer edge router (CE router) is a router located at the customer premises that provides an interface between the customer LAN and the provider core network. CE routers, provider routers, and provider edge routers are components in a multiprotocol label switching architecture. Provider routers are located at the core of a provider or carrier network. Provider edge routers are located at the edge of the network. Customer edge routers connect to provider edge routers, and provider edge routers connect to other provider edge routers through provider routers.
[0033] A routing table or routing information base (RIB) is a table of data stored in a router or networked computer that lists the routes to a specific network destination. In some cases, the routing table contains metrics for the routes, such as distance, weight, etc. The routing table includes information about the network topology surrounding the router that stores the routing table. The construction of routing tables is the primary goal of routing protocols. Static routes are entries that are added to the routing table by non-automatic means and are fixed rather than the result of some network topology discovery procedure. A routing table may include at least three fields of information, including fields for the network ID, metric, and next hop. The network ID is the destination subnet. The metric is the routing metric of the path that the packet is sent through. Routing will proceed in the direction of the gateway with the lowest metric. The next hop is the address of the next stop to which the packet is to be sent on the way to the destination. The routing table may further include the quality of service associated with the route, a link to a list of filter criteria associated with the route, the interface of the Ethernet card, etc.
[0034] To illustrate the concept of a routing table, you can liken a routing table to using a map to deliver a package. A routing table is like using a map to deliver packets of data to their final destination. When a node needs to send data to another node on the network, the node must first know where to send the data. If the node cannot connect directly to the destination node, the node must send the data to other nodes along the appropriate route to the destination node. Most nodes do not try to figure out which routes might work. Instead, the node will send an IP packet to a gateway on the local area network, and the gateway will then decide how to route the data to the correct destination. Each gateway needs to keep track of the routes that different packets of data are sent, and to do this it uses a routing table. A routing table is a database that tracks paths, like a map. Figure 1 The gateway can also share the contents of its routing table with other nodes that request this information.
[0035] With hop-by-hop routing, each routing table lists, for all reachable destinations, the address of the next device on the path to that destination, the next hop. Assuming the routing tables are consistent, the algorithm that forwards a packet to the next hop of its destination is sufficient to deliver the data anywhere in the network. Hop-by-hop is a characteristic of the IP internetwork layer and the Open Systems Interconnection (OSI) model.
[0036] The Open Systems Interconnection (OSI) model is a conceptual model that describes and standardizes the communication capabilities of computing systems regardless of their underlying internal structures and technologies. The goal of the OSI model is to achieve interoperability of different communication systems using standard communication protocols. The OSI model divides communication systems into abstract layers. Layers serve the layers above them and are served by the layers below them. For example, a layer that provides error-free communication in a network provides the required path for its upper layer applications while calling the next lower layer to send and receive packets that constitute the content of that path. Two instances of the same layer are considered to be connected by a horizontal connection in that layer. Communication protocols enable an entity in one host to interact with a corresponding entity of the same layer in another host. Like the OSI model, a service definition abstractly describes the functionality provided by the (N-1) layer to the (N) layer, where N is one of the layers of the protocol running in the local host.
[0037] Route control is a type of network management that aims to improve Internet connectivity, reduce bandwidth costs and overall interconnected network operations. Some route control services include a range of hardware-based and software-based products and services that work together to improve overall Internet performance and fine-tune the use of available Internet bandwidth at the lowest cost. Route control can be successful in scenarios where a network or autonomous system obtains Internet bandwidth from multiple providers. Route control can help select the best path for data transmission.
[0038] Some network communication systems are large enterprise-level networks with thousands of processing nodes. Thousands of processing nodes share bandwidth from multiple Internet Service Providers (ISPs) and can handle large amounts of Internet traffic. Such systems can be very complex and must be configured correctly to achieve acceptable Internet performance. If the system is not configured correctly for optimal data transmission, Internet access speeds may be reduced and the system may experience high bandwidth consumption and high traffic. To address this issue, a set of services can be implemented to eliminate or reduce these concerns. This set of services can be called routing control.
[0039] Embodiments of the routing control mechanism consist of hardware and software. The routing control mechanism monitors all outgoing traffic through connections to Internet Service Providers (ISPs). The routing control mechanism helps select the best path to efficiently transmit data. The routing control mechanism can calculate the performance and efficiency of all ISPs and select only those that perform best in the applicable area. The routing control device can be configured according to defined parameters related to cost, performance, and bandwidth.
[0040] One known algorithm for determining the best path for data transmission is called the Border Gateway Protocol (BGP). BGP is a path vector protocol that provides routing information to autonomous systems on the Internet. If BGP is not configured correctly, it can cause serious availability and security issues. In addition, modified BGP routing information may allow attackers to redirect large blocks of traffic so that the traffic propagates to certain routers before reaching its intended destination. The BGP best path algorithm can be implemented to determine the best path to be installed in the Internet Protocol (IP) routing table for traffic forwarding. BGP routers can be configured to receive multiple paths to the same destination.
[0041] The BGP Best Path Algorithm designates the first valid path as the current best path. The BGP Best Path Algorithm compares the best path to the next path in the list until BGP reaches the end of the valid path list. The list provides rules for determining the best path. For example, the list may include the following indications: the path with the highest weight is preferred, the path with no local preference is preferred, the path initiated locally through the network or aggregated BGP is preferred, the shortest path is preferred, the path with the lowest multi-exit discriminator is preferred, etc. The BGP Best Path Selection Process can be customized.
[0042] In the context of BGP routing, each routing domain is called an Autonomous System (AS). BGP helps choose a path that connects two routing domains through the Internet. BGP typically chooses the route that traverses the fewest number of autonomous systems, called the shortest AS path. In an embodiment, once BGP is enabled, a router will pull a list of Internet routes from a BGP neighbor, which may be an ISP. BGP will then go through this list to find the route with the shortest AS path. These routes can be entered into the router's routing table. Typically, a router will choose the shortest path to an AS. BGP uses path attributes to determine how to route traffic to a specific network.
[0043] Equal Cost Multi-Path (ECMP) routing is a routing strategy in which a next-hop packet can be forwarded to a single destination via multiple "best paths". Multiple best paths are equivalent based on a routing metric calculation. Because routing is a hop-by-hop decision and is limited to a single router, multi-path routing can be used in conjunction with many routing protocols. Multi-path routing can significantly increase bandwidth by balancing traffic loads over multiple paths. However, in practical applications, ECMP routing has many known problems. This article discloses systems, methods, and apparatus for improved ECMP routing.
[0044] A Clos network can be deployed in the telecommunications field. A Clos network is a multi-stage circuit switching network that represents an idealization of a multi-stage switching system. A Clos network comprises three stages, including an ingress stage, an intermediate stage, and an egress stage. Each stage consists of a number of crossbar switches. Each cell enters an ingress crossbar switch, which can be routed to a related egress crossbar switch through any available intermediate stage crossbar switch. If both the link connecting the ingress switch to the intermediate stage switch and the link connecting the intermediate stage switch to the egress switch are idle, the intermediate stage crossbar switch can be used for a particular new call.
[0045] The leaf-spine network topology can be deployed for connecting nodes in a computer network. The leaf-spine topology has two layers, including a leaf layer and a spine layer. The leaf layer consists of access switches that connect to devices like servers, firewalls, load balancers, and edge routers. The spine layer consists of switches that perform routing and form the backbone of the network, in which each leaf switch is interconnected with each spine switch. In a leaf-spine topology, all devices are the same number of links away from each other and include a predictable and consistent amount of latency for information transmission.
[0046] A virtual local area network (VLAN) is a broadcast domain that is divided and isolated at the data link layer in a computer network. VLANs can apply tags to network frames and process these tags in networking systems to create the appearance and function of network traffic that is physically on a single network but behaves as if it is divided between different networks. Despite being connected to the same physical network, VLANs can keep network applications separate and eliminate the need to deploy multiple sets of cables and network devices.
[0047] A Switched Virtual Interface (SVI) is a virtual interface and port that transports untagged VLAN packets for managed switches. Traditionally, switches only send traffic to hosts within the same broadcast domain (single VLAN), and routers handle traffic between different broadcast domains (different VLANs). In this implementation, network devices in different broadcast domains cannot communicate without a router. When SVI is implemented, the switch can use virtual Layer 3 interfaces to route traffic to other Layer 3 interfaces. This eliminates the need for physical routers. VLANs reduce network load by dividing LANs into smaller segments and keeping local traffic within VLANs. However, because each VLAN has its own domain, a mechanism is needed for VLANs to pass data to other VLANs without passing data through routers. SVI is such a mechanism. SVIs are typically present on switches (e.g., Layer 3 switches and Layer 2 switches). When SVI is implemented, the switch can identify the destination of packets belonging to the VLAN being sent and can switch those packets destined for different VLANs. In an embodiment, there is a one-to-one mapping between VLANs and SVIs. In such an embodiment, only a single SVI can be mapped to one VLAN.
[0048] In order to promote the understanding of the principles according to the present disclosure, reference will now be made to the embodiments shown in the accompanying drawings, and specific language will be used to describe these embodiments. However, it should be understood that this is not meant to limit the scope of the present disclosure. For those skilled in the art and possessing the present disclosure, any changes and further modifications to the inventive features shown herein that would normally be expected, as well as any additional applications of the principles of the present disclosure shown herein, are considered to be within the scope of the present disclosure claimed.
[0049] Before disclosing and describing structures, systems and methods for tracking the lifecycle of objects in a network computing environment, it should be understood that the present disclosure is not limited to the specific structures, configurations, process steps and materials disclosed herein, as such structures, configurations, process steps and materials may vary. It should also be understood that the terminology used herein is only for the purpose of describing specific embodiments and is not intended to be limiting, as the scope of the present disclosure will be limited only by the appended claims and their equivalents.
[0050] In describing and claiming the subject matter of the present disclosure, the following terminology will be used in accordance with the definitions given below.
[0051] It must be noted that, as used in this specification and the appended claims, the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise.
[0052] As used herein, the terms "comprising," "including," "containing," "characterized by," and grammatical equivalents thereof are inclusive or open-ended terms that do not exclude additional, unrecited elements or method steps.
[0053] As used herein, the phrase "consisting of and its grammatical equivalents exclude any elements or steps not specified in a claim.
[0054] As used herein, the phrase "consisting essentially of and its grammatical equivalents limit the scope of a claim to the specified materials or steps and those that do not materially affect the basic and novel characteristic or characteristics of the claimed disclosure.
[0055] Now referring to the accompanying drawings, Figure 1 A schematic diagram of a system 100 for connecting a device to the Internet is shown. The system 100 includes a plurality of local area networks 160 connected by a switch 106. Each of the plurality of local area networks 160 can be connected to each other via a router 162 through the public Internet. Figure 1 In the exemplary system 100 shown, there are two local area networks 160. However, it should be understood that there may be many local area networks 160 connected to each other via the public Internet. Each local area network 160 includes multiple computing devices 108 connected to each other via a switch 106. The multiple computing devices 108 may include, for example, desktop computers, laptop computers, printers, servers, etc. The local area network 160 can communicate with other networks via the public Internet via a router 162. The router 162 connects the multiple networks to each other. The router 162 is connected to an Internet service provider 102. The Internet service provider 102 is connected to one or more network service providers 104. Figure 1 As shown, the network service provider 104 communicates with other local network service providers 104 .
[0056] The switch 106 connects the devices in the local area network 160 by using packet switching to receive data, process the data, and forward the data to the destination device. The switch 106 can be configured to receive data from a computer destined for a printer, for example. The switch 106 can receive the data, process the data, and send the data to the printer. The switch 106 can be a layer 1 switch, a layer 2 switch, a layer 3 switch, a layer 4 switch, a layer 7 switch, etc. A layer 1 network device transmits data but does not manage any traffic passing through it. An example of a layer 1 network device is an Ethernet hub. A layer 2 network device is a multi-port device that processes and forwards data at the data link layer (layer 2) using hardware addresses. A layer 3 switch can perform some or all of the functions that are typically performed by a router. However, some network switches are limited to supporting only a single type of physical network, usually Ethernet, while routers can support various types of physical networks on different ports.
[0057] Routers 162 are networking devices that forward data packets between computer networks. Figure 1 In the exemplary system 100 shown, the router 162 forwards data packets between the local area networks 160. However, the router 162 is not necessarily used to forward data packets between the local area networks 160, and can be used to forward data packets between wide area networks, etc. The router 162 performs a traffic steering function on the Internet. The router 162 can have interfaces for different types of physical layer connections such as copper cables, optical fibers, or wireless transmission. The router 162 can support different network layer transmission standards. Each network interface is used to implement forwarding of data packets from one transmission system to another transmission system. The router 162 can also be used to connect two or more logical groups of computer devices called subnets, each logical group having a different network prefix. As shown in FIG. Figure 1 As shown, router 162 can provide connections within an enterprise, between an enterprise and the Internet, or between networks of Internet service providers. Some routers 162 are configured to interconnect various Internet service providers, or can be used in large enterprise networks. Smaller routers 162 typically provide connections to the Internet for home and office networks. Figure 1 The illustrated router 162 may represent any suitable router for network transport, such as an edge router, a customer edge router, an inter-provider border router, a core router, an Internet backbone, a port forwarding, a voice / data / fax / video processing router, etc.
[0058] An Internet Service Provider (ISP) 102 is an organization that provides services for accessing, using, or participating in the Internet. ISP 102 can be organized in various forms such as commercial, community-owned, non-profit, or private. Internet services typically provided by ISP 102 include Internet access, Internet transit, domain name registration, website hosting, newsgroup services, and co-location. Figure 1 The illustrated ISP 102 may represent any suitable ISP, such as a hosted ISP, a transit ISP, a virtual ISP, a free ISP, a wireless ISP, and the like.
[0059] A network service provider (NSP) 104 is an organization that provides bandwidth or network access by providing direct Internet backbone access to an Internet service provider. A network service provider may provide access to a network access point (NAP). A network service provider 104 is sometimes referred to as a backbone provider or an Internet provider. A network service provider 104 may include telecommunications companies, data carriers, wireless communication providers, Internet service providers, and cable operators that provide high-speed Internet access. A network service provider 104 may also include an information technology company.
[0060] It should be understood that Figure 1 The system 100 shown is exemplary only, and many different configurations and systems can be created for transferring data between networks and computing devices. Because there is a great deal of customizability in network organization, it is desirable to create greater customizability in determining the best path for transferring data between computers or networks. In view of the foregoing, systems, methods, and devices for offloading the best path calculation to an external device are disclosed herein to achieve greater customizability in determining the best path algorithm that is best suited for a group of computers or a business.
[0061] Figure 2 is a schematic block diagram of an exemplary network topology 200. The network topology 200 includes a core layer including P0, P1, and nodes up to Pn. The network topology includes an edge layer including PE1, PE2, and nodes up to PEn. The network topology 200 includes a client layer including CE1, CE2, CE3, and nodes up to CEn. The network topology 200 illustrates the challenges associated with modifying and extending a traditional topology network.
[0062] In conventional systems, the network topology 200 requires a lot of maintenance to ensure that all nodes are properly configured. In most cases, the network topology 200 will be constantly updated to add new nodes, modify existing nodes, and delete existing nodes. Each time the network topology 200 is updated, the configuration of each node must be updated to reflect the modified network topology 200.
[0063] The BGP topology is deployed between P0 to Pn and PE1 and PEn to P0 to Pn. In an embodiment, the network topology 200 is a full mesh of BGP sessions, and in this case, there will be N-1 sessions on each node to the remote node. In this case, the topology is implemented by looking up N-1 IP addresses. This can be manually entered by the user. Because each node needs to be updated when a node is added, modified, or deleted, this will complicate the manageability of the network topology 200.
[0064] RSVP LSP is deployed between PE1 to PEn. The difficulties discussed in conjunction with BGP will also occur in the RSVP LSP implementation. VPN is deployed between PE1 to PEn. Each PE node is configured with a one-to-many interface as part of the VPN. When there is a change in the VPN or the interface, each PE node must be updated. Again, this creates manageability issues. OSPF is deployed on all links between PE1 to PEn and between P0 to Pn. OSPF encounters the same manageability issues associated with the VPN implementation.
[0065] In an exemplary embodiment, network topology 200 is implemented as a fully meshed BGP peer-to-peer network that can be extended and modified using an automation protocol. In some cases, IP addresses must be manually constructed and modified, which is difficult to maintain when the topology changes. In this BGP implementation scheme, each node in the network topology 200 is associated with N-1 peers. This is achieved by building N-1 loops using the data of the required peers on each node. This makes it difficult to automate the network topology 200, so that when the number and configuration of nodes in the network topology 200 increase or adjust, this is not an extensible method. In this network topology 200, when the topology changes, the corresponding data of the deleted node must be manually updated so that the node is deleted from the configurable list. This is difficult to maintain and causes problems with the modified topology in terms of functionality and efficiency. In addition, all changes must be updated on each data list at each node level that preserves the details of the peer address. This data further affects the verification of the peer state. If the modification is not updated, the verification check of the corresponding node will be negatively affected.
[0066] In further exemplary embodiments, network topology 200 is implemented as a fully meshed RSVP LSP or IPSEC topology using automation. In this case, data (i.e., peer LSP IP addresses) must be manually constructed, which is difficult to maintain when topology changes over time. In this RSVP LSP or IPSEC implementation scheme, each node is associated with N-1 peers, and this is achieved by using the data of the required LSP peers on each node to make N-1 loops run. When the number and configuration of nodes in the topology increase, this makes automation too complicated and is not an extensible method. In this network topology 200, when the topology changes, the corresponding data of the deleted node is manually updated so that the node is deleted from the configurable list. This has created a manageability problem. These changes must be updated on each data list of each node level that preserves the details of the peer address. In addition, if the change is not updated in the entire network topology 200, this will affect the verification of the peer state.
[0067] Figure 3 300 is a schematic block diagram of an exemplary network topology 300. The network topology 300 shows an exemplary VPN network. The network topology 300 includes a topology having PE1 to PEn nodes. In this example, it is required to use automation to build the L3VPN topology. The data on each node (in this example, the interface name) is configured to map to a specific VPN that must be built manually. This is difficult to maintain when the topology changes.
[0068] Each node in the network topology 300 includes N links and n sub-interfaces. In order to implement this configuration, N loops must be built using the data of the required links on each node. Therefore, the network topology 300 must include n loops in each of the N loops. This process must be repeated for each node. This makes automation too complex and is not a scalable approach when nodes or links in the topology are added or changed over time. In such a traditional system, when the topology changes, the corresponding data of the deleted node or link must be manually updated in order to delete the node or link from the configurable list. This introduces manageability issues.
[0069] In further exemplary embodiments, network topology 300 is implemented as an OSPF / IS-IS topology that uses automation. In this embodiment, the data on each node (that is, interface name) must be manually constructed. This is difficult to maintain when the topology changes. In this traditional system, when the topology changes, the corresponding data of the deleted node or link must be manually updated so that the node or link can be deleted from the configurable list. This has produced a manageability problem. These changes must be updated on each data list of each node level that preserves the link name details. This data has further affected the verification of the OSPF / IS-IS state. If the change is not updated, the verification check of the corresponding node will be affected.
[0070] Figure 4 An automation network topology 400 is shown. Figure 4 In the figure, four nodes are identified as certain hardware or technology.
[0071] The automation network topology 400 includes a core layer, which includes P0, P1 and nodes up to Pn. The automation network topology 400 further includes an edge layer, which includes PE1, PE2 and nodes up to PEn as required. Finally, the automation network topology 400 includes a client layer, which includes CE1, CE2, CE3 and nodes up to CEn as required. Each of the core layer nodes, edge layer nodes and client layer nodes can be supported by any suitable hardware. For example, the P1 to Pn nodes implemented as described herein may need to support BGP, RSVP and OSPF protocols. PE1 to PEn nodes may need to support BGP, MPLS, RSVP, OSPF and VPN protocols. CE1 to CEn nodes may need to support basic protocols such as static routing.
[0072] like Figure 4 As shown, the core layer nodes P0, P1 and up to Pn can include MPLS border gateway protocol (BGP) instances. The edge layer nodes including PE1, PE2 and up to PEn can include provider edge routers. The core layer nodes P0, P1 and up to Pn can communicate with each other via the open shortest path first (OSPF) routing protocol. In addition, the core layer nodes can communicate with the edge layer nodes via the OSPF routing protocol. The edge layer nodes can communicate with the client layer nodes via a virtual private network.
[0073] The automated network topology 400 is implemented using label identifiers, which include node label identifiers applied to nodes (e.g., P0, P1, Pn, PE1, PE2, PEn, CE1, CE2, CE3, CEn) and interface label identifiers applied to interfaces between nodes. The label identifiers include information about the role of the node, the number assigned to the node, the protocol implemented by the node, etc. The label identifiers enable the computing system to automatically expand the automated network topology 400 and update the path list when nodes or interfaces are added, deleted, or modified. The label identifiers can be stored as part of a topology descriptor file. The topology descriptor file defines the physical connections within the network topology 400, and labels will be added under the nodes and under each link in the topology descriptor file. The topology descriptor file can be used as input data for an application program interface (API) that is configured to build a template for the network topology 400 (see, e.g., FIG. 8A to FIG. 8B Configuration template 800 shown in ).
[0074] Conventional systems do not implement the label identifiers described herein. These conventional systems are difficult to automate, and therefore, adjustments to the topology must often be manually entered by the user. Conventional systems rely on IP addresses and interface names as part of a configuration file or configuration template. In conventional systems, the user must manually build the configuration using the configuration file or configuration template as a guide. In conventional systems, the user is tasked with manually hard-coding neighboring IP addresses in the network configuration and then loading the network configuration into the router. In this case, it is difficult to manage the network and to propagate and update when there are changes in the topology configuration or size.
[0075] In contrast, the label identifiers described herein are implemented to overcome many of the manageability issues associated with conventional systems. In the system described herein, a user can create descriptor files that include label identifiers under nodes and interfaces within a network topology. Label identifiers enable the network topology to be scaled up by adding nodes, scaled down by removing nodes, and modified without manually changing configurations within the network or manually propagating updates to each router.
[0076] Method 500 may be partially manually input by a user, and may further be automatically executed by one or more processors in the network topology.
[0077] The method 500 includes constructing a network topology file having one or more label identifiers at 502. Each of the one or more label identifiers is configured to uniquely identify a node or interface to which the label identifier applies. Figure 7The network topology descriptor file template shown includes each of the node section, interface section and link section. Tag identifiers are added to the network topology file associated with the nodes and interfaces. The API can read the network topology file to generate a template, such as the template shown in FIG8 .
[0078] The method 500 includes constructing an automatic configuration template for the network topology at 504, the automatic configuration template including data related to each node and interface within the network topology. The data includes one or more of the following indications: an indication of what type of technology is enabled for each node, an indication of the interface assigned to the technology, an indication of the nearest neighbor address (in the case of a BGP network topology), and an indication of a label identifier to be configured.
[0079] Method 500 includes parsing the tag identifier and extracting the nodes, addresses and link data of the network topology at 506. The parsing process at 506 is automatically performed by one or more processors that communicate with the network topology. The parsing process at 506 can be implemented to identify new nodes, deleted nodes or modified nodes in the network topology. In an embodiment, the API reads the network topology file and parses the tag identifier, nodes and interfaces. The API can generate a configuration template such as described in conjunction with Figure 8. The template is generated using the parsed data. If it is necessary to add or remove a node to parse the tag identifier at 506, the API will perform this step on the topology descriptor file 700, and then build a configuration template 800 based on the parsed topology descriptor file 700.
[0080] The method 500 includes creating a network configuration and sending the network configuration to applicable routers at 508. The process of creating the network configuration at 508 is automatically performed by one or more processors in communication with the network topology.
[0081] Figure 6 6 is a block diagram illustrating an exemplary format 600 of a tag identifier as described herein. The exemplary format 600 of a tag identifier includes an indication of a node level and an interface level. The node level may be indicated, for example, as “TAG-ROLE-NODE_NUMBER-PROTOCOL-V4_V6-INSTANCE-TAG_NAME”. The interface level may be indicated, for example, as “TAG-PROTOCOL-V4 / V6-SCALE-INSTANCE-TAG_NAME”.
[0082] The format 600 of the tag identifier may be modified based on implementation or use case. The format of the tag identifier may be defined for each protocol and / or feature. The tag identifier may be modified based on scale, which node the tag identifier is associated with, whether the tag identifier is implemented in a VPN instance, etc. The API will read the format 600 and construct new data based on the information stored therein.
[0083] Format 600 may conform to different parser specifications as needed and is not limited to Figure 6 The format 600 is shown. However, in different embodiments, the format 600 may follow the following naming conventions.
[0084] Naming convention for services: [TAG-ROLE-NODE_NUMBER- <sevice>-SCALE-INSTANCE-TAG_NAME:]. Then, depending on the protocol and implementation, the name of the tag identifier can be implemented according to the following rules.
[0085] For L3 VPN type V4, it is [TAG-PE-1-VPN_L3_V4-10-VRF1-VPN1];
[0086] For L3 VPN type V6 (6 VPE), it is [TAG-PE-1-VPN_L3_V6-10-VRF1-VPN1];
[0087] For 6PE, it is [TAG-PE-1-VPN_6PE-10-VPN2];
[0088] For VPLS, it is [TAG-PE-1-VPN_VPLS-10-VRF2-VPN3], and
[0089] For EVPN, it is [TAG-PE-1-VPN_EVPN-10-VRF3-VPN4].
[0090] The node label identifier (i.e., the label identifier of NODE LEVEL) may include a role name of the node and a node number associated with the node. The node label identifier may further include an indication of features, protocols, and / or technical fields associated with the node. The node label identifier may further include an indication of whether an extension should be available in a VPN label. The node label identifier should be available on the node.
[0091] The naming convention for services mapped to interfaces is: [TAG-SERVICE-SCALE-INSTANCE-TAG_NAME:]. Then, depending on the protocol and implementation, the name of the tag identifier can be implemented according to the following rules:
[0092] For L3 VPN type V4, it is [TAG-VPN_L3-V4-10-VRF1-VPN1];
[0093] [TAG-VPN_L3-V6-10-VRF-VPN1] for L3VPN type V6; and
[0094] For 6PE, it is [TAG-VPN-6PE-10-VPN2].
[0095] The interface label identifier (ie, the label identifier of INTERFACE LEVEL) may include a name of the label identifier. The interface label identifier may further include an indication of the characteristics, protocol, scale and / or technology field associated with the interface.
[0096] The naming convention for the protocol is: [TAG-ROLE-NODE_NUMBER-PROTOCOL-V4_V6-INSTANCE-TAG_NAME]. Then, depending on the protocol and implementation, the name of the tag identifier can be implemented according to the following rules:
[0097] When the topology is implemented using the OSPF protocol, it is [TAG-P-1-OSPF-V4-default-OSPF1];
[0098] When the topology is implemented using the IS-IS protocol, it is [TAG-P-1-ISIS-V4-default-ISIS1];
[0099] [TAG-P-1-BGP-V4-default-BGP1] when the topology is implemented using BGP;
[0100] [TAG-P-1-BGP-V6-default-BGP2] when the topology is implemented using BGP; or
[0101] [TAG-P-1-BGP-V4-vrf1-BGP3] when the topology is implemented using BGP.
[0102] Based on the protocols implemented on the nodes and interfaces of the network topology, various naming conventions can be selected and implemented. For example, if OSPF must be enabled on a node, the OSPF label identifier will be attached to the node on that interface.
[0103] The naming convention for the mapping of protocols to interfaces is: [TAG-PROTOCOL-V4 / V6-SCALE-INSTANCE-TAG_NAME]. Then, depending on the protocol and implementation, the name of the tag identifier can be implemented according to the following rules:
[0104] When the topology is implemented using the OSPF protocol, it is [TAG-OSPF-V4-10-default-OSPF1];
[0105] When the topology is implemented using the IS-IS protocol, it is [TAG-ISIS-V6-10-default-ISIS1];
[0106] [TAG-BGP-V4-10-default-BGP1] when the topology is implemented using BGP;
[0107] [TAG-BGP-V6-10-default-BGP2] when the topology is implemented using BGP; or
[0108] [TAG-BGP-V4-10-vrf1-BGP3] when the topology is implemented using BGP.
[0109] The naming convention for tunnels is: [TAG-ROLE-NODE-NUMBER-TUNNEL_TYPE-TUNNEL_IDENTIFIER_TAG_NAMES]. Then, depending on the protocol and implementation, the names of tag identifiers can be implemented according to the following rules:
[0110] When the topology implements the RSVP protocol, it is [TAG-PE-1-RSVP-1-EDGE];
[0111] [TAG-PE-1-LDP-1_TRANSIT] when the topology implements an MPLS protocol such as LDP or RSVP on nodes and / or interfaces;
[0112] [TAG-EDGE-1-IPSEC-1_EDGE] when the topology implements a security protocol on one or more nodes; or
[0113] [TAG-EDGE-1-GRE-1_EDGE] when the topology implements a security protocol on one or more nodes.
[0114] The naming convention for QOS (Quality of Service) is: [TAG-ROLE-NODE_NUMBER-QOS_TYPE-FLAG_OPTION-TAG_NAME]. Then, depending on the protocol and implementation, the name of the tag identifier can be implemented according to the following rules. Unique tag identifiers can be assigned to different QOS / COS components as described below, including CLASSIFIER, QUEUE_PROPERTY, WRED, and REWRITE.
[0115] [TAG-PE-1-CLASSIFIER-DSCP-CLASS1];
[0116] [TAG-PE-1-QUEUE_PROPERTY-BANDWIDTH-QUEUE1];
[0117] [TAG-PE-1-WRED-ALL_QUEUES-WRED1]; or
[0118] [TAG-PE-1REWRITE-DSCP-REWRITE1].
[0119] Parser specifications may include constraint checks on naming conventions. In some embodiments, protocols, features, and / or technical domain information should not be allowed to appear on BOND member links. BOND member links do not carry configuration attributes such as protocols and functions. Required features may be enabled directly on the BOND interface, so that adding a tag identifier to a member link will enable a protocol or feature that should not be allowed.
[0120] In some embodiments, the L2 interface should not have a protocol label identifier or an L3 feature label identifier. In some cases, it is very important to ensure that L3 protocols such as OSPF, ISIS, and BGP cannot be enabled on the L2 interface. In these cases, the L3 protocol label identifier cannot be written to the L2 interface.
[0121] In some embodiments, label identifiers within a VPN should not be added to interfaces that are components of a default instance, and vice versa. An interface may be a component of either a default instance or a VPN VRF instance. An interface should not be a component of both a default instance and a VPN VRF instance. In some cases, it is important to ensure that a VPN VRF instance is not exposed to a default instance.
[0122] In some embodiments, label identifiers for L2 networks should not be added to L3 interfaces, and vice versa. In most embodiments, label identifiers on L2 interfaces should not be added to L3 interfaces because L2 features are incompatible with L3 features. Therefore, label identifiers configured to enable L2 features should not be part of L3 interfaces, and vice versa.
[0123] In some embodiments, the IPv6 family type should not be enabled on an interface that only supports IPv4, and vice versa. If dual stack (IPv4 and IPv6) is supported, the label identifiers for each of IPv4 and IPv6 will be enabled.
[0124] Figure 7 is a block diagram illustrating the format of an exemplary topology descriptor file 700 including label identifiers for a network topology. Topology descriptor file 700 represents a simple network topology including two routers (represented by nodes r1 and r2) connected back-to-back and defined by point-to-point links (p2p1 and p2p2).
[0125] The topology descriptor file 700 represents a network topology including a plurality of nodes, interfaces and links. The topology descriptor file 700 includes data belonging to the r1 node and the r2 node. Each of the r1 node and the r2 node can represent a router in the network topology. Each of the r1 node and the r2 node includes a plurality of label identifiers, including a node label identifier and a plurality of independent interface label identifiers.
[0126] The r1 node includes a node label identifier that is unique to the r1 router. According to an embodiment, the node label identifier of the r1 router may state, for example, [TAG-P-1-ISIS-V4-default-ISIS1] or [TAG-P-1-BGP-V4-default-BGP1_BGP2-AS1]. This is based on the protocol to be enabled. For example, if BGP is enabled, the BGP label identifier will be implemented. Additionally, if ISIS is enabled, the ISIS label identifier will be implemented. The node label identifier is stored in the topology descriptor file 700.
[0127] The r1 node further includes multiple interface label identifiers. The connection between two nodes is defined by the "link" section of the topology descriptor file 700 and is not processed by label identifiers. The "link" section provides information about the source link name and the target link name. For example, the interface label identifier of the r1_1 connection point can be read as [TAG-ISIS-V4-10-default-ISIS1]. The r1 node further includes a third interface label identifier associated with the loopback interface on the r1 node. The loopback interface provides a connection point for the r1 node to communicate with itself. The loopback interface in the topology uses automatic IP generation to enable loopback. The loopback interface can carry label identifiers for establishing BGP between the loopback interfaces of multiple nodes. These label identifiers on the loopback interface can be further used to build RSVP LSPs between the loopback interfaces.
[0128] Similarly, the r2 node includes a node label identifier and a plurality of interface label identifiers. The r2 router includes an r2_1 connection point for communicating with the r1 router via the r1_1 connection point on the r1 router, and further includes an r2_2 connection point for communicating with the r1 router via the r1_2 connection point on the r1 router. The r2 router further includes a loopback interface that enables the r2 router to communicate with itself. r2 includes a node label identifier associated with the r2 node itself. Like the node label identifier associated with r1, the node label identifier associated with r2 includes, for example, the following indications: the role of the node, the identifier or number of the node, the protocol being implemented by the node, an indication of whether the node is IPV4 or IPV6, an indication of an instance of the protocol to be implemented, the name of the label identifier, the AS number of the label identifier, a cluster label identifier for generating a cluster identifier, etc. In addition, the r2 node includes an interface label identifier associated with each connection point on the r2 router. The r2 node specifically includes a first interface label identifier of the r2_1 interface, a second interface label identifier associated with the r2_2 interface, and a third interface label identifier associated with the loopback on the r2 node.
[0129] The topology descriptor file 700 further includes an indication of links within the network topology. The exemplary network topology is a simple topology including two routers in a back-to-back configuration. Thus, there is a point-to-point link from the r1 router to the r2 router via the r1_1 connection point and the r2_1 connection point. Additionally, there is a point-to-point link from the r2 router to the r1 router via the r1_2 connection point and the r2_2 connection point.
[0130] The topology descriptor file 700 utilizes two levels to define the label identifier. These two levels include the first label identifier level associated with the node, i.e. the node label identifier. The second level is associated with the connection point or interface on the node, i.e. the interface label identifier. The topology descriptor file 700 does not include the label identifier that defines the link between the nodes. The link section of the topology descriptor file 700 is used to connect two or more interfaces to each other. The label identifier is only enabled under the interface. The label identifier enabled under the interface will be used to enable the protocol. In some embodiments, because the interface label identifier will process everything required for each interface, it is not necessary to enable the label identifier under the link section of the topology descriptor file 700.
[0131] Each point-to-point link corresponds to an Internet Protocol (IP) segment. Link segments in a network topology may include point-to-point links. A point-to-point connection refers to a communication connection between two communication endpoints or nodes. A point-to-point connection may specifically refer to a wired or other connection that links only two computers or circuits. Point-to-point connections are distinguished from point-to-multipoint or broadcast connections, in which many nodes can receive information transmitted by one node.
[0132] Broadcast links are located within an IP segment. Labels are used to identify broadcast links. Link segments in a network topology can include broadcast links. Broadcast links connect two or more nodes and support broadcast transmission, where one node can transmit data and the data can be received by multiple other nodes. Broadcast connections enable a large number of receiving nodes to receive data from a single transmitting node.
[0133] The loopback IP is configured to find the loopback of each node in the network topology. These loopback IP addresses are configured to generate a unique IP for each loopback. The interface segment in the network topology can contain loopback addresses. The loopback address can be built into the IP domain system to allow the device to send and receive its own data packets. The loopback address can be useful in various analyses such as testing and debugging, or in enabling routers to communicate in a specific way. When the network topology includes a loopback IP address, then the data packet can be sent through the network and routed back to the same device from which the data packet originated.
[0134] FIG. 8A to FIG. 8B A block diagram of an exemplary automatically generated configuration template 800 for a topology including a tag identifier is shown. The template 800 is generated by a processor based on Figure 7 The topology descriptor file 700 shown is automatically generated. Tag identifiers are shown using bold text. Template 800 includes configuration details of the network topology, including network addresses, indications of which interfaces should be enabled, indications of AS numbers, router identifiers, etc. If desired, a user can manually change the information in the automatically generated template 800 to change the configuration of the network topology.
[0135] A complete copy of the template 800 is stored in the local location where the API runs. The API is configured to generate the template 800 based on the topology descriptor file 700. When the topology and / or scale of the network is modified, the template 800 is accessed. When the network is modified, the tags within the topology descriptor file 700 will be updated, and then the API will be rerun to generate the template 800. The API reads data from the topology descriptor file 700 to build the template 800, and then stores the template 800 locally. The template 800 is used to build the final configuration of the network, which is then pushed to the router. Whenever the topology descriptor file 700 is modified, the template 800 is rebuilt. This ensures that changes to the topology descriptor file 700 are used to create the modified template 800.
[0136] Fig. 9 is a block diagram showing an IP auto-generation configuration template 900. Template 900 is used to create a point-to-point link or a multi-point link. In the case of a multi-point link, there will be switches between the nodes. The connection to the switch is identified using a label identifier under each link. This will also be used to automatically generate IP addresses for interfaces in the network. The link provides information about how the interfaces are connected to each other so that the API can generate IP addresses in the same segment.
[0137] Fig.10 1 is a block diagram showing an automatically generated template 1000 for a network topology. The template 1000 is based on a network topology such as Figure 7 The input file of the topology descriptor file 700 shown is automatically generated.
[0138] Autonomous System (AS) numbers can utilize label identifiers to group nodes together. This generates a 2-byte / 4-byte AS number per label identifier. When a network is running BGP, AS numbers may be required. The network may include a group of nodes under an AS, and the label identifier will be used to generate the appropriate AS number. Nodes are grouped based on label identifiers, and then AS numbers are generated based on the grouping of nodes.
[0139] The cluster identifier is implemented by validating the presence of the "RR" role name in the tag identifier. The RR roles are grouped based on the cluster tag identifier. The cluster identifier is implemented per RR based on the cluster tag identifier. A unique RR cluster identifier will be generated for each RR cluster. The members of the cluster will be grouped based on the cluster tag. A cluster identifier will be generated for the RR roles in the cluster. The RR roles are identified using the roles mentioned in the tag identifier and then a cluster unique identifier will be generated.
[0140] Now refer to Fig.11 , a block diagram of an exemplary computing device 1100 is shown. The computing device 1100 can be used to execute various procedures, such as those discussed herein. In one embodiment, the computing device 1100 can be used to perform the functions of an asynchronous object manager and can run one or more applications. The computing device 1100 can be any of a variety of computing devices such as a desktop computer, a dashboard computer, a vehicle control system, a notebook computer, a server computer, a handheld computer, a tablet computer, etc.
[0141] The computing device 1100 includes one or more processors 1102, one or more memory devices 1104, one or more interfaces 1106, one or more mass storage devices 1108, one or more input / output (I / O) devices 1102, and a display device 1130, all of which are coupled to a bus 1112. The processor 1102 includes one or more processors or controllers that execute instructions stored in the memory device 1104 and / or the mass storage device 1108. The processor 1102 may also include several types of computer-readable media, such as cache memory.
[0142] Memory device 1104 includes various computer-readable media such as volatile memory (eg, random access memory (RAM) 1114) and / or nonvolatile memory (eg, read-only memory (ROM) 1116). Memory device 1104 may also include a rewritable ROM such as flash memory.
[0143] The mass storage device 1108 includes various computer-readable media, such as magnetic tapes, magnetic disks, optical disks, solid-state memory (eg, flash memory), etc. Fig.11 As shown, the particular mass storage device is a hard disk drive 1124. Various drives may also be included in the mass storage device 1108 to enable reading from and / or writing to various computer-readable media. The mass storage device 1108 includes removable media 1126 and / or non-removable media.
[0144] Input / output (I / O) devices 1102 include various devices that allow data and / or other information to be entered into or retrieved from computing device 1100. Exemplary I / O devices 1102 include cursor control devices, keyboards, keypads, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, and the like.
[0145] Display device 1130 includes any type of device capable of displaying information to one or more users of computing device 1100. Examples of display device 1130 include a monitor, a display terminal, a video projection device, and the like.
[0146] Interface 1106 includes various interfaces that allow computing device 1100 to interact with other systems, devices, or computing environments. Exemplary interface 1106 may include any number of different network interfaces 1120, such as interfaces to a local area network (LAN), a wide area network (WAN), a wireless network, and the Internet. Other interfaces include a user interface 1118 and a peripheral device interface 1122. Interface 1106 may also include one or more user interface elements 1118. Interface 1106 may also include one or more peripheral interfaces, such as interfaces for printers, pointing devices (mouse, tracking pad, or any suitable user interface now known or later discovered by those of ordinary skill in the art), keyboards, etc.
[0147] The bus 1112 allows the processor 1102, memory device 1104, interface 1106, mass storage device 1108, and I / O device 1102 to communicate with each other and with other devices or components coupled to the bus 1112. The bus 1112 represents one or more of several types of bus structures, such as a system bus, a PCI bus, an IEEE bus, a USB bus, and the like.
[0148] For purposes of illustration, programs and other executable program components are shown herein as separate blocks, although it is understood that these programs and components may reside in different storage components of the computing device 1100 at different times and be executed by the processor 1102. Optionally, the systems and procedures described herein can be implemented in hardware, or in a combination of hardware, software, and / or firmware. For example, one or more application specific integrated circuits (ASICs) can be programmed to implement one or more systems and procedures described herein.
[0149] Example
[0150] The following examples relate to further embodiments.
[0151] Example 1 is a method. The method includes generating a configuration template for a network topology based on a topology descriptor file, wherein the network topology includes a plurality of nodes, and wherein the topology descriptor file includes a plurality of unique node label identifiers, each unique node label identifier being assigned to a node in a plurality of nodes within the network topology. The method includes resolving each of the plurality of unique node label identifiers based on the plurality of nodes within the network topology. The method includes generating a network configuration for the network topology.
[0152] Example 2 is the method of Example 1, further comprising providing the network configuration to each of a plurality of routers within the network topology.
[0153] Example 3 is a method as in any of Examples 1 to 2, wherein parsing each of a plurality of unique node label identifiers includes identifying a modification within a network topology, wherein the modification includes one or more of: a new node within the network topology; a deleted node within the network topology; or a modified node within the network topology.
[0154] Example 4 is the method of any of Examples 1 to 3, wherein resolving each of the plurality of unique node label identifiers further comprises parsing a topology descriptor file to reflect the modification.
[0155] Example 5 is the method of any one of Examples 1 to 4, wherein generating the network configuration comprises generating based on the parsed topology descriptor file.
[0156] Example 6 is the method of any of Examples 1 to 5, further comprising automatically generating a revised network configuration of the network topology whenever a new modification is made to the network topology.
[0157] Example 7 is the method of any of Examples 1 to 6, wherein generating the configuration template comprises implementing an application program interface (API) configured to automatically generate the configuration template based on the topology descriptor file.
[0158] Example 8 is a method as in any of Examples 1 to 7, wherein each of the plurality of unique node label identifiers is associated with one or more corresponding nodes, and wherein each of the plurality of unique node label identifiers includes an indication of a role and protocol of the one or more corresponding nodes.
[0159] Example 9 is the method of any of Examples 1 to 8, wherein generating the network configuration comprises automatically generating Internet Protocol (IP) addresses of interfaces within the network topology based at least in part on the topology descriptor file.
[0160] Example 10 is a method as in any of Examples 1 to 9, wherein resolving each of a plurality of unique node label identifiers includes identifying modifications made to a network topology, and wherein generating a network configuration of the network topology includes automatically modifying an IP address of at least one interface based on the modifications made to the network topology.
[0161] Example 11 is a method as in any one of Examples 1 to 10, wherein the configuration template includes configuration data of a network topology, the configuration data including one or more of: a network address, an indication of which interface within the network topology should be enabled, an indication of an autonomous system (AS) number, or an indication of a router within the network topology.
[0162] Example 12 is the method of any of Examples 1 to 11, wherein the configuration template includes an AS number, and wherein the AS number groups two or more nodes together using a single unique node label identifier.
[0163] Example 13 is a method as in any one of Examples 1 to 12, further comprising: determining that a topology descriptor file has been modified since the network configuration was generated; automatically generating a revised configuration template of the network topology based on the modified topology descriptor file; and automatically regenerating a revised network configuration based on the revised configuration template.
[0164] Example 14 is the method of any of Examples 1 to 13, wherein the network topology is a fully meshed Border Gateway Protocol (BGP) network.
[0165] Example 15 is the method of any of Examples 1 to 14, wherein the network topology is a fully meshed Resource Reservation Protocol (RSVP) Link State Packet (LSP) network.
[0166] Example 16 is the method of any of Examples 1 to 15, wherein the network topology is a virtual private network (VPN).
[0167] Example 17 is the method of any of Examples 1 to 16, wherein the network topology operates under an Intermediate System to Intermediate System (IS-IS) routing protocol.
[0168] Example 18 is a method as in any one of Examples 1 to 17, wherein each of the multiple unique node label identifiers includes one or more of: a role of the corresponding node, a protocol implemented by the corresponding node, a number of the corresponding node within the network topology, a name of the unique node label identifier, an AS number of the unique label identifier, or a cluster label identifier.
[0169] Example 19 is the method of any of Examples 1 to 18, further comprising automatically generating a revised configuration template for the network topology whenever the topology descriptor file is modified.
[0170] Example 20 is the method of any of Examples 1 to 19, further comprising automatically generating a revised network configuration, and propagating the revised network configuration to all routers within the network topology whenever the topology descriptor file is modified.
[0171] Example 21 is a system comprising one or more processors configured to execute the method of any of Examples 1-20.
[0172] Example 22 is a non-transitory computer-readable storage medium storing instructions executed by one or more processors, wherein the instructions include the method of any one of Examples 1-20.
[0173] The foregoing description has been given for the purpose of illustration and description. It is not intended to be exhaustive or to limit the present disclosure to the precise form disclosed. In view of the above teachings, many modifications and variations are possible. In addition, it should be noted that any or all alternative embodiments can be used in any desired combination to form additional hybrid embodiments of the present disclosure.
[0174] Furthermore, although specific embodiments of the present disclosure have been described and shown, the present disclosure is not limited to the specific forms or arrangements of parts described and shown. The scope of the present disclosure will be defined by the appended claims (if any), any future claims filed here and in different applications, and their equivalents.
[0175] It should be appreciated that any features of the above-described arrangements, examples and embodiments may be combined in a single embodiment comprising a combination of features taken from any of the disclosed arrangements, examples and embodiments.
[0176] It should be appreciated that the various features disclosed herein provide significant advantages and advances in the art. The following claims are examples of some of these features.
[0177] In the foregoing detailed description of the present disclosure, various features of the present disclosure are combined in a single embodiment in order to simplify the present disclosure. This disclosure method should not be interpreted as intending to reflect that the claimed disclosure requires more features than those explicitly recited in each claim. On the contrary, the inventive aspect lies in less than all the features of a single foregoing disclosed embodiment.
[0178] It should be understood that the above arrangement is only illustrative of the application of the principles of the present disclosure. Without departing from the spirit and scope of the present disclosure, those skilled in the art may design many modifications and alternative arrangements, and the appended claims are intended to cover these modifications and arrangements.
[0179] Therefore, although the present disclosure has been shown in the drawings and described above in detail, it is obvious to those skilled in the art that various modifications may be made without departing from the principles and concepts set forth herein, including but not limited to changes in size, material, shape, form, function and mode of operation, assembly and use.
[0180] In addition, where appropriate, the functions described herein may be performed in one or more of the following: hardware, software, firmware, digital components, or analog components. For example, one or more application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) may be programmed to implement one or more of the systems and procedures described herein. Certain terms are used in the following description and claims to refer to specific system components. As will be understood by those skilled in the art, components may be referred to by different names. This document is not intended to distinguish between components that have different names but the same function.
[0181] The foregoing description has been given for the purpose of illustration and description. It is not intended to be exhaustive or to limit the present disclosure to the precise form disclosed. In view of the above teachings, many modifications and variations are possible. In addition, it should be noted that any or all alternative embodiments can be used in any desired combination to form additional hybrid embodiments of the present disclosure.
[0182] Furthermore, although specific embodiments of the present disclosure have been described and shown, the present disclosure is not limited to the specific forms or arrangements of parts described and shown. The scope of the present disclosure will be defined by the appended claims, any future claims filed here and in different applications, and their equivalents.< / sevice>
Claims
1. A method comprising: generating a configuration template for a network topology based on a topology descriptor file, wherein the network topology includes a plurality of nodes, and wherein the topology descriptor file includes a plurality of unique node label identifiers, each of the plurality of unique node label identifiers being assigned to a node of the plurality of nodes within the network topology; resolving each of the plurality of unique node tag identifiers based on the plurality of nodes within the network topology; and A network configuration of the network topology is generated.
2. The method according to claim 1, further comprising: The network configuration is provided to each of a plurality of routers within the network topology.
3. The method according to claim 1, wherein: Resolving each of the plurality of unique node label identifiers includes identifying a modification within the network topology, wherein the modification includes one or more of: a new node within the network topology; A deleted node within the network topology; or Modify nodes within the network topology.
4. The method according to claim 3, wherein: Resolving each of the plurality of unique node label identifiers further includes parsing the topology descriptor file to reflect the modification.
5. The method according to claim 4, wherein: Generating the network configuration includes generating based on the parsed topology descriptor file.
6. The method according to claim 5, further comprising: Whenever a new modification is made to the network topology, a revised network configuration of the network topology is automatically generated.
7. The method according to claim 1, wherein: Generating the configuration template includes implementing an application program interface (API) configured to automatically generate the configuration template based on the topology descriptor file.
8. The method according to claim 1, wherein: Each of the plurality of unique node tag identifiers is associated with one or more respective nodes, and wherein each of the plurality of unique node tag identifiers includes an indication of a role and a protocol of the one or more respective nodes.
9. The method according to claim 1, wherein: Generating the network configuration includes automatically generating Internet Protocol (IP) addresses for interfaces within the network topology based at least in part on the topology descriptor file.
10. The method according to claim 9, wherein: Resolving each of the plurality of unique node label identifiers includes identifying a modification made to the network topology, and wherein generating a network configuration for the network topology includes automatically modifying an IP address of at least one of the interfaces based on the modification made to the network topology.
11. The method according to claim 1, wherein: The configuration template includes configuration data for the network topology, the configuration data including one or more of a network address, an indication of which interface within the network topology should be enabled, an indication of an autonomous system (AS) number, or an indication of a router within the network topology.
12. The method according to claim 1, wherein: The configuration template includes an AS number, and wherein the AS number groups two or more nodes together using a single unique node label identifier.
13. The method according to claim 1, further comprising: determining that the topology descriptor file has been modified since generating the network configuration; automatically generating a revised configuration template of the network topology based on the modified topology descriptor file; as well as Automatically regenerate a corrected network configuration based on the corrected configuration template.
14. The method according to claim 1, wherein: The network topology is a fully meshed Border Gateway Protocol (BGP) network.
15. The method according to claim 1, wherein: The network topology is a fully meshed Resource Reservation Protocol (RSVP) Link State Packet (LSP) network.
16. The method according to claim 1, wherein: The network topology is a virtual private network (VPN).
17. The method according to claim 1, wherein: The network topology operates under an Intermediate System to Intermediate System (IS-IS) routing protocol.
18. The method according to claim 1, wherein: Each of the multiple unique node label identifiers includes one or more of the following: a role of the corresponding node, a protocol implemented by the corresponding node, a number of the corresponding node within the network topology, a name of the unique node label identifier, an AS number of the unique label identifier, or a cluster label identifier.
19. The method of claim 1, further comprising: Whenever the topology descriptor file is modified, a revised configuration template of the network topology is automatically generated.
20. The method of claim 1, further comprising: A revised network configuration is automatically generated and propagated to all routers within the network topology whenever the topology descriptor file is modified.