|
|
1.1 root 1:
2:
3:
4:
5:
6:
7: Network Working Group J. Case
8: Request for Comments: 1157 SNMP Research
9: Obsoletes: RFC 1098 M. Fedor
10: Performance Systems International
11: M. Schoffstall
12: Performance Systems International
13: J. Davin
14: MIT Laboratory for Computer Science
15: May 1990
16:
17:
18: A Simple Network Management Protocol (SNMP)
19:
20: Table of Contents
21:
22: 1. Status of this Memo ................................... 2
23: 2. Introduction .......................................... 2
24: 3. The SNMP Architecture ................................. 5
25: 3.1 Goals of the Architecture ............................ 5
26: 3.2 Elements of the Architecture ......................... 5
27: 3.2.1 Scope of Management Information .................... 6
28: 3.2.2 Representation of Management Information ........... 6
29: 3.2.3 Operations Supported on Management Information ..... 7
30: 3.2.4 Form and Meaning of Protocol Exchanges ............. 8
31: 3.2.5 Definition of Administrative Relationships ......... 8
32: 3.2.6 Form and Meaning of References to Managed Objects .. 12
33: 3.2.6.1 Resolution of Ambiguous MIB References ........... 12
34: 3.2.6.2 Resolution of References across MIB Versions...... 12
35: 3.2.6.3 Identification of Object Instances ............... 12
36: 3.2.6.3.1 ifTable Object Type Names ...................... 13
37: 3.2.6.3.2 atTable Object Type Names ...................... 13
38: 3.2.6.3.3 ipAddrTable Object Type Names .................. 14
39: 3.2.6.3.4 ipRoutingTable Object Type Names ............... 14
40: 3.2.6.3.5 tcpConnTable Object Type Names ................. 14
41: 3.2.6.3.6 egpNeighTable Object Type Names ................ 15
42: 4. Protocol Specification ................................ 16
43: 4.1 Elements of Procedure ................................ 17
44: 4.1.1 Common Constructs .................................. 19
45: 4.1.2 The GetRequest-PDU ................................. 20
46: 4.1.3 The GetNextRequest-PDU ............................. 21
47: 4.1.3.1 Example of Table Traversal ....................... 23
48: 4.1.4 The GetResponse-PDU ................................ 24
49: 4.1.5 The SetRequest-PDU ................................. 25
50: 4.1.6 The Trap-PDU ....................................... 27
51: 4.1.6.1 The coldStart Trap ............................... 28
52: 4.1.6.2 The warmStart Trap ............................... 28
53: 4.1.6.3 The linkDown Trap ................................ 28
54: 4.1.6.4 The linkUp Trap .................................. 28
55:
56:
57:
58: Case, Fedor, Schoffstall, & Davin [Page 1]
59:
60: RFC 1157 SNMP May 1990
61:
62:
63: 4.1.6.5 The authenticationFailure Trap ................... 28
64: 4.1.6.6 The egpNeighborLoss Trap ......................... 28
65: 4.1.6.7 The enterpriseSpecific Trap ...................... 29
66: 5. Definitions ........................................... 30
67: 6. Acknowledgements ...................................... 33
68: 7. References ............................................ 34
69: 8. Security Considerations................................ 35
70: 9. Authors' Addresses..................................... 35
71:
72: 1. Status of this Memo
73:
74: This RFC is a re-release of RFC 1098, with a changed "Status of this
75: Memo" section plus a few minor typographical corrections. This memo
76: defines a simple protocol by which management information for a
77: network element may be inspected or altered by logically remote
78: users. In particular, together with its companion memos which
79: describe the structure of management information along with the
80: management information base, these documents provide a simple,
81: workable architecture and system for managing TCP/IP-based internets
82: and in particular the Internet.
83:
84: The Internet Activities Board recommends that all IP and TCP
85: implementations be network manageable. This implies implementation
86: of the Internet MIB (RFC-1156) and at least one of the two
87: recommended management protocols SNMP (RFC-1157) or CMOT (RFC-1095).
88: It should be noted that, at this time, SNMP is a full Internet
89: standard and CMOT is a draft standard. See also the Host and Gateway
90: Requirements RFCs for more specific information on the applicability
91: of this standard.
92:
93: Please refer to the latest edition of the "IAB Official Protocol
94: Standards" RFC for current information on the state and status of
95: standard Internet protocols.
96:
97: Distribution of this memo is unlimited.
98:
99: 2. Introduction
100:
101: As reported in RFC 1052, IAB Recommendations for the Development of
102: Internet Network Management Standards [1], a two-prong strategy for
103: network management of TCP/IP-based internets was undertaken. In the
104: short-term, the Simple Network Management Protocol (SNMP) was to be
105: used to manage nodes in the Internet community. In the long-term,
106: the use of the OSI network management framework was to be examined.
107: Two documents were produced to define the management information: RFC
108: 1065, which defined the Structure of Management Information (SMI)
109: [2], and RFC 1066, which defined the Management Information Base
110: (MIB) [3]. Both of these documents were designed so as to be
111:
112:
113:
114: Case, Fedor, Schoffstall, & Davin [Page 2]
115:
116: RFC 1157 SNMP May 1990
117:
118:
119: compatible with both the SNMP and the OSI network management
120: framework.
121:
122: This strategy was quite successful in the short-term: Internet-based
123: network management technology was fielded, by both the research and
124: commercial communities, within a few months. As a result of this,
125: portions of the Internet community became network manageable in a
126: timely fashion.
127:
128: As reported in RFC 1109, Report of the Second Ad Hoc Network
129: Management Review Group [4], the requirements of the SNMP and the OSI
130: network management frameworks were more different than anticipated.
131: As such, the requirement for compatibility between the SMI/MIB and
132: both frameworks was suspended. This action permitted the operational
133: network management framework, the SNMP, to respond to new operational
134: needs in the Internet community by producing documents defining new
135: MIB items.
136:
137: The IAB has designated the SNMP, SMI, and the initial Internet MIB to
138: be full "Standard Protocols" with "Recommended" status. By this
139: action, the IAB recommends that all IP and TCP implementations be
140: network manageable and that the implementations that are network
141: manageable are expected to adopt and implement the SMI, MIB, and
142: SNMP.
143:
144: As such, the current network management framework for TCP/IP- based
145: internets consists of: Structure and Identification of Management
146: Information for TCP/IP-based Internets, which describes how managed
147: objects contained in the MIB are defined as set forth in RFC 1155
148: [5]; Management Information Base for Network Management of TCP/IP-
149: based Internets, which describes the managed objects contained in the
150: MIB as set forth in RFC 1156 [6]; and, the Simple Network Management
151: Protocol, which defines the protocol used to manage these objects, as
152: set forth in this memo.
153:
154: As reported in RFC 1052, IAB Recommendations for the Development of
155: Internet Network Management Standards [1], the Internet Activities
156: Board has directed the Internet Engineering Task Force (IETF) to
157: create two new working groups in the area of network management. One
158: group was charged with the further specification and definition of
159: elements to be included in the Management Information Base (MIB).
160: The other was charged with defining the modifications to the Simple
161: Network Management Protocol (SNMP) to accommodate the short-term
162: needs of the network vendor and operations communities, and to align
163: with the output of the MIB working group.
164:
165: The MIB working group produced two memos, one which defines a
166: Structure for Management Information (SMI) [2] for use by the managed
167:
168:
169:
170: Case, Fedor, Schoffstall, & Davin [Page 3]
171:
172: RFC 1157 SNMP May 1990
173:
174:
175: objects contained in the MIB. A second memo [3] defines the list of
176: managed objects.
177:
178: The output of the SNMP Extensions working group is this memo, which
179: incorporates changes to the initial SNMP definition [7] required to
180: attain alignment with the output of the MIB working group. The
181: changes should be minimal in order to be consistent with the IAB's
182: directive that the working groups be "extremely sensitive to the need
183: to keep the SNMP simple." Although considerable care and debate has
184: gone into the changes to the SNMP which are reflected in this memo,
185: the resulting protocol is not backwardly-compatible with its
186: predecessor, the Simple Gateway Monitoring Protocol (SGMP) [8].
187: Although the syntax of the protocol has been altered, the original
188: philosophy, design decisions, and architecture remain intact. In
189: order to avoid confusion, new UDP ports have been allocated for use
190: by the protocol described in this memo.
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226: Case, Fedor, Schoffstall, & Davin [Page 4]
227:
228: RFC 1157 SNMP May 1990
229:
230:
231: 3. The SNMP Architecture
232:
233: Implicit in the SNMP architectural model is a collection of network
234: management stations and network elements. Network management
235: stations execute management applications which monitor and control
236: network elements. Network elements are devices such as hosts,
237: gateways, terminal servers, and the like, which have management
238: agents responsible for performing the network management functions
239: requested by the network management stations. The Simple Network
240: Management Protocol (SNMP) is used to communicate management
241: information between the network management stations and the agents in
242: the network elements.
243:
244: 3.1. Goals of the Architecture
245:
246: The SNMP explicitly minimizes the number and complexity of management
247: functions realized by the management agent itself. This goal is
248: attractive in at least four respects:
249:
250: (1) The development cost for management agent software
251: necessary to support the protocol is accordingly reduced.
252:
253: (2) The degree of management function that is remotely
254: supported is accordingly increased, thereby admitting
255: fullest use of internet resources in the management task.
256:
257: (3) The degree of management function that is remotely
258: supported is accordingly increased, thereby imposing the
259: fewest possible restrictions on the form and
260: sophistication of management tools.
261:
262: (4) Simplified sets of management functions are easily
263: understood and used by developers of network management
264: tools.
265:
266: A second goal of the protocol is that the functional paradigm for
267: monitoring and control be sufficiently extensible to accommodate
268: additional, possibly unanticipated aspects of network operation and
269: management.
270:
271: A third goal is that the architecture be, as much as possible,
272: independent of the architecture and mechanisms of particular hosts or
273: particular gateways.
274:
275: 3.2. Elements of the Architecture
276:
277: The SNMP architecture articulates a solution to the network
278: management problem in terms of:
279:
280:
281:
282: Case, Fedor, Schoffstall, & Davin [Page 5]
283:
284: RFC 1157 SNMP May 1990
285:
286:
287: (1) the scope of the management information communicated by
288: the protocol,
289:
290: (2) the representation of the management information
291: communicated by the protocol,
292:
293: (3) operations on management information supported by the
294: protocol,
295:
296: (4) the form and meaning of exchanges among management
297: entities,
298:
299: (5) the definition of administrative relationships among
300: management entities, and
301:
302: (6) the form and meaning of references to management
303: information.
304:
305: 3.2.1. Scope of Management Information
306:
307: The scope of the management information communicated by operation of
308: the SNMP is exactly that represented by instances of all non-
309: aggregate object types either defined in Internet-standard MIB or
310: defined elsewhere according to the conventions set forth in
311: Internet-standard SMI [5].
312:
313: Support for aggregate object types in the MIB is neither required for
314: conformance with the SMI nor realized by the SNMP.
315:
316: 3.2.2. Representation of Management Information
317:
318: Management information communicated by operation of the SNMP is
319: represented according to the subset of the ASN.1 language [9] that is
320: specified for the definition of non-aggregate types in the SMI.
321:
322: The SGMP adopted the convention of using a well-defined subset of the
323: ASN.1 language [9]. The SNMP continues and extends this tradition by
324: utilizing a moderately more complex subset of ASN.1 for describing
325: managed objects and for describing the protocol data units used for
326: managing those objects. In addition, the desire to ease eventual
327: transition to OSI-based network management protocols led to the
328: definition in the ASN.1 language of an Internet-standard Structure of
329: Management Information (SMI) [5] and Management Information Base
330: (MIB) [6]. The use of the ASN.1 language, was, in part, encouraged
331: by the successful use of ASN.1 in earlier efforts, in particular, the
332: SGMP. The restrictions on the use of ASN.1 that are part of the SMI
333: contribute to the simplicity espoused and validated by experience
334: with the SGMP.
335:
336:
337:
338: Case, Fedor, Schoffstall, & Davin [Page 6]
339:
340: RFC 1157 SNMP May 1990
341:
342:
343: Also for the sake of simplicity, the SNMP uses only a subset of the
344: basic encoding rules of ASN.1 [10]. Namely, all encodings use the
345: definite-length form. Further, whenever permissible, non-constructor
346: encodings are used rather than constructor encodings. This
347: restriction applies to all aspects of ASN.1 encoding, both for the
348: top-level protocol data units and the data objects they contain.
349:
350: 3.2.3. Operations Supported on Management Information
351:
352: The SNMP models all management agent functions as alterations or
353: inspections of variables. Thus, a protocol entity on a logically
354: remote host (possibly the network element itself) interacts with the
355: management agent resident on the network element in order to retrieve
356: (get) or alter (set) variables. This strategy has at least two
357: positive consequences:
358:
359: (1) It has the effect of limiting the number of essential
360: management functions realized by the management agent to
361: two: one operation to assign a value to a specified
362: configuration or other parameter and another to retrieve
363: such a value.
364:
365: (2) A second effect of this decision is to avoid introducing
366: into the protocol definition support for imperative
367: management commands: the number of such commands is in
368: practice ever-increasing, and the semantics of such
369: commands are in general arbitrarily complex.
370:
371: The strategy implicit in the SNMP is that the monitoring of network
372: state at any significant level of detail is accomplished primarily by
373: polling for appropriate information on the part of the monitoring
374: center(s). A limited number of unsolicited messages (traps) guide
375: the timing and focus of the polling. Limiting the number of
376: unsolicited messages is consistent with the goal of simplicity and
377: minimizing the amount of traffic generated by the network management
378: function.
379:
380: The exclusion of imperative commands from the set of explicitly
381: supported management functions is unlikely to preclude any desirable
382: management agent operation. Currently, most commands are requests
383: either to set the value of some parameter or to retrieve such a
384: value, and the function of the few imperative commands currently
385: supported is easily accommodated in an asynchronous mode by this
386: management model. In this scheme, an imperative command might be
387: realized as the setting of a parameter value that subsequently
388: triggers the desired action. For example, rather than implementing a
389: "reboot command," this action might be invoked by simply setting a
390: parameter indicating the number of seconds until system reboot.
391:
392:
393:
394: Case, Fedor, Schoffstall, & Davin [Page 7]
395:
396: RFC 1157 SNMP May 1990
397:
398:
399: 3.2.4. Form and Meaning of Protocol Exchanges
400:
401: The communication of management information among management entities
402: is realized in the SNMP through the exchange of protocol messages.
403: The form and meaning of those messages is defined below in Section 4.
404:
405: Consistent with the goal of minimizing complexity of the management
406: agent, the exchange of SNMP messages requires only an unreliable
407: datagram service, and every message is entirely and independently
408: represented by a single transport datagram. While this document
409: specifies the exchange of messages via the UDP protocol [11], the
410: mechanisms of the SNMP are generally suitable for use with a wide
411: variety of transport services.
412:
413: 3.2.5. Definition of Administrative Relationships
414:
415: The SNMP architecture admits a variety of administrative
416: relationships among entities that participate in the protocol. The
417: entities residing at management stations and network elements which
418: communicate with one another using the SNMP are termed SNMP
419: application entities. The peer processes which implement the SNMP,
420: and thus support the SNMP application entities, are termed protocol
421: entities.
422:
423: A pairing of an SNMP agent with some arbitrary set of SNMP
424: application entities is called an SNMP community. Each SNMP
425: community is named by a string of octets, that is called the
426: community name for said community.
427:
428: An SNMP message originated by an SNMP application entity that in fact
429: belongs to the SNMP community named by the community component of
430: said message is called an authentic SNMP message. The set of rules
431: by which an SNMP message is identified as an authentic SNMP message
432: for a particular SNMP community is called an authentication scheme.
433: An implementation of a function that identifies authentic SNMP
434: messages according to one or more authentication schemes is called an
435: authentication service.
436:
437: Clearly, effective management of administrative relationships among
438: SNMP application entities requires authentication services that (by
439: the use of encryption or other techniques) are able to identify
440: authentic SNMP messages with a high degree of certainty. Some SNMP
441: implementations may wish to support only a trivial authentication
442: service that identifies all SNMP messages as authentic SNMP messages.
443:
444: For any network element, a subset of objects in the MIB that pertain
445: to that element is called a SNMP MIB view. Note that the names of
446: the object types represented in a SNMP MIB view need not belong to a
447:
448:
449:
450: Case, Fedor, Schoffstall, & Davin [Page 8]
451:
452: RFC 1157 SNMP May 1990
453:
454:
455: single sub-tree of the object type name space.
456:
457: An element of the set { READ-ONLY, READ-WRITE } is called an SNMP
458: access mode.
459:
460: A pairing of a SNMP access mode with a SNMP MIB view is called an
461: SNMP community profile. A SNMP community profile represents
462: specified access privileges to variables in a specified MIB view. For
463: every variable in the MIB view in a given SNMP community profile,
464: access to that variable is represented by the profile according to
465: the following conventions:
466:
467: (1) if said variable is defined in the MIB with "Access:" of
468: "none," it is unavailable as an operand for any operator;
469:
470: (2) if said variable is defined in the MIB with "Access:" of
471: "read-write" or "write-only" and the access mode of the
472: given profile is READ-WRITE, that variable is available
473: as an operand for the get, set, and trap operations;
474:
475: (3) otherwise, the variable is available as an operand for
476: the get and trap operations.
477:
478: (4) In those cases where a "write-only" variable is an
479: operand used for the get or trap operations, the value
480: given for the variable is implementation-specific.
481:
482: A pairing of a SNMP community with a SNMP community profile is called
483: a SNMP access policy. An access policy represents a specified
484: community profile afforded by the SNMP agent of a specified SNMP
485: community to other members of that community. All administrative
486: relationships among SNMP application entities are architecturally
487: defined in terms of SNMP access policies.
488:
489: For every SNMP access policy, if the network element on which the
490: SNMP agent for the specified SNMP community resides is not that to
491: which the MIB view for the specified profile pertains, then that
492: policy is called a SNMP proxy access policy. The SNMP agent
493: associated with a proxy access policy is called a SNMP proxy agent.
494: While careless definition of proxy access policies can result in
495: management loops, prudent definition of proxy policies is useful in
496: at least two ways:
497:
498: (1) It permits the monitoring and control of network elements
499: which are otherwise not addressable using the management
500: protocol and the transport protocol. That is, a proxy
501: agent may provide a protocol conversion function allowing
502: a management station to apply a consistent management
503:
504:
505:
506: Case, Fedor, Schoffstall, & Davin [Page 9]
507:
508: RFC 1157 SNMP May 1990
509:
510:
511: framework to all network elements, including devices such
512: as modems, multiplexors, and other devices which support
513: different management frameworks.
514:
515: (2) It potentially shields network elements from elaborate
516: access control policies. For example, a proxy agent may
517: implement sophisticated access control whereby diverse
518: subsets of variables within the MIB are made accessible
519: to different management stations without increasing the
520: complexity of the network element.
521:
522: By way of example, Figure 1 illustrates the relationship between
523: management stations, proxy agents, and management agents. In this
524: example, the proxy agent is envisioned to be a normal Internet
525: Network Operations Center (INOC) of some administrative domain which
526: has a standard managerial relationship with a set of management
527: agents.
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562: Case, Fedor, Schoffstall, & Davin [Page 10]
563:
564: RFC 1157 SNMP May 1990
565:
566:
567: +------------------+ +----------------+ +----------------+
568: | Region #1 INOC | |Region #2 INOC | |PC in Region #3 |
569: | | | | | |
570: |Domain=Region #1 | |Domain=Region #2| |Domain=Region #3|
571: |CPU=super-mini-1 | |CPU=super-mini-1| |CPU=Clone-1 |
572: |PCommunity=pub | |PCommunity=pub | |PCommunity=slate|
573: | | | | | |
574: +------------------+ +----------------+ +----------------+
575: /|\ /|\ /|\
576: | | |
577: | | |
578: | \|/ |
579: | +-----------------+ |
580: +-------------->| Region #3 INOC |<-------------+
581: | |
582: |Domain=Region #3 |
583: |CPU=super-mini-2 |
584: |PCommunity=pub, |
585: | slate |
586: |DCommunity=secret|
587: +-------------->| |<-------------+
588: | +-----------------+ |
589: | /|\ |
590: | | |
591: | | |
592: \|/ \|/ \|/
593: +-----------------+ +-----------------+ +-----------------+
594: |Domain=Region#3 | |Domain=Region#3 | |Domain=Region#3 |
595: |CPU=router-1 | |CPU=mainframe-1 | |CPU=modem-1 |
596: |DCommunity=secret| |DCommunity=secret| |DCommunity=secret|
597: +-----------------+ +-----------------+ +-----------------+
598:
599:
600: Domain: the administrative domain of the element
601: PCommunity: the name of a community utilizing a proxy agent
602: DCommunity: the name of a direct community
603:
604:
605: Figure 1
606: Example Network Management Configuration
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618: Case, Fedor, Schoffstall, & Davin [Page 11]
619:
620: RFC 1157 SNMP May 1990
621:
622:
623: 3.2.6. Form and Meaning of References to Managed Objects
624:
625: The SMI requires that the definition of a conformant management
626: protocol address:
627:
628: (1) the resolution of ambiguous MIB references,
629:
630: (2) the resolution of MIB references in the presence multiple
631: MIB versions, and
632:
633: (3) the identification of particular instances of object
634: types defined in the MIB.
635:
636: 3.2.6.1. Resolution of Ambiguous MIB References
637:
638: Because the scope of any SNMP operation is conceptually confined to
639: objects relevant to a single network element, and because all SNMP
640: references to MIB objects are (implicitly or explicitly) by unique
641: variable names, there is no possibility that any SNMP reference to
642: any object type defined in the MIB could resolve to multiple
643: instances of that type.
644:
645: 3.2.6.2. Resolution of References across MIB Versions
646:
647: The object instance referred to by any SNMP operation is exactly that
648: specified as part of the operation request or (in the case of a get-
649: next operation) its immediate successor in the MIB as a whole. In
650: particular, a reference to an object as part of some version of the
651: Internet-standard MIB does not resolve to any object that is not part
652: of said version of the Internet-standard MIB, except in the case that
653: the requested operation is get-next and the specified object name is
654: lexicographically last among the names of all objects presented as
655: part of said version of the Internet-Standard MIB.
656:
657: 3.2.6.3. Identification of Object Instances
658:
659: The names for all object types in the MIB are defined explicitly
660: either in the Internet-standard MIB or in other documents which
661: conform to the naming conventions of the SMI. The SMI requires that
662: conformant management protocols define mechanisms for identifying
663: individual instances of those object types for a particular network
664: element.
665:
666: Each instance of any object type defined in the MIB is identified in
667: SNMP operations by a unique name called its "variable name." In
668: general, the name of an SNMP variable is an OBJECT IDENTIFIER of the
669: form x.y, where x is the name of a non-aggregate object type defined
670: in the MIB and y is an OBJECT IDENTIFIER fragment that, in a way
671:
672:
673:
674: Case, Fedor, Schoffstall, & Davin [Page 12]
675:
676: RFC 1157 SNMP May 1990
677:
678:
679: specific to the named object type, identifies the desired instance.
680:
681: This naming strategy admits the fullest exploitation of the semantics
682: of the GetNextRequest-PDU (see Section 4), because it assigns names
683: for related variables so as to be contiguous in the lexicographical
684: ordering of all variable names known in the MIB.
685:
686: The type-specific naming of object instances is defined below for a
687: number of classes of object types. Instances of an object type to
688: which none of the following naming conventions are applicable are
689: named by OBJECT IDENTIFIERs of the form x.0, where x is the name of
690: said object type in the MIB definition.
691:
692: For example, suppose one wanted to identify an instance of the
693: variable sysDescr The object class for sysDescr is:
694:
695: iso org dod internet mgmt mib system sysDescr
696: 1 3 6 1 2 1 1 1
697:
698: Hence, the object type, x, would be 1.3.6.1.2.1.1.1 to which is
699: appended an instance sub-identifier of 0. That is, 1.3.6.1.2.1.1.1.0
700: identifies the one and only instance of sysDescr.
701:
702: 3.2.6.3.1. ifTable Object Type Names
703:
704: The name of a subnet interface, s, is the OBJECT IDENTIFIER value of
705: the form i, where i has the value of that instance of the ifIndex
706: object type associated with s.
707:
708: For each object type, t, for which the defined name, n, has a prefix
709: of ifEntry, an instance, i, of t is named by an OBJECT IDENTIFIER of
710: the form n.s, where s is the name of the subnet interface about which
711: i represents information.
712:
713: For example, suppose one wanted to identify the instance of the
714: variable ifType associated with interface 2. Accordingly, ifType.2
715: would identify the desired instance.
716:
717: 3.2.6.3.2. atTable Object Type Names
718:
719: The name of an AT-cached network address, x, is an OBJECT IDENTIFIER
720: of the form 1.a.b.c.d, where a.b.c.d is the value (in the familiar
721: "dot" notation) of the atNetAddress object type associated with x.
722:
723: The name of an address translation equivalence e is an OBJECT
724: IDENTIFIER value of the form s.w, such that s is the value of that
725: instance of the atIndex object type associated with e and such that w
726: is the name of the AT-cached network address associated with e.
727:
728:
729:
730: Case, Fedor, Schoffstall, & Davin [Page 13]
731:
732: RFC 1157 SNMP May 1990
733:
734:
735: For each object type, t, for which the defined name, n, has a prefix
736: of atEntry, an instance, i, of t is named by an OBJECT IDENTIFIER of
737: the form n.y, where y is the name of the address translation
738: equivalence about which i represents information.
739:
740: For example, suppose one wanted to find the physical address of an
741: entry in the address translation table (ARP cache) associated with an
742: IP address of 89.1.1.42 and interface 3. Accordingly,
743: atPhysAddress.3.1.89.1.1.42 would identify the desired instance.
744:
745: 3.2.6.3.3. ipAddrTable Object Type Names
746:
747: The name of an IP-addressable network element, x, is the OBJECT
748: IDENTIFIER of the form a.b.c.d such that a.b.c.d is the value (in the
749: familiar "dot" notation) of that instance of the ipAdEntAddr object
750: type associated with x.
751:
752: For each object type, t, for which the defined name, n, has a prefix
753: of ipAddrEntry, an instance, i, of t is named by an OBJECT IDENTIFIER
754: of the form n.y, where y is the name of the IP-addressable network
755: element about which i represents information.
756:
757: For example, suppose one wanted to find the network mask of an entry
758: in the IP interface table associated with an IP address of 89.1.1.42.
759: Accordingly, ipAdEntNetMask.89.1.1.42 would identify the desired
760: instance.
761:
762: 3.2.6.3.4. ipRoutingTable Object Type Names
763:
764: The name of an IP route, x, is the OBJECT IDENTIFIER of the form
765: a.b.c.d such that a.b.c.d is the value (in the familiar "dot"
766: notation) of that instance of the ipRouteDest object type associated
767: with x.
768:
769: For each object type, t, for which the defined name, n, has a prefix
770: of ipRoutingEntry, an instance, i, of t is named by an OBJECT
771: IDENTIFIER of the form n.y, where y is the name of the IP route about
772: which i represents information.
773:
774: For example, suppose one wanted to find the next hop of an entry in
775: the IP routing table associated with the destination of 89.1.1.42.
776: Accordingly, ipRouteNextHop.89.1.1.42 would identify the desired
777: instance.
778:
779: 3.2.6.3.5. tcpConnTable Object Type Names
780:
781: The name of a TCP connection, x, is the OBJECT IDENTIFIER of the form
782: a.b.c.d.e.f.g.h.i.j such that a.b.c.d is the value (in the familiar
783:
784:
785:
786: Case, Fedor, Schoffstall, & Davin [Page 14]
787:
788: RFC 1157 SNMP May 1990
789:
790:
791: "dot" notation) of that instance of the tcpConnLocalAddress object
792: type associated with x and such that f.g.h.i is the value (in the
793: familiar "dot" notation) of that instance of the tcpConnRemoteAddress
794: object type associated with x and such that e is the value of that
795: instance of the tcpConnLocalPort object type associated with x and
796: such that j is the value of that instance of the tcpConnRemotePort
797: object type associated with x.
798:
799: For each object type, t, for which the defined name, n, has a prefix
800: of tcpConnEntry, an instance, i, of t is named by an OBJECT
801: IDENTIFIER of the form n.y, where y is the name of the TCP connection
802: about which i represents information.
803:
804: For example, suppose one wanted to find the state of a TCP connection
805: between the local address of 89.1.1.42 on TCP port 21 and the remote
806: address of 10.0.0.51 on TCP port 2059. Accordingly,
807: tcpConnState.89.1.1.42.21.10.0.0.51.2059 would identify the desired
808: instance.
809:
810: 3.2.6.3.6. egpNeighTable Object Type Names
811:
812: The name of an EGP neighbor, x, is the OBJECT IDENTIFIER of the form
813: a.b.c.d such that a.b.c.d is the value (in the familiar "dot"
814: notation) of that instance of the egpNeighAddr object type associated
815: with x.
816:
817: For each object type, t, for which the defined name, n, has a prefix
818: of egpNeighEntry, an instance, i, of t is named by an OBJECT
819: IDENTIFIER of the form n.y, where y is the name of the EGP neighbor
820: about which i represents information.
821:
822: For example, suppose one wanted to find the neighbor state for the IP
823: address of 89.1.1.42. Accordingly, egpNeighState.89.1.1.42 would
824: identify the desired instance.
825:
826:
827:
828:
829:
830:
831:
832:
833:
834:
835:
836:
837:
838:
839:
840:
841:
842: Case, Fedor, Schoffstall, & Davin [Page 15]
843:
844: RFC 1157 SNMP May 1990
845:
846:
847: 4. Protocol Specification
848:
849: The network management protocol is an application protocol by which
850: the variables of an agent's MIB may be inspected or altered.
851:
852: Communication among protocol entities is accomplished by the exchange
853: of messages, each of which is entirely and independently represented
854: within a single UDP datagram using the basic encoding rules of ASN.1
855: (as discussed in Section 3.2.2). A message consists of a version
856: identifier, an SNMP community name, and a protocol data unit (PDU).
857: A protocol entity receives messages at UDP port 161 on the host with
858: which it is associated for all messages except for those which report
859: traps (i.e., all messages except those which contain the Trap-PDU).
860: Messages which report traps should be received on UDP port 162 for
861: further processing. An implementation of this protocol need not
862: accept messages whose length exceeds 484 octets. However, it is
863: recommended that implementations support larger datagrams whenever
864: feasible.
865:
866: It is mandatory that all implementations of the SNMP support the five
867: PDUs: GetRequest-PDU, GetNextRequest-PDU, GetResponse-PDU,
868: SetRequest-PDU, and Trap-PDU.
869:
870: RFC1157-SNMP DEFINITIONS ::= BEGIN
871:
872: IMPORTS
873: ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks
874: FROM RFC1155-SMI;
875:
876:
877: -- top-level message
878:
879: Message ::=
880: SEQUENCE {
881: version -- version-1 for this RFC
882: INTEGER {
883: version-1(0)
884: },
885:
886: community -- community name
887: OCTET STRING,
888:
889: data -- e.g., PDUs if trivial
890: ANY -- authentication is being used
891: }
892:
893:
894:
895:
896:
897:
898: Case, Fedor, Schoffstall, & Davin [Page 16]
899:
900: RFC 1157 SNMP May 1990
901:
902:
903: -- protocol data units
904:
905: PDUs ::=
906: CHOICE {
907: get-request
908: GetRequest-PDU,
909:
910: get-next-request
911: GetNextRequest-PDU,
912:
913: get-response
914: GetResponse-PDU,
915:
916: set-request
917: SetRequest-PDU,
918:
919: trap
920: Trap-PDU
921: }
922:
923: -- the individual PDUs and commonly used
924: -- data types will be defined later
925:
926: END
927:
928:
929: 4.1. Elements of Procedure
930:
931: This section describes the actions of a protocol entity implementing
932: the SNMP. Note, however, that it is not intended to constrain the
933: internal architecture of any conformant implementation.
934:
935: In the text that follows, the term transport address is used. In the
936: case of the UDP, a transport address consists of an IP address along
937: with a UDP port. Other transport services may be used to support the
938: SNMP. In these cases, the definition of a transport address should
939: be made accordingly.
940:
941: The top-level actions of a protocol entity which generates a message
942: are as follows:
943:
944: (1) It first constructs the appropriate PDU, e.g., the
945: GetRequest-PDU, as an ASN.1 object.
946:
947: (2) It then passes this ASN.1 object along with a community
948: name its source transport address and the destination
949: transport address, to the service which implements the
950: desired authentication scheme. This authentication
951:
952:
953:
954: Case, Fedor, Schoffstall, & Davin [Page 17]
955:
956: RFC 1157 SNMP May 1990
957:
958:
959: service returns another ASN.1 object.
960:
961: (3) The protocol entity then constructs an ASN.1 Message
962: object, using the community name and the resulting ASN.1
963: object.
964:
965: (4) This new ASN.1 object is then serialized, using the basic
966: encoding rules of ASN.1, and then sent using a transport
967: service to the peer protocol entity.
968:
969: Similarly, the top-level actions of a protocol entity which receives
970: a message are as follows:
971:
972: (1) It performs a rudimentary parse of the incoming datagram
973: to build an ASN.1 object corresponding to an ASN.1
974: Message object. If the parse fails, it discards the
975: datagram and performs no further actions.
976:
977: (2) It then verifies the version number of the SNMP message.
978: If there is a mismatch, it discards the datagram and
979: performs no further actions.
980:
981: (3) The protocol entity then passes the community name and
982: user data found in the ASN.1 Message object, along with
983: the datagram's source and destination transport addresses
984: to the service which implements the desired
985: authentication scheme. This entity returns another ASN.1
986: object, or signals an authentication failure. In the
987: latter case, the protocol entity notes this failure,
988: (possibly) generates a trap, and discards the datagram
989: and performs no further actions.
990:
991: (4) The protocol entity then performs a rudimentary parse on
992: the ASN.1 object returned from the authentication service
993: to build an ASN.1 object corresponding to an ASN.1 PDUs
994: object. If the parse fails, it discards the datagram and
995: performs no further actions. Otherwise, using the named
996: SNMP community, the appropriate profile is selected, and
997: the PDU is processed accordingly. If, as a result of
998: this processing, a message is returned then the source
999: transport address that the response message is sent from
1000: shall be identical to the destination transport address
1001: that the original request message was sent to.
1002:
1003:
1004:
1005:
1006:
1007:
1008:
1009:
1010: Case, Fedor, Schoffstall, & Davin [Page 18]
1011:
1012: RFC 1157 SNMP May 1990
1013:
1014:
1015: 4.1.1. Common Constructs
1016:
1017: Before introducing the six PDU types of the protocol, it is
1018: appropriate to consider some of the ASN.1 constructs used frequently:
1019:
1020: -- request/response information
1021:
1022: RequestID ::=
1023: INTEGER
1024:
1025: ErrorStatus ::=
1026: INTEGER {
1027: noError(0),
1028: tooBig(1),
1029: noSuchName(2),
1030: badValue(3),
1031: readOnly(4)
1032: genErr(5)
1033: }
1034:
1035: ErrorIndex ::=
1036: INTEGER
1037:
1038:
1039: -- variable bindings
1040:
1041: VarBind ::=
1042: SEQUENCE {
1043: name
1044: ObjectName,
1045:
1046: value
1047: ObjectSyntax
1048: }
1049:
1050: VarBindList ::=
1051: SEQUENCE OF
1052: VarBind
1053:
1054:
1055: RequestIDs are used to distinguish among outstanding requests. By
1056: use of the RequestID, an SNMP application entity can correlate
1057: incoming responses with outstanding requests. In cases where an
1058: unreliable datagram service is being used, the RequestID also
1059: provides a simple means of identifying messages duplicated by the
1060: network.
1061:
1062: A non-zero instance of ErrorStatus is used to indicate that an
1063:
1064:
1065:
1066: Case, Fedor, Schoffstall, & Davin [Page 19]
1067:
1068: RFC 1157 SNMP May 1990
1069:
1070:
1071: exception occurred while processing a request. In these cases,
1072: ErrorIndex may provide additional information by indicating which
1073: variable in a list caused the exception.
1074:
1075: The term variable refers to an instance of a managed object. A
1076: variable binding, or VarBind, refers to the pairing of the name of a
1077: variable to the variable's value. A VarBindList is a simple list of
1078: variable names and corresponding values. Some PDUs are concerned
1079: only with the name of a variable and not its value (e.g., the
1080: GetRequest-PDU). In this case, the value portion of the binding is
1081: ignored by the protocol entity. However, the value portion must
1082: still have valid ASN.1 syntax and encoding. It is recommended that
1083: the ASN.1 value NULL be used for the value portion of such bindings.
1084:
1085: 4.1.2. The GetRequest-PDU
1086:
1087: The form of the GetRequest-PDU is:
1088: GetRequest-PDU ::=
1089: [0]
1090: IMPLICIT SEQUENCE {
1091: request-id
1092: RequestID,
1093:
1094: error-status -- always 0
1095: ErrorStatus,
1096:
1097: error-index -- always 0
1098: ErrorIndex,
1099:
1100: variable-bindings
1101: VarBindList
1102: }
1103:
1104:
1105: The GetRequest-PDU is generated by a protocol entity only at the
1106: request of its SNMP application entity.
1107:
1108: Upon receipt of the GetRequest-PDU, the receiving protocol entity
1109: responds according to any applicable rule in the list below:
1110:
1111: (1) If, for any object named in the variable-bindings field,
1112: the object's name does not exactly match the name of some
1113: object available for get operations in the relevant MIB
1114: view, then the receiving entity sends to the originator
1115: of the received message the GetResponse-PDU of identical
1116: form, except that the value of the error-status field is
1117: noSuchName, and the value of the error-index field is the
1118: index of said object name component in the received
1119:
1120:
1121:
1122: Case, Fedor, Schoffstall, & Davin [Page 20]
1123:
1124: RFC 1157 SNMP May 1990
1125:
1126:
1127: message.
1128:
1129: (2) If, for any object named in the variable-bindings field,
1130: the object is an aggregate type (as defined in the SMI),
1131: then the receiving entity sends to the originator of the
1132: received message the GetResponse-PDU of identical form,
1133: except that the value of the error-status field is
1134: noSuchName, and the value of the error-index field is the
1135: index of said object name component in the received
1136: message.
1137:
1138: (3) If the size of the GetResponse-PDU generated as described
1139: below would exceed a local limitation, then the receiving
1140: entity sends to the originator of the received message
1141: the GetResponse-PDU of identical form, except that the
1142: value of the error-status field is tooBig, and the value
1143: of the error-index field is zero.
1144:
1145: (4) If, for any object named in the variable-bindings field,
1146: the value of the object cannot be retrieved for reasons
1147: not covered by any of the foregoing rules, then the
1148: receiving entity sends to the originator of the received
1149: message the GetResponse-PDU of identical form, except
1150: that the value of the error-status field is genErr and
1151: the value of the error-index field is the index of said
1152: object name component in the received message.
1153:
1154: If none of the foregoing rules apply, then the receiving protocol
1155: entity sends to the originator of the received message the
1156: GetResponse-PDU such that, for each object named in the variable-
1157: bindings field of the received message, the corresponding component
1158: of the GetResponse-PDU represents the name and value of that
1159: variable. The value of the error- status field of the GetResponse-
1160: PDU is noError and the value of the error-index field is zero. The
1161: value of the request-id field of the GetResponse-PDU is that of the
1162: received message.
1163:
1164: 4.1.3. The GetNextRequest-PDU
1165:
1166: The form of the GetNextRequest-PDU is identical to that of the
1167: GetRequest-PDU except for the indication of the PDU type. In the
1168: ASN.1 language:
1169:
1170: GetNextRequest-PDU ::=
1171: [1]
1172: IMPLICIT SEQUENCE {
1173: request-id
1174: RequestID,
1175:
1176:
1177:
1178: Case, Fedor, Schoffstall, & Davin [Page 21]
1179:
1180: RFC 1157 SNMP May 1990
1181:
1182:
1183: error-status -- always 0
1184: ErrorStatus,
1185:
1186: error-index -- always 0
1187: ErrorIndex,
1188:
1189: variable-bindings
1190: VarBindList
1191: }
1192:
1193:
1194: The GetNextRequest-PDU is generated by a protocol entity only at the
1195: request of its SNMP application entity.
1196:
1197: Upon receipt of the GetNextRequest-PDU, the receiving protocol entity
1198: responds according to any applicable rule in the list below:
1199:
1200: (1) If, for any object name in the variable-bindings field,
1201: that name does not lexicographically precede the name of
1202: some object available for get operations in the relevant
1203: MIB view, then the receiving entity sends to the
1204: originator of the received message the GetResponse-PDU of
1205: identical form, except that the value of the error-status
1206: field is noSuchName, and the value of the error-index
1207: field is the index of said object name component in the
1208: received message.
1209:
1210: (2) If the size of the GetResponse-PDU generated as described
1211: below would exceed a local limitation, then the receiving
1212: entity sends to the originator of the received message
1213: the GetResponse-PDU of identical form, except that the
1214: value of the error-status field is tooBig, and the value
1215: of the error-index field is zero.
1216:
1217: (3) If, for any object named in the variable-bindings field,
1218: the value of the lexicographical successor to the named
1219: object cannot be retrieved for reasons not covered by any
1220: of the foregoing rules, then the receiving entity sends
1221: to the originator of the received message the
1222: GetResponse-PDU of identical form, except that the value
1223: of the error-status field is genErr and the value of the
1224: error-index field is the index of said object name
1225: component in the received message.
1226:
1227: If none of the foregoing rules apply, then the receiving protocol
1228: entity sends to the originator of the received message the
1229: GetResponse-PDU such that, for each name in the variable-bindings
1230: field of the received message, the corresponding component of the
1231:
1232:
1233:
1234: Case, Fedor, Schoffstall, & Davin [Page 22]
1235:
1236: RFC 1157 SNMP May 1990
1237:
1238:
1239: GetResponse-PDU represents the name and value of that object whose
1240: name is, in the lexicographical ordering of the names of all objects
1241: available for get operations in the relevant MIB view, together with
1242: the value of the name field of the given component, the immediate
1243: successor to that value. The value of the error-status field of the
1244: GetResponse-PDU is noError and the value of the errorindex field is
1245: zero. The value of the request-id field of the GetResponse-PDU is
1246: that of the received message.
1247:
1248: 4.1.3.1. Example of Table Traversal
1249:
1250: One important use of the GetNextRequest-PDU is the traversal of
1251: conceptual tables of information within the MIB. The semantics of
1252: this type of SNMP message, together with the protocol-specific
1253: mechanisms for identifying individual instances of object types in
1254: the MIB, affords access to related objects in the MIB as if they
1255: enjoyed a tabular organization.
1256:
1257: By the SNMP exchange sketched below, an SNMP application entity might
1258: extract the destination address and next hop gateway for each entry
1259: in the routing table of a particular network element. Suppose that
1260: this routing table has three entries:
1261:
1262: Destination NextHop Metric
1263:
1264: 10.0.0.99 89.1.1.42 5
1265: 9.1.2.3 99.0.0.3 3
1266: 10.0.0.51 89.1.1.42 5
1267:
1268:
1269: The management station sends to the SNMP agent a GetNextRequest-PDU
1270: containing the indicated OBJECT IDENTIFIER values as the requested
1271: variable names:
1272:
1273: GetNextRequest ( ipRouteDest, ipRouteNextHop, ipRouteMetric1 )
1274:
1275:
1276: The SNMP agent responds with a GetResponse-PDU:
1277:
1278: GetResponse (( ipRouteDest.9.1.2.3 = "9.1.2.3" ),
1279: ( ipRouteNextHop.9.1.2.3 = "99.0.0.3" ),
1280: ( ipRouteMetric1.9.1.2.3 = 3 ))
1281:
1282:
1283: The management station continues with:
1284:
1285: GetNextRequest ( ipRouteDest.9.1.2.3,
1286: ipRouteNextHop.9.1.2.3,
1287:
1288:
1289:
1290: Case, Fedor, Schoffstall, & Davin [Page 23]
1291:
1292: RFC 1157 SNMP May 1990
1293:
1294:
1295: ipRouteMetric1.9.1.2.3 )
1296:
1297:
1298: The SNMP agent responds:
1299:
1300: GetResponse (( ipRouteDest.10.0.0.51 = "10.0.0.51" ),
1301: ( ipRouteNextHop.10.0.0.51 = "89.1.1.42" ),
1302: ( ipRouteMetric1.10.0.0.51 = 5 ))
1303:
1304:
1305: The management station continues with:
1306:
1307: GetNextRequest ( ipRouteDest.10.0.0.51,
1308: ipRouteNextHop.10.0.0.51,
1309: ipRouteMetric1.10.0.0.51 )
1310:
1311:
1312: The SNMP agent responds:
1313:
1314: GetResponse (( ipRouteDest.10.0.0.99 = "10.0.0.99" ),
1315: ( ipRouteNextHop.10.0.0.99 = "89.1.1.42" ),
1316: ( ipRouteMetric1.10.0.0.99 = 5 ))
1317:
1318:
1319: The management station continues with:
1320:
1321: GetNextRequest ( ipRouteDest.10.0.0.99,
1322: ipRouteNextHop.10.0.0.99,
1323: ipRouteMetric1.10.0.0.99 )
1324:
1325:
1326: As there are no further entries in the table, the SNMP agent returns
1327: those objects that are next in the lexicographical ordering of the
1328: known object names. This response signals the end of the routing
1329: table to the management station.
1330:
1331: 4.1.4. The GetResponse-PDU
1332:
1333: The form of the GetResponse-PDU is identical to that of the
1334: GetRequest-PDU except for the indication of the PDU type. In the
1335: ASN.1 language:
1336:
1337: GetResponse-PDU ::=
1338: [2]
1339: IMPLICIT SEQUENCE {
1340: request-id
1341: RequestID,
1342:
1343:
1344:
1345:
1346: Case, Fedor, Schoffstall, & Davin [Page 24]
1347:
1348: RFC 1157 SNMP May 1990
1349:
1350:
1351: error-status
1352: ErrorStatus,
1353:
1354: error-index
1355: ErrorIndex,
1356:
1357: variable-bindings
1358: VarBindList
1359: }
1360:
1361:
1362: The GetResponse-PDU is generated by a protocol entity only upon
1363: receipt of the GetRequest-PDU, GetNextRequest-PDU, or SetRequest-PDU,
1364: as described elsewhere in this document.
1365:
1366: Upon receipt of the GetResponse-PDU, the receiving protocol entity
1367: presents its contents to its SNMP application entity.
1368:
1369: 4.1.5. The SetRequest-PDU
1370:
1371: The form of the SetRequest-PDU is identical to that of the
1372: GetRequest-PDU except for the indication of the PDU type. In the
1373: ASN.1 language:
1374:
1375: SetRequest-PDU ::=
1376: [3]
1377: IMPLICIT SEQUENCE {
1378: request-id
1379: RequestID,
1380:
1381: error-status -- always 0
1382: ErrorStatus,
1383:
1384: error-index -- always 0
1385: ErrorIndex,
1386:
1387: variable-bindings
1388: VarBindList
1389: }
1390:
1391:
1392: The SetRequest-PDU is generated by a protocol entity only at the
1393: request of its SNMP application entity.
1394:
1395: Upon receipt of the SetRequest-PDU, the receiving entity responds
1396: according to any applicable rule in the list below:
1397:
1398: (1) If, for any object named in the variable-bindings field,
1399:
1400:
1401:
1402: Case, Fedor, Schoffstall, & Davin [Page 25]
1403:
1404: RFC 1157 SNMP May 1990
1405:
1406:
1407: the object is not available for set operations in the
1408: relevant MIB view, then the receiving entity sends to the
1409: originator of the received message the GetResponse-PDU of
1410: identical form, except that the value of the error-status
1411: field is noSuchName, and the value of the error-index
1412: field is the index of said object name component in the
1413: received message.
1414:
1415: (2) If, for any object named in the variable-bindings field,
1416: the contents of the value field does not, according to
1417: the ASN.1 language, manifest a type, length, and value
1418: that is consistent with that required for the variable,
1419: then the receiving entity sends to the originator of the
1420: received message the GetResponse-PDU of identical form,
1421: except that the value of the error-status field is
1422: badValue, and the value of the error-index field is the
1423: index of said object name in the received message.
1424:
1425: (3) If the size of the Get Response type message generated as
1426: described below would exceed a local limitation, then the
1427: receiving entity sends to the originator of the received
1428: message the GetResponse-PDU of identical form, except
1429: that the value of the error-status field is tooBig, and
1430: the value of the error-index field is zero.
1431:
1432: (4) If, for any object named in the variable-bindings field,
1433: the value of the named object cannot be altered for
1434: reasons not covered by any of the foregoing rules, then
1435: the receiving entity sends to the originator of the
1436: received message the GetResponse-PDU of identical form,
1437: except that the value of the error-status field is genErr
1438: and the value of the error-index field is the index of
1439: said object name component in the received message.
1440:
1441: If none of the foregoing rules apply, then for each object named in
1442: the variable-bindings field of the received message, the
1443: corresponding value is assigned to the variable. Each variable
1444: assignment specified by the SetRequest-PDU should be effected as if
1445: simultaneously set with respect to all other assignments specified in
1446: the same message.
1447:
1448: The receiving entity then sends to the originator of the received
1449: message the GetResponse-PDU of identical form except that the value
1450: of the error-status field of the generated message is noError and the
1451: value of the error-index field is zero.
1452:
1453:
1454:
1455:
1456:
1457:
1458: Case, Fedor, Schoffstall, & Davin [Page 26]
1459:
1460: RFC 1157 SNMP May 1990
1461:
1462:
1463: 4.1.6. The Trap-PDU
1464:
1465: The form of the Trap-PDU is:
1466:
1467: Trap-PDU ::=
1468: [4]
1469:
1470: IMPLICIT SEQUENCE {
1471: enterprise -- type of object generating
1472: -- trap, see sysObjectID in [5]
1473: OBJECT IDENTIFIER,
1474:
1475: agent-addr -- address of object generating
1476: NetworkAddress, -- trap
1477:
1478: generic-trap -- generic trap type
1479: INTEGER {
1480: coldStart(0),
1481: warmStart(1),
1482: linkDown(2),
1483: linkUp(3),
1484: authenticationFailure(4),
1485: egpNeighborLoss(5),
1486: enterpriseSpecific(6)
1487: },
1488:
1489: specific-trap -- specific code, present even
1490: INTEGER, -- if generic-trap is not
1491: -- enterpriseSpecific
1492:
1493: time-stamp -- time elapsed between the last
1494: TimeTicks, -- (re)initialization of the network
1495: -- entity and the generation of the
1496: trap
1497:
1498: variable-bindings -- "interesting" information
1499: VarBindList
1500: }
1501:
1502:
1503: The Trap-PDU is generated by a protocol entity only at the request of
1504: the SNMP application entity. The means by which an SNMP application
1505: entity selects the destination addresses of the SNMP application
1506: entities is implementation-specific.
1507:
1508: Upon receipt of the Trap-PDU, the receiving protocol entity presents
1509: its contents to its SNMP application entity.
1510:
1511:
1512:
1513:
1514: Case, Fedor, Schoffstall, & Davin [Page 27]
1515:
1516: RFC 1157 SNMP May 1990
1517:
1518:
1519: The significance of the variable-bindings component of the Trap-PDU
1520: is implementation-specific.
1521:
1522: Interpretations of the value of the generic-trap field are:
1523:
1524: 4.1.6.1. The coldStart Trap
1525:
1526: A coldStart(0) trap signifies that the sending protocol entity is
1527: reinitializing itself such that the agent's configuration or the
1528: protocol entity implementation may be altered.
1529:
1530: 4.1.6.2. The warmStart Trap
1531:
1532: A warmStart(1) trap signifies that the sending protocol entity is
1533: reinitializing itself such that neither the agent configuration nor
1534: the protocol entity implementation is altered.
1535:
1536: 4.1.6.3. The linkDown Trap
1537:
1538: A linkDown(2) trap signifies that the sending protocol entity
1539: recognizes a failure in one of the communication links represented in
1540: the agent's configuration.
1541:
1542: The Trap-PDU of type linkDown contains as the first element of its
1543: variable-bindings, the name and value of the ifIndex instance for the
1544: affected interface.
1545:
1546: 4.1.6.4. The linkUp Trap
1547:
1548: A linkUp(3) trap signifies that the sending protocol entity
1549: recognizes that one of the communication links represented in the
1550: agent's configuration has come up.
1551:
1552: The Trap-PDU of type linkUp contains as the first element of its
1553: variable-bindings, the name and value of the ifIndex instance for the
1554: affected interface.
1555:
1556: 4.1.6.5. The authenticationFailure Trap
1557:
1558: An authenticationFailure(4) trap signifies that the sending protocol
1559: entity is the addressee of a protocol message that is not properly
1560: authenticated. While implementations of the SNMP must be capable of
1561: generating this trap, they must also be capable of suppressing the
1562: emission of such traps via an implementation-specific mechanism.
1563:
1564: 4.1.6.6. The egpNeighborLoss Trap
1565:
1566: An egpNeighborLoss(5) trap signifies that an EGP neighbor for whom
1567:
1568:
1569:
1570: Case, Fedor, Schoffstall, & Davin [Page 28]
1571:
1572: RFC 1157 SNMP May 1990
1573:
1574:
1575: the sending protocol entity was an EGP peer has been marked down and
1576: the peer relationship no longer obtains.
1577:
1578: The Trap-PDU of type egpNeighborLoss contains as the first element of
1579: its variable-bindings, the name and value of the egpNeighAddr
1580: instance for the affected neighbor.
1581:
1582: 4.1.6.7. The enterpriseSpecific Trap
1583:
1584: A enterpriseSpecific(6) trap signifies that the sending protocol
1585: entity recognizes that some enterprise-specific event has occurred.
1586: The specific-trap field identifies the particular trap which
1587: occurred.
1588:
1589:
1590:
1591:
1592:
1593:
1594:
1595:
1596:
1597:
1598:
1599:
1600:
1601:
1602:
1603:
1604:
1605:
1606:
1607:
1608:
1609:
1610:
1611:
1612:
1613:
1614:
1615:
1616:
1617:
1618:
1619:
1620:
1621:
1622:
1623:
1624:
1625:
1626: Case, Fedor, Schoffstall, & Davin [Page 29]
1627:
1628: RFC 1157 SNMP May 1990
1629:
1630:
1631: 5. Definitions
1632:
1633: RFC1157-SNMP DEFINITIONS ::= BEGIN
1634:
1635: IMPORTS
1636: ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks
1637: FROM RFC1155-SMI;
1638:
1639:
1640: -- top-level message
1641:
1642: Message ::=
1643: SEQUENCE {
1644: version -- version-1 for this RFC
1645: INTEGER {
1646: version-1(0)
1647: },
1648:
1649: community -- community name
1650: OCTET STRING,
1651:
1652: data -- e.g., PDUs if trivial
1653: ANY -- authentication is being used
1654: }
1655:
1656:
1657: -- protocol data units
1658:
1659: PDUs ::=
1660: CHOICE {
1661: get-request
1662: GetRequest-PDU,
1663:
1664: get-next-request
1665: GetNextRequest-PDU,
1666:
1667: get-response
1668: GetResponse-PDU,
1669:
1670: set-request
1671: SetRequest-PDU,
1672:
1673: trap
1674: Trap-PDU
1675: }
1676:
1677:
1678:
1679:
1680:
1681:
1682: Case, Fedor, Schoffstall, & Davin [Page 30]
1683:
1684: RFC 1157 SNMP May 1990
1685:
1686:
1687: -- PDUs
1688:
1689: GetRequest-PDU ::=
1690: [0]
1691: IMPLICIT PDU
1692:
1693: GetNextRequest-PDU ::=
1694: [1]
1695: IMPLICIT PDU
1696:
1697: GetResponse-PDU ::=
1698: [2]
1699: IMPLICIT PDU
1700:
1701: SetRequest-PDU ::=
1702: [3]
1703: IMPLICIT PDU
1704:
1705: PDU ::=
1706: SEQUENCE {
1707: request-id
1708: INTEGER,
1709:
1710: error-status -- sometimes ignored
1711: INTEGER {
1712: noError(0),
1713: tooBig(1),
1714: noSuchName(2),
1715: badValue(3),
1716: readOnly(4),
1717: genErr(5)
1718: },
1719:
1720: error-index -- sometimes ignored
1721: INTEGER,
1722:
1723: variable-bindings -- values are sometimes ignored
1724: VarBindList
1725: }
1726:
1727: Trap-PDU ::=
1728: [4]
1729: IMPLICIT SEQUENCE {
1730: enterprise -- type of object generating
1731: -- trap, see sysObjectID in [5]
1732:
1733:
1734: OBJECT IDENTIFIER,
1735:
1736:
1737:
1738: Case, Fedor, Schoffstall, & Davin [Page 31]
1739:
1740: RFC 1157 SNMP May 1990
1741:
1742:
1743: agent-addr -- address of object generating
1744: NetworkAddress, -- trap
1745:
1746: generic-trap -- generic trap type
1747: INTEGER {
1748: coldStart(0),
1749: warmStart(1),
1750: linkDown(2),
1751: linkUp(3),
1752: authenticationFailure(4),
1753: egpNeighborLoss(5),
1754: enterpriseSpecific(6)
1755: },
1756:
1757: specific-trap -- specific code, present even
1758: INTEGER, -- if generic-trap is not
1759: -- enterpriseSpecific
1760:
1761: time-stamp -- time elapsed between the last
1762: TimeTicks, -- (re)initialization of the
1763: network
1764: -- entity and the generation of the
1765: trap
1766:
1767: variable-bindings -- "interesting" information
1768: VarBindList
1769: }
1770:
1771:
1772: -- variable bindings
1773:
1774: VarBind ::=
1775: SEQUENCE {
1776: name
1777: ObjectName,
1778:
1779: value
1780: ObjectSyntax
1781: }
1782:
1783: VarBindList ::=
1784: SEQUENCE OF
1785: VarBind
1786:
1787: END
1788:
1789:
1790:
1791:
1792:
1793:
1794: Case, Fedor, Schoffstall, & Davin [Page 32]
1795:
1796: RFC 1157 SNMP May 1990
1797:
1798:
1799: 6. Acknowledgements
1800:
1801: This memo was influenced by the IETF SNMP Extensions working
1802: group:
1803:
1804: Karl Auerbach, Epilogue Technology
1805: K. Ramesh Babu, Excelan
1806: Amatzia Ben-Artzi, 3Com/Bridge
1807: Lawrence Besaw, Hewlett-Packard
1808: Jeffrey D. Case, University of Tennessee at Knoxville
1809: Anthony Chung, Sytek
1810: James Davidson, The Wollongong Group
1811: James R. Davin, MIT Laboratory for Computer Science
1812: Mark S. Fedor, NYSERNet
1813: Phill Gross, The MITRE Corporation
1814: Satish Joshi, ACC
1815: Dan Lynch, Advanced Computing Environments
1816: Keith McCloghrie, The Wollongong Group
1817: Marshall T. Rose, The Wollongong Group (chair)
1818: Greg Satz, cisco
1819: Martin Lee Schoffstall, Rensselaer Polytechnic Institute
1820: Wengyik Yeong, NYSERNet
1821:
1822:
1823:
1824:
1825:
1826:
1827:
1828:
1829:
1830:
1831:
1832:
1833:
1834:
1835:
1836:
1837:
1838:
1839:
1840:
1841:
1842:
1843:
1844:
1845:
1846:
1847:
1848:
1849:
1850: Case, Fedor, Schoffstall, & Davin [Page 33]
1851:
1852: RFC 1157 SNMP May 1990
1853:
1854:
1855: 7. References
1856:
1857: [1] Cerf, V., "IAB Recommendations for the Development of
1858: Internet Network Management Standards", RFC 1052, IAB,
1859: April 1988.
1860:
1861: [2] Rose, M., and K. McCloghrie, "Structure and Identification
1862: of Management Information for TCP/IP-based internets",
1863: RFC 1065, TWG, August 1988.
1864:
1865: [3] McCloghrie, K., and M. Rose, "Management Information Base
1866: for Network Management of TCP/IP-based internets",
1867: RFC 1066, TWG, August 1988.
1868:
1869: [4] Cerf, V., "Report of the Second Ad Hoc Network Management
1870: Review Group", RFC 1109, IAB, August 1989.
1871:
1872: [5] Rose, M., and K. McCloghrie, "Structure and Identification
1873: of Management Information for TCP/IP-based Internets",
1874: RFC 1155, Performance Systems International and Hughes LAN
1875: Systems, May 1990.
1876:
1877: [6] McCloghrie, K., and M. Rose, "Management Information Base
1878: for Network Management of TCP/IP-based Internets",
1879: RFC 1156, Hughes LAN Systems and Performance Systems
1880: International, May 1990.
1881:
1882: [7] Case, J., M. Fedor, M. Schoffstall, and J. Davin,
1883: "A Simple Network Management Protocol", Internet
1884: Engineering Task Force working note, Network Information
1885: Center, SRI International, Menlo Park, California,
1886: March 1988.
1887:
1888: [8] Davin, J., J. Case, M. Fedor, and M. Schoffstall,
1889: "A Simple Gateway Monitoring Protocol", RFC 1028,
1890: Proteon, University of Tennessee at Knoxville,
1891: Cornell University, and Rensselaer Polytechnic
1892: Institute, November 1987.
1893:
1894: [9] Information processing systems - Open Systems
1895: Interconnection, "Specification of Abstract Syntax
1896: Notation One (ASN.1)", International Organization for
1897: Standardization, International Standard 8824,
1898: December 1987.
1899:
1900: [10] Information processing systems - Open Systems
1901: Interconnection, "Specification of Basic Encoding Rules
1902: for Abstract Notation One (ASN.1)", International
1903:
1904:
1905:
1906: Case, Fedor, Schoffstall, & Davin [Page 34]
1907:
1908: RFC 1157 SNMP May 1990
1909:
1910:
1911: Organization for Standardization, International Standard
1912: 8825, December 1987.
1913:
1914: [11] Postel, J., "User Datagram Protocol", RFC 768,
1915: USC/Information Sciences Institute, November 1980.
1916:
1917: Security Considerations
1918:
1919: Security issues are not discussed in this memo.
1920:
1921: Authors' Addresses
1922:
1923: Jeffrey D. Case
1924: SNMP Research
1925: P.O. Box 8593
1926: Knoxville, TN 37996-4800
1927:
1928: Phone: (615) 573-1434
1929:
1930: Email: [email protected]
1931:
1932:
1933: Mark Fedor
1934: Performance Systems International
1935: Rensselaer Technology Park
1936: 125 Jordan Road
1937: Troy, NY 12180
1938:
1939: Phone: (518) 283-8860
1940:
1941: Email: [email protected]
1942:
1943:
1944: Martin Lee Schoffstall
1945: Performance Systems International
1946: Rensselaer Technology Park
1947: 165 Jordan Road
1948: Troy, NY 12180
1949:
1950: Phone: (518) 283-8860
1951:
1952: Email: [email protected]
1953:
1954:
1955:
1956:
1957:
1958:
1959:
1960:
1961:
1962: Case, Fedor, Schoffstall, & Davin [Page 35]
1963:
1964: RFC 1157 SNMP May 1990
1965:
1966:
1967: James R. Davin
1968: MIT Laboratory for Computer Science, NE43-507
1969: 545 Technology Square
1970: Cambridge, MA 02139
1971:
1972: Phone: (617) 253-6020
1973:
1974: EMail: [email protected]
1975:
1976:
1977:
1978:
1979:
1980:
1981:
1982:
1983:
1984:
1985:
1986:
1987:
1988:
1989:
1990:
1991:
1992:
1993:
1994:
1995:
1996:
1997:
1998:
1999:
2000:
2001:
2002:
2003:
2004:
2005:
2006:
2007:
2008:
2009:
2010:
2011:
2012:
2013:
2014:
2015:
2016:
2017:
2018: Case, Fedor, Schoffstall, & Davin [Page 36]
2019:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.