File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / doc / snmp.texi
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:26:11 2012 UTC (12 years, 4 months ago) by misho
Branches: quagga, MAIN
CVS tags: v0_99_21, v0_99_20_1, v0_99_20, HEAD
quagga

    1: @node SNMP Support
    2: @chapter SNMP Support
    3: 
    4: @acronym{SNMP,Simple Network Managing Protocol} is a widely implemented
    5: feature for collecting network information from router and/or host.
    6: Quagga itself does not support SNMP agent (server daemon) functionality
    7: but is able to connect to a SNMP agent using the SMUX protocol
    8: (@cite{RFC1227}) and make the routing protocol MIBs available through
    9: it.
   10: 
   11: @menu
   12: * Getting and installing an SNMP agent::
   13: * SMUX configuration::
   14: * MIB and command reference::
   15: * Handling SNMP Traps::
   16: @end menu
   17: 
   18: @node Getting and installing an SNMP agent
   19: @section Getting and installing an SNMP agent
   20: 
   21: There are several SNMP agent which support SMUX. We recommend to use the latest
   22: version of @code{net-snmp} which was formerly known as @code{ucd-snmp}.
   23: It is free and open software and available at @uref{http://www.net-snmp.org/}
   24: and as binary package for most Linux distributions.
   25: @code{net-snmp} has to be compiled with @code{--with-mib-modules=smux} to
   26: be able to accept connections from Quagga.
   27: 
   28: @node SMUX configuration
   29: @section SMUX configuration
   30: 
   31: To enable SMUX protocol support, Quagga must have been build with the
   32: @code{--enable-snmp} option.
   33: 
   34: A separate connection has then to be established between between the
   35: SNMP agent (snmpd) and each of the Quagga daemons. This connections
   36: each use different OID numbers and passwords. Be aware that this OID
   37: number is not the one that is used in queries by clients, it is solely
   38: used for the intercommunication of the daemons.
   39: 
   40: In the following example the ospfd daemon will be connected to the
   41: snmpd daemon using the password "quagga_ospfd". For testing it is
   42: recommending to take exactly the below snmpd.conf as wrong access
   43: restrictions can be hard to debug.
   44: 
   45: @example
   46: /etc/snmp/snmpd.conf:
   47: 	#
   48: 	# example access restrictions setup
   49: 	#
   50: 	com2sec readonly default public
   51: 	group MyROGroup v1 readonly
   52: 	view all included .1 80
   53: 	access MyROGroup "" any noauth exact all none none
   54: 	#
   55: 	# the following line is relevant for Quagga
   56: 	#
   57: 	smuxpeer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd
   58: 
   59: /etc/quagga/ospf:
   60: 	! ... the rest of ospfd.conf has been omitted for clarity ...
   61: 	!
   62: 	smux peer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd
   63: 	!
   64: @end example
   65: 
   66: After restarting snmpd and quagga, a successful connection can be verified in
   67: the syslog and by querying the SNMP daemon:
   68: 
   69: @example
   70: snmpd[12300]: [smux_accept] accepted fd 12 from 127.0.0.1:36255 
   71: snmpd[12300]: accepted smux peer: \
   72: 	oid GNOME-PRODUCT-ZEBRA-MIB::ospfd, quagga-0.96.5
   73: 
   74: # snmpwalk -c public -v1 localhost .1.3.6.1.2.1.14.1.1
   75: OSPF-MIB::ospfRouterId.0 = IpAddress: 192.168.42.109
   76: @end example
   77: 
   78: Be warned that the current version (5.1.1) of the Net-SNMP daemon writes a line
   79: for every SNMP connect to the syslog which can lead to enormous log file sizes.
   80: If that is a problem you should consider to patch snmpd and comment out the
   81: troublesome @code{snmp_log()} line in the function
   82: @code{netsnmp_agent_check_packet()} in @code{agent/snmp_agent.c}.
   83: 
   84: @node MIB and command reference
   85: @section MIB and command reference
   86: 
   87: The following OID numbers are used for the interprocess communication of snmpd and
   88: the Quagga daemons. Sadly, SNMP has not been implemented in all daemons yet.
   89: @example
   90:             (OIDs below .iso.org.dod.internet.private.enterprises)
   91: zebra	.1.3.6.1.4.1.3317.1.2.1 .gnome.gnomeProducts.zebra.zserv
   92: bgpd	.1.3.6.1.4.1.3317.1.2.2 .gnome.gnomeProducts.zebra.bgpd
   93: ripd	.1.3.6.1.4.1.3317.1.2.3 .gnome.gnomeProducts.zebra.ripd
   94: ospfd	.1.3.6.1.4.1.3317.1.2.5 .gnome.gnomeProducts.zebra.ospfd
   95: ospf6d	.1.3.6.1.4.1.3317.1.2.6 .gnome.gnomeProducts.zebra.ospf6d
   96: @end example
   97: 
   98: The following OID numbers are used for querying the SNMP daemon by a client:
   99: @example
  100: zebra	.1.3.6.1.2.1.4.24   .iso.org.dot.internet.mgmt.mib-2.ip.ipForward
  101: ospfd	.1.3.6.1.2.1.14	    .iso.org.dot.internet.mgmt.mib-2.ospf
  102: bgpd	.1.3.6.1.2.1.15	    .iso.org.dot.internet.mgmt.mib-2.bgp 
  103: ripd	.1.3.6.1.2.1.23	    .iso.org.dot.internet.mgmt.mib-2.rip2
  104: ospf6d	.1.3.6.1.3.102	    .iso.org.dod.internet.experimental.ospfv3
  105: @end example
  106: 
  107: The following syntax is understood by the Quagga daemons for configuring SNMP:
  108: @deffn {Command} {smux peer @var{oid}} {}
  109: @deffnx {Command} {no smux peer @var{oid}} {}
  110: @end deffn
  111: 
  112: @deffn {Command} {smux peer @var{oid} @var{password}} {}
  113: @deffnx {Command} {no smux peer @var{oid} @var{password}} {}
  114: @end deffn
  115: 
  116: @include snmptrap.texi

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>