version 1.1.1.1, 2012/02/21 17:26:11
|
version 1.1.1.2, 2013/07/21 23:54:38
|
Line 5
|
Line 5
|
feature for collecting network information from router and/or host. |
feature for collecting network information from router and/or host. |
Quagga itself does not support SNMP agent (server daemon) functionality |
Quagga itself does not support SNMP agent (server daemon) functionality |
but is able to connect to a SNMP agent using the SMUX protocol |
but is able to connect to a SNMP agent using the SMUX protocol |
(@cite{RFC1227}) and make the routing protocol MIBs available through | (@cite{RFC1227}) or the AgentX protocol (@cite{RFC2741}) and make the |
it. | routing protocol MIBs available through it. |
|
|
@menu |
@menu |
* Getting and installing an SNMP agent:: |
* Getting and installing an SNMP agent:: |
|
* AgentX configuration:: |
* SMUX configuration:: |
* SMUX configuration:: |
* MIB and command reference:: |
* MIB and command reference:: |
* Handling SNMP Traps:: |
* Handling SNMP Traps:: |
Line 18 it.
|
Line 19 it.
|
@node Getting and installing an SNMP agent |
@node Getting and installing an SNMP agent |
@section Getting and installing an SNMP agent |
@section Getting and installing an SNMP agent |
|
|
There are several SNMP agent which support SMUX. We recommend to use the latest | There are several SNMP agent which support SMUX or AgentX. We recommend to use the latest |
version of @code{net-snmp} which was formerly known as @code{ucd-snmp}. |
version of @code{net-snmp} which was formerly known as @code{ucd-snmp}. |
It is free and open software and available at @uref{http://www.net-snmp.org/} |
It is free and open software and available at @uref{http://www.net-snmp.org/} |
and as binary package for most Linux distributions. |
and as binary package for most Linux distributions. |
@code{net-snmp} has to be compiled with @code{--with-mib-modules=smux} to | @code{net-snmp} has to be compiled with @code{--with-mib-modules=agentx} to |
be able to accept connections from Quagga. | be able to accept connections from Quagga using AgentX protocol or with |
| @code{--with-mib-modules=smux} to use SMUX protocol. |
|
|
|
Nowadays, SMUX is a legacy protocol. The AgentX protocol should be |
|
preferred for any new deployment. Both protocols have the same coverage. |
|
|
|
@node AgentX configuration |
|
@section AgentX configuration |
|
|
|
To enable AgentX protocol support, Quagga must have been build with the |
|
@code{--enable-snmp} or @code{--enable-snmp=agentx} option. Both the |
|
master SNMP agent (snmpd) and each of the Quagga daemons must be |
|
configured. In @code{/etc/snmp/snmpd.conf}, @code{master agentx} |
|
directive should be added. In each of the Quagga daemons, @code{agentx} |
|
command will enable AgentX support. |
|
|
|
@example |
|
/etc/snmp/snmpd.conf: |
|
# |
|
# example access restrictions setup |
|
# |
|
com2sec readonly default public |
|
group MyROGroup v1 readonly |
|
view all included .1 80 |
|
access MyROGroup "" any noauth exact all none none |
|
# |
|
# enable master agent for AgentX subagents |
|
# |
|
master agentx |
|
|
|
/etc/quagga/ospfd.conf: |
|
! ... the rest of ospfd.conf has been omitted for clarity ... |
|
! |
|
agentx |
|
! |
|
@end example |
|
|
|
Upon successful connection, you should get something like this in the |
|
log of each Quagga daemons: |
|
|
|
@example |
|
2012/05/25 11:39:08 ZEBRA: snmp[info]: NET-SNMP version 5.4.3 AgentX subagent connected |
|
@end example |
|
|
|
Then, you can use the following command to check everything works as expected: |
|
|
|
@example |
|
# snmpwalk -c public -v1 localhost .1.3.6.1.2.1.14.1.1 |
|
OSPF-MIB::ospfRouterId.0 = IpAddress: 192.168.42.109 |
|
[...] |
|
@end example |
|
|
|
The AgentX protocol can be transported over a Unix socket or using TCP |
|
or UDP. It usually defaults to a Unix socket and depends on how NetSNMP |
|
was built. If need to configure Quagga to use another transport, you can |
|
configure it through @code{/etc/snmp/quagga.conf}: |
|
|
|
@example |
|
/etc/snmp/quagga.conf: |
|
[snmpd] |
|
# Use a remote master agent |
|
agentXSocket tcp:192.168.15.12:705 |
|
@end example |
|
|
@node SMUX configuration |
@node SMUX configuration |
@section SMUX configuration |
@section SMUX configuration |
|
|
To enable SMUX protocol support, Quagga must have been build with the |
To enable SMUX protocol support, Quagga must have been build with the |
@code{--enable-snmp} option. | @code{--enable-snmp=smux} option. |
|
|
A separate connection has then to be established between between the | A separate connection has then to be established between the |
SNMP agent (snmpd) and each of the Quagga daemons. This connections |
SNMP agent (snmpd) and each of the Quagga daemons. This connections |
each use different OID numbers and passwords. Be aware that this OID |
each use different OID numbers and passwords. Be aware that this OID |
number is not the one that is used in queries by clients, it is solely |
number is not the one that is used in queries by clients, it is solely |
Line 85 troublesome @code{snmp_log()} line in the function
|
Line 148 troublesome @code{snmp_log()} line in the function
|
@section MIB and command reference |
@section MIB and command reference |
|
|
The following OID numbers are used for the interprocess communication of snmpd and |
The following OID numbers are used for the interprocess communication of snmpd and |
the Quagga daemons. Sadly, SNMP has not been implemented in all daemons yet. | the Quagga daemons with SMUX only. |
@example |
@example |
(OIDs below .iso.org.dod.internet.private.enterprises) |
(OIDs below .iso.org.dod.internet.private.enterprises) |
zebra .1.3.6.1.4.1.3317.1.2.1 .gnome.gnomeProducts.zebra.zserv |
zebra .1.3.6.1.4.1.3317.1.2.1 .gnome.gnomeProducts.zebra.zserv |
Line 95 ospfd .1.3.6.1.4.1.3317.1.2.5 .gnome.gnomeProducts.zeb
|
Line 158 ospfd .1.3.6.1.4.1.3317.1.2.5 .gnome.gnomeProducts.zeb
|
ospf6d .1.3.6.1.4.1.3317.1.2.6 .gnome.gnomeProducts.zebra.ospf6d |
ospf6d .1.3.6.1.4.1.3317.1.2.6 .gnome.gnomeProducts.zebra.ospf6d |
@end example |
@end example |
|
|
The following OID numbers are used for querying the SNMP daemon by a client: | Sadly, SNMP has not been implemented in all daemons yet. The following |
| OID numbers are used for querying the SNMP daemon by a client: |
@example |
@example |
zebra .1.3.6.1.2.1.4.24 .iso.org.dot.internet.mgmt.mib-2.ip.ipForward |
zebra .1.3.6.1.2.1.4.24 .iso.org.dot.internet.mgmt.mib-2.ip.ipForward |
ospfd .1.3.6.1.2.1.14 .iso.org.dot.internet.mgmt.mib-2.ospf |
ospfd .1.3.6.1.2.1.14 .iso.org.dot.internet.mgmt.mib-2.ospf |
Line 104 ripd .1.3.6.1.2.1.23 .iso.org.dot.internet.mgmt.mi
|
Line 168 ripd .1.3.6.1.2.1.23 .iso.org.dot.internet.mgmt.mi
|
ospf6d .1.3.6.1.3.102 .iso.org.dod.internet.experimental.ospfv3 |
ospf6d .1.3.6.1.3.102 .iso.org.dod.internet.experimental.ospfv3 |
@end example |
@end example |
|
|
The following syntax is understood by the Quagga daemons for configuring SNMP: | The following syntax is understood by the Quagga daemons for configuring SNMP using SMUX: |
@deffn {Command} {smux peer @var{oid}} {} |
@deffn {Command} {smux peer @var{oid}} {} |
@deffnx {Command} {no smux peer @var{oid}} {} |
@deffnx {Command} {no smux peer @var{oid}} {} |
@end deffn |
@end deffn |
|
|
@deffn {Command} {smux peer @var{oid} @var{password}} {} |
@deffn {Command} {smux peer @var{oid} @var{password}} {} |
@deffnx {Command} {no smux peer @var{oid} @var{password}} {} |
@deffnx {Command} {no smux peer @var{oid} @var{password}} {} |
|
@end deffn |
|
|
|
Here is the syntax for using AgentX: |
|
@deffn {Command} {agentx} {} |
|
@deffnx {Command} {no agentx} {} |
@end deffn |
@end deffn |
|
|
@include snmptrap.texi |
@include snmptrap.texi |