Mostrando entradas con la etiqueta monitoreo. Mostrar todas las entradas
Mostrando entradas con la etiqueta monitoreo. Mostrar todas las entradas

martes, 11 de agosto de 2015

Como monitorear independientemente contadores IPv4 e IPv6 en Cisco (tráfico)

Introduccion
  Hoy en día es muy común ver redes en la modalidad Dual Stack (IPv4 + IPv6) donde ambos protocolos conviven en misma VLAN y/o Bus de red

  En el presente post voy a mostrar como monitorear independientemente el tráfico IPv4 e IPv6 que atraviesa una interfaz de un equipo Cisco.

Que se necesita
  a) Primero es muy importante el soporte de IP::MIB en el IOS del router, muy probablemente ya lo tengas pero vas a necesitar un IOS relativamente novedoso porque existen OID que no estan en versiones viejas.

  Para la realizacion del siguiente documento utilizamos:  c7200-adventerprisek9_sna-mz.152-4.M8.bin

  b) El cliente debe tener el software con el que vayas a monitorear..., eso es todo :-)  El siguiente post brevemente da ejemplos en MRTG, por ello instalamos:

apt-get install snmp
apt-get install snmp-mibs-downloader
apt-get install mrtg

  c) Para un mejor seguimiento de este documento es mejor tener compilado el MIB: IP-MIB de Cisco, muy seguramente quedó instalado luego de ejecutar apt-get install snmp-mibs-downloader.


Topologia utilizada para este post




Pasos

a)  Primero hay que averiguar el índice de la interfaz. Hay dos maneras:
  1) Desde el CLI del equipo Cisco con el comando:

#show snmp mib ifmib ifindex

Obtendremos algo así:

FastEthernet1/1: Ifindex = 3
Loopback0: Ifindex = 5
Null0: Ifindex = 4
FastEthernet1/0: Ifindex = 2
FastEthernet0/0: Ifindex = 1

 Logicamente trabajaremos con las interfaces que nos interecen, recordemos el número de índice que lo necesitaremos más adelante.


  2) Vía SNMP:
  Sabiendo al menos el IPv4 que queremos monitorear (mas adelante podremos monitorear IPv6 también)

Desde el equipo linux hacemos:
#snmpwalk -mALL -v2c -chola3 host1 .1.3.6.1.2.1.4.20.1.2.+DIRIPv4  
Por ejemplo:
#snmpwalk -mALL -v2c -chola3 host1 .1.3.6.1.2.1.4.20.1.2.192.168.1.1

Lo anterior nos devuele el indice de la interfaz que queremos monitorear. Listo!.

Si queremos estar seguro podemos hacer:

#snmpwalk -mALL -v2c -chola3 host1 1.3.6.1.2.1.2.2.1.2.+IntfIndex  
y nos devuelve la interfaz.

Donde:
host1 = host (podemos colocar un IP)
hola3 = la comunidad SNMP


b)  Crear los OID a monitorear
  i) Para obtener el OID de paquetes "INPUT IPv6" haremos lo siguiente:
- Utilizaremos este OID base y la agregaremos el indice de la interfaz al final:
  1.3.6.1.2.1.4.31.3.1.5.2 (IP-MIB::ipIfStatsInOctets.ipv6) + ifIndex = 1.3.6.1.2.1.4.31.3.1.5.2.1

 ii) Para obtener el OID de paquetes "Output IPv6" haremos lo siguiente:
  1.3.6.1.2.1.4.31.3.1.32.2 (IP-MIB::ipIfStatsOutOctets.ipv6) + ifIndex = 1.3.6.1.2.1.4.31.3.1.32.2.1

En MRTG el mrtg.cfg quedaría algo así:

Target[ipv6_f00]:1.3.6.1.2.1.4.31.3.1.5.2.1&1.3.6.1.2.1.4.31.3.1.32.2.1:readonly@192.168.1.1


Ahora bien, también queremos monitorear el tráfico IPv4:

i) Para obtener el OID de paquetes "INPUT IPv4" haremos lo siguiente:
- Utilizaremos este OID base y la agregaremos el indice de la interfaz al final:
  .1.3.6.1.2.1.4.31.3.1.5.1 (IP-MIB::ipIfStatsInOctets.ipv4) + ifIndex (F0/0) = .1.3.6.1.2.1.4.31.3.1.5.1.1

ii) Para obtener el OID de paquetes "Output IPv4" haremos lo siguiente:
  1.3.6.1.2.1.4.31.3.1.32.1 (IP-MIB::ipIfStatsOutOctets.ipv4) + ifIndex (F0/0) = 1.3.6.1.2.1.4.31.3.1.32.1.1


Target[ipv4_f00]:.1.3.6.1.2.1.4.31.3.1.5.1.1&1.3.6.1.2.1.4.31.3.1.32.1.1:readonly@192.168.1.1


  c) Se generó tráfico desde los hosts IPv4 e IPv6 hacia la Loopback del router principal con la aplicación bwping, se cambió el ancho de banda transmitido con el objeto de ver los cambios en la interfaz

    Para generar el tráfico utilicé el siguiente script:

while [ 1] 
do 
  bwping6 -b 256 -s 100 -v 9999 2001:db8:ffff::ffff
done

y

while [ 1] 
do 
  bwping -b 128 -s 100 -v 9999 192.168.255.255
done




Resultados

IPv4:




IPv6:



Total en la interfaz (default en MRTG):






Get Tweaked apps, iOS Emulators and Hack games with iPA Library Browse and download iOS IPA Apps, tweaks and ++ apps for iPhone, iPad and iPod Touch.
Guia do Host: Dicas para Criação e Hospedagem de Sites alphimedia hospedagem de site e revenda de hospdagem mais barata do brasil O Guia do Host é o local ideal para quem quer aprender mais como criar e hospedar um site. Nele você vai encontrar dica melhor hospedagem site brasil No Guia do Host você vai encontrar a melhor hospedagem para seu projeto, acompanhe também nossas promoções e cupons de desconto em parceria com as melhores hospedagens de sites da atualidade.
인스타그램 바로가기
जीबी व्हाट्सएप APK WhatsApp का मॉड वर्जन है जिसमें कई सारे Advance Features मिलते है तो जीबी व्हाट्सएप डाउनलोड करें और पाए Hide Last Seen जैसे बेहतरीन फीचर्स।

lunes, 6 de agosto de 2012

Error 1017 en Cacti. MySQL. Graficas en blanco



Error:
07/04/2012 05:37:49 PM - CMDPHP: Poller[0] ERROR: SQL Cell Failed!, Error:'1017', SQL:"SELECT count(*) FROM polle
r_time WHERE poller_id=0 AND end_time>'0000-00-00 00:00:00'"

 07/04/2012 05:38:34 PM - CMDPHP: Poller[0] ERROR: SQL Cell Failed!, Error:'1017', SQL:"SELECT count(*) FROM polle
r_time WHERE end_time='0000-00-00 00:00:00'"

 Procedimiento:
  En el archivo cacti.log se ve el error anterior. El mismo indica que no consigue (o no puede trabajar) con tabla poller_output de mysql.
  En este sentido, hay tres soluciones:

1) Reparar la tabla de mysql con el script php que trae cacti

 #php $PATH-TO-CACTI/cli/repair_database.php

2) Reparar la tabla con comandos mysql: 

 #mysql> REPAIR TABLE poller_output;
 
  Si no sabes la información de usuario, clave y DB del cacti, la misma la puedes conseguir en:


$PATH-TO-CACTI/include/config.php


3) Borrar la tabla y volverla a hacer (esta solución en lo personal a pesar de ser agresiva funciona perfectamente y no pierdes el historico de Cacti). Para ello entra en el CLI de mysql y ejecuta:

 --
-- Table structure for table `poller_output`
--
DROP TABLE IF EXISTS `poller_output`;
CREATE TABLE `poller_output` (
`local_data_id` mediumint(8) unsigned NOT NULL default '0',
`rrd_name` varchar(19) NOT NULL default '',
`time` datetime NOT NULL default '0000-00-00 00:00:00',
`output` text NOT NULL,
PRIMARY KEY (`local_data_id`,`rrd_name`,`time`)
) TYPE=MyISAM;
--
-- Dumping data for table `poller_output`
--
LOCK TABLES `poller_output` WRITE;
/*!40000 ALTER TABLE `poller_output` DISABLE KEYS */;
/*!40000 ALTER TABLE `poller_output` ENABLE KEYS */;
UNLOCK TABLES;



Listo!, luego puedes esperar a que el poller se ejecute y a los 15 minutos seguramente tendrás algo en tus gráficas. Si desees forzar el poller el comando es el siguiente:


#/usr/bin/php -q /var/www/miserver-cacti/poller.php --force


 Espero sea útil,





sábado, 6 de marzo de 2010

Como medir el ancho de banda de un enlace

Introduccion:
En repetidas oportunidades nos vemos en la necesidad de medir el ancho de banda de algun enlace, ya sea el mismo una red LAN, WAN, MAN utilizando satelite, microondas, fibra, etc y no sabemos como.
Para los conocedores del area tambien es comun que la gente de transmision nos indiquen que el enlace a nivel de capa 2 esta perfecto que no hay errores ni perdidas y que las pruebas de BERT salieron sin errores. Sin embargo al momento de probar dicho enlace con un router y transportando IP nos vemos con inconvenientes. Ahora bien, algo que es muy cierto es que el cliente tiene la ultima palabra, si el cliente dice que ve errores y/o que la aplicacion no funciona hay que revisar.


Objetivo
:
Vamos a medir el ancho de banda y calidad de un enlace. Cuando me refiero a enlace puede ser la comunicacion en un enlace WAN, entre dos equipos en una misma LAN. Para estas pruebas el medio fisico (wireless, satelite, fibra, microondas) es irrelevante.

Software necesario:
Linux y/o Windows
Iperf

Como hacer el estudio:
Vamos a basar nuestro estudio en el programa Iperf. Wikipedia en su pagina en Ingles define Iperf como un programa moderno para probar redes que es capaz de crear stream TCP y UDP y mide el ancho de banda de la red donde se ejecutan. Iperf fue realizado en C++
Iperf es un programa cliente - servidor por ello es necesario instalar el programa en al menos dos dispositivos. El mismo programa funciona tanto cliente como servidor. Su comportamiento varia segun las opciones que utilicemos al momento de ejecutarlo.
Una ventaja de Iperf es que hacemos la prueba en capa 3, es decir en IP, con Iperf podemos probar TCP y UDP y con distintos programas de paquete. Esto es sensacional.

Procedimiento:
Es necesario dos equipos donde uno es cliente y el otro sera el servidor. Por default Iperf mide el ancho de banda desde el cliente al servidor (sin embargo existe una opcion de medicion bi-direccional)

Ejemplos utiles:

1) Prueba mas basica. Opciones por default.
Lado server:

[root@monitor-2 root]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

Lado cliente:

[root@pemon ~]# iperf -c 10.1.1.1
------------------------------------------------------------
Client connecting to 10.1.1.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 10.1.1.2 port 51096 connected with 10.1.1.2 port 5001
[ 3] 0.0-10.0 sec 84.4 MBytes 70.8 Mbits/sec

2) Vamos a probar un Megabit entre el cliente y el servidor durante 15 segundo en paquetes UDP.
Lado server:
iperf -s -u

Lado cliente
[root@pemon ~]# iperf -c 10.1.1.1. -t 15 -u

3) Realizar una prueba de 2 Megabits de envio simultaneo entre el cliente y el servidor de paquetes UDP por 15 segundos
Lado server:
iperf -s -u

Lado cliente
[root@pemon ~]# iperf -c 10.1.1.1 -t 15 -u -d -b 2000000

{SUPRIMI UN POCO DE LA SALIDA}
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.0-15.0 sec 3.58 MBytes 2.00 Mbits/sec 0.180 ms 0/ 2553 (0%)
[ 3] 0.0-15.0 sec 3.58 MBytes 2.00 Mbits/sec 0.011 ms 0/ 2553 (0%)

Vamos a estudiar rapidamente el comando del cliente:
* con el -t 15 le indicamos 15 segundos
* -u que fuese UDP
* -d que fuese dual (envio y recepcion a la misma vez)
* -b 2000000 = 2 Mbits

Vamos a estudiar la salida tambien:
El intervalo fueron 15 segundos, se transfirio 3.58 Megabytes, el ancho de banda son 2 Mbits, el jitter es de 0.180 ms, se perdieron 0 datagramas de 2553 datagramas lo que representa 0 % de perdida

Recomendaciones:
Personalmente me agrada hacer mis estudios con Iperf utilizando UDP por diversas razones:
- Puedo indicar el ancho de banda
- No tengo inconvenientes con el Windows Size y/o perdida de algun acknowledge me baje drasticamente el Ancho de Banda
- Con la prueba de UDP yo mismo puedo calcular el impacto de las perdida de paquetes (imaginen la diferencia de perdida de paquetes (o errados) entre una red Wireless y una red cableada..

Salida del comado iperf --help para su referencia:

[root@monitor-2 root]# iperf --help
Usage: iperf [-s|-c host] [options]
iperf [-h|--help] [-v|--version]

Client/Server:
-f, --format [kmKM] format to report: Kbits, Mbits, KBytes, MBytes
-i, --interval # seconds between periodic bandwidth reports
-l, --len #[KM] length of buffer to read or write (default 8 KB)
-m, --print_mss print TCP maximum segment size (MTU - TCP/IP header)
-p, --port # server port to listen on/connect to
-u, --udp use UDP rather than TCP
-w, --window #[KM] TCP window size (socket buffer size)
-B, --bind bind to , an interface or multicast address
-C, --compatibility for use with older versions does not sent extra msgs
-M, --mss # set TCP maximum segment size (MTU - 40 bytes)
-N, --nodelay set TCP no delay, disabling Nagle's Algorithm
-V, --IPv6Version Set the domain to IPv6

Server specific:
-s, --server run in server mode
-D, --daemon run the server as a daemon

Client specific:
-b, --bandwidth #[KM] for UDP, bandwidth to send at in bits/sec
(default 1 Mbit/sec, implies -u)
-c, --client run in client mode, connecting to
-d, --dualtest Do a bidirectional test simultaneously
-n, --num #[KM] number of bytes to transmit (instead of -t)
-r, --tradeoff Do a bidirectional test individually
-t, --time # time in seconds to transmit for (default 10 secs)
-F, --fileinput input the data to be transmitted from a file
-I, --stdin input the data to be transmitted from stdin
-L, --listenport # port to recieve bidirectional tests back on
-P, --parallel # number of parallel client threads to run
-T, --ttl # time-to-live, for multicast (default 1)

Miscellaneous:
-h, --help print this message and quit
-v, --version print version information and quit

[KM] Indicates options that support a K or M suffix for kilo- or mega-

The TCP window size option can be set by the environment variable
TCP_WINDOW_SIZE. Most other options can be set by an environment variable
IPERF_, such as IPERF_BANDWIDTH.

Report bugs to


Links utiles:
http://www.noc.ucf.edu/Tools/Iperf/
http://sourceforge.net/projects/iperf/
http://en.wikipedia.org/wiki/Iperf

miércoles, 3 de marzo de 2010

Revisar el estado de las conexiones BGP via SNMP en un router Cisco

Objetivo:
Revisar el estado de las conexiones BGP en un router Cisco via SNMP

Procedimiento:
El procedimiento es muy sencillo, basicamente lo que se necesita es realizar un snmpwalk al siguiente OID: 1.3.6.1.2.1.15.3.1.2
Por ejemplo:
snmpwalk -v1 10.2.3.4 -c public 1.3.6.1.2.1.15.3.1.2

La salida que obtendremos será algo así:
SNMPv2-SMI::mib-2.15.3.1.2.10.6.7.8 6
SNMPv2-SMI::mib-2.15.3.1.2.10.8.9.8 3
SNMPv2-SMI::mib-2.15.3.1.2.10.11.33.44 1
SNMPv2-SMI::mib-2.15.3.1.2.10.14.55.44 6

En la salida anterior podemos ver que existen 4 sesiones BGP creadas hacia los IPs: 10.6.7.8, 10.8.9.8, 10.11.33.44 y 10.14.55.44 (las mismas que veremos al hacer un show ip bgp nei). De esta salida lo que necesitamos revisar es el último número del lado derecho y comparar dicho valor con la siguiente tabla:

1 : idle
2 : connect
3 : active
4 : opensent
5 : openconfirm
6 : established

Por ejemplo, en la salida anterior los peer 10.6.7.8 y 10.14.55.44 se encuentran en estado established.

Links importantes:
http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=en&translate=Translate&objectInput=1.3.6.1.2.1.15.3.1.2

martes, 23 de febrero de 2010

Realizar un ping en un equipo Cisco con SNMP. Script en bash

Objetivo:
Desde un equipo con Linux indicarle a un Routero LAN Switch Cisco que realice un ping a un destino

Motivo:
Pueden existir diversos motivos para realizar la tarea mencionada. Por ejemplo en este momento necesito revisar si en la tabla arp de un equipo se encuentra una MAC en especifico y no tengo acceso desde mi NMS.

Software necesario:
net-snmp
snmp-devel

Configuración del router Cisco:
Para llevar a cabo dicha tarea es necesario tener acceso RW vía SNMP al router. Por ejemplo en modo configuracion:
#snmp-server community acostanetwork RW

Script en Linux:
#!/bin/sh
###### We've chosen 333 at random. 333 will be the row instance to use for this particular
###### ping experiment. After the ping, the row will be deleted.
###### This keeps the table clean. Router_Source is the dns name of the device we are
###### working with, and public is its RW community string. The values for
###### ciscoPingEntryStatus status are as follows (see Ping MIB):

###### 1 - active
###### 2 - notInService
###### 3 - notReady
###### 4 - createAndGo
###### 5 - createAndWait
###### 6 - destroy

#DECLARACION DE LAS VARIABLES
COM="epale" #SNMP Community name
PINGER_ROUTER="10.3.4.5"
IP_TO_PING="0A 00 00 01" #The IP address to ping should be define in HEX
PACKET_COUNT=20
PACKET_SIZE=100

###### We will clear out any previous entries by setting ciscoPingEntryStatus = 6 (destroy)

snmpset -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1.16.333 integer 6
###### We start building the row by setting ciscoPingEntryStatus = 5 (createAndWait)
echo

snmpset -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1.16.333 integer 5

echo
echo "###### Now let's set the characteristics of the ping #######"

###### Only the first three sets below are REQUIRED. The rest have default
###### values.

#Set ciscoPingEntryOwner = any_name
snmpset -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1.15.333 s anyname

#Set ciscoPingProtocol = 1 = ip (see CISCO-TC-V1SMI.my CiscoNetworkProtocol)
snmpset -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1.2.333 i 1

#Set ciscoPingAddress = #.#.#.#--take Remote_Dest's ip & convert each octet to hex
snmpset -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1.3.333 x "$IP_TO_PING"
#Set the packet count to 20 (ciscoPingPacketCount)
snmpset -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1.4.333 i $PACKET_COUNT

#Set the packetsize to 100 (ciscoPingPacketSize)
snmpset -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1.5.333 i $PACKET_SIZ

echo
echo "##### Now let's verify that the ping is ready to go and launch it #######"

#Get ciscoPingEntryStatus and make sure it is now equal to 2. This means
# notInService which indicates that we're ready to go.

snmpget -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1.16.333

# Set ciscoPingEntryStatus = 1 to tell it to activate.

snmpset -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1.16.333 integer 1

#Let's wait two seconds before looking the results
sleep 2

echo
echo "##### Let's look at the results. #####"

snmpwalk -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1

echo

echo "##### Now that we've gotten the results, let's destroy the row #####"
snmpset -c $COM $PINGER_ROUTER .1.3.6.1.4.1.9.9.16.1.1.1.16.333 integer 6



Funcionamiento:
- Declarar las variables de manera correcta al comienzo del script
- Notese que existe un sleep en el script. Este sleep sirve para esperar 2 segundos antes de continuar a ver los resultados. Es importante debido a que si se ejecuta el script sin la pausa el router probablemente no tendrá tiempo de tener los resultados.
- Recomiendo (pero no es necesario) instalar los MIBs ubicados en: http://tools.cisco.com/Support/SNMP/do/BrowseMIB.do?local=en&mibName=CISCO-PING-MIB

Ejemplo de resultado (con MIBs compilados):
CISCO-PING-MIB::ciscoPingProtocol.333 1
CISCO-PING-MIB::ciscoPingAddress.333 "0A 00 00 01 "
CISCO-PING-MIB::ciscoPingPacketCount.333 20
CISCO-PING-MIB::ciscoPingPacketSize.333 100
CISCO-PING-MIB::ciscoPingPacketTimeout.333 2000
CISCO-PING-MIB::ciscoPingDelay.333 0
CISCO-PING-MIB::ciscoPingTrapOnCompletion.333 2
CISCO-PING-MIB::ciscoPingSentPackets.333 20
CISCO-PING-MIB::ciscoPingReceivedPackets.333 20
CISCO-PING-MIB::ciscoPingMinRtt.333 1
CISCO-PING-MIB::ciscoPingAvgRtt.333 1
CISCO-PING-MIB::ciscoPingMaxRtt.333 1
CISCO-PING-MIB::ciscoPingCompleted.333 1
CISCO-PING-MIB::ciscoPingEntryOwner.333 "anyname"
CISCO-PING-MIB::ciscoPingEntryStatus.333 1
CISCO-PING-MIB::ciscoPingVrfName.333 ""

He colocado en negrillas e itálicas algunos valores importantes

Link importantes:


Espero sea de tu utilidad, suerte,

Compilar MIBs en Linux. Paso a Paso

Objetivo:
Instalar MIBs en Linux. En el presente caso utilizaremos unos MIBs de Cisco sin embargo el procedimiento es el mismo para cualquier otro MIBs.

Software necesario:
Necesitamos instalar net-snmp en nuestro equipo Linux. En mi caso con Mandriva:
urpmi snmp-devel

Tambien vamos a necesitar la linea devel de net-snmp:
urpmi lib64net-snmp-devel


y


rpm-build, es decir,
urpmi rpm-build

Procedimiento:
1) Averiguar donde SNMP almacena los repositorios MIBS:
net-snmp-config --default-mibdirs

2) Bajar los MIBS que queremos implementar. En este caso hay que tener mucho cuidado con los MIBS bajados en Internet, es importante que sean archivos de texto y que en la parte superior solo tengan comentarios y luego (como primera linea válida) contenga algo similar a: CISCO-RHINO-MIB DEFINITIONS ::= BEGIN" y la última linea debe decir END.
En el siguiente ejemplo bajaremos los siguientes MIBs:
ftp://ftp.cisco.com/pub/mibs/v2/CISCO-RHINO-MIB.my
ftp://ftp.cisco.com/pub/mibs/v2/CISCO-SMI.my

3) Copiar los MIBS en alguno de los directorios resultantes de: net-snmp-config --default-mibdirs
Por ejemplo:

cp /tmp/CISCO-*.my /usr/share/snmp/mibs

4) Ubicar el archivo de configuración global para snmp (no snmpd!)
Para mandriva: /etc/snmp/snmp.local.conf y agregar al final del archivo las siguientes lineas:

mibs +CISCO-RHINO-MIB
mibs +CISCO-SMI

5) Probar que los MIBs recien instalados funcionen:

[root@localhost ~]# snmptranslate -IR -On ciscoLS1010ChassisFanLed
.1.3.6.1.4.1.9.5.11.1.1.12

Comentarios:
Existe más de una manera de realizar la compilación de los MIBs en Linux, sin embargo yo solo quise mostrar una manera práctica, rápida y funcional de como realizar la tarea.

Links importantes:
El articulo arriba descrito es la suma de mi experiencia y de la traducción y resumen del articulo: http://www.net-snmp.org/wiki/index.php/TUT:Using_and_loading_MIBS

viernes, 21 de agosto de 2009

Implementando SNMPv3 en cisco y monitoreo en CACTI

Para la configuracion de de SNMP v3 en un equipo cisco, la configuracion es relativamente sencilla.


Primero que todo, configuramos una "view" de la siguiente manera, en modo de configuracion global, ejecutamos el siguiente comando

2801-1(config)#snmp-server view lectura iso included

En caso de querer limitar el arbol, podemos ponernos mas intensos y especificar oid por oid ( 100%), de esta manera vamos a evitar que un snmpwalk a nuestro equipo muestre informacion de mas.
Ejm:
snmp-server view lectura 1.3.6.1.2.1.2.2.1.10 included

o tambien ( podemos pasarle el nombre del objeto)

snmp-server view lectura ifInOctets included

Luego de esto, creamos el grupo que va a utilizar la vista que creamos anteriormente

2801-1(config)#snmp-server group sololectura v3 auth read lectura

La v3, hace referencia a que se esta usando la version 3 de snmp, el comando Auth, nos dice que la entidad que hace los snmpgets, snmpwalks, etc. Debe de ser autentificada y por ultimo "read lectura", nos dice que el grupo sololectura va a hacer uso de la vista "lectura".


2801-1(config)#snmp-server user rollingpaper sololectura v3 auth md5 acostanetwork

Por ultimo, creamos el usuario "rollingpaper" que pertenece al grupo "sololectura", y va a usar md5 para autentificacion y por ultimo, configuramos la clave "acosatnetwork"

Listo, como sabemos si funciona?, si tenemos un equipo linux (Si es Debian mucho mejor :P), podemos correl el siguiente comando


rolling:/home# snmpwalk -v3 -u rollingpaper -l authNoPriv -a MD5 -A acostanetwork X.X.X.X .1

Y obtendremos el resultado deaseado, en este caso, puse al final .1 para que camine sobre todo el arbol.

Ejm ( en este ejemplo yo use el objeto iso, por eso recomiendo hacer los "views" por OID, se da demasiada informacion poniendo el nombre de un objeto como "iso" a la hora de un snmpwalk)

rolling:/home# snmpwalk -v3 -u rollingpaper -l authNoPriv -a MD5 -A acostanetwork 192.168.127.84 .1
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, 2801 Software (C2801-IPVOICE-M), Version 12.3(11)T6, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2005 by Cisco Systems, Inc.
Compiled Fri 03-Jun-05 02:19 by ccai
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.619
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (19653625) 2 days, 6:35:36.25
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: 2801-1.yourdomain.com
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 78
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORID.1 = OID: SNMPv2-SMI::enterprises.9.7.129
SNMPv2-MIB::sysORID.2 = OID: SNMPv2-SMI::enterprises.9.7.115
SNMPv2-MIB::sysORID.3 = OID: SNMPv2-SMI::enterprises.9.7.265
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-SMI::enterprises.9.7.112
SNMPv2-MIB::sysORID.5 = OID: SNMPv2-SMI::enterprises.9.7.106
SNMPv2-MIB::sysORID.6 = OID: SNMPv2-SMI::enterprises.9.7.47
SNMPv2-MIB::sysORID.7 = OID: SNMPv2-SMI::enterprises.9.7.122
SNMPv2-MIB::sysORID.8 = OID: SNMPv2-SMI::enterprises.9.7.135
SNMPv2-MIB::sysORID.9 = OID: SNMPv2-SMI::enterprises.9.7.43
SNMPv2-MIB::sysORID.10 = OID: SNMPv2-SMI::enterprises.9.7.37
SNMPv2-MIB::sysORID.11 = OID: SNMPv2-SMI::enterprises.9.7.92
SNMPv2-MIB::sysORID.12 = OID: SNMPv2-SMI::enterprises.9.7.53
SNMPv2-MIB::sysORID.13 = OID: SNMPv2-SMI::enterprises.9.7.54


Ahora, para agregarlo a Cacti, solo hace falta colocar los siguientes valores, como se muestra en la imagen.







Espero que sea de su agrado,
Saludos

Una propuesta inesperada dentro de IETF – Ethernet sobre HTTPS

En el presente post quiero hablar mayormente sobre un documento con poco tiempo en IETF llamado “Ethernet sobre HTTPS”. Debo confesar que su...