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-04.txt < prev    next >
Text File  |  1997-07-31  |  139KB  |  3,776 lines

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