Internet Draft OSPF Version 2 Traps May 1991 OSPF Version 2 Traps Rob Coltun Penril DataComm Networks 1300 Quince Orchard Blvd. Gaithersburg, Maryland 20878-4106 rcoltun@ni.umd.edu Table Of Contents 1.0 Abstract ................................................. 1 2.0 Approach ................................................. 1 2.1 Ignoring Initial Activity ................................ 2 2.2 Throttling Traps ......................................... 2 2.3 One Trap Per OSPF Packet ................................. 2 2.4 Polling Event Counters ................................... 2 3.0 OSPF Trap Definitions .................................... 3 3.1 Imports .................................................. 3 3.2 Trap Support Objects ..................................... 4 3.3 Traps .................................................... 5 4.0 Acknowledgements ......................................... 8 5.0 References ............................................... 8 1.0 Abstract OSPF [1] is an event driven routing protocol, where an event can be a change in an OSPF interface's link-level status, the expira- tion of an OSPF timer or the reception of an OSPF protocol packet. Many of the actions that OSPF takes as a result of these events will result in a change of the routing topology. As rout- ing topologies become large and complex it is often difficult to locate the source of a topology change or unpredicted routing path by polling a large number or routers. Another approach is to notify a network manager of potentially critical OSPF events with SNMP traps. This draft document defines a set of traps, objects and mechan- isms to enhance the ability to manage IP internetworks which use OSPF as its IGP. It is meant as an extension to the OSPF MIB [2]. 2.0 Approach The SNMP trap mechanism is defined in RFC1155 [3]; the convention for defining traps is described in RFC1215 [4]. The mechanism is straightforward. When an exception event occurs, the application will notify the local agent who will send a trap to the appropri- ate SNMP management stations. The message will include the trap type and may include a list of trap specific variables. A new object is defined in section 3.2 that will allow a network Coltun [Page 1] Internet Draft OSPF Version 2 Traps May 1991 administrator to enable or disable particular OSPF traps. Sec- tion 3.3 gives the trap definitions which includes the variable lists. The router ID of the originator of the trap is included in the variable list so that the network manager may easily determine the source of the trap. To limit the frequency of OSPF traps, the following additional mechanisms are suggested. 2.1 Ignoring Initial Activity The majority of critical events occur when OSPF is enabled on a router, at which time the designated router is elected and neigh- bor adjacencies are formed. During this initial period a poten- tial flood of traps is unnecessary since the events are expected. To avoid unnecessary generation of traps, a router should wait at least two dead timer intervals before it enables its OSPF traps, where the dead timer is equal to the router's largest configured dead timer. 2.2 Throttling Traps The mechanism for throttling the traps is similar to the mechan- ism explained in RFC 1224 [5] section 5. The basic idea is that there is a sliding window in seconds and an upper bound on the number of traps that may be generated within this window. Unlike RFC 1224, traps are not sent to inform the network manager that the throttling mechanism has kicked in. A single window should be used to throttle all OSPF traps types. For example, if the window time is 3, the upper bound is 3 and the events that would cause trap types 1,3,5 and 7 occur within a 3 second period, the type 7 trap should not be generated. Appropriate values are 7 traps with a window time of 10 seconds. 2.3 One Trap Per OSPF Packet Several of the traps defined in section 3.3 are generated as the result of finding an unusual condition while parsing an OSPF packet or a timer event which results in sending an OSPF packet. However, there may be several events per packet. For example, a link-state update packet may contain several new link-state advertisements, or a retransmitted database description packet may contain several database description entries. To limit the number of traps and variables, OSPF should generate at most one trap per OSPF packet. Only the variables associated with the first entry should be included with the trap. Similarly, if more than one type of unusual event is encountered while parsing the packet, only the first event will generate a trap. 2.4 Polling Event Counters Many of the tables in the OSPF MIB contain generalized event Coltun [Page 2] Internet Draft OSPF Version 2 Traps May 1991 counters. By enabling the traps defined in this document a net- work manager can obtain more specific information about these events. A network manager may want to poll these event counters and enable specific OSPF traps when a particular counter starts increasing abnormally. The following table shows the relationship between the event counters defined in the OSPF MIB and the trap types defined in section 3.3. Counter Trap Type ----------------------- ------------------------ ospfOriginateNewLsa ospfOriginateLSA ospfIfEvents ospfIfStateChange ospfDrChange ospfConfigError ospfRxBadPacket ospfTxRetransmit ospfVirtIfEvents ospfVirtIfStateChange ospfVirtIfConfigError ospfVirtIfRxBadPacket ospfVirtIfTxRetransmit ospfNbrEvents ospfNbrStateChange ospfVirtNbrEvents ospfVirtNbrStateChange 3.0 OSPF Trap Definitions 3.1 Imports RFCxxxx-MIB DEFINITIONS ::= BEGIN IMPORTS IpAddress FROM RFC1155-SMI OBJECT-TYPE FROM RFC1212 TRAP-TYPE FROM RFC1215 ospfRouterId, ospfIfIpAddress, ospfAddressLessIf, ospfAreaID, ospfIfType, ospfIfState, ospfVirtAreaID, ospfVirtIfNeighbor, ospfVirtIfState, ospfNbrIpAddress, ospfNbrAddressLessIndex, ospfNbrRtrId, ospfNbrState, ospfVirtNbrArea, ospfVirtNbrRtrId, ospfLsdbAreaId, ospfLsdbType, ospfLsdbLSID, ospfLsdbRouterId FROM RFCxxxx-OSPF MIB Coltun [Page 3] Internet Draft OSPF Version 2 Traps May 1991 3.2 Trap Support Objects ospfTrapGroup OBJECT IDENTIFIER ::= { ospf 12 } ospfSetTrap OBJECT-TYPE SYNTAX OCTET STRING ACCESS read-write STATUS mandatory DESCRIPTION "A four-octet string serving as a bit map for the trap events defined by the OSPF traps. This object is used to enable and disable specific OSPF traps where a 1 in the bit field represents enabled. The right-most bit (least significant) represents trap 0." ::= { ospfTrapGroup 1 } ospfConfigErrorType OBJECT-TYPE SYNTAX INTEGER { badVersion (1), areaMismatch (2), unknownNbmaNbr (3), -- Initiator of trap is Dr eligible unknownVirtualNbr (4), authTypeMismatch(5), authFailure (6), netMaskMismatch (7), helloIntervalMismatch (8), deadIntervalMismatch (9), eBitMismatch (10) } ACCESS read-only STATUS mandatory DESCRIPTION "Potential types of configuration conflicts. Used by the ospfConfigError and ospfConfigVirtError traps." ::= { ospfTrapGroup 2 } ospfPacketType OBJECT-TYPE SYNTAX INTEGER { hello (1), dbDescript (2), lsReq (3), lsUpdate (4), lsAck (5) } ACCESS read-only STATUS mandatory DESCRIPTION "OSPF packet types." ::= { ospfTrapGroup 3 ] Coltun [Page 4] Internet Draft OSPF Version 2 Traps May 1991 3.3 Traps ospfIfStateChange TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfIfIpAddress, ospfAddressLessIf, ospfIfState } -- The new state DESCRIPTION "An ospfIfStateChange trap signifies that there has been a change in the state of a non-virtual OSPF inter- face." ::= 0 ospfVirtIfStateChange TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfVirtAreaID, ospfVirtIfNeighbor, ospfVirtIfState } -- The new state DESCRIPTION "An ospfIfStateChange trap signifies that there has been a change in the state of an OSPF virtual inter- face." ::= 1 ospfNbrStateChange TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfNbrIpAddress, ospfNbrAddressLessIndex, ospfNbrRtrId, ospfNbrState } -- The new state DESCRIPTION "An ospfIfStateChange trap signifies that there has been a change in the state of a non-virtual OSPF neigh- bor." ::= 2 ospfVirtNbrStateChange TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfVirtNbrArea, ospfVirtNbrRtrId, ospfVirtNbrState } -- The new state DESCRIPTION "An ospfIfStateChange trap signifies that there has Coltun [Page 5] Internet Draft OSPF Version 2 Traps May 1991 been a change in the state of an OSPF virtual neigh- bor." ::= 3 ospfDrChange TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfIfIpAddress, ospfIpAddress, -- The new Dr or (0 if none) ospfIpAddress } -- The new Backup Dr (0 if none) DESCRIPTION "An ospfDrChange trap signifies that there has been a change in the Dr or backup Dr on one of the router's directly connected multi-access networks." ::= 4 ospfConfigError TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfIfIpAddress, ospfAddressLessIf, IpAddress, -- The source IP address ospfConfigErrorType, -- Type of error ospfPacketType } DESCRIPTION "An ospfConfigError trap signifies that a packet has been received on a non-virtual interface from a router whose configuration parameters conflict with this router's configuration parameters." ::= 5 ospfVirtIfConfigError TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfVirtAreaID, ospfVirtIfNeighbor, ospfConfigErrorType, -- Type of error ospfPacketType } DESCRIPTION "An ospfConfigError trap signifies that a packet has been received on a virtual interface from a router whose configuration parameters conflict with this router's configuration parameters." ::= 6 ospfRxBadPacket TRAP-TYPE ENTERPRISE ospf Coltun [Page 6] Internet Draft OSPF Version 2 Traps May 1991 VARIABLES { ospfRouterId, -- The originator of the trap ospfIfIpAddress, ospfAddressLessIf, IpAddress, -- The source IP address ospfPacketType } DESCRIPTION "An ospfRxBadPacket trap signifies that an OSPF packet has been received on a non-virtual interface that can- not be parsed." ::= 7 ospfVirtIfRxBadPacket TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfVirtAreaID, ospfVirtIfNeighbor, ospfPacketType } DESCRIPTION "An ospfRxBadPacket trap signifies that an OSPF packet has been received on a virtual interface that cannot be parsed." ::= 8 ospfTxRetransmit TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfIfIpAddress, ospfAddressLessIf, ospfNbrRtrId, -- Who the packet is being retransmitted to ospfPacketType } DESCRIPTION "An ospfTxRetransmit trap signifies than an OSPF packet has been retransmitted on a non-virtual interface." ::= 9 ospfVirtIfTxRetransmit TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfVirtAreaID, ospfVirtIfNeighbor, ospfPacketType } DESCRIPTION "An ospfTxRetransmit trap signifies than an OSPF packet has been retransmitted on a virtual interface." ::= 10 Coltun [Page 7] Internet Draft OSPF Version 2 Traps May 1991 ospfOriginateLSA TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfLsdbAreaId, -- 0.0.0.0 for AS Externals ospfLsdbType, ospfLsdbLSID, ospfLsdbRouterId } DESCRIPTION "An ospfOriginateLSA trap signifies that a new link- state advertisement of has been originated by this router." ::= 11 ospfMaxAgeLSA TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfLsdbAreaId, -- 0.0.0.0 for AS Externals ospfLsdbType, ospfLsdbLSID, ospfLsdbRouterId } DESCRIPTION "An ospfMaxAgeLSA trap signifies that one of the link- state advertisements in the router's link-state data- base has aged to MaxAge." ::= 12 ospfFreeLSA TRAP-TYPE ENTERPRISE ospf VARIABLES { ospfRouterId, -- The originator of the trap ospfLsdbAreaId, -- 0.0.0.0 for AS Externals ospfLsdbType, ospfLsdbLSID, ospfLsdbRouterId } DESCRIPTION "An ospFreeLSA trap signifies that one of the link- state advertisements in the router's link-state data- base has been freed." ::= 13 Coltun [Page 8] Internet Draft OSPF Version 2 Traps May 1991 4.0 Acknowledgements This document was produced by the OSPF Working Group, chaired by John Moy. In addition, the comments of the following individuals are also ack- nowledged: Fred Baker ACC Dino Farinacci cisco Stan Froyd ACC John Moy Proteon, Inc. 5.0 References [1] J. Moy, The OSPF Specification, Version 2 Internet Draft, Internet Engineering Task Force, (January, 1991) [2] F. Baker and R. Coltun, OSPF Version 2 Management Information Base Internet Draft, Internet Engineering Task Force, (April 1991) [3] M.T. Rose and K. McCloghrie, Structure and Identifi- cation of Management Information for TCP/IP-based Internets, Internet Request for Comments 1155. Network Information Center, SRI International, Menlo Park, California, (May, 1990). [4] M.T. Rose, A Convention for Defining Traps for use with the SNMP, Internet Request for Comments 1215. Network Information Center, SRI International, Menlo Park, California, (March, 1991). [5] L. Steinberg, Techniques for Managing Asynchronously Generated Alerts. Internet Request for Comments 1224. Network Information Center, SRI International, Menlo Park, California, (May, 1991). Coltun [Page 9]