Skip to main content

SNMPD to use cache and shared database based on MIB Classification
draft-haresh-sushrut-mib-classification-01

Document Type Active Internet-Draft (individual)
Author Haresh Khandelwal
Last updated 2015-06-21 (Latest revision 2012-03-29)
RFC stream (None)
Intended RFC status (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists::Revised I-D Needed
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-haresh-sushrut-mib-classification-01
INTERNET-DRAFT                     Haresh Khandelwal & Sushrut Deshpande
Intended Status: Experimental                              Cisco Systems
Expires:                                                      March 2012

  SNMPD to use cache and shared database based on MIB Classification 
               draft-haresh-sushrut-mib-classification-01

Abstract

   This memo defines classification of SNMP MIBs to either use SNMP
   cache database and shared database (SDB) mechanism to reduce high CPU
   usage while SNMP GET REQUEST, GETNEXT REQUEST, GETBULK REQUEST are
   continuously performed from network management system (NMS)/SNMP
   manager/SNMP MIB browser to managed device.

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as
   Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.html

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

Copyright and License Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents
 

Haresh,Sushrut                Experimental                      [Page 1]
INTERNET DRAFT             MIB classification              February 2012

   carefully, as they describe your rights and restrictions with respect
   to this document. Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1  Terminology . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  MIB classification . . . . . . . . . . . . . . . . . . . . . .  3
     2.1 How CPU usage goes high  . . . . . . . . . . . . . . . . . .  3
     2.2 MIB Classification . . . . . . . . . . . . . . . . . . . . .  4
     2.3 How SNMP CACHE and SHARED DATABASE works . . . . . . . . . .  4
     2.4 How CPU usage reduced  . . . . . . . . . . . . . . . . . . .  4
   3  Security Considerations . . . . . . . . . . . . . . . . . . . .  6
   4  IANA Considerations . . . . . . . . . . . . . . . . . . . . . .  6
   5  References  . . . . . . . . . . . . . . . . . . . . . . . . . .  6
     5.1  Normative References  . . . . . . . . . . . . . . . . . . .  6
     5.2  Informative References  . . . . . . . . . . . . . . . . . .  6
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .  6

 

Haresh,Sushrut                Experimental                      [Page 2]
INTERNET DRAFT             MIB classification              February 2012

1  Introduction

   Continuous GET REQUEST, GETNEXT REQUEST, GETBULK REQUEST on managed
   device results into high CPU usage. High CPU usage is result of high
   process interactions between SNMP process and requested OID's process
   when OID came from GET REQUEST, GETNEXT REQUEST, GETBULK REQUEST.
   This draft suggests the way to reduce these process interactions in
   order to reduce CPU usage. This approach also suggests way to reduce
   high CPU usage with accurate OID values.

1.1  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

2.  MIB classification 

2.1 How CPU usage goes high

   When SNMP protocol data units (SNMP PDU) are received by SNMPD
   running on managed device (router, switch etc...), SNMPD de capsulate
   PDU and retrieves requested ODI from PDU. After getting OIDs, SNMPD
   interacts with process under whom requested OIDs and its value
   reside.

   For example, NMS sends SNMP GET REQUEST with seeking of interface
   operational status whose OID is .1.3.6.1.2.1.2.2.1.8. This GET
   REQUEST PDU is received at managed device's SNMPD which in turn de
   capsulated PDU and find out that "ifOperStatus" is requested from
   NMS. SNMPD then interacts with process who handles interface process
   and gets OID value and builds RESPONSE PDU which sent to NMS. 

   Like as when NMS keeps polling managed device, it leads very high
   process interactions between SNMPD and requested OID's. generally,
   process interactions happen through common mechanism like MTS
   (message transaction service) in NX-OS. processes talk with each
   other using such messages. so, when processes have to talk with each
   other frequently, transactions of interaction messages also go very
   high. such high amount of transactions increase a CPU usage of the
   system which in turns result into very high CPU usage. SNMP polling
   is such a method which also leads to high CPU usage of managed
   device. generally service providers keep monitoring network devices
   using SNMP for all time and running other application parallel to
   monitoring it. so if SNMP polling consume higher CPU, it may lead
   other processes to CPU starvation which may lead device to strange
   unknown behavior. To avoid this, we are proposing this solution where
 

Haresh,Sushrut                Experimental                      [Page 3]
INTERNET DRAFT             MIB classification              February 2012

   we reduce process interactions, so we can achieve less message
   transactions and less CPU consumption.

2.2 MIB Classification

   MIB Classification provides a solution to avoid high CPU usage. MIB
   are classified into two categories.

       i) Dynamic MIBs - Whose values change frequently (for example
   ifMIB counters). 

       ii) Relatively Static MIBs - Whose values change occasionally
   (for example VLAN MIB).  

2.3 How SNMP CACHE and SHARED DATABASE works

   SHARED DATABASE (SDB) is a database where component or process who
   falls under "Dynamic MIBs" has to populate their supported ODIs
   values. SNMPD will fetch ODI's value from this SHARED DATABASE when
   ODI belongs to "Dynamic MIBs" category requested from NMS. Processes
   taking part in SDB are completely responsible for OIDs values. So, if
   it is ifMIB counter process for interface then it will be responsible
   for interfaces counter values in SDB. SNMPD will pickup relevant
   values for asked OIDs from SDB and will response back to MIB
   browser/NMS.

   SNMP CACHING is a database which is maintained by SNMPD of managed
   device. This database contains ODIs values of "Relatively Static
   MIBs". These ODI values filled to SNMP CACHE when SNMPD receives
   ODI's value first time from requested OID's process.SNMPD will form
   its own cache table which in turn, stores values of all processed
   ODIs. So when next time same OID will be requested, SNMPD can
   response from its own Cache table. Now, if value of OID from
   "Relatively Static MIBs" changes, that process or component has to
   inform SNMPD regarding its event with new values. SNMPD will update
   its cache table with new ODI value.

   SNMP cache table can be flushed in event of SNMP process 
   restart/crash/enable-disable. New cache table will be formed again
   after recovery with 1st poll cycle.

   SHARED DATABASE will be handled by individual process and should be
   populated again in event of process crash/restart.

2.4 How CPU usage reduced

   For NMS queries with MIB classification approach, SNMPD does not need
   to talk with individual processes. According to MIB category, SNMP
 

Haresh,Sushrut                Experimental                      [Page 4]
INTERNET DRAFT             MIB classification              February 2012

   process will fetch ODIs value from either of these two databases.so,
   by this way, we can reduce the interaction messages between SNMPD and
   other processes and still having accurate OID values from accurately
   maintained database. As high process interactions are reduced, it
   will reduce CPU usage also.

    

 

Haresh,Sushrut                Experimental                      [Page 5]
INTERNET DRAFT             MIB classification              February 2012

3  Security Considerations

   This design is not changing SNMP packets. It does not apply on SNMP
   SET operation. Communication between NMS and managed device is also
   un changed, only internal process interaction changes are proposed
   based on MIB classification.so, this design does not exhibit any
   security threat.

4  IANA Considerations

5  References

5.1  Normative References

5.2  Informative References

   [RFC2578]  McCloghrie, et al., "Structure of Management Information
   Version 2 (SMIv2)", RFC2578, April 1999.

   [RFC3418]  Presuhn, et al., "Management Information Base (MIB) for
   the Simple Network Management Protocol (SNMP)", RFC3418, December
   2002.

   [RFC3411]  Harrington, et al., "An Architecture for Describing Simple
   Network Management Protocol (SNMP) Management Frameworks", RFC3411,
   December 2002.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
   IANA Considerations Section in RFCs", BCP 26, RFC 5226,May 2008

   [RFC2119]  Bradner, "Key words for use in RFCs to Indicate
   Requirement Levels", RFC2119, March 1997

Authors' Addresses

   Name 
   Haresh Khandelwal
   Sushrut Deshpande

   EMail: hkhandel@cisco.com, susdeshp@cisco.com

Haresh,Sushrut                Experimental                      [Page 6]