RESTCONF Client and Server ModelsWatsen Networkskent+ietf@watsen.net
Operations
NETCONF Working GroupThis document defines two YANG modules,
one module to configure a RESTCONF client and the other module to
configure a RESTCONF server. Both modules support the TLS transport
protocol with both standard RESTCONF and RESTCONF Call Home connections.This draft contains many placeholder values that need to be replaced
with finalized values at the time of publication. This note summarizes
all of the substitutions that are needed. No other RFC Editor
instructions are specified elsewhere in this document.This document contains references to other drafts in progress, both in
the Normative References section, as well as in body text throughout.
Please update the following references to reflect their final RFC assignments:
I-D.ietf-netconf-keystoreI-D.ietf-netconf-tcp-client-serverI-D.ietf-netconf-tls-client-serverI-D.ietf-netconf-http-client-serverArtwork in this document contains shorthand references to drafts in
progress. Please apply the following replacements:
XXXX --> the assigned RFC value for this draftAAAA --> the assigned RFC value for I-D.ietf-netconf-tcp-client-serverCCCC --> the assigned RFC value for I-D.ietf-netconf-tls-client-serverBBBB --> the assigned RFC value for I-D.ietf-netconf-http-client-serverArtwork in this document contains placeholder values for the date of publication of this
draft. Please apply the following replacement:
2019-03-09 --> the publication date of this draftThe following Appendix section is to be removed prior to publication:
Appendix A. Change LogThis document defines two YANG modules,
one module to configure a RESTCONF client and the other module to
configure a RESTCONF server .
Both modules support the TLS transport
protocol with both standard RESTCONF and RESTCONF Call Home connections
.The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14
when, and only when, they appear in all capitals, as shown here.The RESTCONF client model presented in this section supports both clients
initiating connections to servers, as well as clients listening
for connections from servers calling home.This model, like that presented in ,
is designed to support any number of possible transports. RESTCONF only supports the TLS
transport currently, thus this model only supports the TLS transport.All private keys and trusted certificates are held in the
keystore model defined in .YANG feature statements are used to enable implementations to advertise
which parts of the model the RESTCONF client supports.The following tree diagram
provides an overview of the data model for the "ietf-restconf-client" module.
Just the container is displayed below, but there is also a reusable grouping
called "restconf-client-grouping" that the container is using.The following example illustrates configuring a RESTCONF
client to initiate connections, as well as listening for call-home
connections.This example is consistent with the examples presented in
Section 3.2 of .This YANG module has normative references to ,
, and ,
,
, and
.The RESTCONF server model presented in this section supports servers
both listening for connections as well as initiating call-home
connections.All private keys and trusted certificates are held in the
keystore model defined in .YANG feature statements are used to enable implementations to advertise
which parts of the model the RESTCONF server supports.The following tree diagram
provides an overview of the data model for the "ietf-restconf-server" module.
Just the container is displayed below, but there is also a reusable grouping
called "restconf-server-grouping" that the container is using.The following example illustrates configuring a RESTCONF server
to listen for RESTCONF client connections, as well as configuring
call-home to one RESTCONF client.This example is consistent with the examples presented in
Section 3.2 of .This YANG module has normative references to ,
, , ,
,
, and
.The YANG module defined in this document uses a grouping defined in
. Please see the Security Considerations
section in that document for concerns related that grouping.The YANG module defined in this document is designed to be accessed via YANG
based management protocols, such as NETCONF and
RESTCONF . Both of these protocols have mandatory-to-implement
secure transport layers (e.g., SSH, TLS) with mutual authentication.The NETCONF access control model (NACM) provides the means
to restrict access for particular users to a pre-configured subset of all available
protocol operations and content.There are a number of data nodes defined in this YANG module that are
writable/creatable/deletable (i.e., config true, which is the default). These data
nodes may be considered sensitive or vulnerable in some network environments. Write
operations (e.g., edit-config) to these data nodes without proper protection can
have a negative effect on network operations. These are the subtrees and data nodes
and their sensitivity/vulnerability:
The entire data trees defined by the modules defined in
this draft are sensitive to write operations. For instance, the addition or
removal of references to keys, certificates, trusted anchors, etc., can
dramatically alter the implemented security policy. However, no NACM
annotations are applied as the data SHOULD be editable by users other than
a designated 'recovery session'.Some of the readable data nodes in this YANG module may be considered sensitive
or vulnerable in some network environments. It is thus important to control read
access (e.g., via get, get-config, or notification) to these data nodes. These are
the subtrees and data nodes and their sensitivity/vulnerability:
Some of the RPC operations in this YANG module may be considered sensitive or
vulnerable in some network environments. It is thus important to control access
to these operations. These are the operations and their sensitivity/vulnerability:
This document registers two URIs in the "ns" subregistry of the IETF XML
Registry . Following the format in
, the following registrations are
requested:This document registers two YANG modules in the
YANG Module Names registry .
Following the format in , the
the following registrations are requested:Renamed "keychain" to "keystore".Filled in previously missing 'ietf-restconf-client' module.Updated the ietf-restconf-server module to accomodate new
grouping 'ietf-tls-server-grouping'.Refined use of tls-client-grouping to add a must statement
indicating that the TLS client must specify a client-certificate.Changed restconf-client??? to be a grouping (not a container).Added RFC 8174 to Requirements Language Section.Replaced refine statement in ietf-restconf-client
to add a mandatory true.Added refine statement in ietf-restconf-server
to add a must statement.Now there are containers and groupings, for both the
client and server models.Now tree diagrams reference ietf-netmod-yang-tree-diagramsUpdated examples to inline key and certificates (no longer
a leafref to keystore)Now tree diagrams reference ietf-netmod-yang-tree-diagramsUpdated examples to inline key and certificates (no longer
a leafref to keystore)Fixed change log missing section issue.Updated examples to match latest updates to the crypto-types,
trust-anchors, and keystore drafts.Reduced line length of the YANG modules to fit within 69 columns.removed "idle-timeout" from "persistent" connection config.Added "random-selection" for reconnection-strategy's "starts-with" enum.Replaced "connection-type" choice default (persistent) with "mandatory true".Reduced the periodic-connection's "idle-timeout" from 5 to 2 minutes.Replaced reconnect-timeout with period/anchor-time combo.Modified examples to be compatible with new crypto-types algsCorrected use of "mandatory true" for "address" leafs.Updated examples to reflect update to groupings defined in the keystore draft.Updated to use groupings defined in new TCP and HTTP drafts.Updated copyright date, boilerplate template, affiliation, and folding algorithm.Reformatted YANG modules.The authors would like to thank for following for
lively discussions on list and in the halls (ordered
by last name): Andy Bierman, Martin Bjorklund, Benoit Claise, Ramkumar Dhanapal,
Mehmet Ersue, Balázs Kovács, David Lamparter, Alan Luchuk, Ladislav Lhotka,
Radek Krejci, Tom Petch, Juergen Schoenwaelder, Phil Shafer, Sean Turner, and
Bert Wijnen.