1012 lines
		
	
	
		
			42 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			1012 lines
		
	
	
		
			42 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Network Working Group                                           D. Black
 | ||
| Request for Comments: 4088                               EMC Corporation
 | ||
| Category: Standards Track                                  K. McCloghrie
 | ||
|                                                            Cisco Systems
 | ||
|                                                         J. Schoenwaelder
 | ||
|                                          International University Bremen
 | ||
|                                                                June 2005
 | ||
| 
 | ||
| 
 | ||
|            Uniform Resource Identifier (URI) Scheme for the
 | ||
|                Simple Network Management Protocol (SNMP)
 | ||
| 
 | ||
| Status of This Memo
 | ||
| 
 | ||
|    This document specifies an Internet standards track protocol for the
 | ||
|    Internet community, and requests discussion and suggestions for
 | ||
|    improvements.  Please refer to the current edition of the "Internet
 | ||
|    Official Protocol Standards" (STD 1) for the standardization state
 | ||
|    and status of this protocol.  Distribution of this memo is unlimited.
 | ||
| 
 | ||
| Copyright Notice
 | ||
| 
 | ||
|    Copyright (C) The Internet Society (2005).
 | ||
| 
 | ||
| Abstract
 | ||
| 
 | ||
|    The Simple Network Management Protocol (SNMP) and the Internet
 | ||
|    Standard Management Framework are widely used for the management of
 | ||
|    communication devices, creating a need to specify SNMP access
 | ||
|    (including access to SNMP MIB object instances) from non-SNMP
 | ||
|    management environments.  For example, when out-of-band IP management
 | ||
|    is used via a separate management interface (e.g., for a device that
 | ||
|    does not support in-band IP access), a uniform way to indicate how to
 | ||
|    contact the device for management is needed.  Uniform Resource
 | ||
|    Identifiers (URIs) fit this need well, as they allow a single text
 | ||
|    string to indicate a management access communication endpoint for a
 | ||
|    wide variety of IP-based protocols.
 | ||
| 
 | ||
|    This document defines a URI scheme so that SNMP can be designated as
 | ||
|    the protocol used for management.  The scheme also allows a URI to
 | ||
|    designate one or more MIB object instances.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                     [Page 1]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
| Table of Contents
 | ||
| 
 | ||
|    1. Introduction..................................................  2
 | ||
|    2. Usage.........................................................  3
 | ||
|    3. Syntax of an SNMP URI.........................................  4
 | ||
|       3.1. Relative Reference Considerations........................  5
 | ||
|    4. Semantics and Operations......................................  6
 | ||
|       4.1. SNMP Service URIs........................................  6
 | ||
|       4.2. SNMP Object URIs.........................................  7
 | ||
|            4.2.1. SNMP Object URI Data Access.......................  8
 | ||
|       4.3. OID Groups in SNMP URIs.................................. 10
 | ||
|       4.4. Interoperability Considerations.......................... 10
 | ||
|    5. Examples...................................................... 11
 | ||
|    6. Security Considerations....................................... 12
 | ||
|       6.1. SNMP URI to SNMP Gateway Security Considerations......... 13
 | ||
|    7. IANA Considerations........................................... 14
 | ||
|    8. Normative References.......................................... 14
 | ||
|    9. Informative References........................................ 15
 | ||
|    10. Acknowledgements............................................. 16
 | ||
|    Appendix A. Registration Template................................ 17
 | ||
| 
 | ||
| 1.  Introduction
 | ||
| 
 | ||
|    SNMP and the Internet-Standard Management Framework were originally
 | ||
|    devised to manage IP devices via in-band means, in which management
 | ||
|    access is primarily via the same interface(s) used to send and
 | ||
|    receive IP traffic.  SNMP's wide adoption has resulted in its use for
 | ||
|    managing communication devices that do not support in-band IP access
 | ||
|    (e.g., Fibre Channel devices); a separate out-of-band IP interface is
 | ||
|    often used for management.  URIs provide a convenient way to locate
 | ||
|    that interface and specify the protocol to be used for management;
 | ||
|    one possible scenario is for an in-band query to return a URI that
 | ||
|    indicates how the device is managed.  This document specifies a URI
 | ||
|    scheme to permit SNMP (including a specific SNMP context) to be
 | ||
|    designated as the management protocol by such a URI.  This scheme
 | ||
|    also allows a URI to refer to specific object instances within an
 | ||
|    SNMP MIB.
 | ||
| 
 | ||
|    For a detailed overview of the documents that describe the current
 | ||
|    Internet-Standard Management Framework, please refer to Section 7 of
 | ||
|    [RFC3410].
 | ||
| 
 | ||
|    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 [RFC2119].
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                     [Page 2]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
| 2.  Usage
 | ||
| 
 | ||
|    There are two major classes of SNMP URI usage: configuration and
 | ||
|    gateways between SNMP and other protocols that use SNMP URIs.
 | ||
| 
 | ||
|    An SNMP URI used for configuration indicates the location of
 | ||
|    management information as part of the configuration of an application
 | ||
|    containing an SNMP manager.  The URI can be obtained from a
 | ||
|    configuration file or may be provided by a managed device (see
 | ||
|    Section 1 for an example).  Management information is exchanged
 | ||
|    between the SNMP manager and agent, but it does not flow beyond the
 | ||
|    manager, as shown in the following diagram:
 | ||
| 
 | ||
|                                ***********  SNMP-Request   *********
 | ||
|                                *         *================>*       *
 | ||
|                 URI ---------->* Manager *                 * Agent *
 | ||
|                                *         *<================*       *
 | ||
|                                ***********  SNMP-Response  *********
 | ||
|                                     ^
 | ||
|                                     |
 | ||
|       Other Config Info ------------+
 | ||
| 
 | ||
|    Additional configuration information (e.g., a security secret or key)
 | ||
|    may be provided via an interface other than that used for the URI.
 | ||
|    For example, when a managed device provides an SNMP URI in an
 | ||
|    unprotected fashion, that device should not provide a secret or key
 | ||
|    required to use the URI.  The secret or key should instead be pre-
 | ||
|    configured in or pre-authorized to the manager; see Section 6.
 | ||
| 
 | ||
|    For gateway usage, clients employ SNMP URIs to request management
 | ||
|    information via an SNMP URI to SNMP gateway (also called an SNMP
 | ||
|    gateway in this document).  The SNMP manager within the SNMP gateway
 | ||
|    accesses the management information and returns it to the requesting
 | ||
|    client, as shown in the following diagram:
 | ||
| 
 | ||
|                                 SNMP gateway
 | ||
|            **********     URI    ***********  SNMP-Request   *********
 | ||
|            *        *===========>*         *================>*       *
 | ||
|            * Client *            * Manager *                 * Agent *
 | ||
|            *        *<===========*         *<================*       *
 | ||
|            **********    Info    ***********  SNMP-Response  *********
 | ||
|                                     ^
 | ||
|                                     |
 | ||
|       Other Config Info ------------+
 | ||
| 
 | ||
|    Additional configuration information (e.g., security secrets or keys)
 | ||
|    may be provided via an interface other than that used for the URI.
 | ||
|    For example, some types of security information, including secrets
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                     [Page 3]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
|    and keys, should be pre-configured in or pre-authorized to the
 | ||
|    manager rather than be provided by the client; see Section 6.
 | ||
| 
 | ||
| 3.  Syntax of an SNMP URI
 | ||
| 
 | ||
|    An SNMP URI has the following ABNF [RFC2234] syntax, based on the
 | ||
|    ABNF syntax rules for userinfo, host, port, and (path) segment in
 | ||
|    [RFC3986] and the ABNF syntax rule for HEXDIG in [RFC2234]:
 | ||
| 
 | ||
|       snmp-uri        = "snmp://" snmp-authority [ context [ oids ]]
 | ||
| 
 | ||
|       snmp-authority  = [ securityName "@" ] host [ ":" port ]
 | ||
|       securityName    = userinfo    ; SNMP securityName
 | ||
| 
 | ||
|       context         = "/" contextName [ ";" contextEngineID ]
 | ||
|       contextName     = segment     ; SNMP contextName
 | ||
|       contextEngineID = 1*(HEXDIG HEXDIG)    ; SNMP contextEngineID
 | ||
| 
 | ||
|       oids            = "/" ( oid / oid-group ) [ suffix ]
 | ||
|       oid-group       = "(" oid *( "," oid ) ")"
 | ||
|       oid             = < as specified by [RFC 3061] >
 | ||
|       suffix          = "+" / ".*"
 | ||
| 
 | ||
|    The userinfo and (path) segment ABNF rules are reused for syntax
 | ||
|    only.  In contrast, host and port have both the syntax and semantics
 | ||
|    specified in [RFC3986].  See [RFC3411] for the semantics of
 | ||
|    securityName, contextEngineID, and contextName.
 | ||
| 
 | ||
|    The snmp-authority syntax matches the URI authority syntax in Section
 | ||
|    3.2 of [RFC3986], with the additional restriction that the userinfo
 | ||
|    component of an authority (when present) MUST be an SNMP
 | ||
|    securityName.  If the securityName is empty or not given, the entity
 | ||
|    making use of an SNMP URI is expected to know what SNMP securityName
 | ||
|    to use if one is required.  Inclusion of authentication information
 | ||
|    (e.g., passwords) in URIs has been deprecated (see Section 3.2.1 of
 | ||
|    [RFC3986]), so any secret or key required for SNMP access must be
 | ||
|    provided via other means that may be out-of-band with respect to
 | ||
|    communication of the URI.  If the port is empty or not given, port
 | ||
|    161 is assumed.
 | ||
| 
 | ||
|    If the contextName is empty or not given, the zero-length string ("")
 | ||
|    is assumed, as it is the default SNMP context.  An SNMP
 | ||
|    contextEngineID is a variable-format binary element that is usually
 | ||
|    discovered by an SNMP manager.  An SNMP URI encodes a contextEngineID
 | ||
|    as hexadecimal digits corresponding to a sequence of bytes.  If the
 | ||
|    contextEngineID is empty or not given, the context engine is to be
 | ||
|    discovered by querying the SNMP agent at the specified host and port;
 | ||
|    see Section 4.1 below.  The contextEngineID component of the URI
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                     [Page 4]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
|    SHOULD be present if more than one context engine at the designated
 | ||
|    host and port supports the designated context.
 | ||
| 
 | ||
|    An SNMP URI that designates the default SNMP context ("") MAY end
 | ||
|    with the "/" character that introduces the contextName component.  An
 | ||
|    SNMP URI MUST NOT end with the "/" character that introduces an oid
 | ||
|    or oid-group component, as the empty string is not a valid OID for
 | ||
|    SNMP.
 | ||
| 
 | ||
|    The encoding rules specified in [RFC3986] MUST be used for SNMP URIs,
 | ||
|    including the use of percent encoding ("%" followed by two hex
 | ||
|    digits) as needed to represent characters defined as reserved in
 | ||
|    [RFC3986] and any characters not allowed in a URI.  SNMP permits any
 | ||
|    UTF-8 character to be used in a securityName or contextName; all
 | ||
|    multi-byte UTF-8 characters in an SNMP URI MUST be percent encoded as
 | ||
|    specified in Sections 2.1 and 2.5 of [RFC3986].  These requirements
 | ||
|    are a consequence of reusing the ABNF syntax rules for userinfo and
 | ||
|    segment from [RFC3986].
 | ||
| 
 | ||
|    SNMP URIs will generally be short enough to avoid implementation
 | ||
|    string-length limits (e.g., that may occur at 255 characters).  Such
 | ||
|    limits may be a concern for large OID groups; relative references to
 | ||
|    URIs (see Section 4.2 of [RFC3986]) may provide an alternative in
 | ||
|    some circumstances.
 | ||
| 
 | ||
|    Use of IP addresses in SNMP URIs is acceptable in situations where
 | ||
|    dependence on availability of DNS service is undesirable or must be
 | ||
|    avoided; otherwise, IP addresses should not be used (see [RFC1900]
 | ||
|    for further explanation).
 | ||
| 
 | ||
| 3.1.  Relative Reference Considerations
 | ||
| 
 | ||
|    Use of the SNMP default context (zero-length string) within an SNMP
 | ||
|    URI can result in a second instance of "//" in the URI, such as the
 | ||
|    following:
 | ||
| 
 | ||
|       snmp://<host>//<oid>
 | ||
| 
 | ||
|    This is allowed by [RFC3986] syntax; if a URI parser does not handle
 | ||
|    the second "//" correctly, the parser is broken and needs to be
 | ||
|    fixed.  This example is important because use of the SNMP default
 | ||
|    context in SNMP URIs is expected to be common.
 | ||
| 
 | ||
|    On the other hand, the second occurrence of "//" in an absolute SNMP
 | ||
|    URI affects usage of relative references to that URI (see Section 4.2
 | ||
|    of [RFC3986]) because a "//" at the start of a relative reference
 | ||
|    always introduces a URI authority component (host plus optional
 | ||
|    userinfo and/or port; see [RFC3986]).  Specifically, a relative
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                     [Page 5]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
|    reference of the form //<oid2> will not work, because the "//" will
 | ||
|    cause <oid2> to be parsed as a URI authority, resulting in a syntax
 | ||
|    error when the parser fails to find a host in <oid2> .  To avoid this
 | ||
|    problem, relative references that start with "//" but do not contain
 | ||
|    a URI authority component MUST NOT be used.  Functionality equivalent
 | ||
|    to any such forbidden relative reference can be obtained by prefixing
 | ||
|    "." or ".." to the forbidden relative reference (e.g., ..//<oid2>).
 | ||
|    The prefix to use depends on the base URI.
 | ||
| 
 | ||
| 4.  Semantics and Operations
 | ||
| 
 | ||
|    An SNMP URI that does not include any OIDs is called an SNMP service
 | ||
|    URI because it designates a communication endpoint for access to SNMP
 | ||
|    management service.  An SNMP URI that includes one or more OIDs is
 | ||
|    called an SNMP object URI because it designates one or more object
 | ||
|    instances in an SNMP MIB.  The expected means of using an SNMP URI is
 | ||
|    to employ an SNMP manager to access the SNMP context designated by
 | ||
|    the URI via the SNMP agent at the host and port designated by the
 | ||
|    URI.
 | ||
| 
 | ||
| 4.1.  SNMP Service URIs
 | ||
| 
 | ||
|    An SNMP service URI does not designate a data object, but rather an
 | ||
|    SNMP context to be accessed by a service; the telnet URI scheme
 | ||
|    [RFC1738] is another example of URIs that designate service access.
 | ||
|    If the contextName in the URI is empty or not given, "" (the zero-
 | ||
|    length string) is assumed, as it is the default SNMP context.
 | ||
| 
 | ||
|    If a contextEngineID is given in an SNMP service URI, the context
 | ||
|    engine that it designates is to be used.  If the contextEngineID is
 | ||
|    empty or not given in the URI, the context engine is to be
 | ||
|    discovered; the context engine to be used is the one that supports
 | ||
|    the context designated by the URI.  The contextEngineID component of
 | ||
|    the URI SHOULD be present if more than one context engine at the
 | ||
|    designated host and port supports the designated context.
 | ||
| 
 | ||
|    Many common uses of SNMP URIs are expected to omit (i.e., default)
 | ||
|    the contextEngineID because they do not involve SNMP proxy agents,
 | ||
|    which are the most common reason for multiple SNMP context engines to
 | ||
|    exist at a single host and port.  Specifically, when an SNMP agent is
 | ||
|    local to the network interface that it manages, the agent will
 | ||
|    usually have only one context engine, in which case it is safe to
 | ||
|    omit the contextEngineID component of an SNMP URI.  In addition, many
 | ||
|    SNMP agents that are local to a network interface support only the
 | ||
|    default SNMP context (zero-length string).
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                     [Page 6]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
| 4.2.  SNMP Object URIs
 | ||
| 
 | ||
|    An SNMP object URI contains one or more OIDs.  The URI is used by
 | ||
|    first separating the OID or OID group (including its preceding slash
 | ||
|    plus any parentheses and suffix) and then processing the resulting
 | ||
|    SNMP service URI as specified in Section 4.1 (above) to determine the
 | ||
|    SNMP context to be accessed.  The OID or OID group is then used to
 | ||
|    generate SNMP operations directed to that SNMP context.
 | ||
| 
 | ||
|    The semantics of an SNMP object URI depend on whether the OID or OID
 | ||
|    group has a suffix and what that suffix is.  There are three possible
 | ||
|    formats; in each case, the MIB object instances are designated within
 | ||
|    the SNMP context specified by the service URI portion of the SNMP
 | ||
|    object URI.  The semantics of an SNMP object URI that contains a
 | ||
|    single OID are as follows:
 | ||
| 
 | ||
|       (1) An OID without a suffix designates the MIB object instance
 | ||
|           named by the OID.
 | ||
| 
 | ||
|       (2) An OID with a "+" suffix designates the lexically next MIB
 | ||
|           object instance following the OID.
 | ||
| 
 | ||
|       (3) An OID with a ".*" suffix designates the set of MIB object
 | ||
|           instances for which the OID is a strict lexical prefix; this
 | ||
|           does not include the MIB object instance named by the OID.
 | ||
| 
 | ||
|    An OID group in an SNMP URI consists of a set of OIDs in parentheses.
 | ||
|    In each case, the OID group semantics are the extension of the single
 | ||
|    OID semantics to each OID in the group (e.g., a URI with a "+" suffix
 | ||
|    designates the set of MIB object instances consisting of the
 | ||
|    lexically next instance for each OID in the OID group).
 | ||
| 
 | ||
|    When there is a choice among URI formats to designate the same MIB
 | ||
|    object instance or instances, the above list is in order of
 | ||
|    preference (no suffix is most preferable), as it runs from most
 | ||
|    precise to least precise.  This is because an OID without a suffix
 | ||
|    precisely designates an object instance, whereas a "+" suffix
 | ||
|    designates the next object instance, which may change, and the ".*"
 | ||
|    suffix could designate multiple object instances.  Multiple
 | ||
|    syntactically distinct SNMP URIs SHOULD NOT be used to designate the
 | ||
|    same MIB object instance or set of instances, as this may cause
 | ||
|    unexpected results in URI-based systems that use string comparison to
 | ||
|    test URIs for equality.
 | ||
| 
 | ||
|    SNMP object URIs designate the data to be accessed, as opposed to the
 | ||
|    specific SNMP operations to be used for access; Section 4.2.1
 | ||
|    provides examples of how SNMP operations can be used to access data
 | ||
|    for SNMP object URIs.  Nonetheless, any applicable SNMP operation,
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                     [Page 7]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
|    including GetBulk, MAY be used to access data for all or part of one
 | ||
|    or more SNMP object URIs (e.g., via use of multiple variable bindings
 | ||
|    in a single operation); it is not necessary to use the specific
 | ||
|    operations described in Section 4.2.1 as long as the results
 | ||
|    (returned variable bindings or error) could have been obtained by
 | ||
|    following Section 4.2.1's descriptions.  The use of relative
 | ||
|    references that do not change the contextName (i.e., ./<oid>) should
 | ||
|    be viewed as a hint that optimization of SNMP access across multiple
 | ||
|    SNMP URIs may be possible.
 | ||
| 
 | ||
|    An SNMP object URI MAY also be used to specify a MIB object instance
 | ||
|    or instances to be written; this causes generation of an SNMP Set
 | ||
|    operation instead of a Get.  The "+" and ".*" suffixes MUST NOT be
 | ||
|    used in this case; any attempt to do so is an error that MUST NOT
 | ||
|    generate any SNMP Set operations.  Values to be written to the MIB
 | ||
|    object instance or instances are not specified within an SNMP object
 | ||
|    URI.
 | ||
| 
 | ||
|    SNMP object URIs designate data in SNMP MIBs and hence do not provide
 | ||
|    the means to generate all possible SNMP protocol operations.  For
 | ||
|    example, data access for an SNMP object URI cannot directly generate
 | ||
|    either Snmpv2-Trap or InformRequest notifications, although side
 | ||
|    effects of data access could cause such notifications (depending on
 | ||
|    the MIB).  In addition, whether and how GetBulk is used for an SNMP
 | ||
|    object URI with a ".*" suffix is implementation specific.
 | ||
| 
 | ||
| 4.2.1.  SNMP Object URI Data Access
 | ||
| 
 | ||
|    Data access based on an SNMP object URI returns an SNMP variable
 | ||
|    binding for each MIB object instance designated by the URI, or an
 | ||
|    SNMP error if the operation fails.  An SNMP variable binding binds a
 | ||
|    variable name (OID) to a value or an SNMP exception (see [RFC3416]).
 | ||
|    The SNMP operation or operations needed to access data designated by
 | ||
|    an SNMP object URI depend on the OID or OID group suffix or absence
 | ||
|    thereof.  The following descriptions are not the only method of
 | ||
|    performing data access for an SNMP object URI; any suitable SNMP
 | ||
|    operations may be used as long as the results (returned variable
 | ||
|    bindings or error) are functionally equivalent.
 | ||
| 
 | ||
|       (1) For an OID or OID group without a suffix, an SNMP Get
 | ||
|           operation is generated using each OID as a variable binding
 | ||
|           name.  If an SNMP error occurs, that error is the result of
 | ||
|           URI data access; otherwise, the returned variable binding or
 | ||
|           bindings are the result of URI data access.  Note that any
 | ||
|           returned variable binding may contain an SNMP "noSuchObject"
 | ||
|           or "noSuchInstance" exception.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                     [Page 8]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
|       (2) For an OID or OID group with a "+" suffix, an SNMP GetNext
 | ||
|           operation is generated using each OID as a variable binding
 | ||
|           name.  If an SNMP error occurs, that error is the result of
 | ||
|           URI data access; otherwise, the returned variable binding or
 | ||
|           bindings are the result of URI data access.  Note that any
 | ||
|           returned variable binding may contain an SNMP "endOfMibView"
 | ||
|           exception.
 | ||
| 
 | ||
|       (3) For an OID or OID group with a ".*" suffix, an SNMP GetNext
 | ||
|           operation is initially generated using each OID as a variable
 | ||
|           binding name.  If the result is an SNMP error, that error is
 | ||
|           the result of URI data access.  If all returned variable
 | ||
|           bindings contain either a) an OID for which the corresponding
 | ||
|           URI OID is not a lexical prefix or b) an SNMP "endOfMibView"
 | ||
|           exception, then the returned variable bindings are the result
 | ||
|           of URI data access.
 | ||
| 
 | ||
|           Otherwise, the results of the GetNext operation are saved, and
 | ||
|           another SNMP GetNext operation is generated using the newly
 | ||
|           returned OIDs as variable binding names.  This is repeated
 | ||
|           (save the results and generate a GetNext with newly returned
 | ||
|           OIDs as variable binding names) until all the returned
 | ||
|           variable bindings from a GetNext contain either a) an OID for
 | ||
|           which the corresponding URI OID is not a lexical prefix or b)
 | ||
|           an SNMP "endOfMibView" exception.  The results from all of the
 | ||
|           GetNext operations are combined to become the overall result
 | ||
|           of URI data access; this may include variable bindings whose
 | ||
|           OID is not a lexical extension of the corresponding URI OID.
 | ||
|           If the OID subtrees (set of OIDs for which a specific URI OID
 | ||
|           is a lexical prefix) are not the same size for all OIDs in the
 | ||
|           OID group, the largest subtree determines when this iteration
 | ||
|           ends.  SNMP GetBulk operations MAY be used to optimize this
 | ||
|           iterated access.
 | ||
| 
 | ||
|           Whenever a returned variable binding contains an OID for which
 | ||
|           the corresponding URI OID is not a lexical prefix or an SNMP
 | ||
|           "endOfMibView" exception, iteration of that element of the OID
 | ||
|           group MAY cease, reducing the number of variable bindings used
 | ||
|           in subsequent GetNext operations.  In this case, the results
 | ||
|           of URI data access for the SNMP URI will not consist entirely
 | ||
|           of OID-group-sized sets of variable bindings.  Even if this
 | ||
|           does not occur, the last variable binding returned for each
 | ||
|           member of the OID group will generally contain an SNMP
 | ||
|           "endOfMibView" exception or an OID for which the corresponding
 | ||
|           URI OID is not a lexical prefix.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                     [Page 9]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
| 4.3.  OID Groups in SNMP URIs
 | ||
| 
 | ||
|    Parenthesized OID groups in SNMP URIs are intended to support MIB
 | ||
|    object instances for which access via a single SNMP operation is
 | ||
|    required to ensure consistent results.  Therefore, the OIDs within an
 | ||
|    OID group in an SNMP URI SHOULD be accessed by a single SNMP
 | ||
|    operation containing a variable binding corresponding to each OID in
 | ||
|    the group.  A specific example involves the InetAddress and
 | ||
|    InetAddressType textual conventions defined in [RFC4001], for which
 | ||
|    the format of an InetAddress instance is specified by an associated
 | ||
|    InetAddressType instance.  If two such associated instances are read
 | ||
|    via separate SNMP operations, the resulting values could be
 | ||
|    inconsistent (e.g., due to an intervening Set), causing the
 | ||
|    InetAddress value to be interpreted incorrectly.
 | ||
| 
 | ||
|    This single operation requirement ("SHOULD") also applies to each OID
 | ||
|    group resulting from iterated access for an SNMP URI with a ".*"
 | ||
|    suffix.  When members of an SNMP URI OID group differ in the number
 | ||
|    of OIDs for which each is a lexical prefix, this iteration may
 | ||
|    overrun by returning numerous variable bindings for which the
 | ||
|    corresponding OID in the OID group is not a lexical prefix.  Such
 | ||
|    overrun can be avoided by using relative references within the same
 | ||
|    context (i.e., ./<oid>.* ) when it is not important to access
 | ||
|    multiple MIB object instances in a single SNMP operation.
 | ||
| 
 | ||
| 4.4.  Interoperability Considerations
 | ||
| 
 | ||
|    This document defines a transport-independent "snmp" scheme that is
 | ||
|    intended to accommodate SNMP transports other than UDP.  UDP is the
 | ||
|    default transport for access to information specified by an SNMP URI
 | ||
|    for backward compatibility with existing usage, but other transports
 | ||
|    MAY be used.  If more than one transport can be used (e.g., SNMP over
 | ||
|    TCP [RFC3430] in addition to SNMP over UDP), the information or SNMP
 | ||
|    service access designated by an SNMP URI SHOULD NOT depend on which
 | ||
|    transport is used (for SNMP over TCP, this is implied by Section 2 of
 | ||
|    [RFC3430]).
 | ||
| 
 | ||
|    An SNMP URI designates use of SNMPv3 as specified by [RFC3416],
 | ||
|    [RFC3417], and related documents, but older versions of SNMP MAY be
 | ||
|    used in accordance with [RFC3584] when usage of such older versions
 | ||
|    is unavoidable.  For SNMPv1 and SNMPv2c, the securityName,
 | ||
|    contextName, and contextEngineID elements of an SNMP URI are mapped
 | ||
|    to/from the community name, as described in [RFC3584].  When the
 | ||
|    community name is kept secret as a weak form of authentication, this
 | ||
|    mapping should be configured so that these three elements do not
 | ||
|    reveal information about the community name.  If this is not done,
 | ||
|    then any SNMP URI component that would disclose significant
 | ||
|    information about a secret community name SHOULD be omitted.  Note
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                    [Page 10]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
|    that some community names contain reserved characters (e.g., "@")
 | ||
|    that require percent encoding when they are used in an SNMP URI.
 | ||
|    SNMP versions (e.g., v3) have been omitted from the SNMP URI scheme
 | ||
|    to permit use of older versions of SNMP, as well as any possible
 | ||
|    future successor to SNMPv3.
 | ||
| 
 | ||
| 5.  Examples
 | ||
| 
 | ||
|       snmp://example.com
 | ||
| 
 | ||
|    This example designates the default SNMP context at the SNMP agent at
 | ||
|    port 161 of host example.com .
 | ||
| 
 | ||
|       snmp://tester5@example.com:8161
 | ||
| 
 | ||
|    This example designates the default SNMP context at the SNMP agent at
 | ||
|    port 8161 of host example.com and indicates that the SNMP
 | ||
|    securityName "tester5" is to be used to access that agent.  A
 | ||
|    possible reason to use a non-standard port is for testing a new
 | ||
|    version of SNMP agent code.
 | ||
| 
 | ||
|       snmp://example.com/bridge1
 | ||
| 
 | ||
|    This example designates the "bridge1" SNMP context at example.com.
 | ||
|    Because the contextEngineID component of the URI is omitted, there
 | ||
|    SHOULD be at most one SNMP context engine at example.com that
 | ||
|    supports the "bridge1" context.
 | ||
| 
 | ||
|       snmp://example.com/bridge1;800002b804616263
 | ||
| 
 | ||
|    This example designates the "bridge1" context at snmp.example.com via
 | ||
|    the SNMP context engine 800002b804616263 (string representation of a
 | ||
|    hexadecimal value).  This avoids ambiguity if any other context
 | ||
|    engine supports a "bridge1" context.  The above two examples are
 | ||
|    based on the figure in Section 3.3 of [RFC3411].
 | ||
| 
 | ||
|       snmp://example.com//1.3.6.1.2.1.1.3.0
 | ||
|       snmp://example.com//1.3.6.1.2.1.1.3+
 | ||
|       snmp://example.com//1.3.6.1.2.1.1.3.*
 | ||
| 
 | ||
|    These three examples all designate the sysUpTime.0 object instance in
 | ||
|    the SNMPv2-MIB or RFC1213-MIB for the default SNMP context ("") at
 | ||
|    example.com as sysUpTime.0 is:
 | ||
| 
 | ||
|       a) designated directly by OID 1.3.6.1.2.1.1.3.0,
 | ||
| 
 | ||
|       b) the lexically next MIB object instance after the OID
 | ||
|          1.3.6.1.2.1.1.3, and
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                    [Page 11]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
|       c) the only MIB object instance whose OID has 1.3.6.1.2.1.1.3 as a
 | ||
|          lexical prefix.
 | ||
| 
 | ||
|    These three examples are provided for illustrative purposes only, as
 | ||
|    multiple syntactically distinct URIs SHOULD NOT be used to designate
 | ||
|    the same MIB object instance, in order to avoid unexpected results in
 | ||
|    URI-based systems that use string comparison to test URIs for
 | ||
|    equality.
 | ||
| 
 | ||
|       snmp://example.com/bridge1/1.3.6.1.2.1.2.2.1.8.*
 | ||
| 
 | ||
|    This example designates the ifOperStatus column of the IF-MIB in the
 | ||
|    bridge1 SNMP context at example.com.
 | ||
| 
 | ||
|       snmp://example.com//(1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.2.2.1.8).*
 | ||
| 
 | ||
|    This example designates all (ifAdminStatus, ifOperStatus) pairs in
 | ||
|    the IF-MIB in the default SNMP context at example.com.
 | ||
| 
 | ||
| 6.  Security Considerations
 | ||
| 
 | ||
|    An intended use of this URI scheme is designation of the location of
 | ||
|    management access to communication devices.  Such location
 | ||
|    information may be considered sensitive in some environments, making
 | ||
|    it important to control access to this information and possibly even
 | ||
|    to encrypt it when it is sent over the network.  All uses of this URI
 | ||
|    scheme should provide security mechanisms appropriate to the
 | ||
|    environments in which such uses are likely to be deployed.
 | ||
| 
 | ||
|    The SNMP architecture includes control of access to management
 | ||
|    information (see Section 4.3 of [RFC3411]).  An SNMP URI does not
 | ||
|    contain sufficient security information to obtain access in all
 | ||
|    situations, as the SNMP URI syntax is incapable of encoding SNMP
 | ||
|    securityModels, SNMP securityLevels, and credential or keying
 | ||
|    information for SNMP securityNames.  Other means are necessary to
 | ||
|    provide such information; one possibility is out-of-band pre-
 | ||
|    configuration of the SNMP manager, as shown in the diagrams in
 | ||
|    Section 2.
 | ||
| 
 | ||
|    By itself, the presence of a securityName in an SNMP URI does not
 | ||
|    authorize use of that securityName to access management information.
 | ||
|    Instead, the SNMP manager SHOULD match the securityName in the URI to
 | ||
|    an SNMP securityName and associated security information that have
 | ||
|    been pre-configured for use by the manager.  If an SNMP URI contains
 | ||
|    a securityName that the SNMP manager is not provisioned to use, SNMP
 | ||
|    operations for that URI SHOULD NOT be generated.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                    [Page 12]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
|    SNMP versions prior to SNMPv3 did not include adequate security.
 | ||
|    Even if the network itself is secure (for example, via use of IPsec),
 | ||
|    there is no control over who on the secure network is allowed to
 | ||
|    access and GET/SET (read/change/create/delete) the objects in MIB
 | ||
|    modules.  It is RECOMMENDED that implementers consider the security
 | ||
|    features provided by the SNMPv3 framework (see [RFC3410], Section 8,
 | ||
|    for an overview), including full support for SNMPv3 cryptographic
 | ||
|    mechanisms (for authentication and privacy).  This is of additional
 | ||
|    importance for MIB elements considered sensitive or vulnerable
 | ||
|    because GETs have side effects.
 | ||
| 
 | ||
|    Further, deployment of SNMP versions prior to SNMPv3 is NOT
 | ||
|    RECOMMENDED.  Instead, it is RECOMMENDED to deploy SNMPv3 and to
 | ||
|    enable cryptographic security.  It is then a customer/operator
 | ||
|    responsibility to ensure that the SNMP entity giving access to a MIB
 | ||
|    module instance is properly configured to give access to the objects
 | ||
|    only to those principals (users) that have legitimate rights to
 | ||
|    indeed GET or SET (read/change/create/delete) them.
 | ||
| 
 | ||
| 6.1.  SNMP URI to SNMP Gateway Security Considerations
 | ||
| 
 | ||
|    Additional security considerations apply to SNMP gateways that
 | ||
|    generate SNMP operations for SNMP URIs and return the results to
 | ||
|    clients (see Section 2) because management information is
 | ||
|    communicated beyond the SNMP framework.  In general, an SNMP gateway
 | ||
|    should have some knowledge of the structure and function of the
 | ||
|    management information that it accesses via SNMP.  Among other
 | ||
|    benefits, this allows an SNMP gateway to avoid SNMP access control
 | ||
|    failures because the gateway can reject an SNMP URI that will cause
 | ||
|    such failures before generating any SNMP operations.
 | ||
| 
 | ||
|    SNMP gateways SHOULD impose authorization or access-control checks on
 | ||
|    all clients.  If an SNMP gateway does not impose authorization or
 | ||
|    access controls, the gateway MUST NOT automatically obtain or use
 | ||
|    SNMP authentication material for arbitrary securityNames, as doing so
 | ||
|    would defeat SNMP's access controls.  Instead, all SNMP gateways
 | ||
|    SHOULD authenticate each client and check the client's authorization
 | ||
|    to use a securityName in an SNMP URI before using the securityName on
 | ||
|    behalf of that client.
 | ||
| 
 | ||
|    An SNMP gateway is also responsible for ensuring that all of its
 | ||
|    communication is appropriately secured.  Specifically, an SNMP
 | ||
|    gateway SHOULD ensure that communication of management information
 | ||
|    with any client is protected to at least the SNMP securityLevel used
 | ||
|    for the corresponding SNMP access (see Section 3.4.3 of [RFC3411] for
 | ||
|    more information on securityLevel).  If the client provides SNMP
 | ||
|    security information, the SNMP gateway SHOULD authenticate the client
 | ||
|    and SHOULD ensure that an authenticated cryptographic integrity check
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                    [Page 13]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
|    is used for that communication to prevent modification of the
 | ||
|    security information.  In addition, if a client provides any key or
 | ||
|    secret, the SNMP gateway SHOULD ensure that encryption is used in
 | ||
|    addition to the integrity check for that communication to prevent
 | ||
|    disclosure of keys or secrets.
 | ||
| 
 | ||
|    There are management objects defined in SNMP MIBs whose MAX-ACCESS is
 | ||
|    read-write and/or read-create.  Such objects may be considered
 | ||
|    sensitive or vulnerable in some network environments.  SNMP gateway
 | ||
|    support for SNMP SET operations in a non-secure environment without
 | ||
|    proper protection can have a negative effect on network operations.
 | ||
|    The individual MIB module specifications, and especially their
 | ||
|    security considerations, should be consulted for further information.
 | ||
| 
 | ||
|    Some readable objects in some MIB modules (i.e., objects with a MAX-
 | ||
|    ACCESS other than not-accessible) may be considered sensitive or
 | ||
|    vulnerable in some network environments.  It is thus important to
 | ||
|    control even GET access to these objects via an SNMP gateway and
 | ||
|    possibly to even encrypt the values of these objects when they are
 | ||
|    sent over the network.  The individual MIB module specifications, and
 | ||
|    especially their security considerations, should be consulted for
 | ||
|    further information.  This consideration also applies to objects for
 | ||
|    which read operations have side effects.
 | ||
| 
 | ||
| 7.  IANA Considerations
 | ||
| 
 | ||
|    The IANA has registered the URL registration template found in
 | ||
|    Appendix A in accordance with [RFC2717].
 | ||
| 
 | ||
| 8.  Normative References
 | ||
| 
 | ||
|    [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
 | ||
|              Requirement Levels", BCP 14, RFC 2119, March 1997.
 | ||
| 
 | ||
|    [RFC2234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
 | ||
|              Specifications: ABNF", RFC 2234, November 1997.
 | ||
| 
 | ||
|    [RFC3061] Mealling, M., "A URN Namespace of Object Identifiers", RFC
 | ||
|              3061, February 2001.
 | ||
| 
 | ||
|    [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An
 | ||
|              Architecture for Describing Simple Network Management
 | ||
|              Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
 | ||
|              December 2002.
 | ||
| 
 | ||
|    [RFC3416] Presuhn, R., "Version 2 of the Protocol Operations for the
 | ||
|              Simple Network Management Protocol (SNMP)", STD 62, RFC
 | ||
|              3416, December 2002.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                    [Page 14]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
|    [RFC3417] Presuhn, R., "Transport Mappings for the Simple Network
 | ||
|              Management Protocol (SNMP)", STD 62, RFC 3417, December
 | ||
|              2002.
 | ||
| 
 | ||
|    [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", BCP
 | ||
|              74, RFC 3584, August 2003.
 | ||
| 
 | ||
|    [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
 | ||
|              Resource Identifier (URI): Generic Syntax", STD 66, RFC
 | ||
|              3986, January 2005.
 | ||
| 
 | ||
| 9.  Informative References
 | ||
| 
 | ||
|    [RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
 | ||
|              Resource Locators (URL)", RFC 1738, December 1994.
 | ||
| 
 | ||
|    [RFC1900] Carpenter, B. and Y. Rekhter, "Renumbering Needs Work", RFC
 | ||
|              1900, February 1996.
 | ||
| 
 | ||
|    [RFC2717] Petke, R. and I. King, "Registration Procedures for URL
 | ||
|              Scheme Names", BCP 35, RFC 2717, November 1999.
 | ||
| 
 | ||
|    [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart,
 | ||
|              "Introduction and Applicability Statements for Internet-
 | ||
|              Standard Management Framework", RFC 3410, December 2002.
 | ||
| 
 | ||
|    [RFC3430] Schoenwaelder, J., "Simple Network Management Protocol Over
 | ||
|              Transmission Control Protocol Transport Mapping", RFC 3430,
 | ||
|              December 2002.
 | ||
| 
 | ||
|    [RFC3617] Lear, E., "Uniform Resource Identifier (URI) Scheme and
 | ||
|              Applicability Statement for the Trivial File Transfer
 | ||
|              Protocol (TFTP)", RFC 3617, October 2003.
 | ||
| 
 | ||
|    [RFC4001] Daniele, M., Haberman, B., Routhier, S., and J.
 | ||
|              Schoenwaelder, "Textual Conventions for Internet Network
 | ||
|              Addresses", RFC 4001, February 2005.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                    [Page 15]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
| 10.  Acknowledgements
 | ||
| 
 | ||
|    Portions of this document were adapted from Eliot Lear's TFTP URI
 | ||
|    scheme specification [RFC3617].  Portions of the security
 | ||
|    considerations were adapted from the widely used security
 | ||
|    considerations "boilerplate" for MIB modules.  Comments from Ted
 | ||
|    Hardie, Michael Mealing, Larry Masinter, Frank Strauss, Bert Wijnen,
 | ||
|    Steve Bellovin, the mreview@ops.ietf.org mailing list and the
 | ||
|    uri@w3c.org mailing list on earlier versions of this document have
 | ||
|    resulted in significant improvements and are gratefully acknowledged.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                    [Page 16]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
| Appendix A.  Registration Template
 | ||
| 
 | ||
|    URL scheme name: snmp
 | ||
|    URL scheme syntax: Section 3
 | ||
|    Character encoding considerations: Section 3
 | ||
|    Intended usage: Sections 1 and 2
 | ||
|    Applications and/or protocols which use this scheme: SNMP, all
 | ||
|       versions, see [RFC3410] and [RFC3584].  Also SNMP over TCP,
 | ||
|       see [RFC3430].
 | ||
|    Interoperability considerations: Section 4.4
 | ||
|    Security considerations: Section 6
 | ||
|    Relevant publications: See [RFC3410] for list.  Also [RFC3430]
 | ||
|       and [RFC3584].
 | ||
|    Contact: David L. Black, see below
 | ||
|    Author/Change Controller: IESG
 | ||
| 
 | ||
| Authors' Addresses
 | ||
| 
 | ||
|    David L. Black
 | ||
|    EMC Corporation
 | ||
|    176 South Street
 | ||
|    Hopkinton, MA 01748
 | ||
| 
 | ||
|    Phone: +1 (508) 293-7953
 | ||
|    EMail: black_david@emc.com
 | ||
| 
 | ||
| 
 | ||
|    Keith McCloghrie
 | ||
|    Cisco Systems, Inc.
 | ||
|    170 West Tasman Drive
 | ||
|    San Jose, CA USA 95134
 | ||
| 
 | ||
|    Phone: +1 (408) 526-5260
 | ||
|    EMail: kzm@cisco.com
 | ||
| 
 | ||
| 
 | ||
|    Juergen Schoenwaelder
 | ||
|    International University Bremen
 | ||
|    P.O. Box 750 561
 | ||
|    28725 Bremen
 | ||
|    Germany
 | ||
| 
 | ||
|    Phone: +49 421 200 3587
 | ||
|    EMail: j.schoenwaelder@iu-bremen.de
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                    [Page 17]
 | ||
| 
 | ||
| RFC 4088                  URI Scheme for SNMP                  June 2005
 | ||
| 
 | ||
| 
 | ||
| Full Copyright Statement
 | ||
| 
 | ||
|    Copyright (C) The Internet Society (2005).
 | ||
| 
 | ||
|    This document is subject to the rights, licenses and restrictions
 | ||
|    contained in BCP 78, and except as set forth therein, the authors
 | ||
|    retain all their rights.
 | ||
| 
 | ||
|    This document and the information contained herein are provided on an
 | ||
|    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
 | ||
|    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
 | ||
|    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
 | ||
|    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
 | ||
|    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
 | ||
|    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 | ||
| 
 | ||
| Intellectual Property
 | ||
| 
 | ||
|    The IETF takes no position regarding the validity or scope of any
 | ||
|    Intellectual Property Rights or other rights that might be claimed to
 | ||
|    pertain to the implementation or use of the technology described in
 | ||
|    this document or the extent to which any license under such rights
 | ||
|    might or might not be available; nor does it represent that it has
 | ||
|    made any independent effort to identify any such rights.  Information
 | ||
|    on the procedures with respect to rights in RFC documents can be
 | ||
|    found in BCP 78 and BCP 79.
 | ||
| 
 | ||
|    Copies of IPR disclosures made to the IETF Secretariat and any
 | ||
|    assurances of licenses to be made available, or the result of an
 | ||
|    attempt made to obtain a general license or permission for the use of
 | ||
|    such proprietary rights by implementers or users of this
 | ||
|    specification can be obtained from the IETF on-line IPR repository at
 | ||
|    http://www.ietf.org/ipr.
 | ||
| 
 | ||
|    The IETF invites any interested party to bring to its attention any
 | ||
|    copyrights, patents or patent applications, or other proprietary
 | ||
|    rights that may cover technology that may be required to implement
 | ||
|    this standard.  Please address the information to the IETF at ietf-
 | ||
|    ipr@ietf.org.
 | ||
| 
 | ||
| Acknowledgement
 | ||
| 
 | ||
|    Funding for the RFC Editor function is currently provided by the
 | ||
|    Internet Society.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Black, et al.               Standards Track                    [Page 18]
 | ||
| 
 |