Network Working Group                                   J. Schoenwaelder
Internet-Draft                                  Jacobs University Bremen
Intended status: Standards Track                       February 15, 2013
Expires: August 19, 2013


      Considerations on using NETCONF with LMAP Measurement Agents
                   draft-schoenw-lmap-netconf-00.txt

Abstract

   This document discusses how the NETCONF protocol can be used to
   configure LMAP measurement agents.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on August 19, 2013.

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.






Schoenwaelder            Expires August 19, 2013                [Page 1]


Internet-Draft               LMAP Data Model               February 2013


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Properties of Measurement Agents  . . . . . . . . . . . . . . . 3
   3.  Properties of the NETCONF Protocol  . . . . . . . . . . . . . . 3
   4.  Discussion  . . . . . . . . . . . . . . . . . . . . . . . . . . 4
     4.1.  Connection Initiation . . . . . . . . . . . . . . . . . . . 4
     4.2.  Client and Server Role  . . . . . . . . . . . . . . . . . . 5
     4.3.  Identification of Configuration Versions  . . . . . . . . . 5
     4.4.  Pushing of Measurement Results  . . . . . . . . . . . . . . 5
     4.5.  NETCONF versus YANG-API . . . . . . . . . . . . . . . . . . 6
   5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 6
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 7
   8.  Informative References  . . . . . . . . . . . . . . . . . . . . 7
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 8



































Schoenwaelder            Expires August 19, 2013                [Page 2]


Internet-Draft               LMAP Data Model               February 2013


1.  Introduction

   This document discusses how the NETCONF protocol [RFC6241] can be
   used to configure Large-Scale Measurement of Broadband Performance
   (LMAP) measurement agents (MAs), sometimes also called measurement
   clients [I-D.schulzrinne-lmap-requirements].

   MAs may be deployed as separate hardware devices or as functions
   embedded in consumer electronic devices and home routers or as pure
   software solutions that can be installed on off-the-shelf computing
   equipment.  Measurement agents receive instructions from a controller
   when and how to conduct what measurements (the measurement schedule)
   and how and when to report measurement results to a data collector
   (the report schedule).  Further information about the interaction
   between MAs and controllers and collectors can be found in
   [I-D.schulzrinne-lmap-requirements].


2.  Properties of Measurement Agents

   Measurement Agents (MAs) have a number of important properties:

   1.  MAs are often deployed behind Network Address Translators (NATs).
       This might even be true if MAs are part of a device on the
       demarcation line between a service provider and a home network
       due to the usage of Carried Grade NATs in the service provider
       network.

   2.  MAs may run on devices that are not always powered up and online.

   3.  A single controller may be responsible for a large number of MAs.

   4.  A large fraction of the MAs may be inactive (i.e., they do not
       perform any measurements) at any given point in time.  Inactive
       MAs may need to be enabled on demand for example to troubleshoot
       specific problems (e.g., as part of customer helpdesk services)
       or to balance measurement traffic load.


3.  Properties of the NETCONF Protocol

   The Network Configuration Protocol (NETCONF) [RFC6241] provides
   mechanisms to install, manipulate, and delete the configuration of
   network devices.  It uses an Extensible Markup Language (XML)-based
   data encoding for the configuration data as well as the protocol
   messages.  The NETCONF protocol operations are realized as remote
   procedure calls (RPCs).




Schoenwaelder            Expires August 19, 2013                [Page 3]


Internet-Draft               LMAP Data Model               February 2013


   The NETCONF protocol runs by default over the Secure Shell protocol
   (SSH) [RFC6242] but it can also be used over Transport Layer Security
   (TLS) [RFC5539] with pairwise authentication using X.509
   certificates.

   NETCONF has been originally designed to be used on network devices
   such as backbone routers.  A device supporting NETCONF has an
   embedded NETCONF server.  Configuration management applications use
   embedded NETCONF clients to connect to NETCONF servers and then issue
   RPC calls to manipulate the configuration state of the devices.


4.  Discussion

   This section discusses certain technical challenges related to the
   usage of NETCONF to configure MAs.

4.1.  Connection Initiation

   Due to the nature of LMAP MAs (likely located behind NATs), it is
   crucial that MAs initiate connections to a controller.  This is
   currently not supported in NETCONF.  There were previous attempts to
   provide a so called call-home mechanism for NETCONF, see for example
   [I-D.kwatsen-reverse-ssh].  The current state of the art, however, is
   that there is no standardized call home mechanism for NETCONF over
   SSH.

   For the NETCONF over TLS transport [RFC5539], which relies on mutual
   authentication using X.509 certificates, it seems easier to support
   call home.  In fact, the NETCONF over TLS transport specification is
   currently being updated and hence there is an opportunity to get call
   home support into this update on relative short notice.  The work
   essentially requires to detail aspects such as port numbers used to
   connect form a NETCONF server (acting as a TCP client) to a NETCONF
   client (acting as a TCP server).  In addition, a YANG data model
   would be desirable that can be used to configure the call home policy
   (when to call home) and the addresses to connect to and perhaps the
   certificate to use.

   Decoupling the NETCONF server / client role from the TCP server /
   client role turns out to be straight-forward since every NETCONF
   session starts with an exchange of <hello> messages.  The <hello>
   message sent by the NETCONF server includes a session-id while the
   NETCONF client does not send a session-id.  As such, both endpoints
   can easily identify and verify who is acting as NETCONF client and
   NETCONF server.  [RFC6241] already handles the possible error cases
   (i.e., a NETCONF server connecting to a NETCONF server or a NETCONF
   client connecting to a NETCONF client).



Schoenwaelder            Expires August 19, 2013                [Page 4]


Internet-Draft               LMAP Data Model               February 2013


4.2.  Client and Server Role

   Some large scale measurement deployments use proprietary protocols
   where the server role is on the controller.  In a nutshell, the MA
   connects to the controller running a server and checks if there is a
   configuration update to load.  If so, the MA fetches the necessary
   new configuration information and then applies it locally.

   The NETCONF protocol, however, assumes that the NETCONF server role
   is taken by the device that is configured.  This would be in the LMAP
   use case the MA while the NETCONF client would be running on the
   controller.

   Even though this may seem like a major difference in the way the
   interaction works, it appears that NETCONF can provide the
   functionality needed.  A MA initiating a transport connection and
   subsequently taking the NETCONF server role enables the controller
   (acting as a NETCONF client) after the <hello> exchange to take the
   initiative to determine whether any configuration changes need to be
   applied to the device.  If so, standard <edit-config> operations can
   be used to modify the device's configuration.

4.3.  Identification of Configuration Versions

   As mentioned above, the controller (running a NETCONF client) must
   determine whether a device's configuration needs updates.  While this
   could be achieved by retrieving the configuration using <get-config>
   and comparing the result with the expected configuration, this
   approach is not very efficient.  It will be much more effective if
   the NETCONF server would indicate the version of the configuration it
   is currently using.  The version can either be identified by a
   version number or a time-stamp of the last configuration change or
   simply an opaque tag that is handed out and interpreted only by the
   controller.  While the configuration version might simply be modeled
   as a regular data object that the NETCONF client retrieves in the
   usual way, it might be useful to consider optimizations, e.g.,
   carrying the configuration version as part of a new capability in the
   <hello> exchange.

4.4.  Pushing of Measurement Results

   NETCONF has not been designed as a data push protocol.  While a
   NETCONF extension [RFC5277] provides support for event notifications,
   this mechanism requires in its simplest form that a NETCONF client
   first subscribes to an event stream and that the session used to
   carry event notification stays open.  This is not scalable in the
   LMAP scenario.




Schoenwaelder            Expires August 19, 2013                [Page 5]


Internet-Draft               LMAP Data Model               February 2013


   One possible way to work around this limitation within the framework
   of the current NETCONF protocol is to make use of the event
   notification replay feature: A MA is locally collecting measurement
   results.  After connecting to a collector (acting as a NETCONF
   client), the collector subscribes to an event stream with a request
   to replay the measurement results collected since the last time data
   has been fetched from the MA.  An alternative, of course, would be to
   model test results as part of an LMAP data model and to use NETCONF
   <get> operations to retrieve the data.

   That said, if close to soft real-time pushing of measurement results
   form the MA to the collector is required, then NETCONF likely is not
   the right choice.

4.5.  NETCONF versus YANG-API

   NETCONF provides a feature rich solution for network configuration
   management, including support for concurrent access to a NETCONF
   server by multiple NETCONF clients, different configuration
   datastores, explicit validation of configurations, and a confirmed-
   commit procedure to support configuration change transactions
   spanning multiple devices.  A recent proposal called YANG-API
   [I-D.bierman-netconf-yang-api] aims at providing a simplified
   interface that follows RESTful principles and is compatible with a
   resource-oriented device abstraction.

   While implementations of YANG-API are in progress, it seems too early
   to decide whether the benefits of RESTful YANG-API are significant
   enough to consider it as a possible alternative for LMAP.  In
   particular, it might take a few years for YANG-API to become a stable
   specification.


5.  Security Considerations

   The NETCONF protocol [RFC6241] can run over several different
   transports.  Since the protocol manipulates sensitive configuration
   information, NETCONF requires that all transports provide
   authentication, data integrity, confidentiality, and replay
   protection.

   There are currently two transport for NETCONF on the standards track.
   The NETCONF over SSH transport [RFC6242] provides authentication and
   data encryption services.  The NETCONF over SSH specification further
   requires that the identity of the SSH server must be verified and
   authenticated by the SSH client according to local policy before
   password-based authentication data or any configuration or state data
   is sent to or received from the SSH server.  Similarily, the identity



Schoenwaelder            Expires August 19, 2013                [Page 6]


Internet-Draft               LMAP Data Model               February 2013


   of the SSH client must also be verified and authenticated by the SSH
   server according to local policy to ensure that the incoming SSH
   client request is legitimate before any configuration or state data
   is sent to or received from the SSH client.  Neither side should
   establish a NETCONF over SSH connection with an unknown, unexpected,
   or incorrect identity on the opposite side.

   The NETCONF over TLS transport [RFC5539], currently being revised in
   [I-D.ietf-netconf-rfc5539bis], provides authentication and data
   encryption services.  In particular, [RFC5539] assumes that both
   peers authenticate each other using X.509 certificates while
   [I-D.ietf-netconf-rfc5539bis] adds the possibility to use pre-shared
   keys.

   The NETCONF access control model [RFC6536] provides an authorization
   model for NETCONF.  It allows to configure access control rules that
   can be used to restrict NETCONF protocol access for particular users
   to a pre-configured subset of all available NETCONF protocol
   operations and content.  The NETCONF access control model should be
   required for LMAP implementations that potentially allow access from
   multiple controllers.


6.  IANA Considerations

   TBD


7.  Acknowledgements

   TBD


8.  Informative References

   [I-D.bierman-netconf-yang-api]
              Bierman, A. and M. Bjorklund, "YANG-API Protocol",
              draft-bierman-netconf-yang-api-01 (work in progress),
              November 2012.

   [I-D.ietf-netconf-rfc5539bis]
              Badra, M., Luchuk, A., and J. Schoenwaelder, "NETCONF Over
              Transport Layer Security (TLS)",
              draft-ietf-netconf-rfc5539bis-01 (work in progress),
              October 2012.

   [I-D.kwatsen-reverse-ssh]
              Watsen, K., "Reverse Secure Shell (Reverse SSH)",



Schoenwaelder            Expires August 19, 2013                [Page 7]


Internet-Draft               LMAP Data Model               February 2013


              draft-kwatsen-reverse-ssh-01 (work in progress),
              June 2011.

   [I-D.schulzrinne-lmap-requirements]
              Schulzrinne, H., Johnston, W., and J. Miller, "Large-Scale
              Measurement of Broadband Performance: Use Cases,
              Architecture and Protocol Requirements",
              draft-schulzrinne-lmap-requirements-00 (work in progress),
              September 2012.

   [RFC5277]  Chisholm, S. and H. Trevino, "NETCONF Event
              Notifications", RFC 5277, July 2008.

   [RFC5539]  Badra, M., "NETCONF over Transport Layer Security (TLS)",
              RFC 5539, May 2009.

   [RFC6241]  Enns, R., Bjorklund, M., Schoenwaelder, J., and A.
              Bierman, "Network Configuration Protocol (NETCONF)",
              RFC 6241, June 2011.

   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure
              Shell (SSH)", RFC 6242, June 2011.

   [RFC6536]  Bierman, A. and M. Bjorklund, "Network Configuration
              Protocol (NETCONF) Access Control Model", RFC 6536,
              March 2012.


Author's Address

   Juergen Schoenwaelder
   Jacobs University Bremen

   Email: j.schoenwaelder@jacobs-university.de

















Schoenwaelder            Expires August 19, 2013                [Page 8]