draft-ietf-netconf-beep-05.txt   draft-ietf-netconf-beep-06.txt 
Network Working Group E. Lear Network Working Group E. Lear
Internet-Draft K. Crozier Internet-Draft K. Crozier
Expires: September 2, 2005 Cisco Systems Expires: March 10, 2006 Cisco Systems
March 2005 September 6, 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-05 draft-ietf-netconf-beep-06
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
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
skipping to change at page 1, line 35 skipping to change at page 1, line 35
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 2, 2005. This Internet-Draft will expire on March 10, 2006.
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 21 skipping to change at page 2, line 21
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 . . . . . . . . . . . . . . . . . . . . . . 11
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) [7] . Exchange Protocol (BEEP) [7] .
skipping to change at page 3, line 26 skipping to change at page 3, line 26
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 intermittently 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 network address translators (NATs).
The SASL profile used by BEEP allows for a simple and direct mapping BEEP makes use of the Simple Authentication and Security Layer (SASL)
to the existing security model for CLI, while TLS provides a strong [3]. The SASL profile used by BEEP allows for a simple and direct
well tested encryption mechanism with either server or server and mapping to the existing security model for CLI, while transportlayer
client-side authentication. security (TLS) [4] provides a strong well tested encryption mechanism
with either server or server and client-side authentication.
2. BEEP Transport Mapping 2. BEEP Transport Mapping
All NETCONF over BEEP implementations MUST implement the profile and All NETCONF over BEEP implementations MUST implement the profile and
functional mapping between NETCONF and BEEP as described below. functional mapping between NETCONF and BEEP as described below.
2.1 NETCONF Session Establishment 2.1 NETCONF Session Establishment
Managers may be either BEEP listeners or initiators. Similarly, Managers may be either BEEP listeners or initiators. Similarly,
agents may be either listeners or initiators. Thus the initial agents may be either listeners or initiators. Thus the initial
exchange takes place without regard to whether a manager or the agent exchange takes place without regard to whether a manager or the agent
is the initiator. After the transport connection is established, as is the initiator. After the transport connection is established, as
greetings are exchanged, they SHOULD each announce their support for greetings are exchanged, they SHOULD each announce their support for
TLS [4] and optionally SASL [3]. Once greetings are exchanged, if TLS and optionally SASL. Once greetings are exchanged, if TLS is to
TLS is to be used and available by both parties, the listener STARTs be used and available by both parties, the listener STARTs a channel
a channel with the TLS profile. 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 [7]. Examples of both TLS and SASL profiles can be found in [7].
skipping to change at page 6, line 16 skipping to change at page 6, line 16
At this point, the NETCONF session is established, and capabilities At this point, the NETCONF session is established, and capabilities
have been exchanged. have been exchanged.
2.3 NETCONF Session Usage 2.3 NETCONF Session Usage
Nearly all NETCONF operations are executed through the <rpc> tag. To Nearly all NETCONF operations are executed through the <rpc> tag. To
issue an RPC, the manager transmits on the operational channel a BEEP issue an RPC, the manager transmits on the operational channel a BEEP
MSG containing the RPC and its arguments. In accordance with the MSG containing the RPC and its arguments. In accordance with the
BEEP standard, RPC requests may be split across multiple BEEP frames. BEEP standard, RPC requests may be split across multiple BEEP frames.
Once received and processed, the agent responds with BEEP RPYs on the Once received and processed, the agent responds with BEEP RPY
same channel with the response to the RPC. In accordance with the messages on the same channel with the response to the RPC. In
BEEP standard, responses may be split across multiple BEEP frames. accordance with the BEEP standard, responses may be split across
multiple BEEP frames.
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
skipping to change at page 8, line 38 skipping to change at page 8, line 38
which case the subject of that certificate shall be considered which case the subject of that certificate shall be considered
principle for authentication purposes. Once again, server principle for authentication purposes. Once again, server
implementors should be aware of any interdependencies that could be implementors should be aware of any interdependencies that could be
created through protocols used to validate trust anchors. created through protocols used to validate trust anchors.
In the case where the client has not authenticated through TLS, the In the case where the client has not authenticated through TLS, the
server SHOULD advertise one or more SASL profile, from which the server SHOULD advertise one or more SASL profile, from which the
client will choose. In the singular case where TLS is established client will choose. In the singular case where TLS is established
the minimum profile MAY be PLAIN. Otherwise, implementations MUST the minimum profile MAY be PLAIN. Otherwise, implementations MUST
support the DIGEST-MD5 profile as described in [6], and they MAY support the DIGEST-MD5 profile as described in [6], and they MAY
support other profiles such as OTP.[12] support other profiles such as OTP.[10]
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
The IANA will assign a TCP port for NETCONF, and register the BEEP The IANA requested to assign a TCP port for NETCONF, and to register
profile contained here-in. the BEEP 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, Marshall Rose, and Eamon O'Tuathail for their very Schoenwaelder, Marshall Rose, and Eamon O'Tuathail for their very
constructive 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-07 (work in progress), June 2005.
[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, P. Kocher, "The TLS Protocol Version 1.0", RFC 2246,
January 1999. January 1999.
skipping to change at page 11, line 40 skipping to change at page 11, line 40
[8] Rose, M., "Mapping the BEEP Core onto TCP", RFC 3081, [8] Rose, M., "Mapping the BEEP Core onto TCP", RFC 3081,
March 2001. March 2001.
6.2 Informative References 6.2 Informative References
[9] 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.
[10] Hollenbeck, S., Rose, M., and L. Masinter, "Guidelines for the [10] Newman, C., "The One-Time-Password SASL Mechanism", RFC 2444,
Use of Extensible Markup Language (XML) within IETF Protocols",
BCP 70, RFC 3470, January 2003.
[11] Rigney, C., Willens, S., Rubens, A., and W. Simpson, "Remote
Authentication Dial In User Service (RADIUS)", RFC 2865,
June 2000.
[12] Newman, C., "The One-Time-Password SASL Mechanism", RFC 2444,
October 1998. 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
skipping to change at page 13, line 7 skipping to change at page 13, line 7
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
06: Changes (fix references, IANA section) from AD comments.
05: improved advice on use of tls and SASL profiles. 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
 End of changes. 

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