Internet DRAFT - draft-haas-i2rs-netmod-netconf-requirements
draft-haas-i2rs-netmod-netconf-requirements
Internet Engineering Task Force J. Haas, Ed.
Internet-Draft Juniper Networks
Intended status: Informational March 8, 2015
Expires: September 9, 2015
I2RS requirements for netmod/netconf
draft-haas-i2rs-netmod-netconf-requirements-01
Abstract
This document covers requests to the netmod and netconf Working
Groups for functionality to support requirements to implement the
I2RS architecture.
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 September 9, 2015.
Copyright Notice
Copyright (c) 2015 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.
Haas Expires September 9, 2015 [Page 1]
Internet-Draft I2RS requirements on NETMOD/NETCONF March 2015
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. I2RS Requirements . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Data Store Requirements . . . . . . . . . . . . . . . . . 3
2.1.1. A Separate Ephemeral Datastore . . . . . . . . . . . 3
2.1.2. Tagged Ephemeral Modules in the Running Datastore . . 4
2.1.3. Permitting Existing Configuration State to be Made
Optionally Ephemeral . . . . . . . . . . . . . . . . 4
2.2. Mutual Authentication Requirements . . . . . . . . . . . 5
2.2.1. NETCONF over SSH . . . . . . . . . . . . . . . . . . 5
2.2.2. NETCONF/RESTCONF over TLS . . . . . . . . . . . . . . 5
2.3. Identity, Secondary-Identity Requirements; Priority
Requirements; Implications . . . . . . . . . . . . . . . 5
2.3.1. Identity Requirements . . . . . . . . . . . . . . . . 5
2.3.2. Priority Requirements . . . . . . . . . . . . . . . . 6
2.3.3. Implications of Idenities and Priorities on Internal
State . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4. Access Control Model Requirements . . . . . . . . . . . . 6
2.4.1. Data Store Implications . . . . . . . . . . . . . . . 6
2.4.2. I2RS Priority . . . . . . . . . . . . . . . . . . . . 6
2.5. Connectivity Requirements . . . . . . . . . . . . . . . . 6
2.6. Notification and Subscription Requirements . . . . . . . 7
2.7. Transaction Requirements . . . . . . . . . . . . . . . . 7
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
4. Security Considerations . . . . . . . . . . . . . . . . . . . 7
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8
6. Normative References . . . . . . . . . . . . . . . . . . . . 8
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction
The Interface to the Routing System (I2RS) Working Group is chartered
with providing architecture and mechanisms to inject into and
retrieve information from the routing system. The I2RS Architecture
document [I-D.ietf-i2rs-architecture] abstractly documents a number
of requirements for implementing the I2RS requirements.
The I2RS Working Group has chosen to use the YANG data modeling
language [RFC6020] as the basis to implement its mechanisms.
Additionally, the I2RS Working group has chosen to use the NETCONF
[RFC6241] and its similar but lighter-weight relative RESTCONF
[I-D.bierman-netconf-restconf] as the protocols for carrying I2RS.
While YANG, NETCONF and RESTCONF are a good starting basis for I2RS,
there are some things needed from each of them in order for I2RS to
be implemented.
Haas Expires September 9, 2015 [Page 2]
Internet-Draft I2RS requirements on NETMOD/NETCONF March 2015
Note that this draft does not attempt to address specific
implementation of I2RS requirements that the existing YANG, RESTCONF
and NETCONF mechanisms are expected to cover. A separate draft will
be issued for the consumption of the I2RS Working Group for such
cases.
2. I2RS Requirements
2.1. Data Store Requirements
One of the key mechanisms in I2RS is the ability to inject
configuration state into a network element on an ephemeral basis.
While at first glance this may seem equivalent to the writable-
running datastore in NETCONF, running-config can be copied to a
persistant data store, like startup config. The author wishes to
prevent any action that would lead to preserving any configuration
state entered via the I2RS agent across reboots. If state has to be
restored, it should be solely by replay actions from I2RS client via
I2RS agent.
A few options for implementing such ephemeral configuration suggest
themselves, as do some possible problems with such an implementation:
1. A separate ephemeral datastore. The semantics of this datastore
is that all configuration state is known ahead of time to not
survive reboot and is not to be copied into persistent storage.
Such a datastore could be referenced by NETCONF and RESTCONF
using existing semantics, such as "target" and "source".
2. Configuration state in the existing running datastore where the
module is "tagged ephemeral".
3. Permitting existing configuration to be optionally configured as
ephemeral. As an example, the NETCONF server advertises in its
<hello> message if it supports the specified YANG module
persistently and/or ephemerally.
2.1.1. A Separate Ephemeral Datastore
The primary advantage of a fully separate datastore is that the
semantics of its contents are always clearly ephemeral. It also
provides strong segregation of I2RS configuration and operational
state from the rest of the system within the network element.
The most obvious disadvantage of such a fully separate datastore is
that interaction with the network element's operational or
configuration state becomes significantly more difficult. As an
example, a BGP I2RS use case would be the dynamic instantiation of a
Haas Expires September 9, 2015 [Page 3]
Internet-Draft I2RS requirements on NETMOD/NETCONF March 2015
BGP peer. While it is readily possible to re-use any defined
groupings from an IETF-standardized BGP module in such an I2RS
ephemeral datastore's modules, one cannot currently reference state
from one datastore to another.
For example, XPath queries are done in the context document of the
datastore in question and thus it is impossible for an I2RS model to
fulfil a "must" or "when" requirement in the BGP module in the
standard data stores. To implement such a mechanism would require
appropriate semantics for XPath.
2.1.2. Tagged Ephemeral Modules in the Running Datastore
Presume a YANG keyword that flagged an entire module as being
ephemeral. In such a case, entire modules could be crafted for I2RS
(and other) purposes wherein the configuration state in the module
had ephemeral properties. The primary property is that copy
operations would not be able to cause the I2RS state to persist.
An obvious issue with this is the muddying of the semantics of
existing NETCONF/RESTCONF operations. For example, get-config is
expected to return the configuration state for the network element,
but the knowledge that the configuration state may not persist is
important. This may require alterations to get-config (and similar
commands) along with the ambiguity of copy-config not picking up the
ephemeral modules.
Providing additional parameters to the various configuration related
operations in NETCONF/RESTCONF would likely be required.
2.1.3. Permitting Existing Configuration State to be Made Optionally
Ephemeral
In YANG, configuration state is distinguished from operational state
using "config true" vs. "config false". One way to implement I2RS
state would be to introduce a third option, "config ephemeral", to
configuration.
A form of this option was previously discussed in
[I-D.rfernando-i2rs-yang-mods]. The suggestion of "config ephemeral"
is made instead due to potential non-I2RS interest in this feature at
the microphone during the IETF-90 session of netmod in Toronto,
Canada.
Haas Expires September 9, 2015 [Page 4]
Internet-Draft I2RS requirements on NETMOD/NETCONF March 2015
2.2. Mutual Authentication Requirements
"Mutual authentication between the I2RS Client and I2RS Agent is
required. An I2RS Client must be able to trust that the I2RS
Agent is attached to the relevant Routing Element so that write/
modify operations are correctly applied and so that information
received from the I2RS Agent can be trusted by the I2RS Client."
Implementing the mutual authentication requirements for I2RS in each
of the underlying protocols and their transports have some
implications to be discussed.
2.2.1. NETCONF over SSH
The NETCONF service over SSH is believed to provide the necessary
mutual authentication services required by I2RS. Per [RFC6242]: "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. The identity 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."
2.2.2. NETCONF/RESTCONF over TLS
Agent validation of the I2RS client is mandated over TLS in an I2RS
context. The client shall also validate the Agent using its server
certificate.
2.3. Identity, Secondary-Identity Requirements; Priority Requirements;
Implications
2.3.1. Identity Requirements
I2RS requires clients to have an identity. This identity will be
used by the Agent authentication mechanism over the appropriate
protocol.
I2RS also permits clients to have a secondary identity which may be
used for troubleshooting. This secondary identity is an opaque
value. [I-D.ietf-i2rs-traceability] provides an example of how the
secondary identity can be used for traceability.
Haas Expires September 9, 2015 [Page 5]
Internet-Draft I2RS requirements on NETMOD/NETCONF March 2015
If in support of the I2RS prioririty requirements if it is determined
to be necessary to annotate state with the client that added it, the
secondary identity SHOULD be included for troubleshooting.
2.3.2. Priority Requirements
To support Multi-Headed Control, I2RS requires that there be a
decidable means of arbitrating the correct state of data when
multiple clients attempt to manipulate the same piece of data. This
is done via a priority mechanism with the highest priority winning.
This priority may vary on a per-node or subtree basis based for a
given identity.
2.3.3. Implications of Idenities and Priorities on Internal State
Given the requirements for I2RS identities and priority arbitration,
I2RS configured state must have "meta-data" that includes the
identity that caused it to come into being. Agents must also be able
to map priority on a particular piece of configuration state vs. the
identity provisioning it for arbitration purposes. Such mapping
might be represented as part of the "meta-data" or potentially a
distinct mapping database of identity vs. priority vs. configuration
state. Such a mapping may be implemented using an extension to the
NETCONF Access Control Model [RFC6536].
2.4. Access Control Model Requirements
2.4.1. Data Store Implications
As noted above, one of the possible options for implementing the I2RS
ephemeral behavior is a separate data store. However, this clashes
with Section 3.2 of [RFC6536] which limits itself to the well- known
data stores.
2.4.2. I2RS Priority
A likely implementation of priority arbitration would be to extend
the NACM model to also contain criteria for I2RS priority.
2.5. Connectivity Requirements
I2RS does not require clients to maintain active communication
channels with their agents. Agents thus require the ability to open
communication channels back to clients to satisfy previously
requested information.
[I-D.ietf-netconf-call-home] describes a mechanism by which NETCONF
may "phone home" using SSH and TLS.
Haas Expires September 9, 2015 [Page 6]
Internet-Draft I2RS requirements on NETMOD/NETCONF March 2015
While NETCONF notifications currently permit a different client to
establish a session to an agent specifically for notification
purposes, the I2RS use case typically expects that provisioning of
notifications is centrally managed and that systems receiving the
notifications should not need to be individually to be provisioned.
2.6. Notification and Subscription Requirements
[I-D.ietf-i2rs-pub-sub-requirements] has been published and contains
the requirements for I2RS for publication and subscription services.
2.7. Transaction Requirements
Each transaction should be treated as atomic and providing full
functionality. If the configuration change is not functionally
complete, then the transaction should fail and be rolled back
(rollback 0). Example, I2RS agents wants to configure BGP:
routing-options {
autonomous-system autonomous-system;
}
protocols {
bgp {
group group-name {
peer-as autonomous-system;
type type;
neighbor address;
}
}
}
If a statement like neighbor address is missing or is mis-formatted,
like 300.127.5.23, configuration is not functional, transaction
should fail and rollback 0 should be performed by the I2RS agent on
the ephemeral config store. If the neighbor address is in the
transaction, but the address is not reachable or similar, transaction
is accepted, but notification will be sent that BGP peering can't be
established.
3. IANA Considerations
This document introduces no new considerations to IANA.
4. Security Considerations
TBD
Haas Expires September 9, 2015 [Page 7]
Internet-Draft I2RS requirements on NETMOD/NETCONF March 2015
5. Acknowledgements
This document is an attempt to distill length conversations on the
I2RS mailing list for an architecture that was for a long period of
time a moving target. Some individuals in particular warrant
speicfic mention for their extensive help in providing the basis for
this document:
o Alia Atlas
o Andy Bierman
o Martin Bjorklund
o Dean Bogdanavich
o Rex Fernando
o Joel Halpern
o Susan Hares
o Thomas Nadeau
o Juergen Schoenwaelder
o Kent Watsen
6. Normative References
[I-D.bierman-netconf-restconf]
Bierman, A., Bjorklund, M., Watsen, K., and R. Fernando,
"RESTCONF Protocol", draft-bierman-netconf-restconf-04
(work in progress), February 2014.
[I-D.ietf-i2rs-architecture]
Atlas, A., Halpern, J., Hares, S., Ward, D., and T.
Nadeau, "An Architecture for the Interface to the Routing
System", draft-ietf-i2rs-architecture-05 (work in
progress), July 2014.
[I-D.ietf-i2rs-pub-sub-requirements]
Voit, E., Clemm, A., and A. Prieto, "Requirements for
Subscription to YANG Datastores", draft-ietf-i2rs-pub-sub-
requirements-00 (work in progress), March 2015.
Haas Expires September 9, 2015 [Page 8]
Internet-Draft I2RS requirements on NETMOD/NETCONF March 2015
[I-D.ietf-i2rs-traceability]
Clarke, J., Salgueiro, G., and C. Pignataro, "Interface to
the Routing System (I2RS) Traceability: Framework and
Information Model", draft-ietf-i2rs-traceability-02 (work
in progress), March 2015.
[I-D.ietf-netconf-call-home]
Watsen, K., "NETCONF Call Home", draft-ietf-netconf-call-
home-00 (work in progress), September 2014.
[I-D.rfernando-i2rs-yang-mods]
Fernando, R., pals, p., Madhayyan, M., and A. Clemm, "YANG
modifications for I2RS", draft-rfernando-i2rs-yang-mods-00
(work in progress), February 2013.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the
Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010.
[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
Jeffrey Haas (editor)
Juniper Networks
Email: jhaas@juniper.net
Haas Expires September 9, 2015 [Page 9]