Building upon the previous post in the YANG blog series, we take a further look into third-party data models and Junos; specifically those defined by the OpenConfig operator group.
For years, network operators have been faced with developing a number of techniques to manage multi-vendor environments. Today, these network elements are often configured via vendor-specific CLIs (command-line interface) or through well structured programmatic standard (e.g. NETCONF/XML) or proprietary interfaces each colored with their own vendor-specific hue. Outside of the configuration aspects of these network elements, the extraction of telemetry and operational state information has also been fragmented and inconsistently available forcing operators to rely on a combination of techniques such as SNMP polling, syslog parsing and periodic screen-scraping of show commands to glean the operational state of their network.
Throughout the past year, the OpenConfig initiative and operator group has been in full force developing a collection of vendor independent data-models which lay the foundation and provide the building blocks of a next-generation configuration, operational and streaming telemetry framework. Juniper Networks has been actively engaged in the OpenConfig initiative from the inception, enabling support for the configuration of core internet routing protocols and the delivery of key network element information via OpenConfig defined models and scalable modern RPC frameworks.
Consistent Vendor-Neutral Models
One of the key objectives of the OpenConfig initiative is to develop vendor-neutral data models for the configuration and management of network elements. Today there are at least as many different configuration schemas for routing protocols as there are vendors. Even within each vendor there may be multiple mechanisms for configuring identical functionality across different platforms and network operating systems. This diversity significantly increases the cost for operators when developing back-end systems that interact with these network elements.
By defining a set of vendor-neutral data models for commonly used features and protocols, the configuration process can be dramatically simplified across platforms and vendors. With these models in hand, an operator can build offline schemas and serialize configuration data into the preferred format for consumption by a vendor/platform in a consistent manner without having to worry about generating the appropriate vendor-specific syntax to effect a particular configuration.
One of the core tenets of OpenConfig operations is the use of declarative configuration. This enables operators to specify their configuration intent and have the network element determine how to implement that intent. The burden of having to define the specific actions to achieve that objective is removed from the network operator and placed back on to the network element.
From its inception, Junos OS has enabled declarative device configuration. Operators who adopt the OpenConfig models and deploy them on Junos can be assured that they will be able to apply the models in a declarative manner while the Junos translation engine performs the implementation specific actions.
Model Only Commonly Deployed Features
The models and the functionality being defined within the OpenConfig group do not attempt to be all things to everyone. Instead, the intent is to model only commonly deployed features within operator’s networks. By definition, this leaves some functionality out-of-scope for OpenConfig models. Due to the flexible nature of the Junos implementation and packaging of OpenConfig support, Juniper Networks (and customers themselves) are able to extend the capabilities of the baseline OpenConfig models and augment these models and the corresponding mapping capabilities to enable the use of Junos-specific features while retaining the vendor-independent baseline models.
In supporting the OpenConfig models, Junos has taken care to provide clear deviations where there may be differences between the baseline definition (in terms of units, application hierarchy, etc.) and where there may be gaps in coverage. Customers may choose to extend the baseline models themselves, or Juniper Networks may opt to provide augmentations to the baseline models for commonly utilized Junos functionality which isn't in the baseline models in order to streamline deployments for customers.
We will illustrate the methodology for augmentations and deviations in a future blog in this series.
Relationship to Other Models
Over the past couple of years, there has been an explosion of YANG-based modeling activities within the IETF. While it is very encouraging to see the energy behind the application of a common model-based approach to IETF technologies, there are a number of challenges associated with the proliferation of models, their relationship to each other, and the consistency of structure across multiple disparate models.
We will detail these challenges and Juniper's approach to resolving them in a future blog in this series.
In keeping with the objectives of the OpenConfig group to rapidly iterate, Juniper is decoupling the delivery of OpenConfig model support from the base Junos OS release process. This means that as existing models mature and new ones become available, Juniper can ship OpenConfig bundles separately and independently from Junos releases. As a result, an operator can qualify a release for deployment in their network and later on incrementally adopt the use of OpenConfig models by installing independent OpenConfig bundle from Juniper as the corresponding models are developed.
For more information on OpenConfig and Junos, visit us at MPLS/SDN World Congress March 8-11th, 2016 in Paris, France.