home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1303.txt < prev    next >
Text File  |  1996-05-07  |  24KB  |  370 lines

  1.   
  2.  
  3.   
  4.  
  5.   
  6.  
  7. Network Working Group                                      K. McCloghrie Request For Comments: 1303                            Hughes LAN Systems                                                                  M. Rose                                                   Dover Beach Consulting                                                            February 1992  
  8.  
  9.               A Convention for Describing SNMP-based Agents  
  10.  
  11. Status of This Memo  
  12.  
  13.    This memo provides information for the Internet community.  It does    not specify an Internet standard.  Distribution of this memo is    unlimited.  
  14.  
  15. Abstract  
  16.  
  17.    This memo suggests a straight-forward approach towards describing    SNMP-based agents.  
  18.  
  19. Table of Contents  
  20.  
  21.    1. The Network Management Framework ............................    2    2. Objects .....................................................    2    3. Describing Agents ...........................................    3    3.1 Definitions ................................................    4    3.2 Mapping of the MODULE-CONFORMANCE macro ....................    5    3.2.1 Mapping of the LAST-UPDATED clause .......................    6    3.2.2 Mapping of the PRODUCT-RELEASE clause ....................    6    3.2.3 Mapping of the DESCRIPTION clause ........................    6    3.2.4 Mapping of the SUPPORTS clause ...........................    6    3.2.4.1 Mapping of the INCLUDES clause .........................    6    3.2.4.2 Mapping of the VARIATION clause ........................    6    3.2.4.2.1 Mapping of the SYNTAX clause .........................    6    3.2.4.2.2 Mapping of the WRITE-SYNTAX clause ...................    7    3.2.4.2.3 Mapping of the ACCESS clause .........................    7    3.2.4.2.4 Mapping of the CREATION-REQUIRES clause ..............    7    3.2.4.2.5 Mapping of the DEFVAL clause .........................    7    3.2.4.2.6 Mapping of the DESCRIPTION clause ....................    7    3.3 Refined Syntax .............................................    7    3.4 Usage Example ..............................................    8    4. Acknowledgements ............................................   11    5. References ..................................................   11    6. Security Considerations......................................   12    7. Authors' Addresses...........................................   12  
  22.  
  23.   
  24.  
  25.   
  26.  
  27.  McCloghrie & Rose                                               [Page 1]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  28.  
  29.  1.  The Network Management Framework  
  30.  
  31.    The Internet-standard Network Management Framework consists of    three components.  They are:  
  32.  
  33.    RFC 1155 [1] which defines the SMI, the mechanisms used for    describing and naming objects for the purpose of management.    RFC 1212 [2] defines a more concise description mechanism,    which is wholly consistent with the SMI.  
  34.  
  35.    RFC 1213 [3] which defines MIB-II, the core set of managed    objects for the Internet suite of protocols.  
  36.  
  37.    RFC 1157 [4] which defines the SNMP, the protocol used for    network access to managed objects.  
  38.  
  39.    The Framework permits new objects to be defined for the    purpose of experimentation and evaluation.  
  40.  
  41. 2.  Objects  
  42.  
  43.    Managed objects are accessed via a virtual information store,    termed the Management Information Base or MIB.  Within a given    MIB module, objects are defined using RFC 1212's OBJECT-TYPE    macro.  At a minimum, each object has a name, a syntax, an    access-level, and an implementation-status.  
  44.  
  45.    The name is an object identifier, an administratively assigned    name, which specifies an object type.  The object type    together with an object instance serves to uniquely identify a    specific instantiation of the object.  For human convenience,    we often use a textual string, termed the OBJECT DESCRIPTOR,    to also refer to the object type.  
  46.  
  47.    The syntax of an object type defines the abstract data    structure corresponding to that object type.  The ASN.1[5]    language is used for this purpose.  However, RFC 1155    purposely restricts the ASN.1 constructs which may be used.    These restrictions are explicitly made for simplicity.  
  48.  
  49.    The access-level of an object type defines whether it makes    "protocol sense" to read and/or write the value of an instance    of the object type.  (This access-level is independent of any    administrative authorization policy.)  
  50.  
  51.    The implementation-status of an object type indicates whether    the object is mandatory, optional, obsolete, or deprecated.  
  52.  
  53.   
  54.  
  55.  McCloghrie & Rose                                               [Page 2]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  56.  
  57.  3.  Describing Agents  
  58.  
  59.    When a MIB module is written, it is divided into units of    conformance termed groups.  If an agent claims conformance to    a group, then it must implement each and every object within    that group.  Of course, for whatever reason, an agent may    implement only a subset of the groups within a MIB module.  In    addition, the definition of some MIB objects leave some    aspects of the definition to the discretion of an implementor.  
  60.  
  61.    Practical experience has demonstrated a need for concisely    describing the capabilities of an agent with regards to the    MIB groups that it implements.  This memo defines a new macro,    MODULE-CONFORMANCE, which allows an agent implementor to    describe the precise level of support which an agent claims in    regards to a MIB group, and to bind that description to the    sysObjectID associated with the agent.  In particular, some    objects may have restricted or augmented syntax or access-    levels.  
  62.  
  63.    If the MODULE-CONFORMANCE invocation is given to a    management-station implementor, then that implementor can    build management applications which optimize themselves when    communicating with a particular agent.  For example, the    management-station can maintain a database of these    invocations.  When a management-station interacts with an    agent, it retrieves the agent's sysObjectID.  Based on this,    it consults the database.  If an entry is found, then the    management application can optimize its behavior accordingly.  
  64.  
  65.    This binding to sysObjectId may not always suffice to define    all MIB objects to which an agent can provide access. In    particular, this situation occurs where the agent dynamically    learns of the objects it supports, for example, an agent    supporting SMUX peers via the SMUX protocol [6]. In these    situations, additional MIB objects beyond sysObjectID must be    used to name other invocations of the MODULE-CONFORMANCE macro    to augment the description of MIB support provided by the    agent. For example, if an agent's sysObjectID indicates that    it supports the SMUX MIB, then each instance of smuxPidentity    will indicate another MODULE-CONFORMANCE invocation which is    dynamically being supported by the agent.  
  66.  
  67.   
  68.  
  69.   
  70.  
  71.   
  72.  
  73.   
  74.  
  75. McCloghrie & Rose                                               [Page 3]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  76.  
  77.  3.1.  Definitions  
  78.  
  79.    RFC-1303 DEFINITIONS ::= BEGIN  
  80.  
  81.        IMPORTS            ObjectName, ObjectSyntax                FROM RFC1155-SMI            DisplayString                FROM RFC1213-MIB;  
  82.  
  83.        MODULE-CONFORMANCE MACRO ::=        BEGIN            TYPE NOTATION ::=                              "LAST-UPDATED"                                  value(update      UTCTime)                              "PRODUCT-RELEASE"                                  value(release     DisplayString)                              "DESCRIPTION"                                  value(description DisplayString)                              ModulePart  
  84.  
  85.            VALUE NOTATION ::=      -- agent's sysObjectID --                              value(VALUE ObjectName)  
  86.  
  87.            ModulePart ::=    Modules                            | empty  
  88.  
  89.            Modules ::=       Module                            | Modules Module  
  90.  
  91.            Module ::=                   -- name of module --                              "SUPPORTS" ModuleName                              "INCLUDES" "{" Groups "}"                              VariationPart  
  92.  
  93.            ModuleName ::=    identifier ModuleIdentifier  
  94.  
  95.            ModuleIdentifier ::=                              value (moduleID OBJECT IDENTIFIER)                            | empty  
  96.  
  97.            Groups ::=        Group                            | Groups "," Group  
  98.  
  99.            Group ::=         value(group OBJECT IDENTIFIER)  
  100.  
  101.            VariationPart ::= Variations                            | empty  
  102.  
  103.   
  104.  
  105. McCloghrie & Rose                                               [Page 4]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  106.  
  107.             Variations ::=    Variation                            | Variations Variation  
  108.  
  109.            Variation ::=     "VARIATION" value(object ObjectName)                              Syntax WriteSyntax Access                              Creation DefaultValue                              "DESCRIPTION"                                  value(limitext DisplayString)  
  110.  
  111.            -- must be a refinement for object's SYNTAX            Syntax ::=        "SYNTAX" type(SYNTAX)                            | empty  
  112.  
  113.            -- must be a refinement for object's SYNTAX            WriteSyntax ::=   "WRITE-SYNTAX" type(WriteSYNTAX)                            | empty  
  114.  
  115.            Access ::=        "ACCESS" AccessValue                            | empty  
  116.  
  117.            AccessValue ::=   "read-only"                            | "read-write"                            | "write-only"                            | "not-accessible"  
  118.  
  119.            Creation ::=      "CREATION-REQUIRES" "{" Cells "}"  
  120.  
  121.            Cells ::=         Cell                            | Cells "," Cell  
  122.  
  123.            Cell ::=          value(cell ObjectName)  
  124.  
  125.            DefaultValue ::=  "DEFVAL"                              "{" value (defval ObjectSyntax) "}"                            | empty  
  126.  
  127.        END  
  128.  
  129.    END  
  130.  
  131. 3.2.  Mapping of the MODULE-CONFORMANCE macro  
  132.  
  133.    It should be noted that the expansion of the MODULE-CONFORMANCE macro    is something which conceptually happens during implementation and not    during run-time.  
  134.  
  135.   
  136.  
  137.   
  138.  
  139.  McCloghrie & Rose                                               [Page 5]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  140.  
  141.  3.2.1.  Mapping of the LAST-UPDATED clause  
  142.  
  143.    The LAST-UPDATED clause, which must be present, contains the date and    time that this definition was last edited.  
  144.  
  145. 3.2.2.  Mapping of the PRODUCT-RELEASE clause  
  146.  
  147.    The PRODUCT-RELEASE clause, which must be present, contains a textual    description of the product release which includes this agent.  
  148.  
  149. 3.2.3.  Mapping of the DESCRIPTION clause  
  150.  
  151.    The DESCRIPTION clause, which must be present, contains a textual    description of this agent.  
  152.  
  153. 3.2.4.  Mapping of the SUPPORTS clause  
  154.  
  155.    The SUPPORTS clause, which need not be present, is repeatedly used to    name each MIB module for which the agent claims a complete or partial    implementation.  Each MIB module is named by its module name, and    optionally, by its associated OBJECT IDENTIFIER as well.  (Note that    only a few MIB modules have had OBJECT IDENTIFIERs assigned to them.)  
  156.  
  157. 3.2.4.1.  Mapping of the INCLUDES clause  
  158.  
  159.    The INCLUDES clause, which must be present for each use of the    SUPPORTS clause, is used to name each MIB group associated with the    SUPPORT clause, which the agent claims to implement.  
  160.  
  161. 3.2.4.2.  Mapping of the VARIATION clause  
  162.  
  163.    The VARIATION clause, which need not be present, is repeatedly used    to name each MIB object which the agent implements in some variant or    refined fashion.  
  164.  
  165. 3.2.4.2.1.  Mapping of the SYNTAX clause  
  166.  
  167.    The SYNTAX clause, which need not be present, is used to provide a    refined SYNTAX for the object named in the correspondent VARIATION    clause.  Note that if this clause and a WRITE-SYNTAX clause are both    present, then this clause only applies when instances of the object    named in the correspondent VARIATION clause are read.  
  168.  
  169.    Consult Section 3.3 for more information on refined syntax.  
  170.  
  171.   
  172.  
  173.   
  174.  
  175.   
  176.  
  177. McCloghrie & Rose                                               [Page 6]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  178.  
  179.  3.2.4.2.2.  Mapping of the WRITE-SYNTAX clause  
  180.  
  181.    The WRITE-SYNTAX clause, which need not be present, is used to    provide a refined SYNTAX for the object named in the correspondent    VARIATION clause when instances of that object are written.  
  182.  
  183.    Consult Section 3.3 for more information on refined syntax.  
  184.  
  185. 3.2.4.2.3.  Mapping of the ACCESS clause  
  186.  
  187.    The ACCESS clause, which need not be present, is used to provide a    refined ACCESS for the object named in the correspondent VARIATION    clause.  
  188.  
  189. 3.2.4.2.4.  Mapping of the CREATION-REQUIRES clause  
  190.  
  191.    The CREATION-REQUIRES clause, which need not be present, is used to    name the columnar objects of a conceptual row to which values must be    explicitly assigned, by a SNMP Set operation, before the agent will    create new instances of objects in that row.  This clause must not be    present unless the object named in the correspondent VARIATION clause    is a conceptual row, i.e., has a syntax which resolves to a SEQUENCE    containing columnar objects.  The objects named in the value of this    clause usually will refer to columnar objects in that row.  However,    objects unrelated to the conceptual row may also be specified.  
  192.  
  193.    The absence of this clause for a particular conceptual row indicates    that the agent does not support the creation, via SNMP operations, of    new object instances in that row.  
  194.  
  195. 3.2.4.2.5.  Mapping of the DEFVAL clause  
  196.  
  197.    The DEFVAL clause, which need not be present, is used to provide a    refined DEFVAL value for the object named in the correspondent    VARIATION clause.  The semantics of this value are identical to those    of the OBJECT-TYPE macro's DEFVAL clause [2].  
  198.  
  199. 3.2.4.2.6.  Mapping of the DESCRIPTION clause  
  200.  
  201.    The DESCRIPTION clause, which must be present for each use of the    VARIATION clause, contains a textual description of the variant or    refined implementation.  
  202.  
  203. 3.3.  Refined Syntax  
  204.  
  205.    The SYNTAX and WRITE-SYNTAX clauses allow an object's Syntax to be    refined.  However, not all refinements of syntax are appropriate.  In    particular,  
  206.  
  207.   
  208.  
  209. McCloghrie & Rose                                               [Page 7]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  210.  
  211.     (1)  the object's primitive or application type (as defined in         the SMI [1]) must not be changed;  
  212.  
  213.    (2)  an object defined with an SMI type of OBJECT IDENTIFIER,         IpAddress, Counter, or TimeTicks cannot be refined; and,  
  214.  
  215.    (3)  an object defined to have a specific set of values (e.g.,         an INTEGER with named values) cannot have additional         values defined for it.  
  216.  
  217. 3.4.  Usage Example  
  218.  
  219.    Consider how one might document the 4BSD/ISODE "Secure" SNMP    agent:  
  220.  
  221.    FourBSD-ISODE   DEFINITIONS ::= BEGIN  
  222.  
  223.    IMPORTS        MODULE-CONFORMANCE            FROM RFC-1303        -- everything --            FROM RFCxxxx-MIB        -- everything --            FROM RFC1213-MIB        -- everything --            FROM UNIX-MIB        -- everything --            FROM EVAL-MIB;  
  224.  
  225.    fourBSD-isode-support MODULE-CONFORMANCE        LAST-UPDATED        "9201252354Z"        PRODUCT-RELEASE     "ISODE 7.0 + 'Secure' SNMP                             upgrade for SunOS 4.1"        DESCRIPTION         "4BSD/ISODE 'Secure' SNMP"  
  226.  
  227.        SUPPORTS            RFCxxxx-MIB -- SNMP Party MIB --            INCLUDES        { partyPublic, partyPrivate }  
  228.  
  229.        SUPPORTS            RFC1213-MIB            INCLUDES        { system, interfaces, at, ip, icmp,                              tcp, udp, snmp }  
  230.  
  231.            VARIATION       atEntry                CREATION-REQUIRES { atPhysAddress }                DESCRIPTION "Address mappings on 4BSD require                             both protocol and media addresses"  
  232.  
  233.            VARIATION       ifAdminStatus  
  234.  
  235.   
  236.  
  237. McCloghrie & Rose                                               [Page 8]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  238.  
  239.                 SYNTAX      INTEGER { up(1), down(2) }                DESCRIPTION "Unable to set test mode on 4BSD"  
  240.  
  241.            VARIATION       ifOperStatus                SYNTAX      INTEGER { up(1), down(2) }                DESCRIPTION "Information limited on 4BSD"  
  242.  
  243.            VARIATION       ipDefaultTTL                SYNTAX      INTEGER { maxttl(255) }                DESCRIPTION "Hard-wired on 4BSD"  
  244.  
  245.            VARIATION       ipInAddrErrors                ACCESS      not-accessible                DESCRIPTION "Information not available on 4BSD"  
  246.  
  247.            VARIATION       ipInDiscards                ACCESS      not-accessible                DESCRIPTION "Information not available on 4BSD"  
  248.  
  249.            VARIATION       ipRouteEntry                CREATION-REQUIRES { ipRouteNextHop }                DESCRIPTION "Routes on 4BSD require both                             destination and next-hop"  
  250.  
  251.            VARIATION       ipRouteType                SYNTAX       INTEGER { direct(3), indirect(4) }                WRITE-SYNTAX INTEGER { invalid(2), direct(3),                                       indirect(4) }                DESCRIPTION "Information limited on 4BSD"  
  252.  
  253.            VARIATION       ipRouteProto                SYNTAX      INTEGER { other(1), icmp (4) }                DESCRIPTION "Information limited on 4BSD"  
  254.  
  255.            VARIATION       ipRouteAge                ACCESS      not-accessible                DESCRIPTION "Information not available on 4BSD"  
  256.  
  257.            VARIATION       ipNetToMediaEntry                CREATION-REQUIRES { ipNetToMediaPhysAddress }                DESCRIPTION "Address mappings on 4BSD require                             both protocol and media addresses"  
  258.  
  259.            VARIATION       ipNetToMediaType                SYNTAX       INTEGER { dynamic(3), static(4) }                WRITE-SYNTAX INTEGER { invalid(2), dynamic(3),                                       static(4) }                DESCRIPTION "Information limited on 4BSD"  
  260.  
  261.   
  262.  
  263. McCloghrie & Rose                                               [Page 9]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  264.  
  265.             VARIATION       tcpConnState                ACCESS      read-only                DESCRIPTION "Unable to set this on 4BSD"  
  266.  
  267.            VARIATION       tcpInErrs                ACCESS      not-accessible                DESCRIPTION "Information not available on 4BSD"  
  268.  
  269.            VARIATION       tcpOutRsts                ACCESS      not-accessible                DESCRIPTION "Information not available on 4BSD"  
  270.  
  271.        SUPPORTS            UNIX-MIB            INCLUDES        { agents, mbuf, netstat }  
  272.  
  273.        SUPPORTS            EVAL-MIB            INCLUDES        { functions, expressions }  
  274.  
  275.        ::= { fourBSD-isode 6 6 }  
  276.  
  277.    END  
  278.  
  279.    According to this invocation, an agent with a sysObjectID of  
  280.  
  281.         { fourBSD-isode 6 6 }  
  282.  
  283.    supports four MIB modules.  
  284.  
  285.    From the SNMP Party MIB, all the objects contained in the partyPublic    and partyPrivate groups are supported, without variation.  
  286.  
  287.    From MIB-II, all groups except the egp group are supported.  However,    the objects  
  288.  
  289.         ipInAddrErrors         ipInDiscards         ipRouteAge         tcpInErrs         tcpOutRsts  
  290.  
  291.    are not available, whilst the objects  
  292.  
  293.         ifAdminStatus         ifOperStatus         ipDefaultTTL         ipRouteType         ipRouteProto         ipNetToMediaType  
  294.  
  295.   
  296.  
  297. McCloghrie & Rose                                              [Page 10]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  298.  
  299.     have a restricted syntax, and the object  
  300.  
  301.         tcpConnState  
  302.  
  303.    is available only for reading.  Note that in the case of the objects  
  304.  
  305.         ipRouteType         ipNetToMediaType  
  306.  
  307.    the set of values which may be read is different than the set of    values which may be written.  Finally, when creating a new row in the    atTable, the set-request must create an instance of atPhysAddress.    Similarly, when creating a new row in the ipRouteTable, the set-    request must create an instance of ipRouteNextHop.  Similarly, when    creating a new row in the ipNetToMediaTable, the set-request must    create an instance of ipNetToMediaPhysAddress.  
  308.  
  309.    From the UNIX-MIB, all the objects contained in the agents, mbuf, and    netstat groups are supported, without variation.  
  310.  
  311.    From the EVAL-MIB, all the objects contained in the functions and    expressions groups are supported, without variation.  
  312.  
  313. 4.  Acknowledgements  
  314.  
  315.    The authors gratefully acknowledge the comments of Mark van der Pol    of Hughes LAN Systems, and David T. Perkins of SynOptics    Communications.  
  316.  
  317. 5.  References  
  318.  
  319.    [1]  Rose M., and K. McCloghrie, "Structure and Identification of         Management Information for TCP/IP-based internets", RFC 1155,         Performance Systems International, Hughes LAN Systems, May 1990.  
  320.  
  321.    [2]  Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions",         RFC 1212, Performance Systems International, Hughes LAN Systems,         March 1991.  
  322.  
  323.    [3]  McCloghrie K., and M. Rose, Editors, "Management Information         Base forNetwork Management of TCP/IP-based internets", RFC 1213,         Performance Systems International, March 1991.  
  324.  
  325.    [4]  Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple         Network Management Protocol (SNMP), RFC 1157, SNMP Research,         Performance Systems International, Performance Systems         International, MIT Laboratory for Computer Science, May 1990.  
  326.  
  327.   
  328.  
  329.  McCloghrie & Rose                                              [Page 11]   RFC 1303         Convention for Describing SNMP Agents     February 1992  
  330.  
  331.     [5]  Information processing systems - Open Systems Interconnection -         Specification of Abstract Syntax Notation One (ASN.1),         International Organization for Standardization, International         Standard 8824, December 1987.  
  332.  
  333.    [6]  Rose, M., "SNMP MUX Protocol and MIB", RFC 1227, Performance         Systems International, May 1991.  
  334.  
  335. 6.  Security Considerations  
  336.  
  337.    Security issues are not discussed in this memo.  
  338.  
  339. 7.  Authors' Addresses  
  340.  
  341.    Keith McCloghrie    Hughes LAN Systems    1225 Charleston Road    Mountain View, CA 94043  
  342.  
  343.    Phone: (415) 966-7934    EMail: kzm@hls.com  
  344.  
  345.     Marshall T. Rose    Dover Beach Consulting, Inc.    420 Whisman Court    Mountain View, CA  94043-2112  
  346.  
  347.    Phone: (415) 968-1052    EMail: mrose@dbc.mtview.ca.us  
  348.  
  349.   
  350.  
  351.   
  352.  
  353.   
  354.  
  355.   
  356.  
  357.   
  358.  
  359.   
  360.  
  361.   
  362.  
  363.   
  364.  
  365.   
  366.  
  367.   
  368.  
  369. McCloghrie & Rose                                              [Page 12]    
  370.