OpenConfig is a group of network operators working on developing programmable interfaces and tools for managing networks in a vendor-neutral way using software-defined networking concepts and model-driven management and operations. OpenConfig focuses on building consistent sets of vendor-neutral data models written in YANG to support operational needs and requirements from various network operators. The data models are developed by OpenConfig or compiled from third-party modules that use OpenConfig requirements. The developed YANG data models combine both configuration and operational data with support from multiple routing vendors, such as Cisco, Juniper, and Arista. OpenConfig collaborates with standards bodies and network equipment manufacturers; the goal is for the developed data models to become industry-standard interfaces that are widely adopted.
OpenConfig data models are available on GitHub, at https://github.com/openconfig/public.
Cisco YANG Models
A Cisco YANG model is a collection of Cisco native, IETF, and OpenConfig YANG models that can be used with Cisco-based platforms. As of this writing, Cisco has YANG models that are specific to the IOS XR, NX-OS, and IOS XE Cisco platforms, divided into subdirectories on GitHub. Each subdirectory has further OS/platform information in a README file.
Cisco data models are available on GitHub, at https://github.com/YangModels/yang/tree/master/vendor/cisco.
Model-Driven Telemetry
Model-driven telemetry is a new concept in network monitoring; it involves continuously streaming data from network devices to subscribers using a push model and providing real-time configuration and state information. You can define what data you want to subscribe to by using standard YANG models and the NETCONF protocol. Structured data is published at a defined cadence or as things change, based on the subscription criteria and data type.
Third-party applications can be used to collect data for monitoring and troubleshooting. Telemetry application subscriptions and their updates are transmitted over the NETCONF protocol. A NETCONF session is established using an SSH session to a network device.
Streaming Telemetry Data
Streaming telemetry data can be used for analysis and troubleshooting purposes to maintain the health of the network. Streaming telemetry allows users to direct data to configured receivers, where DevOps engineers can use the real-time operational information to find problems, look into issues, and optimize networks.
Using traditional models for collecting network data limits scalability and efficiency. Network administrators have been using tools like SNMP and CLI to get operational data from routers and switches for years. However, these methods do not provide automation and do not make it easy to gather useful data from network devices. One of the limitations is the use of the pull model, in which a client must request data from network devices. The pull model does not scale when there are several network management stations within the network.
A push model continuously streams data out of the network devices and sends it to the client. Telemetry makes the push model possible and enables near-real-time access to data monitoring.
There are two areas where streaming real-time telemetry data is useful:
- Traffic optimization: When things like link utilization and packet drops in the network are occurring quickly, traffic optimization allows for traffic rerouting, adding and removing links, and making modifications to QoS policies. This is faster than with SNMP polling intervals and enables quicker response times.
- Preventive troubleshooting: This type of troubleshooting helps detect and avoid failure situations faster after problematic network events occur.
Table 12-7 describes the three methods of streaming telemetry data.
Table 12-7 Telemetry Methods
Method | Description |
Model-driven telemetry | Provides a mechanism to stream data from a model-driven telemetry–capable device to a receiver |
Cadence-based telemetry | Continuously streams operational statistics and state transitions at a configured cadence or time frame |
Policy-based telemetry | Streams data to a receiver using a policy file that defines the data to stream and the frequency for getting the data |