Outline – RFC6241 – Network Configuration Protocol (NETCONF) and YANG

Posted: December 19, 2014 in Networking, Raw Material
Tags: ,

Five Ws

  • Who is about it? IETF (Internet Engineering Task Force)
  • What happened? IETF defined a data modeling language for NETCONF  protocol for managing equipment  configuration.
  • When did it take place? SInce 2002 ( RFC 3535  – Overview of the 2002 IASB Network Managemenet Workshop)
  • Where did it take place? IETF
  • Why did it happen? In response Shortcomings of SNMP/SMI network configuration management (lack of backup-restore support, element configuration, transactions – single or multibox) …

 Outline

NETCONF, network management protocol desined to support mnagement of configuration including:

  • Distinction between configuration and state data
  • Multiple configuration data stores (candidate, running, startup)
  • Configuration change validations
  • Configuration change transactions
  • Selective data retrieval and filtering
  • Streaming and playback of event notifications
  • Extensible remote procedure call mechanism

YANG is a data modeling language designed to write data models for NETCONF protocol, with following features: 

  • Human readable
  • Hierarchical data model configuration
  • Resuable types and groupings (structured types)
  • Extensibility through augmentation mechanims
  • Support definitions of opertaions (RPCs)
  • Formal constratints for configuration validation
  • Data modularity through modules and submodules
  • Well defined versioning rules

NETCONF Layering

NETCONF Operations

  • <get-config>: retrieve all or part of a configuration from a data store;
  • <get>: retrieve running configuration and device state information;
  • <edit-config>: loads all  or part of a specified configuration to the specified target configuration;
  • <copy-config>: create or replace an entire configuration datastore with the contentes of anothert complete configuration datastore;
  • <delete-config>: delete  a configuration datastore (Not applicable to running)
  • <lock>: locks a device;
  • <unlock>: unlocks a device;
  • <close_session>: graceful session termination;
  • <kill-session>: forced session termination.

YANG Features

  • maps directly to NETCONF (XML) content;
  • Compact C/Java syntax focused on readability;
  • Data type system compatible with next-gen SNMP type system, XML and XSD;
  • Translatable do DSDL, RelaxNG(!), Schematron and DSRL… (RFC 6110);
  • Informal translation to  W3C XML Schema (Pyang, Jyang?);
  • Organization
    • Leaf, leaf-list, container, lists, grouping, choice
  • Data model structure
    • Module, submodule, augment, if-feature, when
  • Constraints
    • must, unique, min-elements, max-elements, mandatory
  • Data types
    • many built-in, sub-typing, restrictions
  • Reusable groupings
    • Grouping, uses

YANG example

 module acme-sytem {

  namespace "http://acme.example.com/system";

  prefix "acme";

  organization "ACME Inc.";

  contact "joe@acme.example.com";

  description

    "The module for entities implementing the ACME system.";

  revision 2007-11-05 {

    description "Initial revision.";

  }

  container system {

      leaf host-name {

        type string;

        description "Hostname for this system";

      }

      list interface {

        key "name";

        description "List of interfaces in the system";

        leaf name {

          type string;

        }

        leaf type {

          type string;

        }

        leaf mtu {

          type int32;

        }

      }

  }

}

NETCONF Open Source

YANG Open Source

A Layered Comparison

  SNMP NETCONF SOAP
Data Models MIBs Modules  
Data Modeling Language SMI YANG  
Management Operations SNMP NETCONF  
RPC Protocol BER XML XML
Transport Stack UDP

SSH

BEEP

SOAP

TLS

SSL

HTTP

TCP

 

References

Leave a comment