home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-snmpv3-next-gen-arch-00.txt < prev    next >
Text File  |  1997-04-28  |  60KB  |  1,843 lines

  1.  
  2.                Architecture for the Next Generation
  3.                Simple Network Management Protocol (SNMPng)
  4.  
  5.                             26 April 1997
  6.  
  7.  
  8.                               D. Harrington
  9.                           Cabletron Systems, Inc.
  10.                              dbh@cabletron.com
  11.  
  12.                                B. Wijnen
  13.                          IBM T.J. Watson Research
  14.                             wijnen@vnet.ibm.com
  15.  
  16.  
  17.                   <draft-ietf-snmpv3-next-gen-arch-00.txt>
  18.  
  19.  
  20.  
  21.  
  22.                           Status of this Memo
  23.  
  24. This document is an Internet-Draft. Internet-Drafts are working
  25. documents of the Internet Engineering Task Force (IETF), its areas, and
  26. its working groups. Note that other groups may also distribute working
  27. documents as Internet-Drafts.
  28.  
  29. Internet-Drafts are draft documents valid for a maximum of six months
  30. and may be updated, replaced, or obsoleted by other documents at any
  31. time. It is inappropriate to use Internet- Drafts as reference material
  32. or to cite them other than as ``work in progress.''
  33.  
  34. To learn the current status of any Internet-Draft, please check the
  35. ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow
  36. Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe),
  37. ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  38.  
  39.  
  40.  
  41.                              Abstract
  42.  
  43. This document describes an architecture for the Next-Generation of
  44. the Simple Network Management Protocol (SNMPng).  The architecture
  45. is designed to be modular to allow the evolution of the protocol
  46. over time. The major portions of the architecture are 1) a message
  47. processing and control framework, 2) a security framework, and
  48. 3) a local processing framework.
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. Harrington/Wijnen         Expires October 1977        [Page  1]
  56. \
  57. Draft              Architectural Model for SNMPng             April 1997
  58.  
  59.  
  60. 0.  Change Log
  61.  
  62. [version 1.8]
  63.         1. changed filename to internet-drafts assigned name
  64. [version 1.7]
  65.         1. Truncate lines to 72 (more to be done)
  66.         2. Prepare for pagination
  67.         3. Added references section
  68.         4. Let table of contents be generated
  69. [version 1.6]
  70.         1. added abstract
  71.         2. davel's comments
  72.         3. bert's comments
  73.         4. reverted to QoS since it was less work.
  74.         5. completed section 8
  75.         6. Security Considerations, etc
  76.         7. table of contents
  77. [version 1.5]
  78.         1. add goals/constraints from issues list
  79.         2. add discussion of proxy as App
  80.         3. move ngMIB to arch from LPM doc
  81.         4. define LCD versus SCD
  82.         5. copy Bert's 2.x that apply to framework
  83.         6. modify Message definition to better match Bert's ASN.1
  84. [version 1.4]
  85.         1. modified intro
  86.         2. added section on design principles/goals
  87.         3. added section on message contents and service interfaces
  88.         4. defined LP-F versus LP-M
  89.         5. changed QoS to msgFlags
  90. [version 1.3]
  91.         1. modified title from Security and Framework Evolution to
  92.            Next Generation
  93.         2. expanded section 4 - architectural design goals
  94.         3. replaced all acronyms with the new acronyms
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Harrington/Wijnen         Expires October 1977        [Page  2]
  115. \
  116. Draft              Architectural Model for SNMPng             April 1997
  117.  
  118.  
  119. 1. Introduction
  120.  
  121. A management system contains: several (potentially many) nodes, each
  122. with a processing entity, termed an agent, which has access to
  123. management instrumentation; at least one management station; and, a
  124. management protocol, used to convey management information between the
  125. agents and management stations.
  126.  
  127. Management stations execute management applications which monitor and
  128. control managed elements. Managed elements are devices such as hosts,
  129. routers, terminal servers, etc., which are monitored and controlled via
  130. access to their management information.
  131.  
  132. Operations of the protocol are carried out under an administrative
  133. framework which defines minimum policies for mechanisms which provide
  134. message-level security, access control for managed objects, and
  135. interaction between the protocol engine and the applications which use
  136. the services of the engine.
  137.  
  138. It is the purpose of this document to define a framework which can
  139. evolve to realize effective SNMP network management in a variety of
  140. configurations and environments. The framework has been designed to
  141. meet the needs of implementors of both minimal agents and full-function
  142. network enterprise management stations.
  143.  
  144.  
  145. 1.1. A Note on Terminology
  146.  
  147. For the purpose of exposition, the original Internet-standard Network
  148. Management Framework, as described in RFCs 1155, 1157, and 1212, is
  149. termed the SNMP version 1 framework (SNMPv1). A partially-updated
  150. Internet-standard Network Management framework , as described
  151. in RFCs 1902-1908, is termed the SNMP version 2 framework (SNMPv2).
  152. The current framework, meant to complement the SNMPv2 framework,
  153. is termed the SNMP next generation framework (SNMPng).
  154.  
  155. SNMPng provides a framework for the evolution of multiple
  156. (sub-)frameworks.
  157.  
  158. Throughout the rest of this document, the term Framework will
  159. refer to an abstract and incomplete specification of a portion of
  160. SNMPng, that will be further refined by a Model specification.
  161.  
  162. A Model describes a specific design of a Framework, defining
  163. additional constraints and rules for conformance to the model.
  164. A model is sufficiently detailed a design to make it possible
  165. to implement the specification.
  166.  
  167. A Implementation is an instantiation of a Framework, conforming to a
  168. specific Model.
  169.  
  170.  
  171.  
  172.  
  173. Harrington/Wijnen         Expires October 1977        [Page  3]
  174. \
  175. Draft              Architectural Model for SNMPng             April 1997
  176.  
  177.  
  178. 2. Overview
  179.  
  180. The architecture presented here emphasizes the use of modularity to
  181. allow the evolution of portions of SNMP without requiring a redesign of
  182. the general architecture of SNMP.
  183.  
  184. The processing of SNMP messages is procedural - there are specific
  185. steps which must be accomplished in specific order of processing.
  186. These steps fall into general categories of similar functionality.
  187. This document will describe major abstractions of functionality
  188. required of an SNMP engine, and the abstract interactions between
  189. these major categories.
  190.  
  191. This document will describe how this architecture is meant to allow
  192. modules of functionality corresponding to these abstract categories to
  193. be designed to allow the evolution of the whole by modifying discrete
  194. modules within the architecture.
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232. Harrington/Wijnen         Expires October 1977        [Page  4]
  233. \
  234. Draft              Architectural Model for SNMPng             April 1997
  235.  
  236.  
  237. 3. An Evolutionary Architecture - Design Goals
  238.  
  239. The goals of the architectural design are to use encapsulation,
  240. cohesion, hierarchical rules, and loose coupling to reduce complexity
  241. of design and make the evolution of portions of the architecture
  242. possible.
  243.  
  244. 3.1. Encapsulation
  245.  
  246. Encapsulation describes the practice of hiding the details that are
  247. used internal to a process. Some data is required for a given
  248. procedure, but isn't needed by any other part of the process.
  249.  
  250. In networking, the concept of a layered stack reflects this approach.
  251. The transport layer contains data specific to its processing; the data
  252. is not visible to the other layers. In programming this is reflected
  253. in language elements such as "file static" variables in C, and
  254. "private" in C++, etc.
  255.  
  256. In the SNMPng architecture, all data used for processing only within a
  257. functional portion of the architecture should have its visibility
  258. restricted to that portion if possible. The data should be accessed
  259. only by that functionality defined with the data. No reference to the
  260. data should be made from outside the functional portion of the
  261. architecture, except through predefined public interfaces.
  262.  
  263. 3.2. Cohesion
  264.  
  265. Similar functions can be grouped together and their differences
  266. ignored, so they can be dealt with as a single entity. It is important
  267. that the functions which are grouped together are actually similar.
  268. For instance, authentication and encryption are both security functions
  269. which act on the message. Access control, while similar in some ways,
  270. is not similar in that it does not work on the message, it works on the
  271. contents of the message. The similarity of the data used to perform
  272. functions can be a good indicator of the similarity of the functions.
  273.  
  274. Similar functions, especially those that use the same data elements,
  275. should be defined together. The security functions which operate at
  276. the message level should be defined in a document together with the
  277. definitions for those data elements that are used only by those
  278. security functions. For example, a MIB with authentication keys is
  279. used only by authentication functions; they should be defined together.
  280.  
  281. 3.3. Hierarchical Rules
  282.  
  283. Functionality can be grouped into hierarchies where each element in the
  284. hierarchy receives general characteristics from its direct superior,
  285. and passes on those characteristics to each of its direct subordinates.
  286.  
  287.  
  288.  
  289.  
  290.  
  291. Harrington/Wijnen         Expires October 1977        [Page  5]
  292. \
  293. Draft              Architectural Model for SNMPng             April 1997
  294.  
  295.  
  296. The SNMPng architecture uses the hierarchical approach by defining
  297. frameworks, which specify the general rules of a portion of the system,
  298. models which define the specific rules to be followed by an
  299. implementation of the portion of the system, and implementations which
  300. encode those rules into reality for a portion of the system.
  301.  
  302. It is expected that within portions of the system, hierarchical
  303. relationships will be used to compartmentalize, or modularize, the
  304. implementation of specific functionality. For example, it is expected
  305. that within the security portion of the system, authentication and
  306. privacy will probably be contained in separate modules, and that
  307. multiple authentication and privacy mechanisms will be supported by
  308. allowing supplemental modules that provide protocol-specific
  309. authentication and privacy services.
  310.  
  311. 3.4. Coupling
  312.  
  313. Coupling describes the amount of interdependence between parts of
  314. a system. Loose coupling indicates that two sub-systems are relatively
  315. independent of each other; tight coupling indicates a high degree of
  316. mutual dependence.
  317.  
  318. To make it possible to evolve the architecture by replacing only part
  319. of the system, or by supplementing existing portions with alternate
  320. mechanisms for similar functionality, without obsoleting the complete
  321. system, it is necessary to limit the coupling of the parts.
  322.  
  323. Encapsulation and cohesion help to reduce coupling by limiting the
  324. visibility of those parts that are only needed within portions of a
  325. system. Another mechanism is to constrain the nature of interactions
  326. between various parts of the system.
  327.  
  328. This can be done by defining fixed, generic, flexible, interfaces
  329. between the parts of the system. The concept of plug-and-play hardware
  330. components is based on that type of interface between the hardware
  331. component and system into which it will be "plugged."
  332.  
  333. SNMPng has chosen this approach so individual portions of the system
  334. can be upgraded over time, while keeping the overall system intact.
  335. Cross-references between document describing the subsystems should be
  336. limited to Framework or Model defined interfaces wherever possible.
  337.  
  338. Loose coupling works well with the IETF standards process. If we
  339. separate message-handling from security and from local processing,
  340. then the separate portions of the system can move through the standards
  341. process with less dependence on the status of the other portions of the
  342. standard. Security models may be able to be re-opened for discussion
  343. due to patents, new research, export laws, etc., as is clearly expected
  344. by the WG, without needing to reopen the documents which detail the
  345. message format or the local processing of PDUs. Thus, the standards
  346. track status of related, but independent, documents is not affected.
  347.  
  348.  
  349.  
  350. Harrington/Wijnen         Expires October 1977        [Page  6]
  351. \
  352. Draft              Architectural Model for SNMPng             April 1997
  353.  
  354.  
  355.  
  356. 4.0. Abstract Functionality
  357.  
  358. The architecture described here is composed of four "major" frameworks,
  359. each capable of being defined as different models, and which may be
  360. implemented as modules which can be replaced or supplemented as the
  361. growing needs of network management require.
  362.  
  363. The major frameworks are a Message Processing and Control Framework, a
  364. Security Framework, a Local Processing Framework, and Applications.
  365. Interfaces between the major frameworks are deliberately abstract and
  366. fixed. An SNMPng engine is comprised of implementations of a
  367. Message Processing and Control Framework, a Security Framework, and
  368. a Local Processing Framework. Applications are external to the engine.
  369.  
  370. 4.1. Message Processing and Control
  371.  
  372. An SNMP engine interacts with the network and with applications through
  373. the Message Processing and Control Framework.
  374.  
  375. Messages being sent to, or received from, the network use a format
  376. defined by the SNMP protocol. The possible contents, and their
  377. format, are also defined by the SNMP protocol.
  378.  
  379. Messages being sent to, or received from, applications use formats
  380. which may be protocol-defined or may be implementation-specific. The
  381. possible contents, and their format, may be protocol-defined or
  382. implementation-specific.
  383.  
  384. The processing of messages must be controlled to ensure that applicable
  385. rules are followed during the processing. Some messages, such as an
  386. SNMP Get-Request received from the network for objects managed by this
  387. engine, can be processed directly by the engine; other messages must be
  388. passed to external processes, such as a remote SNMP engine or an
  389. application. Some messages require security; others don't. Some engines
  390. support multiple versions of SNMP messages and/or PDU formats.
  391.  
  392. The engine must control the order and the combinations of options used
  393. in processing and generating messages.
  394.  
  395. 4.2. Security
  396.  
  397. Some environments require secure protocol interactions. Security is
  398. normally applied at two different stages - in the transmission/receipt
  399. of messages, and in the processing of the contents of messages. For
  400. purposes of this document, "security" refers to message-level security;
  401. "access control" refers to the security applied to protocol operations.
  402.  
  403. Authentication, encryption, and timeliness checking are common
  404. functions of message level security.
  405.  
  406.  
  407.  
  408.  
  409. Harrington/Wijnen         Expires October 1977        [Page  7]
  410. \
  411. Draft              Architectural Model for SNMPng             April 1997
  412.  
  413.  
  414. 4.3. Local Processing
  415.  
  416. Local Processing deals with the contents of messages. It interacts with
  417. the underlying operating system to access the instrumentation which is
  418. represented as managed objects in SNMP.
  419.  
  420. During local processing, it may be required to control access to
  421. certain instrumentation for certain operations. The enforcement of
  422. access rights requires the means to identify the access allowed for
  423. the entity on whose behalf a request is generated.
  424.  
  425. 4.4. Applications
  426.  
  427. Applications are processes which interact with the SNMP engine using
  428. messages that may use formats defined by a protocol, or that may use
  429. implementation-specific formats.
  430.  
  431. Applications are developed to achieve certain goals. They use the SNMP
  432. engine to achieve their goals, but their purpose is outside the scope
  433. of the SNMP protocol definitions.
  434.  
  435. For example, management stations execute applications which monitor
  436. and control managed elements. A proxy application may forward a
  437. message from one SNMP engine to another (an snmp proxy), or convert
  438. a message from one SNMP format to another (also an snmp proxy), or
  439. from SNMP to another protocol ( a foreign proxy). The purpose and
  440. design of applications are beyond the scope of the SNMPng engine
  441. architecture.
  442.  
  443. 4.5. Definition of SNMPng acronyms and terms:
  444.  
  445.    MPC-F   - Message Processing and Control Framework
  446.    MPC-M   - Message Processing and Control Model
  447.    MPC-I   - Message Processing and Control Implementation
  448.  
  449.    SF-F    - Security Framework
  450.    SF-M    - Security Framework Model
  451.    SF-I    - Security Framework Implementation
  452.  
  453.    LP-F    - Local Processing Framework
  454.    LP-M    - Local Processing Model
  455.    LP-I    - Local Processing Implementation
  456.  
  457.    LCD     - Local Configuration Datastore
  458.    SCD     - Security Configuration Datastore
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468. Harrington/Wijnen         Expires October 1977        [Page  8]
  469. \
  470. Draft              Architectural Model for SNMPng             April 1997
  471.  
  472.  
  473. 5. Elements of the Framework
  474.  
  475. This section contains definitions of terms used in the interfaces
  476. between Frameworks
  477.  
  478. 5.1. Groups
  479.  
  480. A Group identifies a set of zero or more security entities on whose
  481. behalf SNMP messages are being processed.
  482.  
  483. 5.2. Quality of Service
  484.  
  485. Messages may require different levels of security. The term used to
  486. refer to the level of security required is "Quality of Service" or QoS.
  487.  
  488. SNMPng recognizes three levels of security:
  489.    - without authentication and without privacy (noAuth/noPriv)
  490.    - with authentication but without privacy (auth/noPriv)
  491.    - with authentication and with privacy (auth/Priv)
  492.  
  493. Every message has an associated QoS; all processing (security, access
  494. control, applications, message processing and control) is required
  495. to abide the specified QoS.
  496.  
  497. 5.3. Contexts
  498.  
  499. An SNMP context is a collection of management information
  500. accessible by an SNMP agent. An item of management information
  501. may exist in more than one context. An SNMP agent potentially
  502. has access to many contexts.
  503.  
  504. 5.4. Scoped-PDU
  505.  
  506. A scoped-PDU contains a Naming-Scope that unambiguously
  507. identifies an SNMP agent and the context, (locally) accessible
  508. by that agent, to which the SNMP management information
  509. in the SNMP-PDU refers.
  510.  
  511. A Naming-Scope contains a contextID that unambiguously identifies
  512. the SNMP agent which has (local) access to the management
  513. information referred to by the contextName and the SNMP-PDU.
  514.  
  515. A Naming-Scope contains a contextName which unambiguously identifies
  516. an SNMP context accessible by the SNMP agent to which the SNMP-PDU
  517. is directed or from which the SNMP-PDU is originated.
  518.  
  519. An implementation of a Message Processing and Control Model
  520. must determine if the contextID in the scopedPDU of a received message
  521. matches the snmpNgEngineID of the current engine. If so, the scopedPDU
  522. should be processed by the Local Processing implementation.
  523.  
  524.  
  525.  
  526.  
  527. Harrington/Wijnen         Expires October 1977        [Page  9]
  528. \
  529. Draft              Architectural Model for SNMPng             April 1997
  530.  
  531.  
  532. 5.5. Security Configuration Datastore
  533.  
  534. Each Security Model may need to retain its own set of information about
  535. security entities, mechanisms, and policies. This set of information
  536. is called the SNMPng entity's Security Configuration Datastore (SCD).
  537. In order to allow an SNMPng entity's SCD to be remotely configured,
  538. portions may need to be accessible as managed objects.
  539.  
  540. 5.6. Local Configuration Datastore
  541.  
  542. Each Local Processing Model may need to retain its own set of
  543. information about access control, naming scopes, and policies.
  544. This set of information is called the SNMPng entity's Local
  545. Processing Configuration Datastore (LCD).
  546. In order to allow an SNMPng entity's LCD to be remotely configured,
  547. portions may need to be accessible as managed objects.
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586. Harrington/Wijnen         Expires October 1977        [Page 10]
  587. \
  588. Draft              Architectural Model for SNMPng             April 1997
  589.  
  590.  
  591. 6. Model Design Requirements
  592.  
  593. The basic design elements come from SNMPv2u and SNMPv2*, as
  594. described in RFCs 1909-1910, and from a set of internet drafts.
  595. these are the two most popular de facto "administrative framework"
  596. standards that include security and access control for SNMPv2.
  597.  
  598. SNMPv1 and SNMPv2c [RFC1901] are two administrative frameworks based
  599. on communities to provide trivial authentication and access control.
  600. SNMPng allows implementations to add support for features of SNMPv1
  601. and SNMPv2c, and to coexist with SNMPv1 and SNMPv2c engines, but
  602. this document does not provide guidelines for that coexistence.
  603.  
  604. 6.1. Security Model Design Requirements
  605.  
  606. Received messages must be validated by a model of the Security
  607. Framework before being processed by the Local Processing Framework.
  608. Validation includes authentication and privacy processing if needed,
  609. but it is explicitly allowed to send messages which do not require
  610. authentication or privacy.
  611.  
  612. A received message will contain a specified Quality of Service to be
  613. used during processing. All messages requiring privacy must also
  614. require authentication.
  615.  
  616. A Security Model specifies rules by which authentication and privacy
  617. are to be done. A model may define mechanisms to provide additional
  618. security features, but is restricted to using the interface, defined in
  619. this document, between the Message Processing and Control Framework and
  620. the Security Framework.
  621.  
  622. Each Security Model may allow multiple security mechanisms to be used
  623. concurrently within an implementation of the model. Each Security Model
  624. defines how to determine which protocol to use, given the QoS and the
  625. security parameters passed in the message. Each Security Model, with
  626. its associated protocol(s) defines how the sending/receiving entities
  627. are identified, how secrets are configured, and how security entities
  628. map to groups.
  629.  
  630. For privacy, the Security Model defines what portion of the message
  631. is encrypted.
  632.  
  633. Security Models are replaceable within the SNMPng Framework. Multiple
  634. Security Model Implementations may exist concurrently within an engine.
  635. The number of Security Models defined by the SNMP community should
  636. remain small to promote interoperability. It is required that an
  637. implementation of the User-Based Security Model be used in all
  638. engines to ensure at least a minimal level of interoperability.
  639.  
  640. Each Security Model must define a mapping to be used between a unique
  641. entity within the model's SCD, and a securityCookie. A securityCookie
  642.  
  643.  
  644.  
  645. Harrington/Wijnen         Expires October 1977        [Page 11]
  646. \
  647. Draft              Architectural Model for SNMPng             April 1997
  648.  
  649.  
  650. is an implementation-specific handle to identify the unique entity to
  651. which it maps. If an implementation supports multiple Security Models,
  652. the securityCookie must include a mechanism for determining which
  653. Security Model SCD is referenced. The securityCookie, in combination
  654. with the engineID of the engine which instantiates the securityCookie,
  655. can be used as a globally-unique identifier for a security entity. The
  656. type of a securityCookie is an OCTET STRING, but the format of the
  657. contents is implementation-specific. It is important to note that
  658. since the securityCookie may be accessible outside the engine, the
  659. securityCookie must not disclose any sensitive data, such as by
  660. including passwords in open text in the securityCookie.
  661.  
  662. Each Security Model defines the MIBs required for security processing,
  663. including any MIBs required for the protocol(s) supported. The MIB
  664. formats must be defined concurrently with the procedures which use
  665. the MIB. The MIBs are subject to normal security and access control
  666. rules.
  667.  
  668.  
  669. The persistent data used for security should be SNMP-manageable, but
  670. the Security Model defines whether an instantiation of the MIB is a
  671. conformance requirement. The mapping between a securityCookie and the
  672. unique security entity within the engine must be able to be determined
  673. using SNMP, if the MIB is instantiated and access control policy
  674. allows.
  675.  
  676. Protocols should be uniquely identified using Object Identifiers.
  677. Enterprise-specific protocols should be defined within the enterprise
  678. subtree. A protocolID MIB should be defined for IETF standard
  679. protocols for authentication and privacy.
  680.  
  681. Within any Security Model, there should be no reference to any specific
  682. Local Processing Model, or to data defined by a Local Processing Model.
  683.  
  684. 6.2. Local Processing Model Design Requirements
  685.  
  686. A Local processing Model only processes scopedPDUs which contain a
  687. contextID which matches the engineID of the current engine.
  688.  
  689. A Local Processing Model must determine whether the specified group is
  690. allowed to perform the requested operation on the managed objects in
  691. the PDU. For messages with a QoS specifying authentication, the group
  692. used for access control must be the same group provided by the Message
  693. Processing and Control Framework.
  694.  
  695. A Local Processing Model specifies the rules by which access control
  696. and PDU processing are to be done. A model may define mechanisms to
  697. provide additional processing features, but is restricted to using the
  698. interface, defined in this document, between the Message Processing
  699. and Control Framework and the Local Processing Framework.
  700.  
  701.  
  702.  
  703.  
  704. Harrington/Wijnen         Expires October 1977        [Page 12]
  705. \
  706. Draft              Architectural Model for SNMPng             April 1997
  707.  
  708.  
  709. The persistent data used for local processing should be manageable
  710. using SNMP, but the Local Processing Model defines whether an
  711. instantiation of the MIB is a conformance requirement.
  712.  
  713. Within any Local Processing Model, there should be no reference to
  714. any specific Security Model, or any data defined by a Security Model.
  715.  
  716. 6.3. Message Processing and Control Requirements
  717.  
  718. The MPC Model must always pass the complete scopedPDU, i.e. it never
  719. forwards less than the complete list of varbinds.
  720.  
  721. The MPC Model must determine whether a scopedPDU should be processed
  722. by the current engine or by an application. If a received message
  723. contains a scopedPDU with a contextID matching the engineID of the
  724. current engine, then the scopedPDU should be passed to the Local
  725. Processing Model implementation for processing.
  726.  
  727. If the MPC Model determines that the contextID does not match the
  728. engineID of the current engine, then the message parts, as specified in
  729. the interface section, are passed to a proxy application for
  730. processing.
  731.  
  732. 6.4. Applications
  733.  
  734. Applications are beyond the scope of this document, but earlier
  735. attempts to define an SNMP Framework considered proxy as a possible
  736. function of the protocol. SNMPng does not mandate support for proxy
  737. in an SNMPng implementation.
  738.  
  739. 6.4.1. A Proxy Application
  740.  
  741. The SNMPng Framework explicitly considers proxy to be an external
  742. application. There are certain issues that must be clarified regarding
  743. the relation and interface between proxy and the engine, however.
  744.  
  745. A proxy application has the responsibility to define any MIBs used
  746. to forward message contents, and to determine the address and
  747. identity to whom the message should be forwarded.
  748.  
  749. An engine supports at most one interface to proxy applications; if an
  750. implementation wishes to support multiple proxy applications, the
  751. determination of which type of proxy, and hence which proxy application
  752. should handle it, should be handled by the single proxy application to
  753. which the engine has an interface.
  754.  
  755. If proxy is supported, the engine passes all scopedPDUs with a
  756. contextID that does not match the current engine's snmpNgEngineID to
  757. the proxy application. No access control is applied to the message by
  758. the engine which passes the request to the proxy application. A
  759. scopedPDU passed to a proxy application must be a complete scopedPDU.
  760.  
  761.  
  762.  
  763. Harrington/Wijnen         Expires October 1977        [Page 13]
  764. \
  765. Draft              Architectural Model for SNMPng             April 1997
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822. Harrington/Wijnen         Expires October 1977        [Page 14]
  823. \
  824. Draft              Architectural Model for SNMPng             April 1997
  825.  
  826.  
  827. 7. The SNMPng message format:
  828.  
  829. DEFINITIONS ::=3D BEGIN
  830.  
  831. snmpNgMessage ::=3D
  832.     SEQUENCE {
  833.         -- global parameters
  834.         version
  835.             INTEGER { snmpng (3) },
  836.         msgID
  837.             INTEGER,
  838.         MMS
  839.             INTEGER,
  840.  
  841.         QoS
  842.             OCTET STRING (SIZE(1)),
  843.                    --  .... ..00   noAuth/noPriv
  844.                    --  .... ..01   auth/noPriv
  845.                    --  .... ..1.   auth/priv
  846.                    --  .... .1..   reportableFlag
  847.  
  848.         securityModel
  849.             snmpNgSecurityModel,
  850.  
  851.         -- security model-specific parameters
  852.         securityParameters
  853.             OCTET STRING, -- format defined by Security Model
  854.  
  855.         -- local-processing model-specific data
  856.         data
  857.             ScopedPduData
  858.     }
  859.  
  860.     ScopedPduData ::=3D
  861.         CHOICE {
  862.             plaintext
  863.                 ScopedPDU,
  864.             encrypted
  865.                 OCTET STRING    -- encrypted ScopedPDU
  866.         }
  867.  
  868.     scopedPDU ::=3D
  869.         SEQUENCE {
  870.             contextID
  871.                 snmpNgEngineID,
  872.             contextName
  873.                 snmpNgContextName,
  874.             data
  875.                 ANY -- e.g. PDUs as defined in RFC1905
  876.         }
  877. END
  878.  
  879.  
  880.  
  881. Harrington/Wijnen         Expires October 1977        [Page 15]
  882. \
  883. Draft              Architectural Model for SNMPng             April 1997
  884.  
  885.  
  886.  
  887.  
  888. 7.1. SNMP version
  889.  
  890. The SNMP version identifies the version of the MPC framework in use.
  891. For purposes of discouraging, but not preventing, the replacement of
  892. the Local Processing Model, the SNMP version also implies the version
  893. of the Local Processing Model.
  894.  
  895. 7.2. msgID
  896.  
  897. The msgID is used by SNMP engines to coordinate the processing of the
  898. message by different portions of the framework.
  899.  
  900. Note that the requestID used during local processing identifies the
  901. request, not the message that carried the request, and therefore might
  902. not be equal to the msgID.
  903.  
  904. 7.3. MMS
  905.  
  906. The maximum message size supported by the sender of the message.
  907.  
  908. 7.4. securityModel
  909.  
  910. Multiple security models may exist concurrently in the engine.
  911. This model number identifies which security model should be used to
  912. provide security processing for the message. The mapping to the
  913. appropriate implementation within the agent is done in an
  914. implementation-dependent manner.
  915.  
  916. The initial model of the SNMPng Security Framework is the User-Based
  917. Security Model of the SNMPng Security Framework.
  918.  
  919. 7.5. QoS
  920.  
  921. The QoS field contains flags to control the processing of the message.
  922.  
  923. If the reportableFlag is set, then reportPDUs are allowed to be
  924. returned to the sender under those conditions which cause the
  925. generation of reportPDUs. If the reportableFlag is zero, then a
  926. reportPDU must not be sent. The reportableFlag should always be zero
  927. when the message is a reportPDU, a responsePDU, or a trapPDU.
  928.  
  929. If the auth flag is set, then the security implementation is required
  930. to identify the entity on whose behalf a request is generated and to
  931. authenticate such identification. If the auth flag is zero,
  932. authentication of the identification is not required.
  933.  
  934. If the priv flag is set, then the security implementation is required
  935. to protect the data within an SNMP operation from disclosure, i.e. to
  936. encrypt the data. If the priv flag is zero, then the security
  937.  
  938.  
  939.  
  940. Harrington/Wijnen         Expires October 1977        [Page 16]
  941. \
  942. Draft              Architectural Model for SNMPng             April 1997
  943.  
  944.  
  945. implementation does not need to protect the data using encryption.
  946. It is an explicit requirement of the SNMPng Framework that if privacy
  947. is selected, then authentication of the identification is required,
  948. i.e. priv flag can only be set if auth flag is also set.
  949.  
  950. 7.6. security parameters
  951.  
  952. This octet string is not interpreted by the MPC-F. This data is used
  953. exclusively by the security model, and the contents and format of the
  954. data is defined by the security model.
  955.  
  956. 7.7. scopedPDU
  957.  
  958. The scopedPDU contains a PDU and the scope in which it is to be
  959. processed, as defined by the ID of the engine and the context within
  960. which the management data is realized on that engine.
  961.  
  962. 7.7.1. contextID
  963.  
  964. This is the engineID of the engine which realizes the managed objects
  965. referenced in the PDUs.
  966.  
  967. 7.7.2. contextName
  968.  
  969. This is the name of the context, on the contextID-specified engine,
  970. which realizes the managed objects referenced within the PDUs.
  971.  
  972. 7.7.3. data
  973.  
  974. The data contains the PDUs. The Local Processing Model defines the
  975. content and format of the PDUs. The initial model of the SNMPng Local
  976. Processing Framework supports SNMPv2 PDUs as defined in RFC1905.
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999. Harrington/Wijnen         Expires October 1977        [Page 17]
  1000. \
  1001. Draft              Architectural Model for SNMPng             April 1997
  1002.  
  1003.  
  1004. 8. The Frameworks and their standard "services" interfaces
  1005.  
  1006. Each Framework defines certain standard services, accessible
  1007. through protocol-fixed interfaces.
  1008.  
  1009. Each Model for a Framework must provide the standard services,
  1010. but how it performs the service is defined by the model.
  1011.  
  1012. 8.1. Standard Services of Message Processing and Control Models
  1013.  
  1014. 8.1.1. Receive SNMP messages from the network
  1015.  
  1016. Upon receipt of an SNMPng message from the network, an MPC-M
  1017. will extract the MMS, and the QoS, and will determine where the
  1018. block of security parameters start in the message.
  1019.  
  1020. It will, in an implementation-defined manner, establish a mechanism
  1021. for coordinating all processing regarding this received message,
  1022. e.g. it may assign a "handle" to the message.
  1023.  
  1024. The MPC-M will pass the MMS, the QoS, a pointer to the message, and a
  1025. pointer to the block of security parameters to the implementation
  1026. of the Security Model specified in the message header.
  1027.  
  1028. The Security Model, after completion of its processing, will return to
  1029. the Message Processing and Control implementation the group, the
  1030. securityCookie, the scopedPDU-MMS, and the scopedPDU.
  1031.  
  1032. In the event of an error in security processing, an errorCode may be
  1033. returned instead.
  1034.  
  1035. 8.1.2. Send SNMP messages to the network
  1036.  
  1037. The MPC-M will pass a scopedPDU, the securityCookie, and all global
  1038. data to be included in the message to the Security Model.
  1039.  
  1040. The Security Model will construct the message, and return the completed
  1041. message to the MPC-M, will will send the message to the desired
  1042. address using the appropriate transport.
  1043.  
  1044. 8.1.3. Coordinate the Local Processing of a Received Request Message
  1045.  
  1046. The MPC will receive the SNMP message according to the process
  1047. described in 8.1.1.
  1048.  
  1049. The Message Processing and Control implementation will compare the
  1050. contextID in the scopedPDU with its snmpNgEngineID. If they match, the
  1051. MPC will forward the scopedPDU to the Local Processing implementation.
  1052. The MPC will pass the scopedPDU, the Group, and the scopedPDU-MMS
  1053. provided by the Security Model implementation, plus the QoS, to the
  1054. Local Processing implementation.
  1055.  
  1056.  
  1057.  
  1058. Harrington/Wijnen         Expires October 1977        [Page 18]
  1059. \
  1060. Draft              Architectural Model for SNMPng             April 1997
  1061.  
  1062.  
  1063.  
  1064. It will accept a completed scopedPDU containing the responsePDU
  1065. from the LP-I, and generate a response message according to the
  1066. process described in 8.1.2.
  1067.  
  1068. 8.1.4. Forward Received Request Message to a Proxy Application
  1069.  
  1070. The MPC will receive the SNMP message according to the process
  1071. described in 8.1.1.
  1072.  
  1073. The MPC will determine whether a scopedPDU in a received message
  1074. contains a contextID which differs from its snmpNgEngineID.
  1075. If it does differ, and if a proxy application is supported by this
  1076. engine, the MPC will assign an implementation-defined handle to the
  1077. message. The MPC will determine, from the message header, the SNMP
  1078. version, the securityModel, the MMS, and the QoS. It will pass to the
  1079. proxy application the handle, the SNMP version, securityModel, MMS,
  1080. QoS, plus the securityCookie provided by the Security Model
  1081. implementation.
  1082.  
  1083. 8.1.5. Generate a Request Message for an Application
  1084.  
  1085. The MPC will receive a request for the generation of a request message
  1086. from an application. The application has the responsibility for
  1087. providing
  1088. the Destination Address, the SNMP version, the QoS desired, the MMS of
  1089. the current engine, the SecurityModel to use, the securityCookie to
  1090. use, a scopedPDU containing the desired operation, and a handle used
  1091. for matching up an incoming response to the application making the
  1092. request.
  1093.  
  1094. The MPC checks the verb in the scopedPDU to determine that it is a
  1095. request message, and if so, skips local processing of the scopedPDU.
  1096.  
  1097. The MPC will generate the message according to the process described
  1098. in 8.1.2.
  1099.  
  1100. 8.1.6. Forward Received Response Message to an Application
  1101.  
  1102. The MPC will receive the SNMP message according to the process
  1103. described in 8.1.1.
  1104.  
  1105. The MPC will determine which application is awaiting a response, using
  1106. the handle assigned to the transaction in step 8.1.3
  1107.  
  1108. The MPC will pass to the application the QoS, the MMS, the Security
  1109. Model, the securityCookie, the scopedPDU-MMS, and the scopedPDU.
  1110.  
  1111. The Application, using the securityCookie, will determine the end-user
  1112. on whose behalf the response should be processed.
  1113.  
  1114.  
  1115.  
  1116.  
  1117. Harrington/Wijnen         Expires October 1977        [Page 19]
  1118. \
  1119. Draft              Architectural Model for SNMPng             April 1997
  1120.  
  1121.  
  1122. 8.1.7. Forward Received Notification Message to an Application
  1123.  
  1124. The MPC will receive the SNMP message according to the process
  1125. described in 8.1.1.
  1126.  
  1127. The MPC will determine to which application traps should be forwarded.
  1128.  
  1129. The MPC will pass to the application the QoS, the MMS, the Security
  1130. Model, the securityCookie, the scopedPDU-MMS, and the scopedPDU.
  1131.  
  1132. The Application, using the securityCookie, will determine the end-user
  1133. on whose behalf the notification should be processed.
  1134.  
  1135. 8.1.8. Generate a Trap Message
  1136.  
  1137. The MPC accepts from the LP-I a Destination Address, the QoS, the
  1138. SecurityModel, the Group, and the scopedPDU.
  1139.  
  1140. The MPC uses the group and QoS to request a list of securityCookies
  1141. from the Security Model for security entities contained in the group.
  1142. For each securityCookie in the list, the MPC generates an SNMP message
  1143. according to the process described in 8.1.2.
  1144.  
  1145. 8.1.9. Send a Response Message from a Proxy Application
  1146.  
  1147. The MPC will send the SNMP message according to the process
  1148. described in 8.1.1.
  1149.  
  1150. The MPC will determine which application is awaiting a response, using
  1151. the handle assigned to the transaction in step 8.1.3
  1152.  
  1153. The MPC will pass to the application the QoS, the MMS, the Security
  1154. Model, the securityCookie, the scopedPDU-MMS, and the scopedPDU.
  1155.  
  1156. The Application, using the securityCookie, will determine the end-user
  1157. on whose behalf the response should be processed.
  1158.  
  1159. 8.2. Standard Services Required of Security Models
  1160.  
  1161. 8.2.1. validate the security-stamp in a received message
  1162.  
  1163. given a message, the MMS, QoS, and the security parameters from that
  1164. message, verify the message has not been altered, and authenticate
  1165. the identification of the security entity for whom the message was
  1166. generated.
  1167.  
  1168. If encrypted, decrypt the message
  1169.  
  1170. additional requirements may be defined by the model, but they
  1171. cannot require changes to the framework interface
  1172.  
  1173.  
  1174.  
  1175.  
  1176. Harrington/Wijnen         Expires October 1977        [Page 20]
  1177. \
  1178. Draft              Architectural Model for SNMPng             April 1997
  1179.  
  1180.  
  1181. return a securityCookie identifying the entity for whom the message
  1182. was generated and return the portions of the message needed for
  1183. further processing:
  1184.         a scopedPDU - a PDU enclosed by a header which contains
  1185.                 an snmpID and a contextName
  1186.         QoS - the quality of service specified for security
  1187.                 validation. The same quality of service must also
  1188.         be used during application of access control.
  1189.         MMS - the maximum size of a message able to be generated
  1190.                 by this engine for the destination agent.
  1191.         scopedPDU-MMS - the maximum size of a scopedPDU to be
  1192.                 included in a response message, given the amount of
  1193.                 reserved space in the message for the anticipated
  1194.                 security parameters.
  1195.         acGroup - the acGroup to be applied for access control for
  1196.                 the entity for whom the request was generated.
  1197.  
  1198. 8.2.2. security-stamp a message
  1199.  
  1200. Given a scopedPDU, QoS, MMS, and a securityCookie, the Security Model
  1201. must determine the security parameters for the message, the contents
  1202. and format of which are defined by the model.
  1203.  
  1204. The Security Model will return a message including the appropriate
  1205. security parameters, encrypted if required.
  1206.  
  1207. 8.2.3. Provide mappings between security entities and securityCookies
  1208.  
  1209. Given model-specific parameters to identify a security entity,
  1210. an SF-M must return a securityCookie
  1211.  
  1212. Given a securityCookie generated by this SF-M, the SF-M must return
  1213. model-specific data identifying the corresponding security entity.
  1214.  
  1215. 8.2.4. Provide mapping between group and securityCookies
  1216.  
  1217. Given a group, the SF-M must return an array of securityCookies
  1218. identifying the entities which are members of the specified group.
  1219.  
  1220. 8.3. Standard Services of a Local-Processing Model
  1221.  
  1222. 8.3.1. Process a request
  1223.  
  1224. Given a ScopedPDU, Group, QoS, and ScopedPDU-MMS, an LP-M must return
  1225. a scopedPDU processed according to the protocol rules of the LP-M
  1226.  
  1227. 8.3.2. Generate a Trap
  1228.  
  1229. When an event occurs that requires the generation of a trap, the LP-M
  1230. must pass to the MPC a Destination Address, QoS, MMS, SecurityModel, a
  1231. Group, and a scopedPDU, according to the protocol rules of the LP-M.
  1232.  
  1233.  
  1234.  
  1235. Harrington/Wijnen         Expires October 1977        [Page 21]
  1236. \
  1237. Draft              Architectural Model for SNMPng             April 1997
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294. Harrington/Wijnen         Expires October 1977        [Page 22]
  1295. \
  1296. Draft              Architectural Model for SNMPng             April 1997
  1297.  
  1298.  
  1299. 9. Definitions
  1300.  
  1301. 9.1. Definitions for the Architectural Model for SNMPng
  1302.  
  1303. snmpNg-MIB DEFINITIONS ::=3D BEGIN
  1304.  
  1305. IMPORTS
  1306.     MODULE-IDENTITY, OBJECT-TYPE, snmpModules  FROM SNMPv2-SMI
  1307.     TEXTUAL-CONVENTION, TestAndIncr,
  1308.     RowStatus, AutonomousType, StorageType,
  1309.     TDomain, TAddress                          FROM SNMPv2-TC
  1310.     MODULE-COMPLIANCE, OBJECT-GROUP            FROM SNMPv2-CONF;
  1311.  
  1312.  
  1313. snmpNgMIB MODULE-IDENTITY
  1314.     LAST-UPDATED "9703260000Z"     -- 26 Mar 1997, midnight
  1315.     ORGANIZATION "SNMPv3 Working Group"
  1316.     CONTACT-INFO "WG-email:   snmpv3@tis.com
  1317.                   Subscribe:  majordomo@tis.com
  1318.                               In message body:  subscribe snmpv3
  1319.  
  1320.                   Chair:      Russ Mundy
  1321.                               Trusted Information Systems
  1322.                   postal:     3060 Washington Rd
  1323.                               Glenwood MD 21738
  1324.                   email:      mundy@tis.com
  1325.                   phone:      301-854-6889
  1326.  
  1327.                   Co-editor:  Bert Wijnen
  1328.                               IBM T.J. Watson Research
  1329.                   postal:     Schagen 33
  1330.                               3461 GL Linschoten
  1331.                               Netherlands
  1332.                   email:      wijnen@vnet.ibm.com
  1333.                   phone:      +31-348-412-498
  1334.  
  1335.                   Co-editor   Dave Harrington
  1336.                               Cabletron Systems, Inc
  1337.                   postal:     Post Office Box 5005
  1338.                               MailStop: Durham
  1339.                               35 Industrial Way
  1340.                               Rochester NH 03867-5005
  1341.                   email:      dbh@cabletron.com
  1342.                   phone:      603-337-7357
  1343.                  "
  1344.     DESCRIPTION  "The snmpNg engine MIB"
  1345.     ::=3D { snmpModules xx }
  1346.  
  1347. -- Administrative assignments
  1348.  
  1349. snmpNgMIBObjects      OBJECT IDENTIFIER ::=3D { snmpNgMIB 1 }
  1350.  
  1351.  
  1352.  
  1353. Harrington/Wijnen         Expires October 1977        [Page 23]
  1354. \
  1355. Draft              Architectural Model for SNMPng             April 1997
  1356.  
  1357.  
  1358. snmpNgMIBConformance  OBJECT IDENTIFIER ::=3D { snmpNgMIB 2 }
  1359.  
  1360. -- Textual Conventions used throughout the SNMPng Framework
  1361.  
  1362. snmpNgGroupName ::=3D TEXTUAL-CONVENTION
  1363.     STATUS        current
  1364.     DESCRIPTION  "An octet string representing the name of a group
  1365.                   for use in accordance with the SNMPng Architectural
  1366.                   Framework.
  1367.                  "
  1368.     SYNTAX        OCTET STRING (SIZE(1..16))
  1369.  
  1370. snmpNgContextName ::=3D TEXTUAL-CONVENTION
  1371.     STATUS        current
  1372.     DESCRIPTION  "An SNMPng context name which unambiguously
  1373.                   identifies a set of management information
  1374.                   directly accessible by the Local Processing Module
  1375.                   (implementation or LP-I) of an SNMPng engine.
  1376.                  "
  1377.     SYNTAX       OCTET STRING (SIZE (0..32))
  1378.  
  1379. snmpNgQoS ::=3D TEXTUAL-CONVENTION
  1380.     STATUS       current
  1381.     DESCRIPTION "A level of security at which SNMPng messages can be
  1382.                  sent; in particular, one of:
  1383.                    noAuth - without authentication and without privacy,
  1384.                    auth   - with authentication but without privacy,
  1385.                    priv   - with authentication and with privacy.
  1386.                 "
  1387.     SYNTAX       INTEGER { noAuth(1), auth(2), priv(3) }
  1388.  
  1389.  
  1390. snmpNgEngineID ::=3D TEXTUAL-CONVENTION
  1391.     STATUS       current
  1392.     DESCRIPTION "An SNMPng entity's administratively-unique identifier.
  1393.  
  1394.                  The value for this object may not be all zeros or
  1395.                  all 'ff'H.
  1396.  
  1397.                  The initial value for this object may be configured
  1398.                  via an operator console entry or via an algorithmic
  1399.                  function. In the later case, the following
  1400.                  guidelines are recommended:
  1401.  
  1402.                   1) The first four octets are set to the binary
  1403.                      equivalent of the agent's SNMP network management
  1404.                      private enterprise number as assigned by the
  1405.                      Internet Assigned Numbers Authority (IANA).
  1406.                      For example, if Acme Networks has been assigned
  1407.                      { enterprises 696 }, the first four octets would
  1408.                      be assigned '000002b8'H.
  1409.  
  1410.  
  1411.  
  1412. Harrington/Wijnen         Expires October 1977        [Page 24]
  1413. \
  1414. Draft              Architectural Model for SNMPng             April 1997
  1415.  
  1416.  
  1417.  
  1418.                   2) The remaining eight octets are the cookie whose
  1419.                      contents are determined via one or more
  1420.                      enterprise specific methods. Such methods must
  1421.                      be designed so as to maximize the possibility
  1422.                      that the value of this object will be unique in
  1423.                      the agent's administrative domain. For example,
  1424.                      the cookie may be the IP address of the agent,
  1425.                      or the MAC address of one of the interfaces,
  1426.                      with each address suitably padded with random
  1427.                      octets. If multiple methods are defined, then
  1428.                      it is recommended that the cookie be further
  1429.                      divided into one octet that indicates the
  1430.                      method being used and seven octets which are
  1431.                      a function of the method.
  1432.                 "
  1433.     SYNTAX       OCTET STRING (SIZE (12))
  1434.  
  1435. snmpNgSecurityModel ::=3D TEXTUAL-CONVENTION
  1436.     STATUS       current
  1437.     DESCRIPTION "An identifier that uniquely identifies an SNMPng
  1438.                  Security Model within the SNMPng Framework.
  1439.                 "
  1440.     SYNTAX       INTEGER
  1441.  
  1442. -- SNMPng MIB objects implemented by the SNMPng MPC ******************
  1443.  
  1444. snmpNgEngineID   OBJECT-TYPE
  1445.     SYNTAX       snmpNgEngineID
  1446.     MAX-ACCESS   read-only
  1447.     STATUS       current
  1448.     DESCRIPTION "The SNMPng entity's administratively-unique
  1449.                  SNMP-Engine identifier.
  1450.                 "
  1451.     ::=3D { snmpNgMIBObjects 1 }
  1452.  
  1453. snmpNgEngineMms   OBJECT-TYPE
  1454.     SYNTAX       INTEGER
  1455.     MAX-ACCESS   read-only
  1456.     STATUS       current
  1457.     DESCRIPTION "The maximum length in octets of an SNMPng message
  1458.                  which this SNMPng entity will accept using any
  1459.                  transport mapping.
  1460.                 "
  1461.     ::=3D { snmpNgMIBObjects 2 }
  1462.  
  1463.  
  1464. -- Conformance information
  1465.  
  1466. snmpNgMIBCompliances  OBJECT IDENTIFIER ::=3D { snmpNgMIBConformance 1 }
  1467. snmpNgMIBGroups       OBJECT IDENTIFIER ::=3D { snmpNgMIBConformance 2 }
  1468.  
  1469.  
  1470.  
  1471. Harrington/Wijnen         Expires October 1977        [Page 25]
  1472. \
  1473. Draft              Architectural Model for SNMPng             April 1997
  1474.  
  1475.  
  1476.  
  1477.  
  1478. -- Compliance statements
  1479.  
  1480. snmpNgMIBCompliance MODULE-COMPLIANCE
  1481.     STATUS current
  1482.     DESCRIPTION
  1483.           "The compliance statement for SNMPng entities which
  1484.            implement the SNMPng (MPC) remote configuration MIB.
  1485.           "
  1486.  
  1487.     MODULE  -- this module
  1488.         MANDATORY-GROUPS { snmpNgBasicGroup }
  1489.  
  1490.     ::=3D { snmpNgMIBCompliances 1 }
  1491.  
  1492. snmpNgBasicGroup OBJECT-GROUP
  1493.     OBJECTS { snmpNgEngineID,
  1494.               snmpNgEngineMms
  1495.             }
  1496.     STATUS  current
  1497.     DESCRIPTION
  1498.           "A collection of objects providing for remote configuration
  1499.            of an SNMPng entity which implements the SNMPng MPC-Model.
  1500.           "
  1501.     ::=3D { snmpNgMIBGroups 1 }
  1502.  
  1503. END
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530. Harrington/Wijnen         Expires October 1977        [Page 26]
  1531. \
  1532. Draft              Architectural Model for SNMPng             April 1997
  1533.  
  1534.  
  1535. 10. Agent Installation Parameters
  1536.  
  1537. During installation, an SNMPng entity acting in an agent role is
  1538. configured with several parameters. These include:
  1539.  
  1540. (1) a security posture
  1541.  
  1542.     The choice of security posture determines the extent of the view
  1543.     configured for unauthenticated access. One of three possible
  1544.     choices is selected:
  1545.  
  1546.           minimum-secure,
  1547.           semi-secure, or
  1548.           very-secure.
  1549.  
  1550. (2) one or more transport service addresses
  1551.  
  1552.     These parameters may be specified explicitly, or they may be
  1553.     specified implicitly as the same set of network-layer addresses
  1554.     configured for other uses by the device together with the well-
  1555.     known transport-layer "port" information for the appropriate
  1556.     transport domain 13. The agent listens on each of these
  1557.     transport service addresses for messages.
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589. Harrington/Wijnen         Expires October 1977        [Page 27]
  1590. \
  1591. Draft              Architectural Model for SNMPng             April 1997
  1592.  
  1593.  
  1594. 11. Security Consideration
  1595.  
  1596. This document describes how the SNMPng uses a Security Model and a
  1597. Local processing Model to achieve a level of security for network
  1598. management messages and controlled access to data.
  1599.  
  1600. The level of security actually provided is primarily determined by
  1601. the specific Security Model implementation(s) and the specific Local
  1602. Processing Model implementation(s) incorporated into this framework.
  1603. Applications have access to data which is not secured. Applications
  1604. should take reasonable steps to protect the data from disclosure.
  1605.  
  1606. It is the responsibility of the purchaser of an SNMPng engine to
  1607. ensure that:
  1608.   1) an implementation of this framework is fully compliant with
  1609.      the rules laid down by this framework,
  1610.   2) the implementation of the Security Model complies with the
  1611.      rules of the Security Model,
  1612.   3) the implementation of the Local Processing Model complies
  1613.      with the rules of the Local Processing Model,
  1614.   4) the implementation of associated applications comply
  1615.      with the rules of this framework relative to applications,
  1616.   5) the Security Model of the implementation(s) incorporated into
  1617.      this framework satisfy the security needs of the organization
  1618.      using the SNMPng engine,
  1619.   6) the Local Processing Model of the implementation(s) incorporated
  1620.      into this framework satisfy the access control policies of the
  1621.      organization using the SNMPng engine,
  1622.   7) the implementation of the Security Model protects against
  1623.      inadvertently revealing security secrets in its design of
  1624.      implementation-specific data structures,
  1625.   8) the implementation of the Local Processing Model protects against
  1626.      inadvertently revealing configuration secrets in its design of
  1627.      implementation-specific data structures,
  1628.   9) and the applications associated with this engine should take
  1629.      reasonable steps to protect the security and access control
  1630.      configuration secrets from disclosure.
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648. Harrington/Wijnen         Expires October 1977        [Page 28]
  1649. \
  1650. Draft              Architectural Model for SNMPng             April 1997
  1651.  
  1652.  
  1653. 12. References
  1654.  
  1655. [RFC1901] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1656.      Rose, M., and S., Waldbusser, "Introduction to
  1657.      Community-based SNMPv2", RFC 1901, January 1996.
  1658.  
  1659. [RFC1902] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1660.      Rose, M., and S., Waldbusser, "Structure of Management
  1661.      Information for Version  2 of the Simple Network Management
  1662.      Protocol (SNMPv2)", RFC 1905, January 1996.
  1663.  
  1664. [RFC1905] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1665.      Rose, M., and S., Waldbusser, "Protocol Operations for
  1666.      Version 2 of the Simple Network Management Protocol (SNMPv2)",
  1667.      RFC 1905, January 1996.
  1668.  
  1669. [RFC1906] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1670.      Rose, M., and S. Waldbusser, "Transport Mappings for
  1671.      Version 2 of the Simple Network Management Protocol (SNMPv2)",
  1672.      RFC 1906, January 1996.
  1673.  
  1674. [RFC1907] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1675.      Rose, M., and S. Waldbusser, "Management Information Base for
  1676.      Version 2 of the Simple Network Management Protocol (SNMPv2)",
  1677.      RFC 1907 January 1996.
  1678.  
  1679. [RFC1908] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1680.      Rose, M., and S. Waldbusser, "Coexistence between Version 1
  1681.      and Version 2 of the Internet-standard Network Management
  1682.      Framework", RFC 1908, January 1996.
  1683.  
  1684.  
  1685. [SNMPng-ARCH] The SNMPng Working Group, Harrington, D., Wijnen, B.,
  1686.      "Architecture for the Next Generation Simple Network Management
  1687.      Protocol (SNMPng)", draft-ietf-snmpv3-next-gen-arch-00.txt,
  1688.      April 1997.
  1689.  
  1690. [SNMPng-LPM] The SNMPng Working Group, Wijnen, B., Harrington, D.,
  1691.      "Local Processing Model for the Next Generation Simple Network
  1692.      Management Protocol (SNMPng)", draft-ietf-snmpng-lpm-00.txt,
  1693.      April 1997.
  1694.  
  1695. [SNMPng-USEC] To be written
  1696.               The SNMPng Working Group, Editors...Names,
  1697.      "The User-Based Security Model for the Next Generation Simple
  1698.      Network Management Protocol (SNMPng)",
  1699.      draft-ietf-snmpng-usec-00.txt, April 1997.
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707. Harrington/Wijnen         Expires October 1977        [Page 29]
  1708. \
  1709. Draft              Architectural Model for SNMPng             April 1997
  1710.  
  1711.  
  1712. 13. Editor's Addresses
  1713.  
  1714.                   Co-editor:  Bert Wijnen
  1715.                               IBM T.J. Watson Research
  1716.                   postal:     Schagen 33
  1717.                               3461 GL Linschoten
  1718.                               Netherlands
  1719.                   email:      wijnen@vnet.ibm.com
  1720.                   phone:      +31-348-412-498
  1721.  
  1722.                   Co-editor   Dave Harrington
  1723.                               Cabletron Systems, Inc
  1724.                   postal:     Post Office Box 5005
  1725.                               MailStop: Durham
  1726.                               35 Industrial Way
  1727.                               Rochester NH 03867-5005
  1728.                   email:      dbh@cabletron.com
  1729.                   phone:      603-337-7357
  1730.  
  1731. 14. Acknowledgements
  1732.  
  1733. This document describes the work of the SNMP Security and Administrative
  1734. Framework Evolution team, comprised of
  1735.  
  1736.     David Harrington (Cabletron Systems Inc.)
  1737.     Jeff Johnson (Cisco)
  1738.     David Levi (SNMP Research Inc.)
  1739.     John Linn (Openvision)
  1740.     Russ Mundy (Trusted Information Systems) chair
  1741.     Shawn Routhier (Epilogue)
  1742.     Glenn Waters (Nortel)
  1743.     Bert Wijnen (IBM T.J. Watson Research)
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766. Harrington/Wijnen         Expires October 1977        [Page 30]
  1767. \
  1768. Draft              Architectural Model for SNMPng             April 1997
  1769.  
  1770.  
  1771. Table of Contents
  1772.  
  1773. 0.  Change Log                                                         2
  1774. 1. Introduction                                                        3
  1775. 1.1. A Note on Terminology                                             3
  1776. 2. Overview                                                            4
  1777. 3. An Evolutionary Architecture - Design Goals                         5
  1778. 3.1. Encapsulation                                                     5
  1779. 3.2. Cohesion                                                          5
  1780. 3.3. Hierarchical Rules                                                5
  1781. 3.4. Coupling                                                          6
  1782. 4.0. Abstract Functionality                                            7
  1783. 4.1. Message Processing and Control                                    7
  1784. 4.2. Security                                                          7
  1785. 4.3. Local Processing                                                  8
  1786. 4.4. Applications                                                      8
  1787. 4.5. Definition of SNMPng acronyms and terms:                          8
  1788. 5. Elements of the Framework                                           9
  1789. 5.1. Groups                                                            9
  1790. 5.2. Quality of Service                                                9
  1791. 5.3. Contexts                                                          9
  1792. 5.4. Scoped-PDU                                                        9
  1793. 5.5. Security Configuration Datastore                                 10
  1794. 5.6. Local Configuration Datastore                                    10
  1795. 6. Model Design Requirements                                          11
  1796. 6.1. Security Model Design Requirements                               11
  1797. 6.2. Local Processing Model Design Requirements                       12
  1798. 6.3. Message Processing and Control Requirements                      13
  1799. 6.4. Applications                                                     13
  1800. 6.4.1. A Proxy Application                                            13
  1801. 7. The SNMPng message format:                                         15
  1802. 7.1. SNMP version                                                     16
  1803. 7.2. msgID                                                            16
  1804. 7.3. MMS                                                              16
  1805. 7.4. securityModel                                                    16
  1806. 7.5. QoS                                                              16
  1807. 7.6. security parameters                                              17
  1808. 7.7. scopedPDU                                                        17
  1809. 7.7.1. contextID                                                      17
  1810. 7.7.2. contextName                                                    17
  1811. 7.7.3. data                                                           17
  1812. 8. The Frameworks and their standard "services" interfaces            18
  1813. 8.1. Standard Services of Message Processing and Control Models       18
  1814. 8.1.1. Receive SNMP messages from the network                         18
  1815. 8.1.2. Send SNMP messages to the network                              18
  1816. 8.1.3. Coordinate the Local Processing of a Received Request Message  18
  1817. 8.1.4. Forward Received Request Message to a Proxy Application        19
  1818. 8.1.5. Generate a Request Message for an Application                  19
  1819. 8.1.6. Forward Received Response Message to an Application            19
  1820. 8.1.7. Forward Received Notification Message to an Application        20
  1821. 8.1.8. Generate a Trap Message                                        20
  1822. 8.1.9. Send a Response Message from a Proxy Application               20
  1823. 8.2. Standard Services Required of Security Models                    20
  1824. 8.2.1. validate the security-stamp in a received message              20
  1825. 8.2.2. security-stamp a message                                       21
  1826. 8.2.3. Provide mappings between security entities and securityCookies 21
  1827. 8.2.4. Provide mapping between group and securityCookies              21
  1828. 8.3. Standard Services of a Local-Processing Model                    21
  1829. 8.3.1. Process a request                                              21
  1830. 8.3.2. Generate a Trap                                                21
  1831. 9. Definitions                                                        23
  1832. 9.1. Definitions for the Architectural Model for SNMPng               23
  1833. 10. Agent Installation Parameters                                     27
  1834. 11. Security Consideration                                            28
  1835. 12. References                                                        29
  1836. 13. Editor's Addresses                                                30
  1837. 14. Acknowledgements                                                  30
  1838.  
  1839.  
  1840.  
  1841. Harrington/Wijnen         Expires October 1977        [Page 31]
  1842.  
  1843.