TOC |
|
This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts.
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.”
The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.
This Internet-Draft will expire on April 24, 2010.
Copyright (c) 2009 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 in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document.
Simple Network Management Protocol (SNMP) is a widely deployed application protocol for network management and data retrieval. In this document we describe the applicability of SNMP for 6LoWPANs. We discuss the implementation considerations of SNMP Agent and SNMP Manager followed by the deployment considerations of the SNMP protocol. Our discussion also covers the applicability of MIB modules for 6LoWPAN devices.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.) [RFC2119].
1.
Introduction
1.1.
Why SNMP
2.
Little-known SNMP Features
2.1.
SNMP Contexts
2.2.
SNMP Proxies
2.3.
Message Size Restrictions
3.
SNMP Agent Implementation Considerations
3.1.
Access Control
3.2.
Overhead of the Different SNMP Message Formats
3.2.1.
Overhead Difference of SNMPv3 Security
3.2.2.
Minimum Message Size Calculation
4.
SNMP Manager Implementation Considerations
4.1.
Polling, Pushing, and Trap-directed Polling
4.2.
Support for SNMP Proxies
5.
SNMP Deployment Considerations
5.1.
Naming Issues
5.2.
SNMP Protocol Operations
5.3.
Timeouts and Retransmissions
5.4.
Polling Intervals
5.5.
Caching Issues
6.
Applicable MIB Modules
6.1.
Applicable Standardized MIBs
6.2.
MIB Design Guidelines for Low Overhead
7.
Conclusion
8.
IANA Consideration
9.
Security Considerations
10.
Acknowledgments
11.
References
11.1.
Normative References
11.2.
Informative References
Appendix A.
Calculation of Minimum packet size
Appendix B.
Possible Deployment Models for SNMP
B.1.
Lightweight End-to-End
B.2.
Proxy Model
B.3.
SNMP with Sub-Agent Protocols
Appendix C.
Change Log
TOC |
Simple Network Management Protocol (SNMP) is a UDP-based protocol operating in the application layer of the Internet Protocol Suite. It consists of four basic components: a managed node running an agent; an entity running management applications (typically called as a manager); a protocol to convey information between the SNMP entities; and management information.
TOC |
SNMP is datagram-oriented and the implementations of SNMP can be very lightweight. It may fit 6LoWPAN applications very well. The following features make SNMP suitable for this network.
- Protocol Maturity: SNMPv3 is a full IETF standard having a high degree of technical maturity with significant experiences in implementation and operation.
- Data Naming: SNMP provides a hierarchical namespace utilizing object identifiers (OIDs) for data naming purposes. The data accessible via SNMP is described by Management Information Bases (MIB modules). These MIB modules can either be standardized or specific to certain enterprises.
- Network Management: According to [RFC4919] (Kushalnagar, N., Montenegro, G., and C. Schumacher, “IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, Problem Statement, and Goals,” August 2007.) network management is one of the goals for 6LoWPANs, wherein it is described that network management functionality is critical for 6LoWPANs. SNMP is widely used for network management and it is the Internet community's de facto management protocol.
- Data Retrieval: SNMP employs polling in which data is being requested by a manager from the agents. In addition, SNMP supports a push model in which data is sent from agents to the managers without a prior request. Trap-directed polling refers to a mode where polling is used with relatively long polling intervals but agents can send notifications in order to notify a manager of events that might require changes to the polling strategy.
- Security: SNMPv3 can provide both message-level and transport-level security. SNMPv3 defines User based Security model (USM) for message-driven security; and transport-based security model (TSM) for transport-driven security. TSM makes it possible to use existing security protocols such as Transport Layer Security (TLS) [RFC5246] (Dierks, T. and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.2,” August 2008.) and the Datagram Transport Layer Security (DTLS) Protocol [RFC4347] (Rescorla, E. and N. Modadugu, “Datagram Transport Layer Security,” April 2006.) with SNMPv3. The modular design of SNMPv3 also allows new security and access control protocols to be added to it.
- Access control: SNMP can provide access control of the information.
TOC |
This section explains some little-known SNMP concepts.
TOC |
Each SNMP entity is composed of a single engine which is identified by an SNMP engine identifier. A context is a collection of management information accessible by an SNMP entity and it is also defined as a subset of a single SNMP entity. An SNMP entity has access to one or more contexts uniquely identified by context names. In order to identify an individual item of management information within the management domain, the SNMP entity's context is identified first (using the engine identifier and context name) and this is followed by the object type and instance.
TOC |
The term 'proxy' in SNMP has a restrictive meaning. A proxy refers to a proxy forwarder application which forwards SNMP messages to other SNMP engines and forwards the response to such previously forwarded messages back to SNMP engine from which the original message was received [RFC3413] (Levi, D., Meyer, P., and B. Stewart, “Simple Network Management Protocol (SNMP) Applications,” December 2002.). The forwarding is based on contexts and it is irrespective of the management objects being accessed. Thus, an SNMP proxy can be used to forward messages from one transport to another, or to translate SNMP messages from one version to another version.
The SNMP proxy cannot be used for translation of SNMP requests into operations of a non-SNMP management protocol and it cannot be used for supporting aggregated objects. Proxies depend on context information and the forwarding of messages is independent of the objects being accessed. To support aggregated objects, where the value of one object depends upon multiple other remote items, special MIB modules and sub-agent protocols are used instead of proxies.
TOC |
SNMP message contains a msgMaxSize field which is used to communicate the maximum message size at the sender and the receiver side. The maximum message size is the maximum size of a message that can be accepted by the receiving entity.
The minimum required to implement message size is transport model specific. For SNMP over UDP, the size is 484 octets.
TOC |
This section covers SNMP agent implementation considerations for 6LoWPAN.
TOC |
The Local Configuration Datastore (LCD), which contains access rights and policies of an SNMP entity, need not be configured remotely. It is recommended to have permanent access control tables on the nodes. The implementers should keep the authorization tables as compact as possible to reduce the memory and codesize overhead. Compact permanent authorization tables on the nodes can for example provide read-only and read-write access to the management instrumentation on the node at almost zero processing cost since the SNMP agents may not support instance level access control granularity to further reduce performance cost.
TOC |
SNMPv1 [RFC1157] (Case, J., Fedor, M., Schoffstall, M., and J. Davin, “Simple Network Management Protocol (SNMP),” May 1990.) is the earliest version of SNMP and it reached the IETF full standard status. The protocol operation consisted of Get, Get-Next, and Trap Operations for data retrieval and the Set operation for configuration. SNMPv1 security is based on community string based authentication. Access control is provided with SNMP MIB views. SNMPv2c was an experimental improvement over SNMPv1 which introduced new data retrieval operations, i.e., Get-Bulk and Inform, and introduced improved error handling. SNMPv2c could only reach the experimental status.
SNMPv3, Std 62 [RFC3411] (Harrington, D., Presuhn, R., and B. Wijnen, “An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks,” December 2002.)-[RFC3418] (Presuhn, R., “Management Information Base (MIB) for the Simple Network Management Protocol (SNMP),” December 2002.), supports all the aforementioned data retrieval and configuration options of SNMPv1 and SNMPv2c. The SNMPv3 framework is modular in order to enhance extensibility. Moreover, SNMPv3 supports authentication and data integrity and an additional privacy option for confidentiality. After SNMPv3 became a full standard, SNMPv1 and SNMPv2c were declared Historic due to their weak security features. However, SNMPv3 can coexist with the earlier versions of SNMP [RFC3584] (Frye, R., Levi, D., Routhier, S., and B. Wijnen, “Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework,” August 2003.).
TOC |
SNMP security can be supported by two different approaches, i.e., message-driven security and transport-driven security. With message-driven security (the User-based Security Model, USM), SNMP provides its own security where the security parameters are passed within each SNMP message. On the other hand, transport-driven security enables operators to leverage existing secure transport protocols (e.g., the Transport Security Model, TSM).
The User-based Security Model [RFC3414] (Blumenthal, U. and B. Wijnen, “User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3),” December 2002.) is a shared secret scheme which uses message-driven security. Although it utilizes existing mechanisms, it is designed independent of other security infrastructures. It provides its own security and has its own key management infrastructure. The operator configures secrets in the SNMP engines used by management applications. These independent authentication and encryption keys are used to secure communication. Messages can be authenticated, or authenticated and encrypted.
The Transport Security Model (TSM) enables operators to leverage existing security infrastructures and secure transport protocols. TSM allows security to be provided by an external secure transport protocol. TSM enables the use of existing security mechanisms, such as Transport Layer Security (TLS) [RFC5246] (Dierks, T. and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.2,” August 2008.), Datagram Transport Layer Security (DTLS) Protocol [RFC4347] (Rescorla, E. and N. Modadugu, “Datagram Transport Layer Security,” April 2006.), and the Secure Shell (SSH) Protocol [RFC4251] (Ylonen, T. and C. Lonvick, “The Secure Shell (SSH) Protocol Architecture,” January 2006.).
In transport-driven protocols DTLS, which is UDP based, can be considered for 6LoWPAN. [I‑D.draft‑ietf‑isms‑dtls‑tm] (Hardaker, W., “Transport Layer Security Transport Model for SNMP,” September 2009.) specifies how DTLS can be used with SNMP. Transport Model for DTLS protocol involves an initial handshake to establish a session. Upon successful session establishment, the security related session parameters are cached in the client and the server for the duration of the session instead of being sent in all messages. The session is based on UDP source and destination address/port pairs. Therefore for session de-multiplexing a different UDP source port is selected for every new session to distinguish between multiple sessions from a source to same port on the destination.
TOC |
The minimum message size for SNMPv3 with USM is 67 bytes whereas the minimum message size for SNMPv3 with TSM is 46 bytes. The minimum message size for the historic SNMPv1 message is 20 byte. The details of the calculation can be found in Appendix A. TSM may involve additional session establishment cost consisting of the initial handshake and the caching of transport parameters. The tradeoff between the message size and session overhead should be kept in mind while designing applications.
TOC |
This section covers SNMP manager implementation considerations for 6LoWPAN.
TOC |
In Sensor networks, polling can be reactive or proactive. Data gathering or event reporting sensors may 'push' their information towards the managers or they may wait for a manager to 'pull' the information through a request.
When the demand for data is relatively high, push mechanisms are deployed in order to save energy cost where the data flows from managed entities towards the managers. SNMP notifications are a realization the push based model in which data is sent to the manager without a prior request. Data can be reported periodically from the SNMP agent to the manager through SNMP notifications and the notifications can take the advantage of SNMP security and access control features to ensure the access to legitimate users along with confidentiality and integrity of the data. The SNMP Inform PDU requires a response back from the receiving manager and it can be used in applications in which reliability is important.
The use of notifications is recommended for data flows from sensors to the manager and also for the scenarios where multiple nodes generate the same information.
TOC |
The SNMP proxy forwarder application resides on an intermediate SNMP entity (e.g. an SNMP entity on a management server or an edge router in case of 6LoWPAN). The proxy forwarder registers each context to which it wishes to forward messages. After the remote context is registered, the managers send messages to the proxy forwarder's engine with the context information of the remote host. The proxy forwarder forwards the message to the remote context. Upon reception of a response from the remote host, it forwards the response back to the manager.
In 6LoWPAN networks proxies may be used to change message encoding, or they may be used to translate between SNMP versions, or they may be used to change the security domain at the 6LoWPAN side of the network.
TOC |
Following are a list of considerations for deployment of SNMP in 6LoWPANs.
TOC |
In order to reduce the message overhead, the managers are advised to use short values for Engine Identifiers. The minimum length for an Engine Identifier is 5 octets. The managers may generate and assign the Engine identifiers using the 16-bit short address or the 64-bit IEEE EUI-64 addresses of a node. Context name is an administratively assigned octet string that names a context. In order to reduce the message size overhead the length of the string should be kept short. The default context is identified by a a zero-length context name.
TOC |
SNMP supports four basic data retrieval operations i.e. GetRequest-PDU, GetNextRequest-PDU, GetBulkRequest-PDU [RFC3416] (Presuhn, R., “Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP),” December 2002.). The GetRequest-PDU is useful for retrieving well known scalar data, whereas the GetNextRequest-PDU and GetBulkRequest-PDU operations are particularly advantageous for retrieving dynamically changing tabular data. The SNMPv2-Trap-PDU and InformRequest-PDU can be used for push-based data retrieval, in which periodic or event-based notifications are sent to the managers.
During the processing of a GetBulkRequest-PDU operation, the agent can decide the number of objects to include in response. For requesting objects the manager has to consider the underlying packet size constraints. Also, the number of objects in the variable-binding in request messages and max-repeaters field of GetBulk operation should be selected keeping the constraint in mind.
TOC |
In 6LoWPANs, the SNMP message may be fragmented or may encounter more latency because of underlying wireless link. The value of timeouts should be adjusted on the manager side by considering the link characteristics so that SNMP does not timeout between queries. In some cases the number of retries may also be adjusted to cater for link characteristics.
TOC |
Similarly, in order to reduce the amount of polling, the polling interval should be increased for less time critical data. 6LoWPANs are energy constrained networks and excessive polling is not recommended.
TOC |
Caching the important information can save the transmission cost e.g. caching the snmpEngineID would save the traffic overhead of EngineID discovery mechanisms. It is recommended that the EngineID should be cached in order to reduce the transmission cost. In case of TSM, caching the transport parameters can reduce the message sizes.
TOC |
This section describes some relevant MIB modules which can be used in 6LoWPAN.
TOC |
ENTITY-SENSOR-MIB [RFC3433] (Bierman, A., Romascanu, D., and K. Norseth, “Entity Sensor Management Information Base,” December 2002.) defines objects for information that is associated with physical sensors (e.g. the current value of the sensor, operational status, and the data units precision associated with the sensor). It can be reused for 6LoWPANs. Other applicable MIB modules are TBD.
TOC |
When defining MIB modules, the MIB designers should avoid using long OIDs by avoiding unnecessary data hierarchies. Moreover, complex indexing schemes should be avoided in order to keep the overhead resulting from instance identifiers as low as possible.
TOC |
SNMP can be very useful for 6LoWPANs due to its significant implementation and operational experiences. The standards allow for memory and CPU efficient implementations. The utilization of secure transports such as DTLS can reduce the overhead of message-based security mechanisms. This document explored the applicability of SNMP for its use in 6LoWPAN.
TOC |
TBD.
TOC |
TBD.
TOC |
TBD.
TOC |
TOC |
TOC |
TOC |
A very rough way to estimate the size needed by a varbind that is essentially a number is the following formula:
varbind-size = 6 + number-of-OID-subidentifier
That is for sysUpTime (1.3.6.1.2.1.1.3), we get 14 bytes and thus the SNMPv1 message is 34 bytes, SNMPv3/TSM is 60 bytes, and the SNMPv3/USM message is 81 bytes. TSM may imply security overhead at the transport layer e.g. in case of DTLS the transport layer framing overhead is 13 bytes (compressed DTLS may further reduce the application payload length). The details of the calculation in section 3.2.2 are as follows:
* SNMPv3 minimum message size calculation
SNMPv3Message (USM) 2 byte
msgVersion 3 byte
msgGlobalData (HeaderData) 15 byte
msgSecurityParameters 23 byte
msgData (ScopedPDU) 24 byte
-------
67 byte
SNMPv3Message (TSM) 2 byte
msgVersion 3 byte
msgGlobalData (HeaderData) 15 byte
msgSecurityParameters 2 byte
msgData (ScopedPDU) 24 byte
-------
46 byte
UsmSecurityParameters 2 byte
msgAuthoritativeEngineID 7 byte
msgAuthoritativeEngineBoots 3 byte
msgAuthoritativeEngineTime 3 byte
msgUserName 2 byte
msgAuthenticationParameters 2 byte
msgPrivacyParameters 2 byte
-------
21 byte
TsmSecurityParameters 2 byte
-------
2 byte
HeaderData 2 byte
msgID 3 byte
msgMaxSize 4 byte
msgFlags 3 byte
msgSecurityModel 3 byte
-------
15 byte
ScopedPDU 2 byte
contextEngineID 7 byte
contextName 2 byte
PDU 13 byte
-------
24 byte
PDU 2 byte
request-id 3 byte
error-status 3 byte
error-index 3 byte
variable-bindings 2 byte
-------
13 byte
* SNMPv1 / SNMPv2c minimum mesage size calculation
SNMPv1Message 2 byte
version 3 byte
community 2 byte
data (PDU) 13 byte
-------
20 byte
The details of the calculation for DTLS framing as follows:
Type 1 byte
Version 2 byte
Epoch 2 byte
Sequence_number 6 byte
Length 2 byte
TOC |
There can be three fundamental deployment models for SNMPv3
TOC |
The SNMP manager talks SNMPv3 end-to-end to the nodes. In this way existing management tools can be reused and a few adaptations may be needed by specifying suitable deployment parameters through an Applicability Statement as covered by this draft.
Manager <-------------------------------------> 6LoWPAN nodes
SNMPv3
TOC |
The SNMP manager talks SNMPv3 to an SNMP proxy residing on the 6LoWPAN Gateway (or a proxy server) as explained in this document. Existing management tools (as long as they are proxy aware, which is not generally true) can be reused.
Manager <--------> SNMP Proxy <--------------> 6LoWPAN nodes
SNMPv3 (6LoWPAN ER) SNMPv3
TOC |
The SNMP manager talks SNMPv3 to an extensible SNMP agent residing on the 6LoWPAN router which uses a subagent protocol (e.g. a 6LoWPAN enhanced version of AgentX, [RFC2741] (Daniele, M., Wijnen, B., Ellison, M., and D. Francisco, “Agent Extensibility (AgentX) Protocol Version 1,” January 2000.)) to populate its MIB. However, the current standard subagent protocol is not suitable for 6LoWPAN since it assumes a reliable stream-oriented transport and an adaptation of an existing protocol may be required. Thus, this model is not recommended for 6LoWPANs.
Manager <-------> SNMP Agent <-----------------> 6LoWPAN nodes
SNMPv3 (6LoWPAN ER) SubAgent Protocol
TOC |
Changes from -01 to -02:
The draft now covers applicability of SNMPv3 for 6LoWPANs. The focus of the draft is shifted towards supporting SNMPv3 'as is' in 6LoWPANs.
TOC |
Hamid Mukhtar (editor) | |
ETRI | |
USN Research Division, ETRI, 161 Gajeong-dong, Yuseong-gu, | |
Daejeon 305-350 | |
KOREA | |
Phone: | +82 42 860 5435 |
EMail: | hamid@etri.re.kr |
Seong-Soon Joo | |
ETRI | |
USN Research Division, ETRI, 161 Gajeong-dong, Yuseong-gu, | |
Daejeon 305-350 | |
KOREA | |
Phone: | +82 42 860 6333 |
EMail: | ssjoo@etri.re.kr |
Juergen Schoenwaelder | |
Jacobs University Bremen | |
Campus Ring 1 | |
Bremen 28725 | |
Germany | |
Phone: | +49 421 200-3587 |
EMail: | j.schoenwaelder@jacobs-university.de |
Kim, Ki Hyung | |
Ajou University | |
San 5 Wonchun-dong, Yeongtong-gu | |
Suwon-si, Gyeonggi-do 442-749 | |
KOREA | |
Phone: | +82 31 219 2433 |
EMail: | kkim86@ajou.ac.kr |