Model-Based Management Introduction
Model-driven interfaces are an improved way to manage network devices. Model-based interfaces exhibit a number of properties:
- Structured configuration data and operational data
- Eliminates need for off-box screen scraping
- Data objects defined
- Includes type information including range checking, values, other constraint checks
- Facilitates specific data values based on label or tags association
- Facilitates automation using Python and other scripting languages
- Data representing multiple operations can be combined into a single message
- Configuration operations are transactional
- All configuration is applied successfully, or none is applied
- Automatic roll back of any failed configuration attempt
Starting in IOS-XE 16.3, model-based interfaces co-exist and interoperate with existing device CLI, Syslog, and SNMP interfaces. These interfaces are optionally exposed northbound from network devices. YANG is used to model each protocol/encoding based on RFC 6020. Once enabled, a collection of Linux processes run natively on the device representing the implementation inside IOS-XE. These processes map configuration messages from a YANG model to a form that can be used to manifest CLI commands.
Data Models
The following models are supported for IOS-XE:
Open Models
Open models are models designed to be independent of the underlying platform implementation. Their intent is to normalize per-vendor configuration of network devices. Open YANG Models are developed and promoted by Vendors, Standards bodies, e.g. IETF and customers, e.g. the OpenConfig group.
Native Models
Native models provide a transition from CLI-based device management and represent a model-based interface of current CLI of device operation. These models are specific to the underlying platform operating system and feature implementations. Native models are designed to integrate with platform OS-specific feature implementations with minimal translation between the information exposed by the model-based interface and the feature implementation.
What now?
Look for docs on NETCONF, RESTCONF and how to begin integrating machine interfaces in with AAA to get started with implementing model-driven interfaces in IOS-XE.