What is YANG?
YANG is a data modeling language used to model configuration, state data, and notification messages of a network device. The YANG standard has taken lot of inputs from Juniper’s data modeling language (e.g. DDL). More and more network equipment makers are adopting YANG as a data modeling language. Juniper’s current data model language is DDL which will slowly get replaced by YANG. See the YANG RFC for more information.
What is NETCONF?
NETCONF (Network Configuration Protocol) is a network management protocol developed by IETF. It provides mechanisms to make changes to the configuration and to get operational state data of the network device. It uses XML encoding for the data and SSH as the underneath transport protocol layer.
The NETCONF protocol has been implemented in network devices (routers and switches) by major equipment vendors. See the NETCONF RFC for more information.
Which Junos releases/platforms support NETCONF and YANG?
NETCONF has been supported in Junos right from the start. As the NETCONF RFC keeps getting amended, we keep upgrading our Junos NETCONF implementation to adhere to it.
YANG modules for the Junos configuration schema are available starting in Junos 14.2
YANG modules for the Junos operational schema are available starting in Junos 15.2Full support for YANG compilation and translation on Junos is available starting in Junos 16.1
What are the benefits of a Juniper devices publishing Junos YANG module off box?
A network device publishes its data model (written in YANG modeling language) so that a YANG-based NETCONF client can use the published YANG model to configure the device and to retrieve operational data from the device. The client needs to know the constructs and the hierarchy defined in the data model in order to construct the RPC and send it to the device. The YANG module defines the constructs and hierarchy.
With Junos YANG modules now available off box for every Junos release, the configuration can now be validated by the network management system before sending it to Junos. This is a huge step towards simplifying the configuration management of a Junos based network.
Just like publishing the Junos XML and NETCONF APIs, publishing the Junos YANG configuration and operational schema also helps automation engineers in their scripts and programs.
What are the benefits of on-box YANG compilation and translation?
Starting 16.1, Junos supports the compilation of external YANG modules into Junos. Meaning, one can take a customized YANG module along with a translation script that essentially maps that YANG file to Junos schema, and load it onto a Junos box.
The new configuration can be translated into Junos CLI syntax for Junos feature realizations and that’s where the translation scripts come in.
Junos users can now start communication with Junos devices leveraging their own defined configuration/operation syntax, in many cases simplifying the business models.
What is OpenConfig?
OpenConfig is an informal collaboration of network operators. Google initiated this initiative, and has since gained support of many other network operators, including AT&T, Verizon, British Telecom, Microsoft and Facebook. OpenConfig is an effort to provide vendor neutral YANG models, to facilitate operators in building and deploying their automation solutions.
Juniper’s on-box YANG infrastructure fits very well with the OpenConfig model. See OpenConfig for more information.
Can the Junos CLI be customizable using YANG?
Yes. Once the YANG module is loaded onto a Junos network device, it merges with the native Junos schema and the added configuration syntax become available in the CLI.