Method for managing configuration data, API server device and storage medium

By introducing API servers and telemetry services into the controller device, the configuration management complexity and fault location difficulty in the network device management system are solved, and efficient network intent configuration and rapid troubleshooting are achieved.

CN115913927BActive Publication Date: 2025-04-18HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211214849.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-09-30
Filing Date
2022-09-30
Publication Date
2025-04-18
Estimated Expiration
2042-09-30

AI Technical Summary

Technical Problem

When configuring and managing network intents, existing network device management systems are difficult to effectively simplify user mapping definitions, and when network failure occurs, it is difficult to quickly locate the root cause of configuration errors.

Method used

By introducing an API server in the controller device, the configuration data is received and stored in the configuration database, and the configuration data is then distributed to the managed network device. At the same time, telemetry services are used to collect and analyze network operation data to quickly locate configuration changes when errors occur.

Benefits of technology

It realizes efficient configuration management of network devices, simplifies user mapping definition, and can quickly locate the root cause of configuration errors when network failure occurs, and improves network failure troubleshooting efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115913927B_ABST
    Figure CN115913927B_ABST
Patent Text Reader

Abstract

The present disclosure relates to methods, API server devices, and storage media for managing configuration data. An example application programming interface (API) server device for distributing configuration data to managed network devices includes one or more processing units implemented in circuits and configured to: receive configuration data to be deployed to at least one of the managed network devices; store the configuration data in a configuration database; and send the configuration data to at least one of the managed network devices. In this manner, the configuration data can be archived for later retrieval and analysis, for example, to perform root cause analysis in the event of an error.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to computer networks, and more particularly, to management of network devices. Background Art

[0002] A computer network is a collection of interconnected computing devices that can exchange data and share resources. Various devices operate to facilitate communications between computing devices. For example, a computer network may include routers, switches, gateways, firewalls, and various other devices to provide and facilitate network communications.

[0003] These network devices typically include mechanisms for configuring the device locally or remotely, such as a management interface. By interacting with the management interface, the client can perform configuration tasks and execute operational commands to collect and view operational data of the managed device. For example, the client can configure the interface card of the device, adjust the parameters of the supported network protocols, specify the physical components within the device, modify the routing information maintained by the router, access software modules and other resources resident on the device, and perform other configuration tasks. In addition, the client can allow the user to view the current operating parameters, system logs, information related to network connections, network activity or other status information from the device, and view and react to event information received from the device.

[0004] Network configuration services can be performed by a number of different devices, such as routers with service cards and / or dedicated service devices. Such services include connection services, such as Layer 3 Virtual Private Networks (L3VPN), Virtual Private LAN Services (VPLS), and Peer-to-Peer (P2P) services. Other services include network configuration services, such as Dot1q VLAN services. Network management systems (NMS) and NMS devices, also known as controllers or controller devices, can support these services so that administrators can easily create and manage these advanced network configuration services.

[0005] In particular, user configurations of devices may be referred to as "intents". Intent-based networking systems allow administrators to describe the expected network / compute / storage state. User intents may be categorized as business policies or stateless intents. Business policies or stateful intents may be parsed based on the current state of the network. Stateless intents may be a fully declarative way of describing the expected network / compute / storage state without regard to the current network state.

[0006] Intents can be represented as an intent data model, which can be modeled using a unified graph. The intent data model can be represented as a connected graph so that business policies can be implemented across the intent data model. For example, data models can be represented using connected graphs that have vertices connected with band edges and reference (ref) edges. The controller device can model the intent data model as a unified graph so that the intent model can be represented as connected. In this way, business policies can be implemented across the intent data model. When intents are modeled using a unified graph model, extending new intent support requires extending the graph model and compilation logic.

[0007] To configure a device to execute an intent, a user (such as an administrator) can write a conversion program that converts high-level configuration instructions (e.g., instructions according to an intent data model, which can be represented as a unified graph model) into low-level configuration instructions (e.g., instructions according to a device configuration model). As part of the configuration service support, the user / administrator can provide an intent data model and a mapping between the intent data model and the device configuration model.

[0008] In order to simplify the mapping definition for the user, the controller device can be designed to provide the ability to define mappings in a simple manner. For example, some controller devices provide the use of speed templates and / or extensible stylesheet language transformations (XSLT). Such converters contain the conversion or mapping logic from the intent data model to the low-level device configuration model. Typically, a relatively small amount of changes in the intent data model will affect a considerable number of properties across device configurations. Different converters can be used when creating, updating, and deleting services from the intent data model. Summary of the invention

[0009] In general, the present disclosure describes techniques for managing network devices. A network management system (NMS) device, also referred to herein as a controller device, can configure the network device using low-level (i.e., device-level) configuration data, for example, expressed in Yet Another Next Generation (YANG) data modeling language. In addition, the controller device can manage the network device based on the configuration data of the network device.

[0010] In one example, a method for managing configuration data of managed network devices includes: receiving, by an application programming interface (API), configuration data to be deployed to at least one of the managed network devices; storing, by an API server, the configuration data in a configuration database; and sending, by the API server, the configuration data to at least one of the managed network devices.

[0011] In another example, an application programming interface (API) server distributes configuration data to managed network devices. The API server device includes one or more processing units implemented in circuits and configured to: receive configuration data to be deployed to at least one of the managed network devices; store the configuration data in a configuration database; and send the configuration data to at least one of the managed network devices.

[0012] In another example, a non-transitory computer-readable storage medium having instructions stored thereon, which, when executed, causes a processor of an application programming interface (API) server device that distributes configuration data to managed network devices to: receive configuration data to be deployed to at least one of the managed network devices; store the configuration data to a configuration database; and send the configuration data to at least one of the managed network devices.

[0013] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 is a conceptual diagram illustrating an example network including an intent-based telemetry collection service in accordance with one or more aspects of the present disclosure.

[0015] Figure 2 is a block diagram illustrating an example system including a telemetry collection service in a network and / or within a data center according to one or more aspects of the present disclosure.

[0016] Figure 3 is a flow chart illustrating an exemplary method of managing configuration data for managed network devices in accordance with the techniques of this disclosure.

[0017] Figure 4 is a flow chart illustrating an exemplary method of using stored configuration data to determine a root cause of an error in a network in accordance with the techniques of this disclosure. DETAILED DESCRIPTION

[0018] Figure 1 is a conceptual diagram illustrating an exemplary network including an intent-based telemetry service 140 in a network, such as a network within a data center, according to one or more aspects of the present disclosure. Figure 1An example implementation of a network system 100 and a data center 101 is shown, with the data center 101 hosting one or more computing networks, computing domains or projects, and / or cloud-based computing networks. The network system 100 may include a virtualized computing infrastructure, such as one or more cloud-based computing clusters that may be located in a common overall computing environment, such as a single data center, or distributed in different environments, such as different data centers. The cloud-based computing clusters may be, for example, different cloud environments, such as an OpenStack cloud environment, a Kubernetes cloud environment, a collection of bare metal servers, a Trace Cloud or Tungsten cluster, or various combinations of other computing clusters, domains, networks, etc. Other implementations of the network system 100 and data center 101 may be suitable in other instances. Such implementations may include Figure 1 Examples include a subset of the components and / or may include Figure 1 Additional components not shown.

[0019] exist Figure 1 In the example of FIG. 1 , data center 101 provides an operating environment for applications and services to customers 104 coupled to data center 101 via service provider network 106. Figure 1 The functions and operations described in the network system 100 may be illustrated as across Figure 1 but in other examples, due to Figure 1 Features and techniques of one or more devices of the present invention may be performed internally by local components of one or more such devices. Similarly, one or more such devices may include certain components and perform various techniques that may be attributed to one or more other devices herein. In addition, the present invention may be combined with Figure 1 Describes certain operations, techniques, features, and / or functions, or describes operations, techniques, features, and / or functions performed by a particular component, device, and / or module. In other examples, other components, devices, or modules may perform such operations, techniques, features, and / or functions. Thus, some operations, techniques, features, and / or functions attributed to one or more components, devices, or modules may be attributed to other components, devices, and / or modules, even if not specifically described in this manner herein.

[0020] Data center 101 hosts infrastructure equipment, such as networking and storage systems, redundant power supplies, and environmental controls.Service provider network 106 may be coupled to one or more networks managed by other providers, and thus may form part of a large-scale public network infrastructure (eg, the Internet).

[0021] In some examples, data center 101 may represent one of many geographically distributed network data centers. Figure 1As shown in the example of FIG. 1 , data center 101 is a facility that provides network services to customers 104. Customers 104 may be collective entities, such as businesses and governments, or individuals. For example, a network data center may host web services for several businesses and end users. Other exemplary services may include data storage, virtual private networks, traffic engineering, file services, data mining, science or supercomputing, etc.

[0022] exist Figure 1 In the example of FIG. 1 , data center 101 includes a group of storage systems, application servers, computing nodes, or other devices, including devices 110A to 110N (collectively referred to as "devices 110", which represent any number of devices). Devices 110 can be interconnected through a high-speed switching fabric 121 provided by one or more layers of physical network switches and routers. In some examples, devices 110 can be included in fabric 121, but for ease of illustration, they are shown separately.

[0023] Device 110 may represent any of a variety of different types of devices (core switches, backbone network devices, leaf network devices, edge network devices, or other network devices), but in some examples, one or more devices 110 may represent physical computing nodes and / or storage nodes of a data center. For example, one or more devices 110 may provide an operating environment for executing one or more customer-specific applications or services. Alternatively or in addition, one or more devices 110 may provide an operating environment for one or more virtual machines or other virtualized instances (such as containers). In some examples, one or more devices 110 may alternatively be referred to as host computing devices, or more simply, hosts. Device 110 may therefore execute one or more virtualized instances, such as virtual machines, containers, or other virtual execution environments for running one or more applications or services, such as virtualized network functions (VNFs).

[0024] In general, each device 110 may be any type of device that can operate on a network and generate data (e.g., connection data, flow data, sFlow data, resource utilization data) that can be accessed via telemetry or otherwise, which may include any type of computing device, sensor, camera, node, monitoring device, or other device. In addition, some or all of the devices 110 may represent a component of another device, where such a component may generate data that can be collected via telemetry or otherwise. For example, some or all of the devices 110 may represent physical or virtual devices, such as switches, routers, hubs, gateways, security devices such as firewalls, intrusion detection and / or intrusion prevention devices.

[0025] Although not specifically shown, the switch fabric 121 may include a top-of-rack (TOR) switch coupled to a distribution layer of chassis switches, and the data center 101 may include one or more non-edge switches, routers, hubs, gateways, security devices (such as firewalls, intrusion detection and / or intrusion prevention devices), servers, computer terminals, laptops, printers, databases, wireless mobile devices (such as cellular phones or personal digital assistants), wireless access points, bridges, cable modems, application accelerators, or other devices. The switch fabric 121 may perform layer 3 routing to route network traffic between the data center 101 and the customer 104 through the service provider network 106. The gateway 108 is used to send and receive packets between the switch fabric 121 and the service provider network 106.

[0026] In some examples, orchestration engine 130 manages the functions of data center 101, such as computing, storage, network, and application resources. Orchestration engine 130 can implement security policies across a group of VMs or the boundaries of a tenant network. Orchestration engine 130 can deploy network services (e.g., load balancers) in a tenant's virtual network.

[0027] According to one or more examples of the present disclosure, a software defined network ("SDN") controller 132 provides a logically and in some cases physically centralized controller for facilitating the operation of one or more virtual networks within a data center 101. In some examples, the SDN controller 132 operates in response to configuration input received from an orchestration engine 130 via a northbound application programming interface (API) server 131, which in turn may operate in response to configuration input received from an administrator 128 interacting with and / or operating a user interface device 129. The SDN controller 132 may create a virtual network for a tenant within or across data centers 101. The SDN controller 132 may connect a virtual machine (VM) to a tenant's virtual network. The SDN controller 132 may connect a tenant's virtual network to an external network, such as the Internet or a VPN.

[0028] In some examples, the SDN controller 132 manages the network and networking services, such as load balancing, security, and can allocate resources from the device 110 used as a host device to various applications via the southbound API server 133. That is, the southbound API server 133 represents a server that executes a set of communication protocols, and the SDN controller 132 uses this set of communication protocols to make the actual state of the network equal to the desired state specified by the orchestration engine 130. For example, the SDN controller 132 can implement high-level requests from the orchestration engine 130 by configuring physical switches, such as top-of-rack (TOR) switches, chassis switches, and switch fabrics 121; physical routers; physical service nodes, such as firewalls and load balancers; and virtual services, such as virtual firewalls in VMs. The SDN controller 132 maintains routing, networking, and configuration information in a state database. Different cloud computing clusters can have separate instances of the SDN controller 132.

[0029] Using multiple API servers 133 can allow for high availability and load balancing. That is, if one API server 133 goes offline (e.g., for maintenance or due to a device error), the other remaining API servers 133 can still continue to operate. In addition, the tasks performed by the API servers 133 can be distributed across the API servers 133 to prevent any one API server 133 from being overloaded.

[0030] According to the technology of the present disclosure, API servers 131, 133 may be configured to store historical and current configuration data to a configuration database (configuration data) 134. Configuration database 134 may be an etcd database. Administrator 128 may issue configuration instructions regarding the storage of historical and current configuration data to API servers 131, 133 via UI device 129. For example, API servers 131, 133 may be configured to store periodic slices of configuration data of a sliding time window in configuration database 134. As an example, API servers 131, 133 may store a set of intents and a set of configuration data (i.e., current configuration data of each managed network device (e.g., device 110, gateway 108, switch of switching fabric 121, etc.) every 15 minutes, and store data of a seven-day sliding window, for example, in a first-in, first-out (FIFO) manner. In such an example, 672 slices are maintained in the configuration database.

[0031] Storing configuration data in this manner allows for analysis in the event of an error. In particular, if an error occurs in the network, the error may have occurred due to an updated configuration. For example, if the updated configuration is incompatible with other configurations that have been deployed to, for example, device 110, or if there is a conflict between portions of the newly deployed configuration data. In this case, the error time can be used to determine which configuration sets have been changed prior to the error time. The administrator can then determine whether the configuration change caused the error, and if so, update the configuration to fix the error.

[0032] The telemetry service 140 may configure the device 110 (and / or other devices) to generate and provide telemetry data related to the operation of the device 110. Such data may include process usage data, memory usage data, network usage data, error counts, etc. The telemetry service 140 may be configured to collect telemetry data from the device 110 using a protocol supported by the device 110. Applications, processes, threads, etc. may subscribe to the collected telemetry data to be notified that the telemetry data is available for one or more devices on the network. In some examples, the telemetry service 140 may analyze the telemetry data from the device 110 to determine, for example, whether an error has occurred in one of the devices 110, and further determine whether a configuration change is the cause of the error. If a configuration change is the cause, the telemetry service 140 may further determine the configuration change that is the cause of the error, for example, by querying the API server 131, 133 to retrieve the historical configuration of the device 110, determine when the error occurred, and determine which configuration changes were made before the error occurred.

[0033] The user interface device 129 may be implemented as any suitable device for presenting output and / or accepting user input. For example, the user interface device 129 may include a display. The user interface device 129 may be a computing system, such as a mobile or non-mobile computing device operated by a user and / or administrator 128. According to one or more aspects of the present disclosure, the user interface device 129 may, for example, represent a workstation, a laptop or notebook computer, a desktop computer, a tablet computer, or any other computing device that can be operated by a user and / or present a user interface. In some examples, the user interface device 129 may be physically separated from the controller 132 and / or located in a different location. In such an example, the user interface device 129 may communicate with the controller 132 via a network or other communication means. In other examples, the user interface device 129 may be a local peripheral device of the controller 132, or may be integrated into the controller 132.

[0034] In some aspects, the user interface device 129 can communicate with the telemetry service 140 or a component thereof to configure the telemetry service 140 to configure the device to provide telemetry data using high-level intent declarations and to receive telemetry data from the device 110 and other components of the data center 101 via the telemetry service 140. In some aspects, the telemetry service 140 can be configured by an application or service that uses telemetry data obtained via the telemetry service 140. For example, an alarm service (not shown) or a component of the alarm service can configure the telemetry service 140 to collect and provide telemetry data from the device 110.

[0035] Alert service 142 can be a consumer of telemetry data collected by telemetry service 140. Alert service 142 can implement services and rules that can be used to subscribe to telemetry data and analyze the telemetry data according to rules that determine whether an alert should be generated based on the telemetry data.

[0036] Health monitor 144 is an optional component that can utilize metrics associated with services and components of system 100 and determine the health of the components. Figure 1 In the example shown, health monitor 144 can obtain metrics about the operation of telemetry service 140 and / or alarm service 142 and use the metrics to determine whether new instances of the services should be created in response to system growth or component failures in telemetry service 140 and / or alarm service 142.

[0037] Figure 2 is a block diagram illustrating an example system including telemetry services in a network and / or within a data center according to one or more aspects of the present disclosure. Figure 2 The network system 200 can be described as Figure 1 An example or alternative implementation of the network system 100 may be Figure 1 Described in the context of Figure 2 one or more aspects of .

[0038] Although such as Figure 1 and Figure 2 The data centers shown may be operated by any entity, but some data centers are operated by service providers, where the business model of such service providers may involve providing computing power to customers or clients. Therefore, data centers typically contain a large number of computing nodes or host devices. In order to operate efficiently, these hosts must be connected to each other and to the outside world, and this capability is provided by physical devices, which may be interconnected in a leaf-spine topology. The collection of these physical devices (such as network devices and host devices) constitutes the underlying network.

[0039] Each host device in such a data center can have several virtual machines running on it, which can be called workloads. Clients in the data center can generally access these workloads and can use such workloads to install applications and perform other operations. Workloads running on different host devices but accessible by a specific client are organized into virtual networks. Each client typically has at least one virtual network. These virtual networks are also called overlay networks. In some cases, clients in the data center may experience network problems such as increased latency, packet loss, low network throughput, or slow workload processing. Deploying workloads in large multi-tenant data centers can complicate troubleshooting of such problems. Telemetry data such as provided by telemetry service 140 can be used to facilitate troubleshooting in the data center.

[0040] exist Figure 2 In the example of FIG. 1 , network 205 connects telemetry service 140, host device 210A, and host devices 210B-210N. Telemetry service 140 may correspond to Figure 1 An example or alternative implementation of telemetry service 140 is shown. Host devices 210A, 210B, through 210N may be collectively referred to as “host devices 210 ,” which refers to any number of host devices 210 .

[0041] Each host device 210 may be Figure 1 An example of the device 110, but in Figure 2 In the example of , each host device 210 is implemented as a server or host device operating as a physical or virtualized computing node or storage node of a virtualized data center, rather than a network device. As further described herein, one or more host devices 210 (e.g., Figure 2 The host device 210A) can execute multiple virtual computing instances, such as virtual machines 228, and in addition, one or more host devices 210 (e.g., one or more of host devices 210B to 210N) can execute applications or service modules on non-virtualized single-tenant and / or bare metal servers. Figure 1 As shown, Figure 2 The example shows a network system that can include a mix of virtualized server devices and bare metal server devices.

[0042] A user interface device 129 is also connected to the network 205 and can be operated by the administrator 128, such as Figure 1 In some examples, user interface device 129 may present one or more user interfaces at a display device associated with user interface device 129 .

[0043] Network 205 may correspond to Figure 1The switch fabric 121 and / or the service provider network 106 may correspond to any one of the switch fabric 121 and / or the service provider network 106, or alternatively, may correspond to a combination of the switch fabric 121, the service provider network 106, and / or another network. Figure 2 Not shown, but network 205 may also include Figure 1 Some components of include gateway 108, SDN controller 132 and orchestration engine 130.

[0044] Spine devices 202A and 202B (collectively referred to as "spine devices 202", and any number of spine devices 202 are represented) and leaf devices 203A, 203B, and 203C (collectively referred to as "leaf devices 203", and any number of leaf devices 203 are represented) are shown in network 205. Although network 205 is shown as having spine devices 202 and leaf devices 203, other types of devices may be included in network 205, including core switches, edge devices, top-of-rack devices, and other devices.

[0045] Typically, network 205 may be the Internet, or may include or represent any public or private communications network or other network. For example, network 205 may be a cellular, ZigBee, Bluetooth, near field communication (NFC), satellite, enterprise, service provider, and / or other types of networks capable of sending data between computing systems, servers, and computing devices. One or more client devices, server devices, or other devices may send and receive data, commands, control signals, and / or other information across network 205 using any suitable communication technology. Network 205 may include one or more network hubs, network switches, network routers, satellite antennas, or any other network equipment. Such devices or components may be operably coupled to each other to provide information exchange between computers, devices, or other components (e.g., between one or more client devices or systems and one or more server devices or systems). Figure 2 Each device or system shown may be operatively coupled to the network 205 using one or more network links. The links coupling such devices or systems to the network 205 may be Ethernet, asynchronous transfer mode (ATM), or other types of network connections, and such connections may be wireless and / or wired connections. Figure 2 One or more of the devices or systems shown or other devices or systems on network 205 may be remotely located relative to one or more of the other shown devices or systems.

[0046] Each host device 210 represents a physical computing device or a computing node or a storage node that provides an execution environment for a virtual host, a virtual machine, a container, and / or other real or virtual computing resources. In some examples, each host device 210 can be a component of a cloud computing system, a server farm, and / or a server cluster (or a portion thereof) that provides services to client devices and other devices or systems.

[0047] Certain aspects of host device 210 are described herein with respect to host device 210A. Other host devices 210 (e.g., host devices 210B to 210N) may be similarly described and may also include similarly numbered components, which may represent the same, similar, or corresponding components, devices, modules, functions, and / or other features. Therefore, the description herein with respect to host device 210A may be correspondingly applicable to one or more other host devices 210 (e.g., host devices 210B to 210N).

[0048] exist Figure 2 In the example of , host device 210A includes underlying physical computing hardware, which includes one or more processors 213, one or more communication units 215, one or more input devices 216, one or more output devices 217, and one or more storage devices 220. In the example shown, storage device 220 may include kernel module 222 and virtual router module 224. Storage device 220 may also include virtual machines 228A to 228N (collectively referred to as "virtual machines 228", and represent any number of virtual machines 228), which, when present, may be executed on top of a hypervisor (not shown) or may be controlled by a hypervisor. One or more of the devices, modules, storage areas, and other components of host device 210A may be interconnected to enable inter-component communication (physically, communicatively, and / or operationally). In some examples, such connections may be provided through a communication channel (e.g., communication channel 212), a system bus, a network connection, an inter-process communication data structure, or any other method for transmitting data.

[0049] Processor 213 may implement functions and / or execute instructions associated with host device 210A. Communication unit 215 may communicate with other devices or systems on behalf of host device 210A. One or more input devices 216 and output devices 217 may represent any other input and / or output devices associated with host device 210A. Storage device 220 may store information for processing during operation of host device 210A. Each of such components may be implemented in a manner similar to that described herein in conjunction with alert service 142, etc.

[0050] The virtual router module 224 can be a data center 101 ( Figure 1) execute multiple routing instances and can route packets to appropriate virtual machines executing within the operating environment provided by the device 110. The virtual router module 224 can also be responsible for collecting overlay flow data, such as trace flow data when used in an infrastructure that employs trace SDN.

[0051] Virtual machines 228A through 228N (collectively referred to as "virtual machines 228" and representing any number of virtual machines 228) may represent example instances of virtual machines 228. Host device 210A may divide the virtual and / or physical address space provided by storage device 220 into a user space for running user processes. Host device 210A may also divide the virtual and / or physical address space provided by storage device 220 into a kernel space, which is protected and may not be accessible to user processes.

[0052] Each virtual machine 228 can represent a tenant virtual machine running a client application (such as a web server, a database server, an enterprise application, or a virtualized service hosting a service chain). In some cases, any one or more of the host device 210 or another computing device directly hosts the client application, that is, not as a virtual machine (for example, one or more of the host devices 210B to 210N, such as host device 210B and host device 210N). Although one or more aspects of the present disclosure are described in terms of a virtual machine or virtual host, the techniques described herein for such a virtual machine or virtual host in accordance with one or more aspects of the present disclosure may also be applied to containers, applications, processes, or other execution units (virtualized or non-virtualized) executed on the host device 210.

[0053] exist Figure 2 In the example of , telemetry service 140 may include one or more processors 243, one or more communication units 245, one or more input devices 246, one or more output devices 247, and one or more storage devices 250. Storage device 250 may include intent service 218, telemetry controller 221, telemetry subscription service 208, and telemetry collector 214.

[0054] One or more devices, modules, storage areas, or other components of telemetry service 140 may be interconnected to enable inter-component communication (physically, communicatively, and / or operatively). In some examples, such connectivity may be provided via a communication channel (e.g., communication channel 242), a system bus, a network connection, an inter-process communication data structure, or any other method for transferring data.

[0055] The one or more processors 243 of the alert service 142 may implement functionality and / or execute instructions associated with the alert service 142 or associated with one or more modules shown and / or described herein. The one or more processors 243 may be processing circuitry that performs operations according to one or more aspects of the present disclosure, may be a part of processing circuitry that performs operations according to one or more aspects of the present disclosure, and / or may include processing circuitry that performs operations according to one or more aspects of the present disclosure. Examples of processors 243 include microprocessors, application processors, display controllers, auxiliary processors, one or more sensor hubs, and any other hardware configured to function as a processor, processing unit, or processing device.

[0056] One or more communication units 245 of alert service 142 can communicate with devices external to alert service 142 by sending and / or receiving data, and in some aspects, can operate as input devices and output devices. In some examples, communication unit 245 can communicate with other devices over a network. In other examples, communication unit 245 can send and / or receive radio signals over a radio network, such as a cellular radio network. Examples of communication unit 245 include a network interface card (e.g., such as an Ethernet card), an optical transceiver, a radio frequency transceiver, a GPS receiver, or any other type of device capable of sending and / or receiving information. Other examples of communication unit 245 can include a device capable of transmitting and / or receiving information over a network. Devices that communicate with GPS, NFC, ZigBee, and cellular networks (e.g., 3G, 4G, 5G) and found in mobile devices and Universal Serial Bus (USB) controllers, etc. Radio. Such communications may adhere to, implement or comply with appropriate protocols, including Transmission Control Protocol / Internet Protocol (TCP / IP), Ethernet, Bluetooth, NFC or other technologies or protocols.

[0057] The one or more input devices 246 may represent any input device of the alert service 142 that is not otherwise separately described herein. The one or more input devices 246 may generate, receive, and / or process input from any type of device capable of detecting input from a person or a machine. For example, the one or more input devices 246 may generate, receive, and / or process input in the form of electrical, physical, audio, image, and / or visual input (e.g., peripheral devices, keyboards, microphones, cameras).

[0058] The one or more output devices 247 may represent any output device of the alert service 142 that is not otherwise separately described herein. The one or more output devices 247 may generate, receive, and / or process input from any type of device capable of detecting input from a person or a machine. For example, the one or more output devices 247 may generate, receive, and / or process output in the form of electrical and / or physical outputs (e.g., peripheral devices, actuators).

[0059] One or more storage devices 250 within the alarm service 142 can store information for processing during operation of the alarm service 142. The storage device 250 can store program instructions and / or data associated with one or more modules described according to one or more aspects of the present disclosure. One or more processors 243 and one or more storage devices 250 provide an operating environment or platform for such modules, which can be implemented as software, but in some examples can include any combination of hardware, firmware, and software. One or more processors 243 can execute instructions, and one or more storage devices 250 can store instructions and / or data for one or more modules. The combination of the processor 243 and the storage device 250 can retrieve, store and / or execute instructions and / or data for one or more applications, modules or software. The processor 243 and / or the storage device 250 can also be operably coupled to one or more other software and / or hardware components, including but not limited to one or more components of the alarm service 142 and / or one or more devices or systems illustrated as being connected to the alarm service 142.

[0060] In some examples, one or more storage devices 250 are implemented by temporary storage, which may mean that the primary purpose of one or more storage devices is not long-term storage. The storage device 250 of the alert service 142 can be configured to store information short-term as volatile memory, and therefore if deactivated, the stored content is not retained. Examples of volatile memory include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), and other forms of volatile memory known in the art. In some examples, the storage device 250 also includes one or more computer-readable storage media. The storage device 250 can be configured to store more information than volatile memory. The storage device 250 can also be configured to store information long-term as non-volatile storage space and retain information after activation / deactivation cycles. Examples of non-volatile memory include magnetic hard disks, optical disks, flash memory, or various forms of electrically programmable memory (EPROM) or electrically erasable programmable (EEPROM) memory.

[0061] The intent service 218 receives a telemetry intent 230 that expresses a telemetry requirement for generating and collecting telemetry data at a high level. The telemetry intent 230 can be a natural language. As an example, the telemetry intent 230 can be "collect cpu resource usage metrics from all devices at a granularity of 1 minute". As another example, the telemetry intent 230 can be "collect memory resource usage from devices router A, router B, and router C". The intent service 218 can convert the telemetry intent 230 into one or more low-level telemetry commands and protocols that implement the telemetry intent 230. In some cases, a device may support more than one telemetry protocol. In this case, the intent service can convert the telemetry intent 230 using a protocol, which can be selected based on criteria such as the priority assigned to the protocol, the device capabilities regarding the protocol, and the overhead associated with the protocol. In addition, in some aspects, the intent service 218 can coordinate the intents of multiple applications requesting telemetry data from the same device. The intent service 218 can send a low-level telemetry command and an indication of the selected protocol to the telemetry controller 221 to update the telemetry collection of the affected device.

[0062] The telemetry controller 221 can receive low-level telemetry commands and indications of selected protocols. In some aspects, the telemetry controller 221 maintains the latest telemetry requirements for each device. The telemetry controller 221 can provide telemetry collectors 214 for devices such as leaf devices 203 and trunk devices 202, which are specified by telemetry commands and protocols converted from telemetry intents 230.

[0063] The telemetry subscription service 208 receives a request to subscribe to telemetry data generated by a device. In some aspects, in response to receiving the subscription, the telemetry controller 221 can provide the telemetry collector 214 if the telemetry collector has not already been provided to the device.

[0064] The telemetry collector 214 collects telemetry data from the devices. The telemetry collector 214 may store the collected data in a cache or database (not shown). The telemetry service 140 may provide the collected data to applications (eg, applications 226A-226N) that have subscribed to the data.

[0065] In addition, the administrator 128 can use the user interface device 129 to send configuration data to, for example, the host device 210 via the API server 231 and the network 205. The API server 231 can provide the configuration data to the network 205 to ultimately configure the host device 210. In addition, according to the technology of the present disclosure, the API server 231 can store the configuration data in the configuration database 234. For example, the configuration database 234 can be configured to store the configuration data in the form of slices over a sliding window, for example, in the form of 15-minute slices over a sliding window of 7 days. That is, the configuration database 234 can represent the state of the configuration data of the host device 210 in the time period corresponding to each slice, and can do so for multiple slices.

[0066] In addition, for example, in the event of an error, the telemetry service 140 can retrieve configuration data from the configuration database 234. The telemetry service 140 can determine when the error occurred and determine which configuration changes were made before the error. If a conflicting configuration change was made, the administrator 128 can receive data indicating the change from the telemetry service 140 via the user interface device 129, and then update the configuration data to improve the conflict.

[0067] Figure 3 is a flow chart illustrating an exemplary method of managing configuration data for managed network devices in accordance with the techniques of this disclosure. Figure 3 Methods are provided by the API server (such as Figure 1 API server 131, 133 or Figure 2 API server 231) executes.

[0068] Initially, the API server receives a request from a user interface device (e.g. Figure 1 and Figure 2 The UI device 129 receives configuration data (300). The configuration data may generally represent configurations for managed network devices (such as one or more host devices 110 ( Figure 1 ) or 210( Figure 2 ))'s existing configuration data is updated.

[0069] The API server can then determine the current time (302) and the slice (304) in the configuration database (e.g., Figure 1 Configuration database 134 or Figure 2The API server may store the configuration data in a first-in, first-out (FIFO) manner. Thus, the API server may store the newly received configuration data in the determined slice corresponding to the current time period (306). In addition, the API server may distribute the configuration data to the managed network devices (308).

[0070] In this way, Figure 3 The method represents an example of a method for managing configuration data of managed network devices, the method comprising receiving, by an application programming interface (API) server, configuration data to be deployed to at least one of the managed network devices; storing, by the API server, the configuration data in a configuration database; and sending, by the API server, the configuration data to at least one of the managed network devices.

[0071] Figure 4 is a flow chart illustrating an exemplary method of using stored configuration data to determine a root cause of an error in a network in accordance with the techniques of this disclosure. Figure 4 The method can be performed by a remote sensing device (such as Figure 1 or Figure 2 The telemetry service 140 device is executed.

[0072] Initially, the telemetry device receives a signal from a host device (such as host device 110 ( Figure 1 ) or 210( Figure 2 ))Subscribe to telemetry data. Thus, the telemetry device can receive telemetry data from the host device (350). The telemetry device can then analyze the telemetry data and detect errors using the telemetry data (352).

[0073] Thus, the telemetry device may query the configuration database to retrieve one or more slices of configuration data corresponding to a time at or before the detected error (354). The telemetry device may then determine the configuration data that caused the error (356). For example, the telemetry device may determine which host device (or service performed by the device) encountered the error. The telemetry device may then analyze the slices of the configuration database to determine whether any configuration changes were made to the corresponding one of the host devices. The telemetry device may then determine that a configuration change to one of the host devices before the error was detected was or may be the cause of the error. Thus, the telemetry device may send a report to the administrator user interface device 129 (358), indicating the device and the determined configuration that caused the error. Thus, the administrator may use the report to modify the configuration of the corresponding one of the host devices.

[0074] The techniques described in this disclosure may be implemented, at least in part, in hardware, software, firmware, or any combination thereof. For example, various aspects of the described techniques may be implemented in one or more processors (including one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuits and any combination of such components). The term "processor" or "processing circuit" may generally refer to any of the aforementioned logic circuits (alone or in combination with other logic circuits) or any other equivalent circuit. A control unit including hardware may also perform one or more techniques of the present disclosure.

[0075] Such hardware, software, and firmware may be implemented in the same device or in separate devices to support the various operations and functions described in this disclosure. In addition, any described unit, module, or component may be implemented together or separately as a discrete but interoperable logic device. Describing different features as modules or units is intended to highlight different functional aspects and does not necessarily mean that such modules or units must be implemented by separate hardware or software components. On the contrary, the functions associated with one or more modules or units may be performed by separate hardware or software components, or integrated in common or separate hardware or software components.

[0076] The techniques described in the present disclosure may also be embodied or encoded in a computer-readable medium (such as a computer-readable storage medium) containing instructions. Instructions embedded or encoded in a computer-readable medium may cause a programmable processor or other processor to perform the method, for example, when the instructions are executed. Computer-readable media may include non-transitory computer-readable storage media and transient communication media. Tangible and non-transitory computer-readable storage media may include random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, hard disk, CD-ROM, floppy disk, cassette, magnetic media, optical media, or other computer-readable storage media. The term "computer-readable storage medium" refers to a physical storage medium, not a signal, carrier wave, or other transient medium.

[0077] Various examples have been described. These and other examples are within the scope of the following claims.

Claims

1. A method for managing configuration data of a managed network device, the method comprising: receiving, by an application programming interface API server from a controller device that manages the managed network devices, configuration data to be deployed to at least one of the managed network devices, the API server being separate from the controller device; The API server stores the configuration data in a configuration database, where the configuration database is separate from the API server; as well as The configuration data is sent by the API server to at least one of the managed network devices, the API server being separate from the managed network device. 2 . The method of claim 1 , further comprising determining a current slice of the configuration database storing the configuration data. 3 . The method according to claim 1 , further comprising dividing the configuration database into a plurality of slices, each slice representing configuration data of the managed network device for a corresponding time period.

4. The method according to claim 3, wherein: Each slice represents configuration data corresponding to a fifteen minute interval, and the method further includes maintaining 672 slices in the configuration database.

5. The method according to any one of claims 1 to 4, further comprising replacing the oldest configuration data stored in the configuration database with current configuration data including the received configuration data.

6. The method according to any one of claims 1 to 4, wherein: Sending the configuration data includes sending the configuration data via a switch fabric.

7. An application programming interface API server device for distributing configuration data to a managed network device, the API server device comprising one or more processing units, the one or more processing units being implemented in a circuit and configured to: receiving configuration data to be deployed to at least one of the managed network devices from a controller device that manages the managed network devices, the API server being separate from the controller device; storing the configuration data in a configuration database, the configuration database being separate from the API server; as well as The configuration data is sent to at least one of the managed network devices, the API server being separate from the managed network device.

8. The API server device according to claim 7, wherein: The one or more processing units are further configured to determine a current slice of the configuration database storing the configuration data.

9. The API server device according to claim 7, wherein: The one or more processing units are further configured to divide the configuration database into a plurality of slices, each slice representing configuration data of the managed network device for a corresponding time period.

10. The API server device according to claim 9, wherein: Each slice represents configuration data corresponding to a fifteen minute interval, and wherein the one or more processing units are further configured to maintain 672 slices in the configuration database.

11. The API server device according to any one of claims 7 to 10, wherein: The one or more processing units are further configured to replace oldest configuration data stored in the configuration database with current configuration data including the received configuration data.

12. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of an application programming interface (API) server device that distributes configuration data to managed network devices to: receiving configuration data to be deployed to at least one of the managed network devices from a controller device that manages the managed network devices, the API server being separate from the controller device; storing the configuration data in a configuration database, the configuration database being separate from the API server; as well as The configuration data is sent to at least one of the managed network devices, the API server being separate from the managed network device.

13. The non-transitory computer-readable storage medium of claim 12, further comprising instructions that cause the processor to determine a current slice of the configuration database storing the configuration data.

14. The non-transitory computer-readable storage medium of claim 12, further comprising instructions for causing the processor to partition the configuration database into a plurality of slices, each slice representing configuration data of the managed network device for a corresponding time period.

15. The non-transitory computer-readable storage medium of claim 14, wherein: Each slice represents configuration data corresponding to a fifteen minute interval, and further includes instructions for causing the processor to maintain 672 slices in the configuration database.

16. The non-transitory computer-readable storage medium of any one of claims 12 to 15, further comprising instructions causing the processor to replace the oldest configuration data stored in the configuration database with current configuration data including the received configuration data.

Citation Information

Patent Citations

  • Network device configuration framework

    CN106576054A

  • Memory management system and method for storing and retrieving messages

    US20070113031A1