I2RS requirements for netmod/netconf
draft-haas-i2rs-netmod-netconf-requirements-00
The information below is for an old version of the document.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Author | Jeffrey Haas | ||
| Last updated | 2014-09-12 | ||
| Stream | (None) | ||
| Formats | plain text htmlized pdfized bibtex | ||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-haas-i2rs-netmod-netconf-requirements-00
Internet Engineering Task Force J. Haas, Ed.
Internet-Draft Juniper Networks
Intended status: Informational September 12, 2014
Expires: March 16, 2015
I2RS requirements for netmod/netconf
draft-haas-i2rs-netmod-netconf-requirements-00
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 March 16, 2015.
Copyright Notice
Copyright (c) 2014 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 March 16, 2015 [Page 1]
Internet-Draft I2RS requirements on NETMOD/NETCONF September 2014
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. I2RS Requirements . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Data Store Requirements . . . . . . . . . . . . . . . . . 3
2.1.1. A Separate Ephemeral Datastore . . . . . . . . . . . 4
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.6.1. Persistence of Subscriptions . . . . . . . . . . . . 7
2.6.2. Filtering Considerations . . . . . . . . . . . . . . 7
2.6.2.1. Expressivity of Existing Filtering Mechanisms . . 7
2.6.2.2. Filtering Workload . . . . . . . . . . . . . . . 8
2.7. Transaction Requirements . . . . . . . . . . . . . . . . 8
2.8. Object Relationship Requirements . . . . . . . . . . . . 9
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
4. Security Considerations . . . . . . . . . . . . . . . . . . . 9
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9
6. Normative References . . . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10
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.
Haas Expires March 16, 2015 [Page 2]
Internet-Draft I2RS requirements on NETMOD/NETCONF September 2014
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.
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.
Haas Expires March 16, 2015 [Page 3]
Internet-Draft I2RS requirements on NETMOD/NETCONF September 2014
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
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.
Haas Expires March 16, 2015 [Page 4]
Internet-Draft I2RS requirements on NETMOD/NETCONF September 2014
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.
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 SSH transport does not mandate authentication be done; it is an
optional feature. In an I2RS context, authentication is mandatory.
Authentication of the client to the agent is carried out using any
method besides "none". Authentication of the agent to the client
requires that the server's public key be recognized.
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.
Haas Expires March 16, 2015 [Page 5]
Internet-Draft I2RS requirements on NETMOD/NETCONF September 2014
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.
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
Haas Expires March 16, 2015 [Page 6]
Internet-Draft I2RS requirements on NETMOD/NETCONF September 2014
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
2.6.1. Persistence of Subscriptions
NETCONF Event Notifications [RFC5277] provides a mechanism by which
subscriptions may be created. In that RFC, subscriptions are
terminated when the underlying transport session ends.
As noted in the prior section, I2RS does not require its clients to
maintain a connection to its agents. Thus, a mechanism by which
subscriptions may be created and persist through the termination of
the transport session is required.
Management of these subscriptions implies the ability to:
o Create a "headless" subscription and determine what its endpoint
is.
o Specify the type and various parameters for the endpoint session.
For example, the need for confidentiality may not be required for
some notifications or a highly efficient transport may be
required. Experience over the years has shown that very light-
weight transports, for example UDP for SNMP NOTIFICATIONs/TRAPs,
enables low-end components to participate in notification in a
distributed fashion. A long-term implication may be that
additional lighter-weight transports may be needed for I2RS
notification channels.
o Delete such "headless" subscriptions.
o Enumerate the set of those subscriptions on the network element.
o Apply Access Control to the above abilities.
2.6.2. Filtering Considerations
2.6.2.1. Expressivity of Existing Filtering Mechanisms
XPath is provided as the mechanism in [RFC6241] for extended
filtering. While XPath is a highly expressive language, it tends to
be best suited for string and simple math-based filtering.
I2RS, being an interface to network elements, will typically have as
common types IPv4 and IPv6 addresses, prefixes for the same and may
require network mask interactions for firewalling. These and other
Haas Expires March 16, 2015 [Page 7]
Internet-Draft I2RS requirements on NETMOD/NETCONF September 2014
examples suggest that long term extensions appropriate for efficient
filtering of I2RS types may be required.
As an example, a regular expression filter that can match addresses
covered by "192.0.2.128/25" would need to match on the string
"192.0.2." as a prefix and all final octets with the string
representations of the values greater than or equal to 128. While
methodologies for building such regular expressions are well known
within the networking world, it typically results in poor
performance.
2.6.2.2. Filtering Workload
Filtering, additionally, is implied to be a mechanism of the "central
event processor". I2RS subscriptions may be implemented on data
objects wherein a small, filtered portion of a subtree is being
monitored, but the magnitude of events being generated is
substantial.
Given this filtering workload, implementations are suggested to
"push" the filtering to relevant system components to "pre-filter"
events when possible.
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 missformated,
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
Haas Expires March 16, 2015 [Page 8]
Internet-Draft I2RS requirements on NETMOD/NETCONF September 2014
is accepted, but notification will be sent that BGP peering can't be
established.
2.8. Object Relationship Requirements
XXX JMH - I've largely convinced myself that the "instance-
identifier" and "require-instance" YANG keywords satisfy the
properties required by I2RS. If you don't, please supply an example.
3. IANA Considerations
This document introduces no new considerations to IANA.
4. Security Considerations
TBD
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
Haas Expires March 16, 2015 [Page 9]
Internet-Draft I2RS requirements on NETMOD/NETCONF September 2014
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-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.
[RFC5277] Chisholm, S. and H. Trevino, "NETCONF Event
Notifications", RFC 5277, July 2008.
[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.
[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
1194 N. Mathida Ave.
Sunnyvale, CA 94089
US
Email: jhaas@juniper.net
Haas Expires March 16, 2015 [Page 10]