TECHNICAL FIELD

This disclosure relates to computer networks and, more particularly, to techniques for configuring and managing network devices.

BACKGROUND

A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, such as an Ethernet network, the computing devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. A variety of intermediate devices operate to route the packets between the computing devices. For example, a computer network may include routers, switches, gateways, firewalls, and a variety of other devices to provide and facilitate network communication.

These network devices typically include mechanisms, such as management interfaces, for locally or remotely configuring the devices. By interacting with the management interface, various clients, such as human users, automated scripts or network management systems, can perform configuration tasks as well as collect and view operational data of the managed devices. For example, the clients may configure interface cards of the device, adjust parameters for supported network protocols, specify physical components within the device, modify routing information maintained by a router, access software modules and other resources residing on the device, and perform other configuration tasks.

The Network Configuration Protocol (NETCONF) is a standard defined by the Internet Engineering Task Force (IETF) that provides mechanisms to install, manipulate, and delete the configuration of network devices. By interacting with the management interface, clients can use NETCONF to apply configuration changes at network devices on a network.

SUMMARY

In general, this disclosure describes techniques for concurrently updating a network device with multiple configuration transactions in a single configuration change request where each transaction can be separately committed to the database and rolled-back if needed. For example, techniques described herein may permit a network management system to generate and output a configuration change request that includes multiple sub-transactions, each sub-transaction specifying one or more configuration changes to be pushed to a network device. The network device may concurrently commit the configuration changes specified by the multiple sub-transactions and generate a single reply message, where the reply message includes a respective response element for each requested sub-transaction and which indicates whether the configuration change specified by each of the corresponding sub-transactions was successfully committed at the network device. In some examples, techniques for concurrently updating a network device may include dividing a batch of configuration change requests for network devices that do not support sub-transaction identifiers.

For example, this disclosure describes a new form of a Network Configuration Protocol (NETCONF) configuration transaction request that allows multiple sub-transactions of configuration changes to be specified in a single NETCONF message. Moreover, the disclosure describes a new form of a NETCONF configuration reply message by which the managed device is able to indicate whether each of the configuration sub-transactions was successfully committed to the managed device.

Further, the disclosure also describes extensions to a higher-level service model utilized by the network management system. As described, the extension allows the service model to control the use and format of a network configuration change request for specifying concurrent configuration sub-transactions when configuring a managed device, such as when configuring a network service on the managed device.

The techniques may provide certain technical advantages, such as potentially reducing an amount of network resources utilized and/or time required to configure network devices. As one example, the techniques may be particularly advantageous, for example, in network systems in which a hub-and-spoke virtual private network (VPN) is being provisioned, especially in a large network environment where multiple customer VPN sites are being provisioned. For example, the techniques may permit provisioning multiple customer sites on a hub router by issuing a single NETCONF configuration change message that includes multiple sub-transactions, each sub-transaction specifying configuration data to be provisioned on the hub router for a respective customer site being brought online. As described, the techniques allow the sub-transactions to be committed concurrently and for the managed network router to issue a single reply message the indicates which of the sub-transactions succeeded and which failed, if any.

In one example, this disclosure describes a method performed by a network management system (NMS) device that manages a network, the method comprising: generating, by processing circuitry of the NMS device, in accordance with a device management protocol, a configuration change request representing a transaction having a first sub-transaction specifying a first configuration change for a network device of the network and a second sub-transaction specifying a second configuration change for the same network device; outputting, by the processing circuitry, the configuration change request to the network device; and receiving, by the processing circuitry, a reply message from the network device, the reply message including a first response element specifying whether the first configuration change is successfully committed at the network device and a second response element specifying whether the second configuration change is successfully committed at the network device.

In another example, this disclosure describes a networking device including a control unit; a configuration datastore configured to store configuration data; a device configuration manager executing on the control unit of the network device to: generate, in accordance with a device management protocol, a configuration change request representing a transaction having a first sub-transaction specifying a first configuration change for a network device of the network and a second sub-transaction specifying a second configuration change for the same network device; output the configuration change request to the network device; and receive a reply message from the network device, the reply message including a first response element specifying whether the first configuration change is successfully committed at the network device and a second response element specifying whether the second configuration change is successfully committed at the network device.

In another example, this disclosure describes a non-transitory computer-readable medium including instructions that, when executed, cause processing circuitry of a networking device to: generate, in accordance with a device management protocol, a configuration change request representing a transaction having a first sub-transaction specifying a first configuration change for a network device of the network and a second sub-transaction specifying a second configuration change for the same network device; output the configuration change request to the network device, and receive a reply message from the network device, the reply message including a first response element specifying whether the first configuration change is successfully committed at the network device and a second response element specifying whether the second configuration change is successfully committed at the network device.

In another example, this disclosure describes a networking device comprising: means for generating, in accordance with a device management protocol, a configuration change request representing a transaction having a first sub-transaction specifying a first configuration change for a network device of the network and a second sub-transaction specifying a second configuration change for the same network device; means for outputting the configuration change request to the network device; and means for receiving a reply message from the network device, the reply message including a first response element specifying whether the first configuration change is successfully committed at the network device and a second response element specifying whether the second configuration change is successfully committed at the network device.

In one example, this disclosure describes a method performed by a managed device of a network, the method comprising: receiving, by processing circuitry of the managed device, from a network management system, a configuration change request representing a transaction having a plurality of sub-transactions, wherein each sub-transaction of the plurality of sub-transactions specifies one or more respective configuration changes for the managed device; selectively installing, by the processing circuitry, for each sub-transaction of the plurality of sub-transactions, the one or more respective configuration changes at the managed device; constructing, by the processing circuitry, a reply message based on the selectively installing, wherein the reply message comprises, for each sub-transaction of the plurality of sub-transactions, a respective response element indicating whether the managed device committed the one or more respective configuration changes in a running configuration for the managed device; and outputting, by the processing circuitry, to the network management system, the reply message.

In another example, this disclosure describes a networking device including a control unit; a configuration datastore configured to store configuration data; a device configuration manager executing on the control unit of the network device to: receive, from a network management system, a configuration change request representing a transaction having a plurality of sub-transactions, wherein each sub-transaction of the plurality of sub-transactions specifies one or more respective configuration changes for the managed device; selectively install, for each sub-transaction of the plurality of sub-transactions, the one or more respective configuration changes at the managed device; construct a reply message based on the selectively installing, wherein the reply message comprises, for each sub-transaction of the plurality of sub-transactions, a respective response element indicating whether the managed device committed the one or more respective configuration changes in a running configuration for the managed device; and output, to the network management system, the reply message.

In another example, this disclosure describes a non-transitory computer-readable medium including instructions that, when executed, cause processing circuitry of a networking device to: receive, from a network management system, a configuration change request representing a transaction having a plurality of sub-transactions, wherein each sub-transaction of the plurality of sub-transactions specifies one or more respective configuration changes for the managed device; selectively install, for each sub-transaction of the plurality of sub-transactions, the one or more respective configuration changes at the managed device; construct a reply message based on the selectively installing, wherein the reply message comprises, for each sub-transaction of the plurality of sub-transactions, a respective response element indicating whether the managed device committed the one or more respective configuration changes in a running configuration for the managed device; and output, to the network management system, the reply message.

In another example, this disclosure describes a networking device comprising: means for receiving, from a network management system, a configuration change request representing a transaction having a plurality of sub-transactions, wherein each sub-transaction of the plurality of sub-transactions specifies one or more respective configuration changes for the managed device; means for selectively installing, for each sub-transaction of the plurality of sub-transactions, the one or more respective configuration changes at the managed device; means for constructing a reply message based on the selectively installing, wherein the reply message comprises, for each sub-transaction of the plurality of sub-transactions, a respective response element indicating whether the managed device committed the one or more respective configuration changes in a running configuration for the managed device; and means for outputting, to the network management system, the reply message.

The details of one or more examples of the techniques of this disclosure 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.

