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-03.txt < prev    next >
Text File  |  1997-07-15  |  127KB  |  3,449 lines

  1. stracts.txt'' listing contained in the Internet- Drafts Shadow
  2. Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe),
  3. ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  4.  
  5.  
  6.                               Abstract
  7.  
  8. This document describes an architecture for describing Internet
  9. Management Frameworks. The architecture is designed to be modular
  10. to allow the evolution of the protocol over time. The major portions
  11. of the architecture are an SNMP engine containing a Message Processing
  12. subsystem, a Security Subsystem and an Access Control Subsystem, and
  13. possibly multiple SNMP applications which provide specific functional
  14. processing of network management data. These SNMP applications are
  15. of various types, including Command Generator and Command Responder
  16. applications, Notification Originator and Notification Receiver
  17. applications, and Proxy Forwarding applications.
  18.  
  19.  
  20.  
  21. Harrington/Wijnen         Expires  December 1997              [Page  1]
  22. \
  23. Draft     Architecture for Internet Management Frameworks     July 1997
  24.  
  25.  
  26. 0. Issues
  27.  
  28. 0.1. Issues to be resolved
  29.   . OID or Integer for auth/priv protocol identifiers
  30.     second interim meeting reached consensus on OIDs
  31.     some mailing list members still say Integers preferred
  32.   . forward references need to be handled
  33.   . Is Glossary needed to describe primitive parameters, or is the
  34.     expanded template adequate for this purpose?
  35.   . state_reference releases - are these consistently defined?
  36.     check documents.
  37.   . discuss utf8. -  probably open WG discussion in Munich per NMAD
  38.     discuss tomorrow; remains open issue.
  39.   . need mechanism to discover securityModels supported
  40.   . new SnmpEngineID format rules to be discussed yet.
  41.   . needs changes to meet STDGUIDE guidelines
  42.   . add a "Decision History" section (as an appendix?)
  43.   . we punted snmpEngineMaxMessageSize at 2nd interim because that
  44.     info travels in each SNMPv3 message. However, we may want to
  45.     re-introduce it so that SNMPv1/v2c managers can learn the value!!
  46.  
  47. 0.1.1. Issues discussed at second Interim Meeting:
  48.  
  49.  . A "readable" introduction supplement may be done after Munich.
  50.  . Applications are responsible for retries, but implementations may
  51.      differ.
  52.  . TCs should not be defined just to describe primitive parameters.
  53.    If they cannot be described adequately in text, they can be defined
  54.    in a Glossary. Avoid describing implementation details.
  55.  . Is SnmpAdminString appropriate for all strings, such as
  56.    securityIdentifier and context and group? These had different
  57.    sizes and semantics.  size and semantics may be defined in
  58.    syntax and description of OBJECT
  59.  . AdminString has size (0..255); revisit for utf8 discussions
  60.  . securityModel #s - 00 for IETF standards; from v2* documents
  61.  . protocol IDs - integer or OID? voted 13-0 for OID.
  62.  . uniqueness of securityName
  63.  . mapping between principal and securityName is outside scope of WG.
  64.  . principals may have more than one securityName in an entity
  65.  . mappings may exist between many types of MDID and a single
  66.    securityName
  67.  . mappings may exist between different    (model, Name) and the same
  68.    securityName by varying the model or the Name.
  69.  . the securityName and a MDID may be identical. This can be defined
  70.    by the Security Model.
  71.    (user,"public") may map to securityName "public"
  72.  . [securityName, securityModel] yields zero or one MDName, with
  73.    exceptions for backwards compatibility. The exception is defined
  74.    by the model, and the problems are the province of the model to
  75.    resolve.
  76.  
  77.  
  78.  
  79.  
  80. Harrington/Wijnen         Expires  December 1997              [Page  2]
  81. \
  82. Draft     Architecture for Internet Management Frameworks     July 1997
  83.  
  84.  
  85. 0.2.  Change Log
  86.  
  87. [version 4.4]
  88.  . Fixed one error in the MIB (found with SMICng)
  89.  . Reformatted text for SnmpAdminString, no change in text.
  90.  . Changed text for SnmpEngineID..  this is still under discussion.
  91.    But this new text seems to be getting close to what we want.
  92.  . Added an issue w.r.t. snmpEngineMaxMessageSize
  93.  . adapt Primitive names and parameters to very latest (july 11) names
  94.  . removed blank lines before the .p page controls.
  95.  
  96. [version 4.3]
  97.  . some minor editing adjustments
  98.  
  99. [version 4.2]
  100.  . modify abstract so there is no requirement for one entity
  101.     to contain both a command generator and a notification receiver.
  102.  . modify Introduction list of entities which are meant to be
  103.    supported
  104.  . reorganized sections 1 through 4 for more consistency in contents.
  105.  . described section contents in Introduction:Target Audience
  106.  . move documentation descriptions to section 2
  107.  . rewrite section 4 to be more like a real elements of procedure.
  108.  . modified SnmpSecurityModel and SnmpEngineID definitions
  109.  . replaced MIB with Bert's replacement
  110.  . added Randy's TC for SnmpAdminString
  111.  . modified the example algorithm text for SnmpEngineID
  112.  . rewrote security considerations for brevity.
  113.  . modified "context" description
  114.  . moved "Threats" to Goals/Requirements
  115.  . eliminated snmpEngineMaxMessageSize object
  116.  . posted to snmpv3 (by DBH)
  117.  
  118. [version 4.1]
  119.  . Adopt "abstract" to new terminology
  120.  . Addressed all comments I (BW) made to DBH in an earlier email
  121.  . Changed Introduction section to new terminology
  122.  . changed wording for "implementation" to indicate it may contain
  123.    multiple models.
  124.  . Section 2. Started some wording on Goals and Design decisions
  125.  . Added the overview picture of a traditional agent and a
  126.    traditional manager. This is in section 2.
  127.  . Changed overview figure in section 3. to address the comments
  128.    by Dave Levi. It now lists the type of applications
  129.  . At various places ensure that text (easily) fits within 72
  130.    columns as required by RFC-editors Guidelines document.
  131.  . Section 2.3 (new section) has the documents set overview.
  132.    I verified the claims about standards. Not sure I worded the
  133.    SNMPv2 std correctly,. We'll hear it if we did it wrong.
  134.  . Section 2.4 (new section) gives overview of SNMP entities based
  135.    on modified Dave Levi figure. I (Bert) wonder however if it would
  136.  
  137.  
  138.  
  139. Harrington/Wijnen         Expires  December 1997              [Page  3]
  140. \
  141. Draft     Architecture for Internet Management Frameworks     July 1997
  142.  
  143.  
  144.    not be better to move it to after section 3.1.13
  145.  . Section 3. Added more figures... please let us know if you find
  146.    then useful and/or helpful. We could also move these back to
  147.    section 2 if such makes more sense.
  148.  . Added a picture in section 3.2.
  149.    It also shows some of access control, so not sure it really fits
  150.    here, although it does map principal to model dependent security
  151.    ID to securityName
  152.  . Replace "<" with "is lower than" in section 3.4.3 which seems
  153.    better in a text document.
  154.  . Renamed section 4.1 to "SNMP engine processing" instead of
  155.    "The Message Processing Subsystem" because the transport
  156.    mappings, mpc multiplexor and such is done in ARCH document so
  157.    it is done "in general in the engine" and it passes a specific
  158.    message to a Message Processing Subsystem.
  159.  . "bulletized" some stuff in section 4.2 and 4.3.
  160.    Dave, this is just how I (Bert) like it better. Feel free to
  161.    undo it if you strongly disagree
  162.  . Section 4.3 changed "initiate a transaction" to "originate a
  163.    notification".
  164.  . Inserted title line for section 4.4 (I think it was missing)
  165.    I have named it "Information Model" in accordance with the change
  166.    I made (after Russ's comments) in the document figure to lump SMI,
  167.    TC and Conformance together.
  168.  . Inserted a title for section 4.5 named "Operational Model" to
  169.    get in sync with the the lumping together of ProtoOps and Transport
  170.    Mappings in document overview
  171.  . Renumber section 4.4.4 to 4,5,1 and added 4.5.2 to follow the
  172.    document overview figure. If we really want to follow it, then
  173.    maybe we should also reorder some of these sections. Like
  174.    Access Control seems specifically misplaced. So I decided to move
  175.    it before applications as section 4.3, so the 4.x above should
  176.    all be read as 4.x+1
  177.  . Removed size from SnmpEngineID TC... why did you limit it to
  178.    (0..2048). Did we not decide to leave it open?
  179.  . Should we not remove snmpEngineMaxMessageSize from the MIB.
  180.    That was agreed at 2nd interim. It travels in every message and so
  181.    seems to be useless. However, I think it could indeed still help
  182.    SNMPv1 or SNMPv2c managers.
  183.  . I kept your definitions of registration-points for auth and priv
  184.    protocols, but my recollection is that they would be completely
  185.    removed from ARCH and that it would all be done in SEC document.
  186.  . Modified Security Considerations. Was still talking about LPM.
  187.  . Appendix. I am still wondering if we need to use capitals for
  188.    things like "Security Model" "Subsystem" and such. This is only
  189.    an appendix... but we better be consistent, no? Anyway
  190.    I changed it so it is consistent (at least I tried).
  191.  . Appendix, renamed imf to snmpFramework
  192.  . Appendix, changed state_reference and state_release to
  193.    stateReference and stateRelease to be consistent with other names
  194.    for abstract data and primitives.
  195.  
  196.  
  197.  
  198. Harrington/Wijnen         Expires  December 1997              [Page  4]
  199. \
  200. Draft     Architecture for Internet Management Frameworks     July 1997
  201.  
  202.  
  203.  . A.2 changed MessageEngine to SNMP engine
  204.  . Fixed ASI primitives to be in sync with SEC document.
  205.    I also thought that our ARCH document-outline wanted to at least
  206.    have the primitives listed within the main body of the text, no?
  207.  . Adapted send_pdu to sendPdu primitive as reconciled by Randy
  208.    In fact I made sure all primitives are in-line with current
  209.    agreement on names and parameters.
  210.  . Rename title of A.2.4 and A.2.5 so it fits on 1 line in contents
  211.  . I did not look at appendix B. That is your (DBH) specialty is it
  212.    not ?  ;-).
  213.  . Quick simple spell check done with "spell" on AIX
  214.  
  215. [version 4.0]
  216.  . move section 7 - Model Requirements to an appendix
  217.  . move Section 3 - Design Goals to an appendix
  218.  . modified Section 5 - Naming
  219.  . remove "possibly multiple"
  220.  . moved Section 5 to Section 3
  221.  . change orangelets to applications
  222.  . modify description of applications
  223.  . change scopedPDU-MMS and PDU-MMS to maxSizeResponseScopedPDU
  224.  . change Scoped-PDU and ScopedPDU to scopedPDU (no dash, lower case S)
  225.  . change imfxxx to snmpFrameworkxxx
  226.  . change security-entity to principal
  227.  . change securityIdentity to securityName
  228.  . change MIID to securityName
  229.  . eliminate all reference to groupName or group
  230.  . LoS ordering noAuthNoPriv < authNoPriv < authPriv
  231.  . Los TC  naming - noAuthNoPriv(1), authNoPriv(2), authPriv(3)
  232.  . remove TCs not used in MIBs - securityIdentity TC etc
  233.  . changed Message Processing and Control to Message Processing
  234.  . changed future tense to present tense
  235.  . eliminate messageEngine
  236.  . added/updated primitives
  237.  . addressed issues raised on the mailing list
  238.  
  239. [version 3.1]
  240.  . change securityIdentity to MIID
  241.  . write text to explain the differences between security-identities,
  242.    model-dependent identifiers, and model-independent identifiers.
  243.  . write text to explain distinction within the LCD of the security
  244.    data, the access control data, and the orangelet data.
  245.  . identify issues
  246.  . publish as <draft-ietf-snmpv3-next-gen-arch-02.txt>
  247.  
  248. [version 3.0]
  249.  . add section on threats for message security
  250.  . add section on threats for access control
  251.  . change application to orangelet
  252.  . remove references to F-Ts
  253.  . change securityIdentity to security-identity
  254.  
  255.  
  256.  
  257. Harrington/Wijnen         Expires  December 1997              [Page  5]
  258. \
  259. Draft     Architecture for Internet Management Frameworks     July 1997
  260.  
  261.  
  262.  . change securityCookie to securityIdentity
  263.  . the format of securityIdentity is defined by the model
  264.  . add securityModel to passed parameters as needed
  265.  . eliminate group from passed parameters
  266.  . remove unused IMPORTS
  267.  . add glossary section with initial set of words to define
  268.  . differentiate the messageEngine from the contextEngine
  269.  . eliminate the term SNMPng
  270.  . rewrote 1.1. A Note on Terminology
  271.  . eliminated assumptions about SNMP processing always being
  272.     message related
  273.  . rewrote 4.x to reflect new thinking
  274.  . rewrote 5.x to reflect new thinking
  275.  . rewrote 6.x (the MIB) to reflect new thinking
  276.  . added MIB objects at this level (previously only TCs)
  277.  . rewrote 7.x
  278.  . sent to v3edit list
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316. Harrington/Wijnen         Expires  December 1997              [Page  6]
  317. \
  318. Draft     Architecture for Internet Management Frameworks     July 1997
  319.  
  320.  
  321. 1. Introduction
  322.  
  323. 1.1. Target Audience
  324.  
  325. This document will have as its audience persons with varying levels
  326. of technical understanding of SNMP.
  327.  
  328. This document does not provide a general introduction to SNMP. Other
  329. documents and books can provide a much better introduction to SNMP.
  330. Nor does this document provide a history of SNMP. That also can be
  331. found in books and other documents.
  332.  
  333. This document does define a vocabulary for describing Internet
  334. Management Frameworks, and an architecture for describing the
  335. major portions of Internet Management Frameworks.
  336.  
  337. Section 1 describes the purpose, goals, and design decisions of
  338. the architecture.
  339.  
  340. Section 2 describes various types of documents which define Internet
  341. Frameworks, and how they fit into this architecture. It also provides
  342. a minimal roadmap to the documents which have defined previous
  343. SNMP frameworks.
  344.  
  345. Section 3 details the vocabulary of this architecture and its pieces.
  346. This section is important for understanding the remaining sections,
  347. and for understanding documents which are written to fit within this
  348. architecture.
  349.  
  350. Section 4 describes the elements of procedure followed by an SNMP
  351. engine in coordinating the processing of messages by the subsystems
  352. of the engine and by applications.
  353.  
  354. Section 5 defines a collection of managed objects used to instrument
  355. SNMP engines within this architecture.
  356.  
  357. Sections 6, 7, 8, and 9 are administrative in nature.
  358.  
  359. Appendix A contains guidelines for developers of Models which are
  360. expected to fit within this architecture.
  361.  
  362. Appendix B contains a discussion of software design principles which
  363. guided the development of this architecture. Many books provide a
  364. more in-depth discussion of these topics.
  365.  
  366. 1.2. Management Systems
  367.  
  368.   A management system contains:
  369.     - several (potentially many) nodes, each with an SNMP entity
  370.       containing command responder and notification originator
  371.       applications, which have access to management instrumentation;
  372.  
  373.  
  374.  
  375. Harrington/Wijnen         Expires  December 1997              [Page  7]
  376. \
  377. Draft     Architecture for Internet Management Frameworks     July 1997
  378.  
  379.  
  380.     - at least one SNMP entity containing command generator and/or
  381.       notification receiver applications; and,
  382.     - a management protocol, used to convey management information
  383.       between the SNMP entities.
  384.  
  385.   SNMP entities executing command generator and notification receiver
  386.   applications monitor and control managed elements.  Managed elements
  387.   are devices such as hosts, routers, terminal servers, etc., which
  388.   are monitored and controlled via access to their management
  389.   information.
  390.  
  391.   Operations of the protocol are carried out under an administrative
  392.   framework which defines minimum requirements for standard services,
  393.   such as sending and receiving messages, countering security threats
  394.   to messages, controlling access to managed objects, and processing
  395.   various types of requests.
  396.  
  397.   It is the purpose of this document to define an architecture which
  398.   can evolve to realize effective network management in a variety
  399.   of configurations and environments. The architecture has been
  400.   designed to meet the needs of implementations of:
  401.     - minimal SNMP entities with command responder and/or notification
  402.       originator applications (traditionally called SNMP agents),
  403.     - SNMP entities with proxy forwarder applications (traditionally
  404.       called SNMP proxy agent),
  405.     - command line driven SNMP entities with command generator and/or
  406.       notification receiver applications (traditionally called SNMP
  407.       command line managers),
  408.     - SNMP entities with  command generator and/or notification
  409.       receiver, plus command responder and/or notification originator
  410.       applications (traditionally called SNMP mid-level managers or
  411.       dual-role entities),
  412.     - SNMP entities with command generator and/or notification
  413.       receiver and possibly other types of applications for managing
  414.       a potentially very large number of managed nodes (traditionally
  415.       called network enterprise management stations).
  416.  
  417. 1.3. Goals of this Architecture
  418.  
  419. This architecture was driven by the following goals:
  420.  
  421.    - Use existing materials as much as possible.
  422.      It is heavily based on previous work, informally
  423.      known as SNMPv2u and SNMPv2*.
  424.    - Address the need for secure SET support, which is considered
  425.      the most important deficiency in SNMPv1 and SNMPv2c.
  426.    - Make it possible to move portions of the architecture forward
  427.      in the standards track, even if consensus has not been reached
  428.      on all pieces.
  429.    - Define an architecture that allows for longevity of the SNMP
  430.      Frameworks that have been and will be defined.
  431.  
  432.  
  433.  
  434. Harrington/Wijnen         Expires  December 1997              [Page  8]
  435. \
  436. Draft     Architecture for Internet Management Frameworks     July 1997
  437.  
  438.  
  439.    - Keep SNMP as simple as possible.
  440.    - Make it relatively inexpensive to deploy a minimal conformant
  441.      implementation
  442.    - Make it possible to upgrade portions of a framework as new
  443.      approaches become available, without disrupting the entire
  444.      framework.
  445.    - Make it possible to support features required in large networks,
  446.      but make the expense of supporting a feature directly related
  447.      to the support of the feature.
  448.  
  449. 1.4. Security Requirements of this Architecture
  450.  
  451. Several of the classical threats to network protocols are applicable
  452. to the network management problem and therefore would be applicable
  453. to any Security Model used in an Internet Management Framework. Other
  454. threats are not applicable to the network management problem.  This
  455. section discusses principal threats, secondary threats, and threats
  456. which are of lesser importance.
  457.  
  458. The principal threats against which any Security Model used within
  459. this architecture SHOULD provide protection are:
  460.  
  461. Modification of Information
  462.     The modification threat is the danger that some unauthorized SNMP
  463.     entity may alter in-transit SNMP messages generated on behalf of
  464.     an authorized principal in such a way as to effect unauthorized
  465.     management operations, including falsifying the value of an object.
  466.  
  467. Masquerade
  468.     The masquerade threat is the danger that management operations
  469.     not authorized for some principal may be attempted by assuming
  470.     the identity of another principal that has the appropriate
  471.     authorizations.
  472.  
  473. Message Stream Modification
  474.     The SNMP protocol is typically based upon a connectionless
  475.     transport service which may operate over any subnetwork service.
  476.     The re-ordering, delay or replay of messages can and does occur
  477.     through the natural operation of many such subnetwork services.
  478.     The message stream modification threat is the danger that messages
  479.     may be maliciously re-ordered, delayed or replayed to an extent
  480.     which is greater than can occur through the natural operation of
  481.     a subnetwork service, in order to effect unauthorized management
  482.     operations.
  483.  
  484. Disclosure
  485.     The disclosure threat is the danger of eavesdropping on the
  486.     exchanges between SNMP engines.  Protecting against this threat
  487.     may be required as a matter of local policy.
  488.  
  489.  
  490.  
  491.  
  492.  
  493. Harrington/Wijnen         Expires  December 1997              [Page  9]
  494. \
  495. Draft     Architecture for Internet Management Frameworks     July 1997
  496.  
  497.  
  498. There are at least two threats against which a Security Model used by
  499. a framework within this architecture need not protect.
  500.  
  501. Denial of Service
  502.     A Security Model need not attempt to address the broad range of
  503.     attacks by which service on behalf of authorized users is denied.
  504.     Indeed, such denial-of-service attacks are in many cases
  505.     indistinguishable from the type of network failures with which any
  506.     viable network management protocol must cope as a matter of course.
  507.  
  508. Traffic Analysis
  509.     A Security Model need not attempt to address traffic analysis
  510.     attacks.  Many traffic patterns are predictable - entities may
  511.     be managed on a regular basis by a relatively small number of
  512.     management stations - and therefore there is no significant
  513.     advantage afforded by protecting against traffic analysis.
  514.  
  515. 1.5. Design Decisions
  516.  
  517. Various designs decision were made in support of these goals:
  518.  
  519.    - Architecture
  520.      An architecture should be defined which identifies the
  521.      conceptual boundaries between the documents of a framework.
  522.      Subsystems should be defined which describe the abstract
  523.      services provided by specific portions of the framework.
  524.      Abstract service interfaces, as described by service primitives,
  525.      define the abstract boundaries between documents, and the
  526.      abstract services that are provided by the conceptual
  527.      subsystems of a framework.
  528.  
  529.    - Self-contained Documents
  530.      Elements of procedure plus the MIB objects which are needed for
  531.      processing for a specific portion of a framework should be
  532.      defined in the same document, and as much as possible, should
  533.      not be referenced in other documents. This allows various
  534.      pieces of SNMP Frameworks to be designed and documented as
  535.      independent and self-contained parts, which is consistent with
  536.      the general SNMP MIB module approach. As portions of SNMP change
  537.      over time, the documents describing other portions of the
  538.      framework are not directly impacted. This modularity allows,
  539.      for example, Security Models, authentication and privacy
  540.      mechanisms, and message formats to be upgraded and supplemented
  541.      as the need arises. The self-contained documents can move
  542.      along the standards track on different time-lines.
  543.  
  544.    - Remote Configuration
  545.      The Security and Access Control Subsystems add a whole new set
  546.      of SNMP configuration parameters.  The Security Subsystem also
  547.      requires frequent changes of secrets at the various SNMP
  548.      entities. To make this deployable in a large operational
  549.  
  550.  
  551.  
  552. Harrington/Wijnen         Expires  December 1997              [Page 10]
  553. \
  554. Draft     Architecture for Internet Management Frameworks     July 1997
  555.  
  556.  
  557.      environment, these SNMP parameters must be able to be remotely
  558.      configured.
  559.  
  560.    - Controlled Complexity
  561.      It is recognized that simple managed devices want to keep the
  562.      resources used by SNMP to a minimum.  At the same time, there
  563.      is a need for more complex configurations which can spend more
  564.      resources for SNMP and thus provide more functionality.
  565.      The design tries to keep the competing requirements of these
  566.      two environments in balance and allows the more complex
  567.      environments to logically extend the simple environment.
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611. Harrington/Wijnen         Expires  December 1997              [Page 11]
  612. \
  613. Draft     Architecture for Internet Management Frameworks     July 1997
  614.  
  615.  
  616. 2.  Documentation Overview
  617.  
  618. The following figure shows the set of documents that fit within the
  619. SNMP Architecture.  
  620.                              Document Set
  621.  +--------------------------------------------------------------------+
  622.  |                                                                    |
  623.  | +------------+             +-----------------+  +----------------+ |
  624.  | |          * |             |               * |  |              * | |
  625.  | | Document   |             | Applicability   |  | Coexistence    | |
  626.  | | Roadmap    |             | Statement       |  | & Transition   | |
  627.  | +------------+             +-----------------+  +----------------+ |
  628.  |                                                                    |
  629.  | +-------------------+  +-----------------------------------------+ |
  630.  | | Operational Model |  | Security and Administration             | |
  631.  | |                   |  |                                         | |
  632.  | | +-------------+   |  | +------------+ +----------+ +---------+ | |
  633.  | | |             |   |  | |            | |          | |         | | |
  634.  | | | Protocol    |   |  | | Message    | | Security | | Access  | | |
  635.  | | | Operations  |   |  | | Processing | |          | | Control | | |
  636.  | | +-------------+   |  | +------------+ +----------+ +---------+ | |
  637.  | | +-------------+   |  |                                         | |
  638.  | | |             |   |  | +--------------+           +----------+ | |
  639.  | | | Transport   |   |  | |              |           |          | | |
  640.  | | | Mappings    |   |  | | Applications | ......... |          | | |
  641.  | | +-------------+   |  | +--------------+           +----------+ | |
  642.  | |                   |  |                                         | |
  643.  | +-------------------+  +-----------------------------------------+ |
  644.  |                                                                    |
  645.  | +----------------------------------------------------------------+ |
  646.  | | Information Model                                              | |
  647.  | |                                                                | |
  648.  | | +--------------+    +--------------+    +---------------+      | |
  649.  | | | Structure of |    | Textual      |    | Conformance   |      | |
  650.  | | | Management   |    | Conventions  |    | Statements    |      | |
  651.  | | | Information  |    |              |    |               |      | |
  652.  | | +--------------+    +--------------+    +---------------+      | |
  653.  | +----------------------------------------------------------------+ |
  654.  |                                                                    |
  655.  | +----------------------------------------------------------------+ |
  656.  | | MIBs                                                           | |
  657.  | |                                                                | |
  658.  | | +-------------+ +-------------+ +----------+ +----------+      | |
  659.  | | | Standard v1 | | Standard v1 | | Historic | | Draft v2 |      | |
  660.  | | | RFC1157     | | RFC1212     | | RFC14xx  | | RFC19xx  |      | |
  661.  | | | format      | | format      | | format   | | format   |      | |
  662.  | | +-------------+ +-------------+ +----------+ +----------+      | |
  663.  | +----------------------------------------------------------------+ |
  664.  |                                                                    |
  665.  +--------------------------------------------------------------------+
  666.  
  667.  
  668.  
  669.  
  670. Harrington/Wijnen         Expires  December 1997              [Page 12]
  671. \
  672. Draft     Architecture for Internet Management Frameworks     July 1997
  673.  
  674.  
  675. Those marked with an asterisk (*) are expected to be written in the 
  676. future.    Each of these documents may be replaced or supplemented.
  677. This Architecture document specifically describes how new documents
  678. fit into the set of documents in the Security and Administration area.
  679.  
  680. 2.1. Document Roadmap
  681.  
  682. One or more documents may be written that will describe how sets
  683. of documents taken together form a specific SNMP framework.
  684. The configuration of document sets might change over time, so the
  685. "roadmap" should be maintained in a document separate from the
  686. standards documents themselves.
  687.  
  688. 2.2. Applicability Statement
  689.  
  690. SNMP is used in networks that vary widely in size and complexity,
  691. by organizations that vary widely in their requirements of network
  692. management.    Some models will be designed to address specific
  693. problems of network management, such as message security.
  694.  
  695. One or more documents may be written which describe the environments
  696. to which certain versions of SNMP or models within SNMP would be
  697. appropriately applied, and those to which a given model might be
  698. inappropriately applied.
  699.  
  700. 2.3. Coexistence and Transition
  701.  
  702. The purpose of an evolutionary architecture is to permit new models
  703. to replace or supplement existing models.  The interactions between
  704. models could result in incompatibilities, security "holes", and
  705. other undesirable effects.
  706.  
  707. The purpose of Coexistence documents is to detail recognized anomalies
  708. and to describe required and recommended behaviors for resolving the
  709. interactions between models within the architecture.
  710.  
  711. It would be very difficult to document all the possible interactions
  712. between a model and all other previously existing models while in the
  713. process of developing a new model.
  714.  
  715. Coexistence documents are therefore expected to be prepared separately
  716. from model definition documents, to describe and resolve interaction
  717. anomalies between a model definition and one or more other model
  718. definitions.
  719.  
  720. Additionally, recommendations for transitions between models may
  721. also be described, either in a coexistence document or in a separate
  722. document.
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729. Harrington/Wijnen         Expires  December 1997              [Page 13]
  730. \
  731. Draft     Architecture for Internet Management Frameworks     July 1997
  732.  
  733.  
  734. 2.4. Transport Mappings
  735.  
  736. SNMP messages are sent over various transports.  It is the purpose of
  737. Transport Mapping documents to define how the mapping between SNMP
  738. and the transport is done. A specific implementation of an SNMP engine
  739. defines which transports it supports.
  740.  
  741. 2.5. Message Processing
  742.  
  743. A Message Processing Model document defines a message format, which is
  744. typically identified by a version field in an SNMP message header.
  745. The document may also define a MIB module for use in message
  746. processing and for instrumentation of version-specific interactions.
  747.  
  748. An engine will include one or more Message Processing Models, and thus
  749. may support sending and receiving multiple SNMP versions of
  750. messages.
  751.  
  752. 2.6. Security
  753.  
  754. Some environments require secure protocol interactions.  Security is
  755. normally applied at two different stages:
  756.  
  757.   - in the transmission/receipt of messages, and
  758.   - in the processing of the contents of messages.
  759.  
  760. For purposes of this document, "security" refers to message-level
  761. security; "access control" refers to the security applied to protocol
  762. operations.
  763.  
  764. Authentication, encryption, and timeliness checking are common
  765. functions of message level security.
  766.  
  767. A security document will describe a Security Model, the threats
  768. against which the model protects, the goals of the Security Model,
  769. the protocols which it uses to meet those goals, and it may define
  770. a MIB module to describe the data used during processing, and to allow
  771. the remote configuration of message-level security parameters,
  772. such as passwords.
  773.  
  774. An SNMP engine may support multiple Security Models concurrently.
  775.  
  776. 2.7. Access Control
  777.  
  778. During processing, it may be required to control access to certain
  779. instrumentation for certain operations. An Access Control Model
  780. determines whether access to an object should be allowed. The
  781. mechanism by which access control is checked is defined by the
  782. Access Control Model.
  783.  
  784. An Access Control Model document defines the mechanisms used to
  785.  
  786.  
  787.  
  788. Harrington/Wijnen         Expires  December 1997              [Page 14]
  789. \
  790. Draft     Architecture for Internet Management Frameworks     July 1997
  791.  
  792.  
  793. determine whether access to a managed object should be allowed,
  794. and may define a MIB module used during processing, and to allow
  795. the remote configuration of access control policies.
  796.  
  797. 2.8. Applications
  798.  
  799. An SNMP entity normally includes a number of applications.
  800. Applications use the services of an SNMP engine to accomplish
  801. specific tasks. They coordinate the processing of management
  802. information operations, and may use SNMP messages to communicate
  803. with other SNMP entities.
  804.  
  805. Applications documents describe the purpose of an application, the
  806. services required of the associated SNMP engine, and the protocol
  807. operations and informational model that the application uses to
  808. perform network management operations.
  809.  
  810. An application document defines which set of documents are used to
  811. specifically define the structure of management information, textual
  812. conventions, conformance requirements, and operations supported by
  813. the application.
  814.  
  815. 2.9. Structure of Management Information
  816.  
  817. Management information is viewed as a collection of managed objects,
  818. residing in a virtual information store, termed the Management
  819. Information Base (MIB).  Collections of related objects are defined
  820. in MIB modules.
  821.  
  822. It is the purpose of a Structure of Management Information document
  823. to establish the syntax for defining objects, modules, and other
  824. elements of managed information.
  825.  
  826. 2.10. Textual Conventions
  827.  
  828. When designing a MIB module, it is often useful to define new types
  829. similar to those defined in the SMI, but with more precise semantics,
  830. or which have special semantics associated with them.  These newly
  831. defined types are termed textual conventions, and may defined in
  832. separate documents, or within a MIB module.
  833.  
  834. 2.11. Conformance Statements
  835.  
  836. It may be useful to define the acceptable lower-bounds of
  837. implementation, along with the actual level of implementation
  838. achieved.  It is the purpose of Conformance Statements to define
  839. the notation used for these purposes.
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847. Harrington/Wijnen         Expires  December 1997              [Page 15]
  848. \
  849. Draft     Architecture for Internet Management Frameworks     July 1997
  850.  
  851.  
  852. 2.12. Protocol Operations
  853.  
  854. SNMP messages encapsulate an SNMP Protocol Data Unit (PDU). It is the
  855. purpose of a Protocol Operations document to define the operations
  856. of the protocol with respect to the processing of the PDUs.
  857.  
  858. An application document defines which Protocol Operations documents
  859. are supported by the application.
  860.  
  861. 2.13. Management Information Base Modules
  862.  
  863. MIB documents describe collections of managed objects which
  864. instrument some aspect of a managed node.
  865.  
  866. 2.13.1. SNMP Instrumentation MIBs
  867.  
  868. An SNMP MIB document may define a collection of managed objects which
  869. instrument the SNMP protocol itself. In addition, MIB modules may be
  870. defined within the documents which describe portions of the SNMP
  871. architecture, such as the documents for Message processing Models,
  872. Security Models, etc. for the purpose of instrumenting those
  873. Models, and for the purpose of allowing remote configuration of
  874. the Model.
  875.  
  876. 2.14. SNMP Framework Documents
  877.  
  878. This architecture is designed to allow an orderly evolution of
  879. portions of SNMP Frameworks.
  880.  
  881. Throughout the rest of this document, the term "subsystem" refers
  882. to an abstract and incomplete specification of a portion of
  883. a Framework, that is further refined by a model specification.
  884.  
  885. A "model" describes a specific design of a subsystem, defining
  886. additional constraints and rules for conformance to the model.
  887. A model is sufficiently detailed to make it possible to implement
  888. the specification.
  889.  
  890. An "implementation" is an instantiation of a subsystem, conforming
  891. to one or more specific models.
  892.  
  893. SNMP version 1 (SNMPv1), is the original Internet-standard Network
  894. Management Framework, as described in RFCs 1155, 1157, and 1212.
  895.  
  896. SNMP version 2 (SNMPv2) is an updated design of portions of SNMPv1,
  897. as described in RFCs 1902-1908.  SNMPv2 has an incomplete message
  898. definition.
  899.  
  900. Community-based SNMP version 2 (SNMPv2c) is an experimental Framework
  901. which supplements the incomplete message format of SNMPv2 with
  902. portions of the message format of SNMPv1, as described in RFC1901.
  903.  
  904.  
  905.  
  906. Harrington/Wijnen         Expires  December 1997              [Page 16]
  907. \
  908. Draft     Architecture for Internet Management Frameworks     July 1997
  909.  
  910.  
  911.  
  912. SNMP version 3 (SNMPv3) Framework is a particular configuration of
  913. implemented subsystems, consistent with the architecture described
  914. in this document.
  915.  
  916. Other SNMP Frameworks, i.e. other configurations of implemented
  917. subsystems, are expected to also be consistent with this architecture.
  918.  
  919. This document does not describe any framework, but describes an
  920. architecture into which multiple frameworks may be fitted.
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965. Harrington/Wijnen         Expires  December 1997              [Page 17]
  966. \
  967. Draft     Architecture for Internet Management Frameworks     July 1997
  968.  
  969.  
  970. 3. Naming
  971.  
  972. This architecture deals with three kinds of naming:
  973.  
  974.   1) the naming of entities,
  975.   2) the naming of identities, and
  976.   3) the naming of management information.
  977.  
  978. This architecture also defines some names for other constructs that
  979. are used in the documentation.
  980.  
  981. 3.1. The Naming of Entities
  982.  
  983. The following picture shows detail about an SNMP entity and how
  984. components within it are named.
  985.  
  986.  +--------------------------------------------------------------------+
  987.  |                                                                    |
  988.  |  SNMP entity                                                       |
  989.  |                                                                    |
  990.  |  +--------------------------------------------------------------+  |
  991.  |  |                                                              |  |
  992.  |  |  SNMP engine (identified by snmpEngineID)                    |  |
  993.  |  |                                                              |  |
  994.  |  |  +---------------+  +--------------+  +---------------+      |  |
  995.  |  |  |               |  |              |  |               |      |  |
  996.  |  |  | Message       |  | Security     |  | Access        |      |  |
  997.  |  |  | Processing    |  | Subsystem    |  | Control       |      |  |
  998.  |  |  | Subsystem     |  |              |  | Subsystem     |      |  |
  999.  |  |  |               |  |              |  |               |      |  |
  1000.  |  |  +---------------+  +--------------+  +---------------+      |  |
  1001.  |  |                                                              |  |
  1002.  |  +--------------------------------------------------------------+  |
  1003.  |                                                                    |
  1004.  |  +--------------------------------------------------------------+  |
  1005.  |  |                                                              |  |
  1006.  |  |  Application(s)                                              |  |
  1007.  |  |                                                              |  |
  1008.  |  |  +-------------+  +--------------+  +--------------+         |  |
  1009.  |  |  | Command     |  | Notification |  | Proxy        |         |  |
  1010.  |  |  | Generator   |  | Receiver     |  | Forwarder    |         |  |
  1011.  |  |  +-------------+  +--------------+  +--------------+         |  |
  1012.  |  |                                                              |  |
  1013.  |  |  +-------------+  +--------------+  +--------------+         |  |
  1014.  |  |  | Command     |  | Notification |  | Other        |         |  |
  1015.  |  |  | Responder   |  | Originator   |  |              |         |  |
  1016.  |  |  +-------------+  +--------------+  +--------------+         |  |
  1017.  |  |                                                              |  |
  1018.  |  +--------------------------------------------------------------+  |
  1019.  |                                                                    |
  1020.  +--------------------------------------------------------------------+
  1021.  
  1022.  
  1023.  
  1024. Harrington/Wijnen         Expires  December 1997              [Page 18]
  1025. \
  1026. Draft     Architecture for Internet Management Frameworks     July 1997
  1027.  
  1028.  
  1029. 3.1.1. SNMP entity
  1030.  
  1031. An SNMP entity is an implementation of this architecture. Each such
  1032. SNMP entity consists of an SNMP engine and one or more associated
  1033. applications.
  1034.  
  1035. 3.1.2. SNMP engine
  1036.  
  1037. An SNMP engine has three subsystems:
  1038.  
  1039.    1) a Message Processing Subsystem,
  1040.    2) a Security Subsystem, and
  1041.    3) an Access Control Subsystem.
  1042.  
  1043. 3.1.3. snmpEngineID
  1044.  
  1045. Within an administrative domain, an snmpEngineID is the unique
  1046. and unambiguous identifier of an SNMP engine. Since there is a
  1047. one-to-one association between SNMP engines and SNMP entities,
  1048. it also uniquely and unambiguously identifies the SNMP entity.
  1049.  
  1050. 3.1.4. Message Processing Subsystem
  1051.  
  1052. The Message Processing Subsystem is responsible for preparing and
  1053. sending messages, and receiving and distributing messages.
  1054.  
  1055. The Message Processing Subsystem potentially contains multiple
  1056. Message Processing Models as shown in the next picture. Those
  1057. marked with an asterisk (*) may be absent.
  1058.  
  1059.  +------------------------------------------------------------------+
  1060.  |                                                                  |
  1061.  |  Message Processing Subsystem                                    |
  1062.  |                                                                  |
  1063.  |  +------------+  +------------+  +------------+  +------------+  |
  1064.  |  |            |  |          * |  |          * |  |          * |  |
  1065.  |  | SNMPv3     |  | SNMPv1     |  | SNMPv2c    |  | Other      |  |
  1066.  |  | Message    |  | Message    |  | Message    |  | Message    |  |
  1067.  |  | Processing |  | Processing |  | Processing |  | Processing |  |
  1068.  |  | Model      |  | Model      |  | Model      |  | Model      |  |
  1069.  |  |            |  |            |  |            |  |            |  |
  1070.  |  +------------+  +------------+  +------------+  +------------+  |
  1071.  |                                                                  |
  1072.  +------------------------------------------------------------------+
  1073.  
  1074. 3.1.5. Message Processing Model
  1075.  
  1076. Each Message Processing Model defines the format of a particular
  1077. version of an SNMP message and coordinates the processing of each
  1078. version-specific message.
  1079.  
  1080.  
  1081.  
  1082.  
  1083. Harrington/Wijnen         Expires  December 1997              [Page 19]
  1084. \
  1085. Draft     Architecture for Internet Management Frameworks     July 1997
  1086.  
  1087.  
  1088. 3.1.6. Security Subsystem
  1089.  
  1090. The Security Subsystem provides security services such as the
  1091. authentication and privacy of messages and potentially contains
  1092. multiple Security Models as shown in the next picture. Those
  1093. marked with an asterisk (*) may be absent.
  1094.  
  1095.  +------------------------------------------------------------------+
  1096.  |                                                                  |
  1097.  |  Security Subsystem                                              |
  1098.  |                                                                  |
  1099.  |  +------------+  +-------------------+  +---------------------+  |
  1100.  |  |            |  |                 * |  |                   * |  |
  1101.  |  | User-Based |  | Community-based   |  | Other               |  |
  1102.  |  | Security   |  | Security          |  | Security            |  |
  1103.  |  | Model      |  | Model             |  | Model               |  |
  1104.  |  |            |  |                   |  |                     |  |
  1105.  |  +------------+  +-------------------+  +---------------------+  |
  1106.  |                                                                  |
  1107.  +------------------------------------------------------------------+
  1108.  
  1109. 3.1.7. Security Model
  1110.  
  1111. A Security Model defines the threats against which it protects,
  1112. the goals of its services, and the security protocols used to provide
  1113. security services such as authentication and privacy.
  1114.  
  1115. 3.1.8. Security Protocol
  1116.  
  1117. A Security Protocol defines the mechanisms, procedures, and MIB
  1118. data used to provide a security service such as authentication
  1119. or privacy.
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142. Harrington/Wijnen         Expires  December 1997              [Page 20]
  1143. \
  1144. Draft     Architecture for Internet Management Frameworks     July 1997
  1145.  
  1146.  
  1147. 3.1.9. Access Control Subsystem
  1148.  
  1149. The Access Control Subsystem provides authorization services by
  1150. means of one or more Access Control Models.
  1151.  
  1152.  +------------------------------------------------------------------+
  1153.  |                                                                  |
  1154.  |  Access Control Subsystem                                        |
  1155.  |                                                                  |
  1156.  |  +------------+  +-------------------+  +---------------------+  |
  1157.  |  |            |  |                 * |  |                   * |  |
  1158.  |  | View-Based |  | Community         |  | Other               |  |
  1159.  |  | Access     |  | Access            |  | Access              |  |
  1160.  |  | Control    |  | Control           |  | Control             |  |
  1161.  |  | Model      |  | Model             |  | Model               |  |
  1162.  |  |            |  |                   |  |                     |  |
  1163.  |  +------------+  +-------------------+  +---------------------+  |
  1164.  |                                                                  |
  1165.  +------------------------------------------------------------------+
  1166.  
  1167. 3.1.10. Access Control Model
  1168.  
  1169. An Access Control Model defines a particular access decision function
  1170. in order to support decisions regarding authorization.
  1171.  
  1172. 3.1.11. Applications
  1173.  
  1174. There are several types of applications, which include:
  1175.  
  1176.   - command generator,
  1177.   - command responder,
  1178.   - notification originator,
  1179.   - notification receiver, and
  1180.   - proxy forwarder.
  1181.  
  1182. These applications make use of the services provided by the Security
  1183. and Administration Framework.
  1184.  
  1185. 3.1.12. SNMP Agent
  1186.  
  1187. An SNMP entity containing one or more command responder and/or
  1188. notification originator applications (along with their associated
  1189. SNMP engine) has traditionally been called an SNMP agent.
  1190.  
  1191. 3.1.13. SNMP Manager
  1192.  
  1193. An SNMP entity containing one or more command generator and/or
  1194. notification receiver applications (along with their associated
  1195. SNMP engine) has traditionally been called an SNMP manager.
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201. Harrington/Wijnen         Expires  December 1997              [Page 21]
  1202. \
  1203. Draft     Architecture for Internet Management Frameworks     July 1997
  1204.  
  1205.  
  1206. 3.2. The Naming of Identities
  1207.  
  1208.  
  1209. principal  <---------------------------------+
  1210.                                              |
  1211.        +-------------------------------------|-----+
  1212.        |  SNMP engine                        |     |
  1213.        |                                     |     |
  1214.        |  +-----------------------+          |     |
  1215.        |  | Security Model        |          |     |
  1216.        |  |  +-------------+      |          |     |
  1217.   wire |  |  | Model       |    +------------+--+  |
  1218. <----------->| Dependent   |<-->| | securityName|  |
  1219.        |  |  | Security ID |    +---------------+  |
  1220.        |  |  +-------------+      |                |
  1221.        |  |                       |                |
  1222.        |  +-----------------------+                |
  1223.        |                                           |
  1224.        |                                           |
  1225.        +-------------------------------------------+
  1226.  
  1227.  
  1228. 3.2.1. Principal
  1229.  
  1230. A principal is the "who" on whose behalf services are provided
  1231. or processing takes place.
  1232.  
  1233. A principal can be, among other things, an individual acting in
  1234. a particular role; a set of individuals, with each acting in a
  1235. particular role; an application; or a set of applications;
  1236. and combinations thereof.
  1237.  
  1238. 3.2.2. securityName
  1239.  
  1240. A securityName is a human readable string representing a principal.
  1241. It has a model independent format, and can be used outside a
  1242. particular Security Model.
  1243.  
  1244. 3.2.3. Model dependent security ID
  1245.  
  1246. A model dependent security ID is the model specific representation
  1247. of a securityName within a particular Security Model.
  1248.  
  1249. Model dependent security IDs may or may not be human readable, and
  1250. have a model dependent syntax.  Examples include community names,
  1251. user names, and parties.
  1252.  
  1253. The transformation of model dependent security IDs into securityNames
  1254. and vice versa is the responsibility of the relevant Security Model.
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260. Harrington/Wijnen         Expires  December 1997              [Page 22]
  1261. \
  1262. Draft     Architecture for Internet Management Frameworks     July 1997
  1263.  
  1264.  
  1265. 3.3. The Naming of Management Information
  1266.  
  1267. Management information resides at an SNMP entity where a Command
  1268. Responder Application has local access to potentially multiple
  1269. contexts.  Such a Command Responder application uses a contextEngineID
  1270. equal to the snmpEngineID of its associated SNMP engine.
  1271.  
  1272.     +--------------------------------------------------------------+
  1273.     |  SNMP entity (identified by snmpEngineID, example: abcd)     |
  1274.     |                                                              |
  1275.     | +----------------------------------------------------------+ |
  1276.     | |  SNMP engine (identified by snmpEngineID)                | |
  1277.     | |                                                          | |
  1278.     | |  +---------------+  +--------------+  +---------------+  | |
  1279.     | |  |               |  |              |  |               |  | |
  1280.     | |  | Message       |  | Security     |  | Access        |  | |
  1281.     | |  | Processing    |  | Subsystem    |  | Control       |  | |
  1282.     | |  | Subsystem     |  |              |  | Subsystem     |  | |
  1283.     | |  |               |  |              |  |               |  | |
  1284.     | |  +---------------+  +--------------+  +---------------+  | |
  1285.     | |                                                          | |
  1286.     | +----------------------------------------------------------+ |
  1287.     |                                                              |
  1288.     | +----------------------------------------------------------+ |
  1289.     | | Command Responder Application                            | |
  1290.     | | (contextEngineID, example: abcd)                         | |
  1291.     | |                                                          | |
  1292.     | | example contextNames:                                    | |
  1293.     | |                                                          | |
  1294.     | | "repeater1"        "repeater2"          "" (default)     | |
  1295.     | | -----------        -----------          ------------     | |
  1296.     | |     |                   |                    |           | |
  1297.     | +-----|-------------------|--------------------|-----------+ |
  1298.     |       |                   |                    |             |
  1299.     | +-----|-------------------|--------------------|-----------+ |
  1300.     | | MIB |  instrumentation  |                    |           | |
  1301.     | |-----v------------+ +----v-------------+ +----v-----------| |
  1302.     | | context          | | context          | | context        | |
  1303.     | |                  | |                  | |                | |
  1304.     | | +--------------+ | | +--------------+ | | +------------+ | |
  1305.     | | | repeater MIB | | | | repeater MIB | | | | other MIB  | | |
  1306.     | | +--------------+ | | +--------------+ | | +------------+ | |
  1307.     | |                  | |                  | |                | |
  1308.     | |                  | |                  | | +------------+ | |
  1309.     | |                  | |                  | | | some  MIB  | | |
  1310.     | |                  | |                  | | +------------+ | |
  1311.     | |                  | |                  | |                | |
  1312.     +--------------------------------------------------------------+
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319. Harrington/Wijnen         Expires  December 1997              [Page 23]
  1320. \
  1321. Draft     Architecture for Internet Management Frameworks     July 1997
  1322.  
  1323.  
  1324. 3.3.1. An SNMP Context
  1325.  
  1326. An SNMP context, or just "context" for short,  is a collection of
  1327. management information accessible by an SNMP entity. An item of
  1328. management information may exist in more than one context. An SNMP
  1329. engine potentially has access to many contexts.
  1330.  
  1331. Typically, there are many instances of each managed object type within
  1332. a management domain.  For simplicity, the method for identifying
  1333. instances specified by the MIB module does not allow each instance to
  1334. be distinguished amongst the set of all instances within a management
  1335. domain; rather, it allows each instance to be identified only within
  1336. some scope or "context", where there are multiple such contexts within
  1337. the management domain.  Often, a context is a physical device, or
  1338. perhaps, a logical device, although a context can also encompass
  1339. multiple devices, or a subset of a single device, or even a subset of
  1340. multiple devices, but a context is always defined as a subset of a
  1341. single SNMP entity.  Thus, in order to identify an individual item of
  1342. management information within the management domain, its contextName
  1343. and contextEngineID must be identified in addition to its object type
  1344. and its instance.
  1345.  
  1346. For example, the managed object type ifDescr [RFC1573], is defined as
  1347. the description of a network interface.  To identify the description
  1348. of device-X's first network interface, four pieces of information are
  1349. needed: the snmpEngineID of the SNMP entity which provides access to
  1350. device-X, the contextName (device-X), the managed object type
  1351. (ifDescr), and the instance ("1").
  1352.  
  1353. Each context has (at least) one unique identification within the
  1354. management domain. The same item of management information can exist
  1355. in multiple contexts. So, an item of management information can have
  1356. multiple unique identifications, either because it exists in multiple
  1357. contexts, and/or because each such context has multiple unique
  1358. identifications.
  1359.  
  1360. The combination of a contextEngineID and a contextName unambiguously
  1361. identifies a context within an administrative domain.
  1362.  
  1363. 3.3.2. contextEngineID
  1364.  
  1365. Within an administrative domain, a contextEngineID uniquely
  1366. identifies an SNMP entity that may realize an instance of a
  1367. context with a particular contextName.
  1368.  
  1369. 3.3.3. contextName
  1370.  
  1371. A contextName is used to name a context. Each contextName
  1372. MUST be unique within an SNMP entity.
  1373.  
  1374. 3.3.4. scopedPDU
  1375.  
  1376.  
  1377.  
  1378. Harrington/Wijnen         Expires  December 1997              [Page 24]
  1379. \
  1380. Draft     Architecture for Internet Management Frameworks     July 1997
  1381.  
  1382.  
  1383.  
  1384. A scopedPDU is a block of data containing a contextEngineID,
  1385. a contextName, and a PDU.
  1386.  
  1387. The PDU is an SNMP Protocol Data Unit containing information
  1388. named in the context which is unambiguously identified within
  1389. an administrative domain by the combination of the contextEngineID
  1390. and the contextName. See, for example, RFC1905 for more information
  1391. about SNMP PDUs.
  1392.  
  1393. 3.4. Other Constructs
  1394.  
  1395. 3.4.1. maxSizeResponseScopedPDU
  1396.  
  1397. The maxSizeResponseScopedPDU is the maximum size of a scopedPDU to
  1398. be included in a response message, making allowance for the message
  1399. header.
  1400.  
  1401. 3.4.2. Local Configuration Datastore
  1402.  
  1403. The subsystems, models, and applications within an SNMP entity may
  1404. need to retain their own sets of configuration information.
  1405.  
  1406. Portions of the configuration information may be accessible as
  1407. managed objects.
  1408.  
  1409. The collection of these sets of information is referred to
  1410. as an entity's Local Configuration Datastore (LCD).
  1411.  
  1412. 3.4.3. LoS
  1413.  
  1414. This architecture recognizes three levels of security (LoS):
  1415.  
  1416.     - without authentication and without privacy (noAuthNoPriv)
  1417.     - with authentication but without privacy (authNoPriv)
  1418.     - with authentication and with privacy (authPriv)
  1419.  
  1420. These three values are ordered such that noAuthNoPriv is lower than
  1421. authNoPriv and authNoPriv is lower than authPriv.
  1422.  
  1423. Every message has an associated LoS. All Subsystems (Message
  1424. Processing, Security, Access Control) and applications are required
  1425. to either supply a value of LoS or to abide by the supplied value of
  1426. LoS while processing the message and its contents.
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437. Harrington/Wijnen         Expires  December 1997              [Page 25]
  1438. \
  1439. Draft     Architecture for Internet Management Frameworks     July 1997
  1440.  
  1441.  
  1442. 4. Architectural Elements of Procedure
  1443.  
  1444. The architecture described here contains three subsystems, each
  1445. capable of being defined as one or more different models which may
  1446. be replaced or supplemented as the growing needs of network management
  1447. require. The architecture also includes applications which utilize the
  1448. services provided by the subsystems.
  1449.  
  1450. An SNMP engine deals with SNMP messages, and is responsible for
  1451. sending and receiving messages, including having authentication
  1452. and encryption services applied to the messages, and determining
  1453. to which application the message contents should be delivered.
  1454.  
  1455. Applications deal with processing network management operations.
  1456. Depending on the network management service needed, an application
  1457. may use the Access Control Subsystem, and may use SNMP messages to
  1458. communicate with remote nodes.  The network management service may
  1459. be requested via the payload of an SNMP message, or may be requested
  1460. via a local process.
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496. Harrington/Wijnen         Expires  December 1997              [Page 26]
  1497. \
  1498. Draft     Architecture for Internet Management Frameworks     July 1997
  1499.  
  1500.  
  1501. 4.1.  Operational Overview
  1502.  
  1503. The following pictures show two communicating SNMP entities using
  1504. the conceptual modularity described by the SNMP Architecture.
  1505. The pictures represent SNMP entities that have traditionally been
  1506. called SNMP manager and SNMP agent respectively. The boxes marked
  1507. with an asterisk (*) may be absent.
  1508.  
  1509.                       (traditional SNMP manager)
  1510.  +--------------------------------------------------------------------+
  1511.  | SNMP entity                                                        |
  1512.  |                                                                    |
  1513.  | +--------------+         +--------------+         +--------------+ |
  1514.  | | NOTIFICATION |         | NOTIFICATION |         |   COMMAND    | |
  1515.  | |  ORIGINATOR  |         |   RECEIVER   |         |  GENERATOR   | |
  1516.  | | applications |         | applications |         | applications | |
  1517.  | +--------------+         +--------------+         +--------------+ |
  1518.  |         ^                       ^                        ^         |
  1519.  |         |                       |                        |         |
  1520.  |         v                       v                        v         |
  1521.  | +----------------------------------------------------------------+ |
  1522.  | |        Message Processing Application Multiplexor              | |
  1523.  | +----------------------------------------------------------------+ |
  1524.  |                     ^          ^            ^             ^        |
  1525.  | +-----------+       |          |            |             |        |
  1526.  | |           |       v          v            v             v        |
  1527.  | | Security  |    +------+  +---------+  +--------+   +-----------+ |
  1528.  | | Subsystem |<-->| v3MP |  | v2cMP * |  | v1MP * |...| otherMP * | |
  1529.  | |           |    +------+  +---------+  +--------+   +-----------+ |
  1530.  | +-----------+       ^          ^            ^             ^        |
  1531.  |                     |          |            |             |        |
  1532.  |                     v          v            v             v        |
  1533.  | +----------------------------------------------------------------+ |
  1534.  | |      Message Processing Model selection (incoming only)        | |
  1535.  | +----------------------------------------------------------------+ |
  1536.  |                           ^                                        |
  1537.  |                           |                                        |
  1538.  |                           v                                        |
  1539.  | +----------------------------------------------------------------+ |
  1540.  | |          TRANSPORT MAPPING (for example RFC1906)               | |
  1541.  | +----------------------------------------------------------------+ |
  1542.  +--------------------------------------------------------------------+
  1543.         +-----+ +-----+       +-------+
  1544.         | UDP | | IPX | . . . | other |
  1545.         +-----+ +-----+       +-------+
  1546.            ^       ^              ^
  1547.            |       |              |
  1548.            v       v              v
  1549.         +------------------------------+
  1550.         |           Network            |
  1551.         +------------------------------+
  1552.  
  1553.  
  1554.  
  1555. Harrington/Wijnen         Expires  December 1997              [Page 27]
  1556. \
  1557. Draft     Architecture for Internet Management Frameworks     July 1997
  1558.  
  1559.  
  1560.         +------------------------------+
  1561.         |           Network            |
  1562.         +------------------------------+
  1563.            ^       ^              ^
  1564.            |       |              |
  1565.            v       v              v
  1566.         +-----+ +-----+       +-------+
  1567.         | UDP | | IPX | . . . | other |
  1568.         +-----+ +-----+       +-------+       (traditional SNMP agent)
  1569.  +--------------------------------------------------------------------+
  1570.  | +----------------------------------------------------------------+ |
  1571.  | |          TRANSPORT MAPPING (for example RFC1906)               | |
  1572.  | +----------------------------------------------------------------+ |
  1573.  |                           ^                                        |
  1574.  |                           |                                        |
  1575.  |                           v                                        |
  1576.  | +----------------------------------------------------------------+ |
  1577.  | |      Message Processing Model selection (incoming only)        | |
  1578.  | +----------------------------------------------------------------+ |
  1579.  |                     ^          ^            ^             ^        |
  1580.  | +-----------+       |          |            |             |        |
  1581.  | |           |       v          v            v             v        |
  1582.  | | Security  |    +------+  +---------+  +--------+   +-----------+ |
  1583.  | | Subsystem |<-->| v3MP |  | v2cMP * |  | v1MP * |...| otherMP * | |
  1584.  | |           |    +------+  +---------+  +--------+   +-----------+ |
  1585.  | +-----------+       ^          ^            ^             ^        |
  1586.  |                     |          |            |             |        |
  1587.  |                     v          v            v             v        |
  1588.  | +----------------------------------------------------------------+ |
  1589.  | |        Message Processing Abstract Service Interface           | |
  1590.  | +----------------------------------------------------------------+ |
  1591.  |        ^                               ^                ^          |
  1592.  |        |                               |                |          |
  1593.  |        v                               v                v          |
  1594.  | +-------------+   +---------+   +--------------+   +-------------+ |
  1595.  | |   COMMAND   |   | ACCESS  |   | NOTIFICATION |   |    PROXY  * | |
  1596.  | |  RESPONDER  |<->| CONTROL |<->|  ORIGINATOR  |   |  FORWARDER  | |
  1597.  | | application |   |         |   | applications |   | application | |
  1598.  | +-------------+   +---------+   +--------------+   +-------------+ |
  1599.  |        ^                               ^                           |
  1600.  |        |                               |                           |
  1601.  |        v                               v                           |
  1602.  | +----------------------------------------------+                   |
  1603.  | |             MIB instrumentation              |       SNMP entity |
  1604.  +--------------------------------------------------------------------+
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614. Harrington/Wijnen         Expires  December 1997              [Page 28]
  1615. \
  1616. Draft     Architecture for Internet Management Frameworks     July 1997
  1617.  
  1618.  
  1619. 4.2. Sending and Receiving SNMP Messages
  1620.  
  1621. 4.2.1. Send a Message to the Network
  1622.  
  1623. Applications may request that messages be generated and sent. The
  1624. application has the responsibility of providing the information
  1625. necessary to generate the message, as detailed below, and of
  1626. providing the transport address to which the message should be sent.
  1627.  
  1628. The engine passes a request for a message to be generated to the
  1629. specified Message Processing Model which, utilizing the services of
  1630. the selected Security Model, generates the message and prepares it
  1631. for sending.
  1632.  
  1633. The SNMP engine sends the message to the specified transport address.
  1634. It then advises the sending Message Processing Model about the success
  1635. or failure of the sending of the message.
  1636.  
  1637. 4.2.2. Receive a Message from the Network
  1638.  
  1639. It is the responsibility of the SNMP engine to listen for incoming
  1640. messages at the appropriate local addresses. Some local addresses
  1641. for listening are recommended by SNMP Transport Mapping documents,
  1642. such as [RFC1906].
  1643.  
  1644. Upon receipt of an SNMP message, the SNMP engine increments the
  1645. snmpInPkts counter [RFC1907].
  1646.  
  1647. SNMP messages received from the network use a format defined by a
  1648. version-specific Message Processing Model, typically identified
  1649. by a version field in the message header.
  1650.  
  1651. The engine determines the SNMP version of an incoming message by
  1652. inspecting the serialized values for a recognizable pattern.
  1653. The mechanism by which it makes the determination of version is
  1654. implementation-specific, and dependent on the Message Processing
  1655. Models supported by the engine.
  1656.  
  1657. If the engine has no Message Processing Model for the determined
  1658. version, then the snmpInBadVersions counter [RFC1907] is incremented,
  1659. and the message is discarded without further processing.
  1660.  
  1661. The SNMP engine caches the msgID, which is subsequently used for
  1662. coordinating all processing regarding this received message, and
  1663. caches the origin network address so a possible response can be
  1664. sent to the origin address.
  1665.  
  1666. Based on the SNMP version of the message, the engine passes the
  1667. message to the appropriate version-specific Message Processing Model.
  1668. The Message Processing Model extracts the information in the message,
  1669. utilizing services of the appropriate Security Model to authenticate
  1670.  
  1671.  
  1672.  
  1673. Harrington/Wijnen         Expires  December 1997              [Page 29]
  1674. \
  1675. Draft     Architecture for Internet Management Frameworks     July 1997
  1676.  
  1677.  
  1678. and decrypt the message as needed.
  1679.  
  1680. 4.3. Send a Request or Notification Message for an Application
  1681.  
  1682. The Application Multiplexor receives a request for the generation
  1683. of an SNMP message from an application via the sendPdu primitive:
  1684.  
  1685. sendPdu(
  1686.     transportDomain             -- transport domain to be used
  1687.     transportAddress            -- destination network address
  1688.     messageProcessingModel      -- typically, SNMP version
  1689.     securityModel               -- Security Model to use
  1690.     securityName                -- on behalf of this principal
  1691.     LoS                         -- Level of Security requested
  1692.     contextEngineID             -- data from/at this entity
  1693.     contextName                 -- data from/in this context
  1694.     PDU                         -- SNMP Protocol Data Unit
  1695.     expectResponse)             -- TRUE or FALSE
  1696.  
  1697. The SNMP engine checks the "expectResponse" parameter to determine if
  1698. it is a message which is expected to receive a response, and if so,
  1699. caches the msgID of the generated message and which application
  1700. made the request.
  1701.  
  1702. The engine sends the message according to the procedure detailed
  1703. in section 4.2.1. Send a Message to the Network.
  1704.  
  1705. 4.4. Receive a Request or Notification Message from the Network
  1706.  
  1707. The engine receives the message according to the procedure detailed
  1708. in section 4.2.2. Receive a Message from the Network.
  1709.  
  1710. The Application Demultiplexor looks into the scopedPDU to determine
  1711. the contextEngineID and the PDU type, then determines which
  1712. application has registered (see section 4.7) to support that PDU type
  1713. for that contextEngineID.
  1714.  
  1715. The Application Demultiplexor passes the request or notification
  1716. to the registered application using the processPdu primitive:
  1717.  
  1718. processPdu(
  1719.     contextEngineID             -- data from/at this SNMP engine
  1720.     contextName                 -- data from/in this context
  1721.     PDU                         -- SNMP Protocol Data Unit
  1722.     maxSizeResponseScopedPDU    -- maximum size of the Response PDU
  1723.     securityModel               -- Security Model in use
  1724.     securityName                -- on behalf of this principal
  1725.     LoS                         -- Level of Security
  1726.     stateReference)             -- reference to state information
  1727.                                 -- needed when sending a response
  1728.  
  1729.  
  1730.  
  1731.  
  1732. Harrington/Wijnen         Expires  December 1997              [Page 30]
  1733. \
  1734. Draft     Architecture for Internet Management Frameworks     July 1997
  1735.  
  1736.  
  1737. 4.5. Generate a Response Message for an Application
  1738.  
  1739. The Application Multiplexor receives a request for the generation
  1740. of an SNMP response message from an application via the
  1741. returnResponsePdu primitive:
  1742.  
  1743. returnResponsePdu(
  1744.     contextEngineID             -- data from/at this SNMP engine
  1745.     contextName                 -- data from/in this context
  1746.     securityModel               -- Security Model in use
  1747.     securityName                -- on behalf of this principal
  1748.     LoS                         -- Level of Security
  1749.     stateReference              -- reference to state information
  1750.                                 -- as presented with the request
  1751.     PDU                         -- SNMP Protocol Data Unit
  1752.     maxSizeResponseScopedPDU    -- maximum size of the Response PDU
  1753.     statusInformation           -- success or errorIndication
  1754.     )                           -- error counter OID/value if error
  1755.  
  1756. The engine sends the message according to the procedure detailed
  1757. in section 4.2.1. Send a Message to the Network.
  1758.  
  1759. 4.6. Receive a Response Message
  1760.  
  1761. The engine receives the message according to the procedure detailed
  1762. in section 4.2.2. Receive a Message from the Network.
  1763.  
  1764. The Application Demultiplexor looks into the scopedPDU to determine
  1765. the contextEngineID and the PDU type.
  1766.  
  1767. If the PDU type is a Response PDU, the Demultiplexor matches the
  1768. msgID of the incoming response to the cached msgIDs of messages
  1769. sent by this SNMP engine.
  1770.  
  1771. If a matching cached msgID is found, the cached msgID and the cached
  1772. origin network address are released, and the response is passed to the
  1773. associated application using the processResponsePdu primitive:
  1774.  
  1775. processResponsePdu(
  1776.     contextEngineID             -- data from/at this SNMP engine
  1777.     contextName                 -- data from/in this context
  1778.     PDU                         -- SNMP Protocol Data Unit
  1779.     LoS                         -- Level of Security
  1780.     statusInformation           -- success or errorIndication
  1781.     )
  1782.  
  1783.  
  1784. 4.7. Registering to Receive Asynchronous Messages
  1785.  
  1786. When an SNMP engine receives a message that is not the response to a
  1787. request from this SNMP engine, it must determine to which application
  1788.  
  1789.  
  1790.  
  1791. Harrington/Wijnen         Expires  December 1997              [Page 31]
  1792. \
  1793. Draft     Architecture for Internet Management Frameworks     July 1997
  1794.  
  1795.  
  1796. the message should be given.
  1797.  
  1798. An Application that wishes to receive asynchronous messages registers
  1799. itself with the engine using the registration primitive. The
  1800. application registers to handle all incoming messages containing
  1801. a particular PDU type regarding a specific contextEngineID.
  1802.  
  1803. statusInformation =             -- success or errorIndication
  1804.     registerContextEngineID(
  1805.         contextEngineID         -- take responsibility for this one
  1806.         pduType                 -- the pduType(s) to be registered
  1807.         )
  1808.  
  1809. Only one registration per PDU type per contextEngineID is permitted
  1810. at the same time. Duplicate registrations are ignored. An
  1811. errorIndication will be returned to the application if it attempts
  1812. to duplicate an existing registration.
  1813.  
  1814. An Application that wishes to stop receiving asynchronous messages
  1815. should unregister itself with the SNMP engine.
  1816.  
  1817. unregisterContextEngineID(
  1818.         contextEngineID         -- give up responsibility for this one
  1819.         pduType                 -- the pduType(s) to be unregistered
  1820.         )
  1821.  
  1822. SNMP does not provide a mechanism for identifying an application,
  1823. so the mechanism used to identify which application is registering
  1824. is implementation-specific.
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850. Harrington/Wijnen         Expires  December 1997              [Page 32]
  1851. \
  1852. Draft     Architecture for Internet Management Frameworks     July 1997
  1853.  
  1854.  
  1855. 5. Definition of Managed Objects for Internet Management Frameworks
  1856.  
  1857. SNMP-FRAMEWORK-MIB DEFINITIONS ::= BEGIN
  1858.  
  1859. IMPORTS
  1860.     MODULE-IDENTITY, OBJECT-TYPE,
  1861.     OBJECT-IDENTITY,
  1862.     snmpModules, Unsigned32, Integer32    FROM SNMPv2-SMI
  1863.     TEXTUAL-CONVENTION                    FROM SNMPv2-TC
  1864.     MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF;
  1865.  
  1866. snmpFrameworkMIB MODULE-IDENTITY
  1867.     LAST-UPDATED "9707110000Z"            -- 11 July 1997, midnight
  1868.     ORGANIZATION "SNMPv3 Working Group"
  1869.     CONTACT-INFO "WG-email:   snmpv3@tis.com
  1870.                   Subscribe:  majordomo@tis.com
  1871.                               In message body:  subscribe snmpv3
  1872.  
  1873.                   Chair:      Russ Mundy
  1874.                               Trusted Information Systems
  1875.                   postal:     3060 Washington Rd
  1876.                               Glenwood MD 21738
  1877.                               USA
  1878.                   email:      mundy@tis.com
  1879.                   phone:      +1-301-854-6889
  1880.  
  1881.                   Co-editor   Dave Harrington
  1882.                               Cabletron Systems, Inc
  1883.                   postal:     Post Office Box 5005
  1884.                               MailStop: Durham
  1885.                               35 Industrial Way
  1886.                               Rochester NH 03867-5005
  1887.                               USA
  1888.                   email:      dbh@cabletron.com
  1889.                   phone:      +1-603-337-7357
  1890.  
  1891.                   Co-editor:  Bert Wijnen
  1892.                               IBM T.J. Watson Research
  1893.                   postal:     Schagen 33
  1894.                               3461 GL Linschoten
  1895.                               Netherlands
  1896.                   email:      wijnen@vnet.ibm.com
  1897.                   phone:      +31-348-432-794
  1898.                  "
  1899.     DESCRIPTION  "The Internet Management Architecture MIB"
  1900.     ::= { snmpModules 7 }  -- DBH: check if this number is indeed OK
  1901.  
  1902. -- Textual Conventions used in the Internet Management Architecture ***
  1903.  
  1904. SnmpEngineID ::= TEXTUAL-CONVENTION
  1905.     STATUS       current
  1906.  
  1907.  
  1908.  
  1909. Harrington/Wijnen         Expires  December 1997              [Page 33]
  1910. \
  1911. Draft     Architecture for Internet Management Frameworks     July 1997
  1912.  
  1913.  
  1914.     DESCRIPTION "An SNMP engine's administratively-unique identifier.
  1915.  
  1916.                  The value for this object may not be all zeros or
  1917.                  all 'ff'H.  It may also not be the empty string.
  1918.  
  1919.                  The initial value for this object may be configured
  1920.                  via an operator console entry or via an algorithmic
  1921.                  function.  In the latter case, the following
  1922.                  example algorithm for a twelve-octet identifier
  1923.                  is recommended:
  1924.  
  1925.                  1) The first four octets are set to the binary
  1926.                     equivalent of the entity's SNMP network management
  1927.                     private enterprise number as assigned by the
  1928.                     Internet Assigned Numbers Authority (IANA).
  1929.                     For example, if Acme Networks has been assigned
  1930.                     { enterprises 696 }, the first four octets would
  1931.                     be assigned '000002b8'H.
  1932.  
  1933.                  2) The remaining eight octets are determined via
  1934.                     one or more enterprise specific methods. Such
  1935.                     methods must be designed so as to maximize the
  1936.                     possibility that the value of this object will
  1937.                     be unique in the entity's administrative domain.
  1938.                     For example, it may be the IP address of the SNMP
  1939.                     entity, or the MAC address of one of the
  1940.                     interfaces, with each address suitably padded
  1941.                     with random octets.  If multiple methods are
  1942.                     defined, then it is recommended that the first
  1943.                     octet that indicates the method being used and
  1944.                     the remaining octets are a function of the method.
  1945.                 "
  1946.     SYNTAX       OCTET STRING
  1947.  
  1948. SnmpSecurityModel ::= TEXTUAL-CONVENTION
  1949.     STATUS       current
  1950.     DESCRIPTION "An identifier that uniquely identifies a securityModel
  1951.                  of the Security Subsystem within the Internet
  1952.                  Management Architecture.
  1953.  
  1954.                  The values for securityModel are allocated as follows:
  1955.  
  1956.                  - Negative and zero values are reserved.
  1957.                  - Values between 1 and 255, inclusive, are reserved
  1958.                    for standards-track Security Models and are managed
  1959.                    by the Internet Assigned Numbers Authority (IANA).
  1960.                  - Values greater than 255 are allocated to enterprise
  1961.                    specific Security Models.  An enterprise specific
  1962.                    securityModel value is defined to be:
  1963.  
  1964.                    enterpriseID * 256 + security model within enterprise
  1965.  
  1966.  
  1967.  
  1968. Harrington/Wijnen         Expires  December 1997              [Page 34]
  1969. \
  1970. Draft     Architecture for Internet Management Frameworks     July 1997
  1971.  
  1972.  
  1973.  
  1974.                    For example, the fourth Security Model defined by
  1975.                    the enterprise whose enterpriseID is 1 would be 260.
  1976.  
  1977.                  The eight bits allow a maximum of 255 (256-1 reserved)
  1978.                  standards based Security Models.  Similarly, they
  1979.                  allow a maximum of 255 Security Models per enterprise.
  1980.  
  1981.                  It is believed that the assignment of new
  1982.                  securityModel values will be rare in practice
  1983.                  because the larger the number of simultaneously
  1984.                  utilized Security Models, the larger the chance that
  1985.                  interoperability will suffer.  Consequently, it is
  1986.                  believed that such a range will be sufficient.
  1987.                  In the unlikely event that the standards committee
  1988.                  finds this number to be insufficient over time, an
  1989.                  enterprise number can be allocated to obtain an
  1990.                  additional 255 possible values.
  1991.  
  1992.                  Note that the most significant bit must be zero;
  1993.                  hence, there are 23 bits allocated for various
  1994.                  organizations to design and define non-standard
  1995.                  securityModels.  This limits the ability to define
  1996.                  new proprietary implementations of Security Models
  1997.                  to the first 8,388,608 enterprises.
  1998.  
  1999.                  It is worthwhile to note that, in its encoded form,
  2000.                  the securityModel value will normally require only a
  2001.                  single byte since, in practice, the leftmost bits will
  2002.                  be zero for most messages and sign extension is
  2003.                  suppressed by the encoding rules.
  2004.  
  2005.                  As of this writing, there are several values of
  2006.                  securityModel defined for use with SNMP or reserved
  2007.                  for use with supporting MIB objects.  They are as
  2008.                  follows:
  2009.  
  2010.                      0  reserved for 'none'
  2011.                      1  reserved for SNMPv1
  2012.                      2  reserved for SNMPv2c
  2013.                      3  User-Base Security Model (USM)
  2014.                    255  reserved for 'any'
  2015.                 "
  2016.     SYNTAX       INTEGER(0..2147483647)
  2017.  
  2018. SnmpLoS ::= TEXTUAL-CONVENTION
  2019.     STATUS       current
  2020.     DESCRIPTION "A Level of Security at which SNMP messages can be
  2021.                  sent or with which operations are being processed;
  2022.                  in particular, one of:
  2023.  
  2024.  
  2025.  
  2026.  
  2027. Harrington/Wijnen         Expires  December 1997              [Page 35]
  2028. \
  2029. Draft     Architecture for Internet Management Frameworks     July 1997
  2030.  
  2031.  
  2032.                    noAuthNoPriv - without authentication and
  2033.                                   without privacy,
  2034.                    authNoPriv   - with authentication but
  2035.                                   without privacy,
  2036.                    authPriv     - with authentication and
  2037.                                   with privacy.
  2038.  
  2039.                  These three values are ordered such that noAuthNoPriv
  2040.                  is lower than authNoPriv and authNoPriv is lower than
  2041.                  authPriv.
  2042.                 "
  2043.     SYNTAX       INTEGER { noAuthNoPriv(1),
  2044.                            authNoPriv(2),
  2045.                            authPriv(3)
  2046.                          }
  2047.  
  2048. SnmpAdminString ::= TEXTUAL-CONVENTION
  2049.     DISPLAY-HINT "255a"
  2050.     STATUS       current
  2051.     DESCRIPTION "An octet string containing administrative information,
  2052.                  preferably in human-readable form.
  2053.  
  2054.                  To facilitate internationalization, this information
  2055.                  is represented using the ISO/IEC IS 10646-1 character
  2056.                  set, encoded as an octet string using the UTF-8
  2057.                  character encoding scheme described in RFC 2044.
  2058.  
  2059.                  Since additional code points are added by amendments
  2060.                  to the 10646 standard from time to time,
  2061.                  implementations must be prepared to encounter any code
  2062.                  point from 0x00000000 to 0x7fffffff.
  2063.  
  2064.                  The use of control codes should be avoided.
  2065.  
  2066.                  For code points not directly supported by user
  2067.                  interface hardware or software, an alternative means
  2068.                  of entry and display, such as hexadecimal, may be
  2069.                  provided.
  2070.  
  2071.                  For information encoded in 7-bit US-ASCII, the UTF-8
  2072.                  representation is identical to the US-ASCII encoding.
  2073.                 "
  2074.     SYNTAX       OCTET STRING (SIZE (0..255))
  2075.  
  2076.  
  2077. -- Administrative assignments ****************************************
  2078.  
  2079. snmpFrameworkAdmin          OBJECT IDENTIFIER ::= { snmpFrameworkMIB 1 }
  2080. snmpFrameworkMIBObjects     OBJECT IDENTIFIER ::= { snmpFrameworkMIB 2 }
  2081. snmpFrameworkMIBConformance OBJECT IDENTIFIER ::= { snmpFrameworkMIB 3 }
  2082.  
  2083.  
  2084.  
  2085.  
  2086. Harrington/Wijnen         Expires  December 1997              [Page 36]
  2087. \
  2088. Draft     Architecture for Internet Management Frameworks     July 1997
  2089.  
  2090.  
  2091. -- the snmpEngine Group **********************************************
  2092.  
  2093. snmpEngine OBJECT IDENTIFIER ::= { snmpFrameworkMIBObjects 1 }
  2094.  
  2095. snmpEngineID     OBJECT-TYPE
  2096.     SYNTAX       SnmpEngineID
  2097.     MAX-ACCESS   read-only
  2098.     STATUS       current
  2099.     DESCRIPTION "An SNMP engine's administratively-unique identifier.
  2100.                 "
  2101.     ::= { snmpEngine 1 }
  2102.  
  2103. snmpEngineBoots  OBJECT-TYPE
  2104.     SYNTAX       Unsigned32 -- (1..4294967295)
  2105.     MAX-ACCESS   read-only
  2106.     STATUS       current
  2107.     DESCRIPTION "The number of times that the SNMP engine has
  2108.                  (re-)initialized itself since its initial
  2109.                  configuration.
  2110.                 "
  2111.     ::= { snmpEngine 2 }
  2112.  
  2113. snmpEngineTime   OBJECT-TYPE
  2114.     SYNTAX       Integer32 (0..2147483647)
  2115.     MAX-ACCESS   read-only
  2116.     STATUS       current
  2117.     DESCRIPTION "The number of seconds since the SNMP engine last
  2118.                  incremented the snmpEngineBoots object.
  2119.                 "
  2120.     ::= { snmpEngine 3 }
  2121.  
  2122.  
  2123. -- Registration Points for IMF Authentication and Privacy Protocols **
  2124.  
  2125. snmpAuthProtocols OBJECT-IDENTITY
  2126.     STATUS        current
  2127.     DESCRIPTION  "Registration point for standards-track authentication
  2128.                   protocols used in the Internet Management Framework.
  2129.                  "
  2130.     ::= { snmpFrameworkAdmin 1 }
  2131.  
  2132. snmpPrivProtocols OBJECT-IDENTITY
  2133.     STATUS        current
  2134.     DESCRIPTION  "Registration point for standards-track privacy
  2135.                   protocols used in the Internet Management Framework.
  2136.                  "
  2137.     ::= { snmpFrameworkAdmin 2 }
  2138.  
  2139. -- Conformance information *******************************************
  2140.  
  2141. snmpFrameworkMIBCompliances
  2142.  
  2143.  
  2144.  
  2145. Harrington/Wijnen         Expires  December 1997              [Page 37]
  2146. \
  2147. Draft     Architecture for Internet Management Frameworks     July 1997
  2148.  
  2149.  
  2150.                OBJECT IDENTIFIER ::= { snmpFrameworkMIBConformance 1 }
  2151. snmpFrameworkMIBGroups
  2152.                OBJECT IDENTIFIER ::= { snmpFrameworkMIBConformance 2 }
  2153.  
  2154. -- compliance statements
  2155.  
  2156. snmpFrameworkMIBCompliance MODULE-COMPLIANCE
  2157.     STATUS       current
  2158.     DESCRIPTION "The compliance statement for SNMP engines which
  2159.                  implement the Internet Management Framework MIB.
  2160.                 "
  2161.     MODULE    -- this module
  2162.         MANDATORY-GROUPS { snmpEngineGroup }
  2163.  
  2164.     ::= { snmpFrameworkMIBCompliances 1 }
  2165.  
  2166. -- units of conformance
  2167.  
  2168. snmpEngineGroup OBJECT-GROUP
  2169.     OBJECTS {
  2170.               snmpEngineID,
  2171.               snmpEngineBoots,
  2172.               snmpEngineTime
  2173.             }
  2174.     STATUS       current
  2175.     DESCRIPTION "A collection of objects for identifying and
  2176.                  determining the configuration and current timeliness
  2177.                  values of an SNMP engine.
  2178.                 "
  2179.     ::= { snmpFrameworkMIBGroups 1 }
  2180.  
  2181. END
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204. Harrington/Wijnen         Expires  December 1997              [Page 38]
  2205. \
  2206. Draft     Architecture for Internet Management Frameworks     July 1997
  2207.  
  2208.  
  2209. 6. Security Considerations
  2210.  
  2211. This document describes how a framework can use a Security Model and
  2212. an Access Control Model to achieve a level of security for network
  2213. management messages and controlled access to management information.
  2214.  
  2215. The level of security provided is determined by the specific Security
  2216. Model implementation(s) and the specific Access Control Model
  2217. implementation(s) incorporated into this framework.
  2218.  
  2219. Applications have access to data which is not secured.  Applications
  2220. should take reasonable steps to protect the data from disclosure.
  2221.  
  2222. It is the responsibility of the purchaser of a management framework
  2223. implementation to ensure that:
  2224.   1) an implementation of this framework complies with the rules
  2225.       defined by this architecture,
  2226.   2) the Security and Access Control Models utilized satisfy the
  2227.       security and access control needs of the organization,
  2228.   3) the implementations of the Models and Applications comply with
  2229.       the model and application specifications,
  2230.   4) and the implementation protects configuration secrets from
  2231.       inadvertent disclosure.
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263. Harrington/Wijnen         Expires  December 1997              [Page 39]
  2264. \
  2265. Draft     Architecture for Internet Management Frameworks     July 1997
  2266.  
  2267.  
  2268. 7. Glossary
  2269. 8. References
  2270.  
  2271. [RFC1155] Rose, M., and K. McCloghrie, "Structure and Identification
  2272.     of Management Information for TCP/IP-based internets", STD 16,
  2273.     RFC 1155, May 1990.
  2274.  
  2275. [RFC1157] Case, J., M. Fedor, M. Schoffstall, and J. Davin,
  2276.     "The Simple Network Management Protocol", STD 15, RFC 1157,
  2277.     University of Tennessee at Knoxville, Performance Systems s
  2278.     International, Performance International, and the MIT Laboratory
  2279.     for Computer Science, May 1990.
  2280.  
  2281. [RFC1212] Rose, M., and K. McCloghrie, "Concise MIB Definitions",
  2282.     STD 16, RFC 1212, March 1991.
  2283.  
  2284. [RFC1901] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2285.     Rose, M., and S., Waldbusser, "Introduction to
  2286.     Community-based SNMPv2", RFC 1901, January 1996.
  2287.  
  2288. [RFC1902] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2289.     Rose, M., and S., Waldbusser, "Structure of Management
  2290.     Information for Version  2 of the Simple Network Management
  2291.     Protocol (SNMPv2)", RFC 1905, January 1996.
  2292.  
  2293. [RFC1903] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M.,
  2294.     and S. Waldbusser, "Textual Conventions for Version 2 of the Simple
  2295.     Network Management Protocol (SNMPv2)", RFC 1903, January 1996.
  2296.  
  2297. [RFC1904] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M.,
  2298.     and S., Waldbusser, "Conformance Statements for Version 2 of the
  2299.     Simple Network Management Protocol (SNMPv2)", RFC 1904,
  2300.     January 1996.
  2301.  
  2302. [RFC1905] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2303.     Rose, M., and S., Waldbusser, "Protocol Operations for
  2304.     Version 2 of the Simple Network Management Protocol (SNMPv2)",
  2305.     RFC 1905, January 1996.
  2306.  
  2307. [RFC1906] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2308.     Rose, M., and S. Waldbusser, "Transport Mappings for
  2309.     Version 2 of the Simple Network Management Protocol (SNMPv2)",
  2310.     RFC 1906, January 1996.
  2311.  
  2312. [RFC1907] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2313.     Rose, M., and S. Waldbusser, "Management Information Base for
  2314.     Version 2 of the Simple Network Management Protocol (SNMPv2)",
  2315.     RFC 1907 January 1996.
  2316.  
  2317. [RFC1908] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2318.     Rose, M., and S. Waldbusser, "Coexistence between Version 1
  2319.     and Version 2 of the Internet-standard Network Management
  2320.  
  2321.  
  2322.  
  2323. Harrington/Wijnen         Expires  December 1997              [Page 40]
  2324. \
  2325. Draft     Architecture for Internet Management Frameworks     July 1997
  2326.  
  2327.  
  2328.     Framework", RFC 1908, January 1996.
  2329.  
  2330. [RFC1909] McCloghrie, K., Editor, "An Administrative Infrastructure
  2331.     for SNMPv2", RFC1909, February 1996
  2332.  
  2333. [RFC1910] Waters, G., Editor, "User-based Security Model for SNMPv2",
  2334.     RFC1910, February 1996
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382. Harrington/Wijnen         Expires  December 1997              [Page 41]
  2383. \
  2384. Draft     Architecture for Internet Management Frameworks     July 1997
  2385.  
  2386.  
  2387. 9. Editor's Addresses
  2388.  
  2389.                    Co-editor:  Bert Wijnen
  2390.                                IBM T.J. Watson Research
  2391.                    postal:     Schagen 33
  2392.                                3461 GL Linschoten
  2393.                                Netherlands
  2394.                    email:      wijnen@vnet.ibm.com
  2395.                    phone:      +31-348-432-794
  2396.  
  2397.                    Co-editor   Dave Harrington
  2398.                                Cabletron Systems, Inc
  2399.                    postal:     Post Office Box 5005
  2400.                                MailStop: Durham
  2401.                                35 Industrial Way
  2402.                                Rochester NH 03867-5005
  2403.                                USA
  2404.                    email:      dbh@cabletron.com
  2405.                    phone:      +1-603-337-7357
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441. Harrington/Wijnen         Expires  December 1997              [Page 42]
  2442. \
  2443. Draft     Architecture for Internet Management Frameworks     July 1997
  2444.  
  2445.  
  2446. 10. Acknowledgements
  2447.  
  2448. This document builds on the work of the SNMP Security and
  2449. Administrative Framework Evolution team, composed of
  2450.  
  2451.      David Harrington (Cabletron Systems Inc.)
  2452.      Jeff Johnson (Cisco)
  2453.      David Levi (SNMP Research Inc.)
  2454.      John Linn (Openvision)
  2455.      Russ Mundy (Trusted Information Systems) chair
  2456.      Shawn Routhier (Epilogue)
  2457.      Glenn Waters (Nortel)
  2458.      Bert Wijnen (IBM T.J. Watson Research)
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500. Harrington/Wijnen         Expires  December 1997              [Page 43]
  2501. \
  2502. Draft     Architecture for Internet Management Frameworks     July 1997
  2503.  
  2504.  
  2505. APPENDIX A
  2506.  
  2507. A. Guidelines for Model Designers
  2508.  
  2509. This appendix describes guidelines for designers of models which
  2510. are expected to fit into the architecture defined in this document.
  2511.  
  2512. The basic design elements come from SNMPv2u and SNMPv2*, as
  2513. described in RFCs 1909-1910, and from a set of internet drafts.
  2514. these are the two most popular de facto "administrative framework"
  2515. standards that include security and access control for SNMPv2.
  2516.  
  2517. SNMPv1 and SNMPv2c [RFC1901] are two administrative frameworks based
  2518. on communities to provide trivial authentication and access control.
  2519. SNMPv1 and SNMPv2c Frameworks can coexist with Frameworks designed
  2520. to fit into this architecture, and modified versions of SNMPv1 and
  2521. SNMPv2c Frameworks could be fit into this architecture, but this
  2522. document does not provide guidelines for that coexistence.
  2523.  
  2524. Within any subsystem model, there should be no reference to any
  2525. specific model of another subsystem, or to data defined by a specific
  2526. model of another subsystem.
  2527.  
  2528. Transfer of data between the subsystems is deliberately described
  2529.  
  2530. as a fixed set of abstract data elements and primitive functions
  2531. which can be overloaded to satisfy the needs of multiple model
  2532. definitions.
  2533.  
  2534. Documents which define models to be used within this architecture
  2535. SHOULD use the standard primitives between subsystems, possibly
  2536. defining specific mechanisms for converting the abstract data elements
  2537. into model-usable formats. This constraint exists to allow subsystem
  2538. and model documents to be written recognizing common borders of the
  2539. subsystem and model. Vendors are not constrained to recognize these
  2540. borders in their implementations.
  2541.  
  2542. The architecture defines certain standard services to be provided
  2543. between subsystems, and the architecture defines abstract service
  2544. interfaces to request the services.
  2545.  
  2546. Each model definition for a subsystem SHOULD support the standard
  2547. service interfaces, but whether, or how, or how well, it performs
  2548. the service is defined by the model definition.
  2549.  
  2550. A.1. Security Model Design Requirements
  2551.  
  2552. A.1.1. Threats
  2553.  
  2554. A document describing a Security Model MUST describe how the model
  2555. protects against the threats described under "Security Requirements
  2556. of this Architecture", section 1.4.
  2557.  
  2558.  
  2559.  
  2560. Harrington/Wijnen         Expires  December 1997              [Page 44]
  2561. \
  2562. Draft     Architecture for Internet Management Frameworks     July 1997
  2563.  
  2564.  
  2565.  
  2566. A.1.2. Security Processing
  2567.  
  2568. Received messages MUST be validated by a Model of the Security
  2569. Subsystem.  Validation includes authentication and privacy processing
  2570. if needed, but it is explicitly allowed to send messages which do
  2571. not require authentication or privacy.
  2572.  
  2573. A received message contains a specified Level of Security to be
  2574. used during processing.  All messages requiring privacy MUST also
  2575. require authentication.
  2576.  
  2577. A Security Model specifies rules by which authentication and privacy
  2578. are to be done.  A model may define mechanisms to provide additional
  2579. security features, but the model definition is constrained to using
  2580. (possibly a subset of) the abstract data elements defined in this
  2581. document for transferring data between subsystems.
  2582.  
  2583. Each Security Model may allow multiple security mechanisms to be used
  2584. concurrently within an implementation of the model. Each Security Model
  2585. defines how to determine which protocol to use, given the LoS and the
  2586. security parameters relevant to the message. Each Security Model, with
  2587. its associated protocol(s) defines how the sending/receiving entities
  2588. are identified, and how secrets are configured.
  2589.  
  2590. Authentication and Privacy protocols supported by Security Models are
  2591. uniquely identified using Object Identifiers. IETF standard protocol
  2592. for authentication or privacy should have an identifier defined within
  2593. the snmpAuthProtocols or the snmpPrivProtocols subtrees. Enterprise
  2594. specific protocol identifiers should be defined within the enterprise
  2595. subtree.
  2596.  
  2597. For privacy, the Security Model defines what portion of the message
  2598. is encrypted.
  2599.  
  2600. The persistent data used for security should be SNMP-manageable, but
  2601. the Security Model defines whether an instantiation of the MIB is a
  2602. conformance requirement.
  2603.  
  2604. Security Models are replaceable within the Security Subsystem.
  2605. Multiple Security Model implementations may exist concurrently within
  2606. an SNMP engine.  The number of Security Models defined by the SNMP
  2607. community should remain small to promote interoperability.
  2608.  
  2609. A.1.3. validate the security-stamp in a received message
  2610.  
  2611. The Message Processing Model requests that the Security Model verify
  2612. that the message has not been altered, and authenticate the
  2613. identification of the principal for whom the message was generated.
  2614. If encrypted, decrypt the message.
  2615.  
  2616.  
  2617.  
  2618.  
  2619. Harrington/Wijnen         Expires  December 1997              [Page 45]
  2620. \
  2621. Draft     Architecture for Internet Management Frameworks     July 1997
  2622.  
  2623.  
  2624. Additional requirements may be defined by the model, and additional
  2625. services provided by the model, but the model is constrained to use
  2626. the following primitives for transferring data between subsystems.
  2627. Implementations are not so constrained.
  2628.  
  2629. The Message Processing Model uses the following primitive:
  2630.  
  2631. processMsg(
  2632.     messageProcessingModel      -- typically, SNMP version
  2633.     msgID                       -- of the received message
  2634.     mms                         -- of the sending SNMP entity
  2635.     msgFlags                    -- for the received message
  2636.     securityParameters          -- for the received message
  2637.     securityModel               -- for the received message
  2638.     LoS                         -- Level of Security
  2639.     wholeMsg                    -- as received on the wire
  2640.     wholeMsgLength              -- length as received on the wire
  2641.     )
  2642.  
  2643. The Security Model uses the following primitive to respond:
  2644.  
  2645. returnProcessedMsg(
  2646.     securityName                -- identification of the principal
  2647.     scopedPDU,                  -- message (plaintext) payload
  2648.     maxSizeResponseScopedPDU    -- maximum size of the Response PDU
  2649.     securityStateReference      -- reference to security state
  2650.                                 -- information, needed for response
  2651.     statusInformation           -- errorIndication or success
  2652.     )                           -- error counter OID/value if error
  2653.  
  2654.  
  2655. A.1.5. Security MIBs
  2656.  
  2657. Each Security Model defines the MIB modules required for security
  2658. processing, including any MIB modules required for the security
  2659. mechanism(s) supported.  The MIB modules SHOULD be defined concurrently
  2660. with the procedures which use the MIB module.  The MIB modules are
  2661. subject to normal security and access control rules.
  2662.  
  2663. The mapping between the model-dependent identifier and the securityName
  2664. MUST be able to be determined using SNMP, if the model-dependent
  2665. MIB is instantiated and access control policy allows access.
  2666.  
  2667. A.1.6. Security State Cache
  2668.  
  2669. For each message received, the Security Subsystem caches the state
  2670. information such that a Response message can be generated using the
  2671. same security state information, even if the Local Configuration
  2672. Datastore is altered between the time of the incoming request and
  2673. the outgoing response.
  2674.  
  2675.  
  2676.  
  2677.  
  2678. Harrington/Wijnen         Expires  December 1997              [Page 46]
  2679. \
  2680. Draft     Architecture for Internet Management Frameworks     July 1997
  2681.  
  2682.  
  2683. Applications have the responsibility for explicitly releasing the
  2684. cached data. To enable this, an abstract stateReference data element
  2685. is passed from the Security Subsystem to the Message Processing
  2686. Subsystem, which passes it to the application.
  2687.  
  2688. The cached security data may be implicitly released via the
  2689. generation of a response, or explicitly released by using the
  2690. stateRelease primitive:
  2691.  
  2692. stateRelease(
  2693.      stateReference             -- handle of reference to be released
  2694.      )
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737. Harrington/Wijnen         Expires  December 1997              [Page 47]
  2738. \
  2739. Draft     Architecture for Internet Management Frameworks     July 1997
  2740.  
  2741.  
  2742. A.2. SNMP engine and Message Processing Model Requirements
  2743.  
  2744. An SNMP engine contains a Message Processing Subsystem which may
  2745. contain multiple version-specific Message Processing Models.
  2746.  
  2747. Within any version-specific Message Processing Model, there may be
  2748. an explicit binding to a particular Security Model but there should
  2749. be no reference to any data defined by a specific Security Model.
  2750. There should be no reference to any specific application, or to any
  2751. data defined by a specific application; there should be no reference
  2752. to any specific Access Control Model, or to any data defined by a
  2753. specific Access Control Model.
  2754.  
  2755. The Message Processing Model MUST always (conceptually) pass the
  2756. complete PDU, i.e. it never forwards less than the complete list of
  2757. varBinds.
  2758.  
  2759. A.2.1. Receiving an SNMP Message from the Network
  2760.  
  2761. Upon receipt of a message from the network, the SNMP engine notes the
  2762. msgID, which is subsequently  used for coordinating all processing
  2763. regarding this received message.
  2764.  
  2765. A Message Processing Model specifies how to determine the values of
  2766. the global data (mms, the securityModel, the LoS), and the security
  2767. parameters block. The Message Processing Model calls the Security
  2768. Model to provide security processing for the message using the
  2769. primitive:
  2770.  
  2771. processMsg(
  2772.     messageProcessingModel      -- typically, SNMP version
  2773.     msgID                       -- of the received message
  2774.     mms                         -- of the sending SNMP entity
  2775.     msgFlags                    -- for the received message
  2776.     securityParameters          -- for the received message
  2777.     securityModel               -- for the received message
  2778.     LoS                         -- Level of Security
  2779.     wholeMsg                    -- as received on the wire
  2780.     wholeMsgLength              -- length as received on the wire
  2781.     )
  2782.  
  2783. The Security Model uses the following primitive to respond:
  2784.  
  2785. returnProcessedMsg(
  2786.     securityName                -- identification of the principal
  2787.     scopedPDU,                  -- message (plaintext) payload
  2788.     maxSizeResponseScopedPDU    -- maximum size of the Response PDU
  2789.     securityStateReference      -- reference to security state
  2790.                                 -- information, needed for response
  2791.     statusInformation           -- errorIndication or success
  2792.     )                           -- error counter OID/value if error
  2793.  
  2794.  
  2795.  
  2796. Harrington/Wijnen         Expires  December 1997              [Page 48]
  2797. \
  2798. Draft     Architecture for Internet Management Frameworks     July 1997
  2799.  
  2800.  
  2801.  
  2802.  
  2803. A.2.2. Send SNMP messages to the network
  2804.  
  2805. The Message Processing Model passes a PDU, the
  2806. securityName, and all global data to be included in the message to
  2807. the Security model using the following primitives:
  2808.  
  2809. For requests and notifications:
  2810.  
  2811. generateRequestMsg(
  2812.     messageProcessingModel      -- typically, SNMP version
  2813.     msgID                       -- for the outgoing message
  2814.     mms                         -- of the sending SNMP entity
  2815.     msgFlags                    -- for the outgoing message
  2816.     securityParameters          -- filled in by Security Module
  2817.     securityModel               -- for the outgoing message
  2818.     securityName                -- on behalf of this principal
  2819.     LoS                         -- Level of Security requested
  2820.     snmpEngineID                -- authoritative SNMP engine
  2821.     scopedPDU                   -- message (plaintext) payload
  2822.     )
  2823.  
  2824. For response messages:
  2825.  
  2826. generateResponseMsg(
  2827.     messageProcessingModel      -- typically, SNMP version
  2828.     msgID                       -- for the outgoing message
  2829.     mms                         -- of the sending SNMP entity
  2830.     msgFlags                    -- for the outgoing message
  2831.     securityParameters          -- filled in by Security Module
  2832.     securityModel               -- for the outgoing message
  2833.     scopedPDU                   -- message (plaintext) payload
  2834.     securityStateReference      -- reference to security state
  2835.                                 -- information, as received in
  2836.     )                           -- processPdu primitive
  2837.  
  2838. The Security model constructs the message, and returns the completed
  2839. message to the Message Processing Model using the returnGeneratedMsg
  2840. primitive:
  2841.  
  2842. returnGeneratedMsg(
  2843.     wholeMsg                    -- complete generated message
  2844.     wholeMsgLength              -- length of the generated message
  2845.     statusInformation           -- errorIndication or success
  2846.     )
  2847.  
  2848. The SNMP engine sends the message to the desired address using the
  2849. appropriate transport.
  2850.  
  2851. A.2.3. Generate Request or Notification Message for an Application
  2852.  
  2853.  
  2854.  
  2855. Harrington/Wijnen         Expires  December 1997              [Page 49]
  2856. \
  2857. Draft     Architecture for Internet Management Frameworks     July 1997
  2858.  
  2859.  
  2860.  
  2861. The SNMP engine receives a request for the generation of an SNMP
  2862. message from an application via the sendPdu primitive:
  2863.  
  2864. sendPdu(
  2865.     transportDomain             -- transport domain to be used
  2866.     transportAddress            -- destination network address
  2867.     messageProcessingModel      -- typically, SNMP version
  2868.     securityModel               -- Security Model to use
  2869.     securityName                -- on behalf of this principal
  2870.     LoS                         -- Level of Security requested
  2871.     contextEngineID             -- data from/at this entity
  2872.     contextName                 -- data from/in this context
  2873.     PDU                         -- SNMP Protocol Data Unit
  2874.     expectResponse              -- TRUE or FALSE
  2875.     )
  2876.  
  2877. The SNMP engine checks the "expectResponse" parameter to determine if
  2878. it is a message which is expected to receive a response, and if so,
  2879. caches the msgID of the generated message and the associated
  2880. application.
  2881.  
  2882. The Message Processing Model generates the message according to the
  2883. process described in A.2.2.
  2884.  
  2885. A.2.4. Pass Received Response Message to an Application
  2886.  
  2887. The Message Processing Model receives the SNMP message according to
  2888. the process described in A.2.1.
  2889.  
  2890. The Message Processing Model determines which application is awaiting
  2891. this response, using the msgID and the cached information from
  2892. step A.2.3
  2893.  
  2894. The Message Processing Model matches the msgID of an incoming response
  2895. to the cached msgIDs of messages sent by this SNMP engine, and
  2896. forwards the response to the associated application using the
  2897. processResponsePdu primitive:
  2898.  
  2899. processResponsePdu(             -- process Response PDU
  2900.     contextEngineID             -- data from/at this SNMP entity
  2901.     contextName                 -- data from/in this context
  2902.     PDU                         -- SNMP Protocol Data Unit
  2903.     LoS                         -- Level of Security
  2904.     statusInformation           -- success or errorIndication
  2905.     )
  2906.  
  2907. A.2.5. Pass Received Request or Notification Message to Application
  2908.  
  2909. The Message Processing Model receives the SNMP message according to
  2910. the process described in A.2.1.
  2911.  
  2912.  
  2913.  
  2914. Harrington/Wijnen         Expires  December 1997              [Page 50]
  2915. \
  2916. Draft     Architecture for Internet Management Frameworks     July 1997
  2917.  
  2918.  
  2919.  
  2920. The SNMP engine looks into the scopedPDU to determine the
  2921. contextEngineID, then determine which application has registered to
  2922. support that contextEngineID, and forwards the request or notification
  2923. to the registered application using the processPdu primitive:
  2924.  
  2925. processPdu(                     -- process Request/Notification PDU
  2926.     contextEngineID             -- data from/at this SNMP engine
  2927.     contextName                 -- data from/in this context
  2928.     PDU                         -- SNMP Protocol Data Unit
  2929.     maxSizeResponseScopedPDU    -- maximum size of the Response PDU
  2930.     securityModel               -- Security Model in use
  2931.     securityName                -- on behalf of this principal
  2932.     LoS                         -- Level of Security
  2933.     stateReference              -- reference to state information
  2934.     )                           -- needed when sending a response
  2935.  
  2936. A.2.6. Generate a Response Message for an Application
  2937.  
  2938. The SNMP engine receives a request for the generation of an SNMP
  2939. response message from an application via the returnResponsePdu
  2940. primitive:
  2941.  
  2942. returnResponsePdu(
  2943.     contextEngineID             -- data from/at this SNMP engine
  2944.     contextName                 -- data from/in this context
  2945.     PDU                         -- SNMP Protocol Data Unit
  2946.     maxSizeResponseScopedPDU    -- maximum size of the Response PDU
  2947.     securityModel               -- Security Model in use
  2948.     securityName                -- on behalf of this principal
  2949.     LoS                         -- Level of Security
  2950.     stateReference              -- reference to state information
  2951.                                 -- as presented with the request
  2952.     statusInformation           -- success or errorIndication
  2953.     )                           -- error counter OID/value if error
  2954.  
  2955. The SNMP engine generates the message according to the process
  2956. described in A.2.2.
  2957.  
  2958.  
  2959. A.3. Application Design Requirements
  2960.  
  2961. Within an application, there may be an explicit binding to a specific
  2962. SNMP message version, i.e. a specific Message Processing Model, and to
  2963. a specific Access Control Model, but there should be no reference to
  2964. any data defined by a specific Message Processing Model or Access
  2965. Control Model.
  2966.  
  2967. Within an application, there should be no reference to any specific
  2968. Security Model, or any data defined by a specific Security Model.
  2969.  
  2970.  
  2971.  
  2972.  
  2973. Harrington/Wijnen         Expires  December 1997              [Page 51]
  2974. \
  2975. Draft     Architecture for Internet Management Frameworks     July 1997
  2976.  
  2977.  
  2978. An application determines whether explicit or implicit access control
  2979. should be applied to the operation, and, if access control is needed,
  2980. which Access Control Model should be used.
  2981.  
  2982. An application has the responsibility to define any MIB modules used
  2983. to provide application-specific services.
  2984.  
  2985. Applications interact with the SNMP engine to initiate messages,
  2986. receive responses, receive asynchronous messages, and send responses.
  2987.  
  2988. A.3.1. Applications that Initiate Messages
  2989.  
  2990. Applications may request that the SNMP engine send messages containing
  2991. SNMP commands or notifications using the sendPdu primitive:
  2992.  
  2993. sendPdu(
  2994.     transportDomain             -- transport domain to be used
  2995.     transportAddress            -- destination network address
  2996.     messageProcessingModel      -- typically, SNMP version
  2997.     securityModel               -- Security Model to use
  2998.     securityName                -- on behalf of this principal
  2999.     LoS                         -- Level of Security requested
  3000.     contextEngineID             -- data from/at this entity
  3001.     contextName                 -- data from/in this context
  3002.     PDU                         -- SNMP Protocol Data Unit
  3003.     expectResponse              -- TRUE or FALSE
  3004.     )
  3005.  
  3006.  
  3007. If it is desired that a message be sent to multiple targets, it is the
  3008. responsibility of the application to provide the iteration.
  3009.  
  3010. The SNMP engine assumes necessary access control has been applied
  3011. to the PDU, and provides no access control services.
  3012. The SNMP engine looks at the "expectResponse" parameter, and for
  3013. operations which elicit a response, the msgID and the associated
  3014. application are cached.
  3015.  
  3016. A.3.2. Applications that Receive Responses
  3017.  
  3018. The SNMP engine matches the msgID of an incoming response to the
  3019. cached msgIDs of messages sent by this SNMP engine, and forwards the
  3020. response to the associated application using the processResponsePdu
  3021. primitive:
  3022.  
  3023. processResponsePdu(             -- process Response PDU
  3024.     contextEngineID             -- data from/at this SNMP entity
  3025.     contextName                 -- data from/in this context
  3026.     PDU                         -- SNMP Protocol Data Unit
  3027.     LoS                         -- Level of Security
  3028.     statusInformation           -- success or errorIndication
  3029.  
  3030.  
  3031.  
  3032. Harrington/Wijnen         Expires  December 1997              [Page 52]
  3033. \
  3034. Draft     Architecture for Internet Management Frameworks     July 1997
  3035.  
  3036.  
  3037.     )
  3038.  
  3039. The SNMP engine then releases its own state information about this
  3040. message.
  3041.  
  3042. A.3.3. Applications that Receive Asynchronous Messages
  3043.  
  3044. When an SNMP engine receives a message that is not the response to a
  3045. request from this SNMP engine, it must determine to which application
  3046. the message should be given.
  3047.  
  3048. An Application that wishes to receive asynchronous messages registers
  3049. itself with the engine using the registration primitive.
  3050. An Application that wishes to stop receiving asynchronous messages
  3051. should unregister itself with the SNMP engine.
  3052.  
  3053. statusInformation =             -- success or errorIndication
  3054.     registerContextEngineID(
  3055.         contextEngineID         -- take responsibility for this one
  3056.         pduType                 -- the pduType(s) to be registered
  3057.         )
  3058.  
  3059. unregisterContextEngineID(
  3060.         contextEngineID         -- give up responsibility for this one
  3061.         pduType                 -- the pduType(s) to be unregistered
  3062.         )
  3063.  
  3064. Only one registration per PDU type per contextEngineID is permitted
  3065. at the same time. Duplicate registrations are ignored. An
  3066. errorIndication will be returned to the application that attempts
  3067. to duplicate a registration.
  3068.  
  3069. All asynchronously received messages containing a registered
  3070. PDU type and contextEngineID are sent to the application which
  3071. registered to support that combination.
  3072.  
  3073. The engine forwards the PDU to the registered application, using the
  3074. processPdu primitive:
  3075.  
  3076. processPdu(                     -- process Request/Notification PDU
  3077.     contextEngineID             -- data from/at this SNMP engine
  3078.     contextName                 -- data from/in this context
  3079.     PDU                         -- SNMP Protocol Data Unit
  3080.     maxSizeResponseScopedPDU    -- maximum size of the Response PDU
  3081.     securityModel               -- Security Model in use
  3082.     securityName                -- on behalf of this principal
  3083.     LoS                         -- Level of Security
  3084.     stateReference              -- reference to state information
  3085.     )                           -- needed when sending a response
  3086.  
  3087. A.3.4. Applications that Send Responses
  3088.  
  3089.  
  3090.  
  3091. Harrington/Wijnen         Expires  December 1997              [Page 53]
  3092. \
  3093. Draft     Architecture for Internet Management Frameworks     July 1997
  3094.  
  3095.  
  3096.  
  3097. Request operations require responses. These operations include Get
  3098. requests, Set requests, and Inform requests.  An application sends a
  3099. response via the returnResponsePdu primitive:
  3100.  
  3101. returnResponsePdu(
  3102.     contextEngineID             -- data from/at this SNMP engine
  3103.     contextName                 -- data from/in this context
  3104.     PDU                         -- SNMP Protocol Data Unit
  3105.     maxSizeResponseScopedPDU    -- maximum size of the Response PDU
  3106.     securityModel               -- on behalf of this principal
  3107.     securityName                -- on behalf of this principal
  3108.     LoS                         -- Level of Security
  3109.     stateReference              -- reference to state information
  3110.                                 -- as presented with the request
  3111.     statusInformation           -- success or errorIndication
  3112.     )                           -- error counter OID/value if error
  3113.  
  3114. The contextEngineID, contextName, securityModel, securityName, LoS, and
  3115. stateReference parameters are from the initial processPdu primitive.
  3116. The PDU and statusInformation are the results of processing.
  3117.  
  3118. A.4. Access Control Model Design Requirements
  3119.  
  3120. An Access Control Model determines whether the specified
  3121. securityName is allowed to perform the requested operation on
  3122. a specified managed object. The Access Control Model specifies the
  3123. rules by which access control is determined.
  3124.  
  3125. The persistent data used for access control should be manageable
  3126. using SNMP, but the Access Control model defines whether an
  3127. instantiation of the MIB is a conformance requirement.
  3128.  
  3129. The following primitive is used to invoke the access control service:
  3130.  
  3131. statusInformation =             -- success or errorIndication
  3132.     isAccessAllowed(
  3133.         securityModel           -- Security Model in use
  3134.         securityName            -- principal who wants to access
  3135.         LoS                     -- Level of Security
  3136.         viewType                -- read, write, or notify view
  3137.         contextName             -- context containing variableName
  3138.         variableName            -- OID for the managed object
  3139.         )
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150. Harrington/Wijnen         Expires  December 1997              [Page 54]
  3151. \
  3152. Draft     Architecture for Internet Management Frameworks     July 1997
  3153.  
  3154.  
  3155. APPENDIX B
  3156.  
  3157. B. An Evolutionary Architecture - Design Goals
  3158.  
  3159. The goals of the architectural design are to use encapsulation,
  3160. cohesion, hierarchical rules, and loose coupling to reduce complexity
  3161. of design and make the evolution of portions of the architecture
  3162. possible.
  3163.  
  3164. B.1. Encapsulation
  3165.  
  3166. Encapsulation describes the practice of hiding the details that are
  3167. used internal to a process. Some data is required for a given
  3168. procedure, but isn't needed by any other part of the process.
  3169.  
  3170. In networking, the concept of a layered stack reflects this approach.
  3171. The transport layer contains data specific to its processing; the data
  3172. is not visible to the other layers. In programming this is reflected
  3173. in language elements such as "file static" variables in C, and
  3174. "private" in C++, etc.
  3175.  
  3176. In this architecture, all data used for processing only within
  3177. a functional portion of the architecture should have its visibility
  3178. restricted to that portion if possible. The data should be accessed
  3179. only by that functionality defined with the data. No reference to the
  3180. data should be made from outside the functional portion of the
  3181. architecture, except through predefined public interfaces.
  3182.  
  3183. B.2. Cohesion
  3184.  
  3185. Similar functions can be grouped together and their differences
  3186. ignored, so they can be dealt with as a single entity. It is important
  3187. that the functions which are grouped together are actually similar.
  3188. Similarity of the data used to perform functions can be a good
  3189. indicator of the similarity of the functions.
  3190.  
  3191. For example, authentication and encryption are both security functions
  3192. which are applied to a message. Access control, while similar in some
  3193. ways, is dissimilar in that it is not applied to a message, it is
  3194. applied to a (proposed) request for a management operation.
  3195. The data required to perform authentication and encryption are
  3196. different than the data needed to perform access control, and the
  3197. two sets of services can be described independently.
  3198.  
  3199. Similar functions, especially those that use the same data elements,
  3200. should be defined together. The security functions which operate at
  3201. the message level should be defined in a document together with the
  3202. definitions for those data elements that are used only by those
  3203. security functions. For example, a MIB with authentication keys is
  3204. used only by authentication functions; they should be defined together.
  3205.  
  3206.  
  3207.  
  3208.  
  3209. Harrington/Wijnen         Expires  December 1997              [Page 55]
  3210. \
  3211. Draft     Architecture for Internet Management Frameworks     July 1997
  3212.  
  3213.  
  3214. B.3. Hierarchical Rules
  3215.  
  3216. Functionality can be grouped into hierarchies where each element in the
  3217. hierarchy receives general characteristics from its direct superior,
  3218. and passes on those characteristics to each of its direct subordinates.
  3219.  
  3220. This architecture uses the hierarchical approach by defining
  3221. subsystems, which specify the general rules of a portion of the system,
  3222. models which define the specific rules to be followed by an
  3223. implementation of the portion of the system, and implementations which
  3224. encode those rules into reality for a portion of the system.
  3225.  
  3226. Within portions of the system, hierarchical relationships are used to
  3227. compartmentalize, or modularize, the implementation of specific
  3228. functionality. For example, within the security portion of the system,
  3229. authentication and privacy may be contained in separate modules, and
  3230. multiple authentication and privacy mechanisms may be supported by
  3231. allowing supplemental modules that provide protocol-specific
  3232. authentication and privacy services.
  3233.  
  3234. B.4. Coupling
  3235.  
  3236. Coupling describes the amount of interdependence between parts of
  3237. a system. Loose coupling indicates that two sub-systems are relatively
  3238. independent of each other; tight coupling indicates a high degree of
  3239. mutual dependence.
  3240.  
  3241. To make it possible to evolve the architecture by replacing only part
  3242. of the system, or by supplementing existing portions with alternate
  3243. mechanisms for similar functionality, without obsoleting the complete
  3244. system, it is necessary to limit the coupling of the parts.
  3245.  
  3246. Encapsulation and cohesion help to reduce coupling by limiting the
  3247. visibility of those parts that are only needed within portions of a
  3248. system. Another mechanism is to constrain the nature of interactions
  3249. between various parts of the system.
  3250.  
  3251. This can be done by defining fixed, generic, flexible interfaces
  3252. for transferring data between the parts of the system. The concept of
  3253. plug-and-play hardware components is based on that type of interface
  3254. between the hardware component and system into which it is "plugged."
  3255.  
  3256. This approach has been chosen so individual portions of the system
  3257. can be upgraded over time, while keeping the overall system intact.
  3258.  
  3259. To avoid specifying fixed interfaces, which would constrain a vendor's
  3260. choice of implementation strategies, a set of abstract data elements
  3261. is used for (conceptually) transferring data between subsystems in
  3262. documents which describe subsystem or model interactions. Documents
  3263. describing the interaction of subsystems or models should use only
  3264. the abstract data elements provided for transferring data but vendors
  3265.  
  3266.  
  3267.  
  3268. Harrington/Wijnen         Expires  December 1997              [Page 56]
  3269. \
  3270. Draft     Architecture for Internet Management Frameworks     July 1997
  3271.  
  3272.  
  3273. are not constrained to using the described data elements for
  3274. transferring data between portions of their implementation.
  3275.  
  3276. Loose coupling works well with the IETF standards process. If we
  3277. separate message-handling from security and from local processing,
  3278. then the separate portions of the system can move through the standards
  3279. process with less dependence on the status of the other portions of the
  3280. standard. Security models may be able to be re-opened for discussion
  3281. due to patents, new research, export laws, etc., as is clearly expected
  3282. by the WG, without needing to reopen the documents which detail the
  3283. message format or the local processing of PDUs. Thus, the standards
  3284. track status of related, but independent, documents is not affected.
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312.  
  3313.  
  3314.  
  3315.  
  3316.  
  3317.  
  3318.  
  3319.  
  3320.  
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327. Harrington/Wijnen         Expires  December 1997              [Page 57]
  3328. \
  3329. Draft     Architecture for Internet Management Frameworks     July 1997
  3330.  
  3331.  
  3332. Table of Contents
  3333.  
  3334. 0. Issues                                                             2
  3335. 0.1. Issues to be resolved                                            2
  3336. 0.1.1. Issues discussed at second Interim Meeting:                    2
  3337. 0.2.  Change Log                                                      3
  3338. 1. Introduction                                                       7
  3339. 1.1. Target Audience                                                  7
  3340. 1.2. Management Systems                                               7
  3341. 1.3. Goals of this Architecture                                       8
  3342. 1.4. Security Requirements of this Architecture                       9
  3343. 1.5. Design Decisions                                                10
  3344. 2.  Documentation Overview                                           12
  3345. 2.1. Document Roadmap                                                13
  3346. 2.2. Applicability Statement                                         13
  3347. 2.3. Coexistence and Transition                                      13
  3348. 2.4. Transport Mappings                                              14
  3349. 2.5. Message Processing                                              14
  3350. 2.6. Security                                                        14
  3351. 2.7. Access Control                                                  14
  3352. 2.8. Applications                                                    15
  3353. 2.9. Structure of Management Information                             15
  3354. 2.10. Textual Conventions                                            15
  3355. 2.11. Conformance Statements                                         15
  3356. 2.12. Protocol Operations                                            16
  3357. 2.13. Management Information Base Modules                            16
  3358. 2.13.1. SNMP Instrumentation MIBs                                    16
  3359. 2.14. SNMP Framework Documents                                       16
  3360. 3. Naming                                                            18
  3361. 3.1. The Naming of Entities                                          18
  3362. 3.1.1. SNMP entity                                                   19
  3363. 3.1.2. SNMP engine                                                   19
  3364. 3.1.3. snmpEngineID                                                  19
  3365. 3.1.4. Message Processing Subsystem                                  19
  3366. 3.1.5. Message Processing Model                                      19
  3367. 3.1.6. Security Subsystem                                            20
  3368. 3.1.7. Security Model                                                20
  3369. 3.1.8. Security Protocol                                             20
  3370. 3.1.9. Access Control Subsystem                                      21
  3371. 3.1.10. Access Control Model                                         21
  3372. 3.1.11. Applications                                                 21
  3373. 3.1.12. SNMP Agent                                                   21
  3374. 3.1.13. SNMP Manager                                                 21
  3375. 3.2. The Naming of Identities                                        22
  3376. 3.2.1. Principal                                                     22
  3377. 3.2.2. securityName                                                  22
  3378. 3.2.3. Model dependent security ID                                   22
  3379. 3.3. The Naming of Management Information                            23
  3380. 3.3.1. An SNMP Context                                               24
  3381. 3.3.2. contextEngineID                                               24
  3382. 3.3.3. contextName                                                   24
  3383. 3.3.4. scopedPDU                                                     24
  3384. 3.4. Other Constructs                                                25
  3385.  
  3386.  
  3387.  
  3388. Harrington/Wijnen         Expires  December 1997              [Page 58]
  3389. \^L
  3390. Draft     Architecture for Internet Management Frameworks     July 1997
  3391.  
  3392.  
  3393. 3.4.1. maxSizeResponseScopedPDU                                      25
  3394. 3.4.2. Local Configuration Datastore                                 25
  3395. 3.4.3. LoS                                                           25
  3396. 4. Architectural Elements of Procedure                               26
  3397. 4.1.  Operational Overview                                           27
  3398. 4.2. Sending and Receiving SNMP Messages                             29
  3399. 4.2.1. Send a Message to the Network                                 29
  3400. 4.2.2. Receive a Message from the Network                            29
  3401. 4.3. Send a Request or Notification Message for an Application       30
  3402. 4.4. Receive a Request or Notification Message from the Network      30
  3403. 4.5. Generate a Response Message for an Application                  31
  3404. 4.6. Receive a Response Message                                      31
  3405. 4.7. Registering to Receive Asynchronous Messages                    31
  3406. 5. Definition of Managed Objects for Internet Management Frameworks  33
  3407. 6. Security Considerations                                           39
  3408. 7. Glossary                                                          40
  3409. 8. References                                                        40
  3410. 9. Editor's Addresses                                                42
  3411. 10. Acknowledgements                                                 43
  3412. A. Guidelines for Model Designers                                    44
  3413. A.1. Security Model Design Requirements                              44
  3414. A.1.1. Threats                                                       44
  3415. A.1.2. Security Processing                                           45
  3416. A.1.3. validate the security-stamp in a received message             45
  3417. A.1.5. Security MIBs                                                 46
  3418. A.1.6. Security State Cache                                          46
  3419. A.2. SNMP engine and Message Processing Model Requirements           48
  3420. A.2.1. Receiving an SNMP Message from the Network                    48
  3421. A.2.2. Send SNMP messages to the network                             49
  3422. A.2.3. Generate Request or Notification Message for an Application   49
  3423. A.2.4. Pass Received Response Message to an Application              50
  3424. A.2.5. Pass Received Request or Notification Message to Application  50
  3425. A.2.6. Generate a Response Message for an Application                51
  3426. A.3. Application Design Requirements                                 51
  3427. A.3.1. Applications that Initiate Messages                           52
  3428. A.3.2. Applications that Receive Responses                           52
  3429. A.3.3. Applications that Receive Asynchronous Messages               53
  3430. A.3.4. Applications that Send Responses                              53
  3431. A.4. Access Control Model Design Requirements                        54
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447. Harrington/Wijnen         Expires  December 1997              [Page 59]
  3448.  
  3449.