draft-ietf-netconf-beep-04.txt   draft-ietf-netconf-beep-05.txt 
Network Working Group E. Lear Network Working Group E. Lear
Internet-Draft K. Crozier Internet-Draft K. Crozier
Expires: September 17, 2005 Cisco Systems Expires: September 2, 2005 Cisco Systems
March 19, 2005 March 2005
Using the NETCONF Protocol over Blocks Extensible Exchange Protocol Using the NETCONF Protocol over Blocks Extensible Exchange Protocol
(BEEP) (BEEP)
draft-ietf-netconf-beep-04 draft-ietf-netconf-beep-05
Status of this Memo Status of this Memo
This document is an Internet-Draft and is subject to all provisions By submitting this Internet-Draft, each author represents that any
of section 3 of RFC 3667. By submitting this Internet-Draft, each applicable patent or other IPR claims of which he or she is aware
author represents that any applicable patent or other IPR claims of have been or will be disclosed, and any of which he or she becomes
which he or she is aware have been or will be disclosed, and any of aware will be disclosed, in accordance with Section 6 of BCP 79.
which he or she become aware will be disclosed, in accordance with
RFC 3668.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as other groups may also distribute working documents as Internet-
Internet-Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on September 17, 2005. This Internet-Draft will expire on September 2, 2005.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2005). Copyright (C) The Internet Society (2005).
Abstract Abstract
This document specifies an application protocol mapping for the This document specifies an application protocol mapping for the
NETCONF protocol over the Blocks Extensible Exchange Protocol (BEEP). NETCONF protocol over the Blocks Extensible Exchange Protocol (BEEP).
skipping to change at page 2, line 19 skipping to change at page 2, line 19
2. BEEP Transport Mapping . . . . . . . . . . . . . . . . . . . . 4 2. BEEP Transport Mapping . . . . . . . . . . . . . . . . . . . . 4
2.1 NETCONF Session Establishment . . . . . . . . . . . . . . 4 2.1 NETCONF Session Establishment . . . . . . . . . . . . . . 4
2.2 Starting a Channel for NETCONF . . . . . . . . . . . . . . 4 2.2 Starting a Channel for NETCONF . . . . . . . . . . . . . . 4
2.3 NETCONF Session Usage . . . . . . . . . . . . . . . . . . 6 2.3 NETCONF Session Usage . . . . . . . . . . . . . . . . . . 6
2.4 NETCONF Session Teardown . . . . . . . . . . . . . . . . . 6 2.4 NETCONF Session Teardown . . . . . . . . . . . . . . . . . 6
2.5 BEEP Profile for NETCONF . . . . . . . . . . . . . . . . . 6 2.5 BEEP Profile for NETCONF . . . . . . . . . . . . . . . . . 6
3. Security Considerations . . . . . . . . . . . . . . . . . . . 8 3. Security Considerations . . . . . . . . . . . . . . . . . . . 8
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.1 Normative References . . . . . . . . . . . . . . . . . . . . 11 6.1 Normative References . . . . . . . . . . . . . . . . . . . 11
6.2 Informative References . . . . . . . . . . . . . . . . . . . 11 6.2 Informative References . . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 12
A. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 13 A. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Intellectual Property and Copyright Statements . . . . . . . . 14 Intellectual Property and Copyright Statements . . . . . . . . 14
1. Introduction 1. Introduction
The NETCONF protocol [1] defines a simple mechanism through which a The NETCONF protocol [1] defines a simple mechanism through which a
network device can be managed. NETCONF is designed to be usable over network device can be managed. NETCONF is designed to be usable over
a variety of application protocols. This document specifies an a variety of application protocols. This document specifies an
application protocol mapping for NETCONF over the Blocks Extensible application protocol mapping for NETCONF over the Blocks Extensible
Exchange Protocol (BEEP) [6] . Exchange Protocol (BEEP) [7] .
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [2]. document are to be interpreted as described in RFC 2119 [2].
1.1 Why BEEP? 1.1 Why BEEP?
Use of BEEP is natural as an application protocol for transport of Use of BEEP is natural as an application protocol for transport of
XML. As a peer to peer protocol, BEEP provides an easy way to XML. As a peer to peer protocol, BEEP provides an easy way to
implement NETCONF, no matter which side of the connection was the implement NETCONF, no matter which side of the connection was the
initiator. This "bidirectionality" allows for either manager or initiator. This "bidirectionality" allows for either manager or
agent to initiate a connection. This is particularly important to agent to initiate a connection. This is particularly important to
support large number of intermittantly connected devices, as well as support large number of intermittently connected devices, as well as
those devices that must reverse the management connection in the face those devices that must reverse the management connection in the face
of firewalls and NATs. of firewalls and NATs.
The SASL profile used by BEEP allows for a simple and direct mapping The SASL profile used by BEEP allows for a simple and direct mapping
to the existing security model for CLI, while TLS provides a strong to the existing security model for CLI, while TLS provides a strong
well tested encryption mechanism with either server or server and well tested encryption mechanism with either server or server and
client-side authentication. client-side authentication.
2. BEEP Transport Mapping 2. BEEP Transport Mapping
skipping to change at page 4, line 29 skipping to change at page 4, line 29
a channel with the TLS profile. a channel with the TLS profile.
Once TLS has been started, a new greeting is sent by both initiator Once TLS has been started, a new greeting is sent by both initiator
and listener, as required by the BEEP RFC. and listener, as required by the BEEP RFC.
At this point, if SASL is desired, the initiator starts a BEEP At this point, if SASL is desired, the initiator starts a BEEP
channel to perform a SASL exchange to authenticate itself. Upon channel to perform a SASL exchange to authenticate itself. Upon
completion of authentication the channel is closed. That is, the completion of authentication the channel is closed. That is, the
channel is exclusively used to authenticate. channel is exclusively used to authenticate.
Examples of both TLS and SASL profiles can be found in [6]. Examples of both TLS and SASL profiles can be found in [7].
It is anticipated that the SASL PLAIN mechanism will be heavily used It is anticipated that the SASL PLAIN mechanism will be heavily used
in conjunction with TLS.[5] In such cases, in accordance with RFC in conjunction with TLS.[5] In such cases, in accordance with RFC
2595 the PLAIN mechanism MUST NOT be advertised in the first BEEP 2595 the PLAIN mechanism MUST NOT be advertised in the first BEEP
<greeting>, but only in the one following a successful TLS <greeting>, but only in the one following a successful TLS
negotiation. This applies only if TLS and SASL PLAIN mechanisms are negotiation. This applies only if TLS and SASL PLAIN mechanisms are
both to be used. The SASL PLAIN mechanism SHOULD NOT be used both to be used. The SASL PLAIN mechanism MUST NOT be used
unencrypted channels to avoid risk of eavesdropping. unencrypted channels to avoid risk of eavesdropping. More specifics
about the use of SASL and TLS are mentioned in Security
Considerations below.
Once authentication has occurred, there is no need to distinguish Once authentication has occurred, there is no need to distinguish
between initiator and listener. We now distinguish between manager between initiator and listener. We now distinguish between manager
and agent, and it is assumed that each knows its role in the and agent, and it is assumed that each knows its role in the
conversation. conversation.
2.2 Starting a Channel for NETCONF 2.2 Starting a Channel for NETCONF
The manager now establishes new channel and specifies the single The manager now establishes new channel and specifies the single
NETCONF profile. For example: NETCONF profile. For example:
skipping to change at page 6, line 29 skipping to change at page 6, line 29
2.4 NETCONF Session Teardown 2.4 NETCONF Session Teardown
Upon receipt of <close-session> from the manager, once the agent has Upon receipt of <close-session> from the manager, once the agent has
completed all RPCs, it will close BEEP channel 0. When an agent completed all RPCs, it will close BEEP channel 0. When an agent
needs to initiate a close it will do so by closing BEEP channel 0. needs to initiate a close it will do so by closing BEEP channel 0.
Although not required to do so, the agent should allow for a Although not required to do so, the agent should allow for a
reasonable period for a manager to release an existing lock prior to reasonable period for a manager to release an existing lock prior to
initiating a close. Once the agent has closed channel 0, all locks initiating a close. Once the agent has closed channel 0, all locks
are released, and each side follows tear down procedures as specified are released, and each side follows tear down procedures as specified
in [7]. Having received a BEEP close or having sent <close-session>, in [8]. Having received a BEEP close or having sent <close-session>,
a manager MUST NOT send further requests. If there are additional a manager MUST NOT send further requests. If there are additional
activities due to expanded capabilities, these MUST cease in an activities due to expanded capabilities, these MUST cease in an
orderly manner, and should be properly described in the capability orderly manner, and should be properly described in the capability
mapping. mapping.
2.5 BEEP Profile for NETCONF 2.5 BEEP Profile for NETCONF
Profile Identification: http://iana.org/beep/netconf Profile Identification: http://iana.org/beep/netconf
messages exchanged during Channel Creation: not applicable messages exchanged during Channel Creation: not applicable
skipping to change at page 8, line 15 skipping to change at page 8, line 15
3. Security Considerations 3. Security Considerations
Configuration information is by its very nature sensitive. Its Configuration information is by its very nature sensitive. Its
transmission in the clear and without integrity checking leaves transmission in the clear and without integrity checking leaves
devices open to classic so-called "person in the middle" attacks. devices open to classic so-called "person in the middle" attacks.
Configuration information often times contains passwords, user names, Configuration information often times contains passwords, user names,
service descriptions, and topological information, all of which are service descriptions, and topological information, all of which are
sensitive. A NETCONF application protocol, therefore, must minimally sensitive. A NETCONF application protocol, therefore, must minimally
support options for both confidentiality and authentication. support options for both confidentiality and authentication.
BEEP makes use of both transport layer security and SASL. We require The BEEP mapping described in this documents addresses both
that TLS be used in BEEP as described by the BEEP standard. confidentiality and authentication in a flexible manner through the
Client-side certificates are strongly desirable, but an SASL use of TLS and SASL profiles. Confidentiality is provided via the
authentication is the bare minimum. SASL allows for the use of TLS profile, and is used as discussed above. In addition, the server
protocols such as RADIUS [10], so that authentication can occur off certificate shall serve as the server's authentication to the client.
the box. The client MUST be prepared to recognize a valid server certificate.
While distribution of such certificates is beyond the scope of this
document, the implementor is cautioned to be aware of any
interdependencies that may be placed on the network infrastructure
through the use of protocols that validate trust anchors.
In keeping with the BEEP standard, SASL authentication will occur on For client-side authentication there are several options. The client
the first channel creation, and prior to issuance of any protocol MAY provide a certificate during the initiation phase of TLS, in
operations. No further authentication may occur during the same which case the subject of that certificate shall be considered
session. This avoids a situation where rights are different between principle for authentication purposes. Once again, server
different channels. If an implementation wishes to support multiple implementors should be aware of any interdependencies that could be
accesses by different individuals with different rights, then created through protocols used to validate trust anchors.
multiple sessions are required.
In the case where the client has not authenticated through TLS, the
server SHOULD advertise one or more SASL profile, from which the
client will choose. In the singular case where TLS is established
the minimum profile MAY be PLAIN. Otherwise, implementations MUST
support the DIGEST-MD5 profile as described in [6], and they MAY
support other profiles such as OTP.[12]
Different environments may well allow different rights prior to and Different environments may well allow different rights prior to and
then after authentication. An authorization model is not specified then after authentication. An authorization model is not specified
in this document. When an operation is not properly authorized then in this document. When an operation is not properly authorized then
a simple rpc-error containing "permission denied" is sufficient. a simple rpc-error containing "permission denied" is sufficient.
Note that authorization information may be exchanged in the form of Note that authorization information may be exchanged in the form of
configuration information, which is all the more reason to ensure the configuration information, which is all the more reason to ensure the
security of the connection. security of the connection.
4. IANA Considerations 4. IANA Considerations
skipping to change at page 10, line 13 skipping to change at page 10, line 13
profile contained here-in. profile contained here-in.
5. Acknowledgments 5. Acknowledgments
This work is the product of the NETCONF IETF working group, and many This work is the product of the NETCONF IETF working group, and many
people have contributed to the NETCONF discussion. Most notably, Rob people have contributed to the NETCONF discussion. Most notably, Rob
Ens, Phil Schafer, Andy Bierman, Wes Hardiger, Ted Goddard, and Ens, Phil Schafer, Andy Bierman, Wes Hardiger, Ted Goddard, and
Margaret Wasserman all contributed in some fashion to this work, Margaret Wasserman all contributed in some fashion to this work,
which was originally to be found in the NETCONF base protocol which was originally to be found in the NETCONF base protocol
specification. Thanks also to Weijing Chen, Keith Allen, Juergen specification. Thanks also to Weijing Chen, Keith Allen, Juergen
Schoenwaelder, and Eamon O'Tuathail for their very constructive Schoenwaelder, Marshall Rose, and Eamon O'Tuathail for their very
participation. constructive participation.
6. References 6. References
6.1 Normative References 6.1 Normative References
[1] Enns, R., "NETCONF Configuration Protocol", [1] Enns, R., "NETCONF Configuration Protocol",
draft-ietf-netconf-prot-04 (work in progress), October 2004. draft-ietf-netconf-prot-04 (work in progress), October 2004.
[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[3] Myers, J., "Simple Authentication and Security Layer (SASL)", [3] Myers, J., "Simple Authentication and Security Layer (SASL)",
RFC 2222, October 1997. RFC 2222, October 1997.
[4] Dierks, T., Allen, C., Treese, W., Karlton, P., Freier, A. and [4] Dierks, T., Allen, C., Treese, W., Karlton, P., Freier, A., and
P. Kocher, "The TLS Protocol Version 1.0", RFC 2246, January P. Kocher, "The TLS Protocol Version 1.0", RFC 2246,
1999. January 1999.
[5] Newman, C., "Using TLS with IMAP, POP3 and ACAP", RFC 2595, June [5] Newman, C., "Using TLS with IMAP, POP3 and ACAP", RFC 2595,
1999. June 1999.
[6] Rose, M., "The Blocks Extensible Exchange Protocol Core", RFC [6] Leach, P. and C. Newman, "Using Digest Authentication as a SASL
3080, March 2001. Mechanism", RFC 2831, May 2000.
[7] Rose, M., "Mapping the BEEP Core onto TCP", RFC 3081, March [7] Rose, M., "The Blocks Extensible Exchange Protocol Core",
2001. RFC 3080, March 2001.
[8] Rose, M., "Mapping the BEEP Core onto TCP", RFC 3081,
March 2001.
6.2 Informative References 6.2 Informative References
[8] Bray, T., Paoli, J., Sperberg-McQueen, C. and E. Maler, [9] Bray, T., Paoli, J., Sperberg-McQueen, C., and E. Maler,
"Extensible Markup Language (XML) 1.0 (Second Edition)", W3C "Extensible Markup Language (XML) 1.0 (Second Edition)", W3C
REC REC-xml-20001006, October 2000. REC REC-xml-20001006, October 2000.
[9] Hollenbeck, S., Rose, M. and L. Masinter, "Guidelines for the [10] Hollenbeck, S., Rose, M., and L. Masinter, "Guidelines for the
Use of Extensible Markup Language (XML) within IETF Protocols", Use of Extensible Markup Language (XML) within IETF Protocols",
BCP 70, RFC 3470, January 2003. BCP 70, RFC 3470, January 2003.
[10] Rigney, C., Willens, S., Rubens, A. and W. Simpson, "Remote [11] Rigney, C., Willens, S., Rubens, A., and W. Simpson, "Remote
Authentication Dial In User Service (RADIUS)", RFC 2865, June Authentication Dial In User Service (RADIUS)", RFC 2865,
2000. June 2000.
[12] Newman, C., "The One-Time-Password SASL Mechanism", RFC 2444,
October 1998.
Authors' Addresses Authors' Addresses
Eliot Lear Eliot Lear
Cisco Systems Cisco Systems
Glatt-com Glatt-com
Glattzentrum, Zurich 8301 Glattzentrum, Zurich 8301
CH CH
EMail: lear@cisco.com Email: lear@cisco.com
Ken Crozier Ken Crozier
Cisco Systems Cisco Systems
170 W. Tasman Dr. 170 W. Tasman Dr.
San Jose, CA 95134-1706 San Jose, CA 95134-1706
US US
EMail: kcrozier@cisco.com Email: kcrozier@cisco.com
Appendix A. Change Log Appendix A. Change Log
05: improved advice on use of tls and SASL profiles.
04: complete revamp of the profile. Added <hello> as well as 04: complete revamp of the profile. Added <hello> as well as
examples. examples.
03: minor gnits relating to <close-session> 03: minor gnits relating to <close-session>
02: added comments about locking 02: added comments about locking
01: Removed management channel, rpc-status, rpc-abort, and associated 01: Removed management channel, rpc-status, rpc-abort, and associated
profile changes. profile changes.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/