Towards the path to Network Innovation (part 2 of the YANG blog series)
Sep 3, 2015
In my earlier blog post, where I introduced Netconf and YANG, I used a classroom analogy that compared communicating knowledge to a diverse group of students with communicating configurations to a diverse group of networking devices. The analogy showed the same common sense approach to communicating information in a classroom can, and in fact needs to, be applied to the networking world too.
Vendor specific logic and differences have historically been a pain for the Network Management Entity to resolve (and endure). From different protocols to talk to a vendor’s device, to different ways of specifying network configuration – it has been the Network Management Entity’s responsibility to implement logic for every vendor.
YANG provides a data modeling language, with which network configuration schemas can be defined. If each of the devices understands the relevant network service YANG data model, then for managing that network service, the Network Management Entity needs to talk to all the devices in ONLY one way.
Lets look at how this works using a minimal configuration for a single BGP neighbor on two different vendor’s routers.
The Openconfig WG has defined a common YANG data model for specifying BGP configuration. The relevant portion of Openconfig’s BGP YANG data model is:
Assuming both vendors support YANG and Openconfig’s BGP YANG data model, the Network Management Entity can now configure both the vendor’s devices by communicating the same XML configuration snippet over NETCONF:
Just as the Junos CLI allows the native Junos XML configuration data to be entered, the Juniper implementation of YANG also allows configuration data defined by YANG data models to be entered with CLI commands. Here’s an example of how the Openconfig BGP configuration on a Junos router looks:
So falling back to my earlier analogy:
Everybody in the class speaking Queen’s English is akin to all devices using the OpenConfig YANG model.
Just as Queen’s English has a certain grammar and syntax, YANG models defined by OpenConfig specify the grammar and syntax of communicating configuration. (For example, a BGP OpenConfig YANG model specifies grammar and syntax for BGP configuration)
In the classroom, now that everybody understands the same language (Queen’s English), I as a teacher can communicate with my students using simple sentences. This is akin to programming a BGP neighbor on all devices using the OpenConfig YANG model.
This is all goodness. However, I firmly believe this goodness should be delivered with our customer’s networks in mind and how this should lead us to the path of Network Innovation. This perspective focuses us on two very important elements:
Agility: IETF and the OpenConfig WG are defining YANG models for configuration of various network hierarchies. The ability to support these YANG models as soon as they become standardized is a key element.
Customers should not have to wait for months, or even years, for a new software release which supports a new YANG data model.
In addition, supporting a new YANG model should not require a software upgrade of the device or even a system reboot of the device.
Customization: Some network configuration YANG models are being standardized in the IETF and OpenConfig WG. Juniper strongly believes in supporting these standard YANG models, however we also believe we should provide complete flexibility to our customers by also allowing them to define their own custom YANG models.
If a network service has no standard YANG model defined, customers have the choice to define their own models
Customers do not have to wait for the models to become standard, and can start having their Network Management Entity talk to all boxes the same way, even today (This also focuses on the agility element)
Customers can define YANG models that best abstract their particular business workflow
Customers can extend existing YANG models by using extensions that YANG provides via the ‘augment’ statement
Some of the subsequent blogs will have more information on this aspect.
Rewinding this whole blog… You see that by adding these very obvious features to Junos, we’ve now enabled customers to take most of the device specific knowledge out of their Network Management Entity. This reduces entry barriers and complexities, and is what I call the path to Network Innovation.
There is still more to do, in order to truly achieve the path to Network Innovation. Watch out for the next blog in this series.