Feeds:
Posts
Comments

Archive for the ‘Uncategorized’ Category

How can i leave trap ..hun
NOW, lets try to configure snmp manager to receive trap and agent to send it

Agent side: cat /etc/snmp/snmpd.conf
—————————————
rwuser pu_v3_rw noauth
rouser pu_v3_ro noauth
rouser public
rwcommunity private
rwcommunity pu_v12_rw
trapcommunity public
trapsink localhost public
trap2sink localhost pu_v12_rw
syslocation pushpa_location
syscontact pushpa_contact
—————————————-
trapsink for SNMPv1 traps
trap2sink for SNMPv2 traps
I am still in my way to configure SNMPv3 traps (hope for best)

Restart snmpd (aka snmp-agent)
/etc/init.d/snmpd restart
Manager side: cat /etc/snmp/snmptrapd.conf
authCommunity log pu_r12_rw
authCommunity log public

Restart snmptrapd
sudo snmptrapd -f -Lo -c /etc/snmp/snmptrapd.conf

We are all set to go …. where??  sit sit try traps  as given below 😛

PART:0

SNMPv1 traps:

 snmptrap -v 1 -c public localhost NET-SNMP-EXAMPLES-MIB::netSnmpExampleNotification “” 6 17 “”  netSnmpExampleInteger i 123456

snmptrapd shows:

2013-05-23 15:16:53 pushpa.Mysorecalsoft.org [172.16.1.134] (via UDP: [127.0.0.1]:34115->[127.0.0.1]) TRAP, SNMP v1, community public
NET-SNMP-EXAMPLES-MIB::netSnmpExampleNotification Enterprise Specific Trap (17) Uptime: 5:55:47.83
NET-SNMP-EXAMPLES-MIB::netSnmpExampleInteger = INTEGER: 123456
SNMPv2 traps:

snmptrap -v 2c -c public localhost “” NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456

snmptrapd shows:

2013-05-23 15:18:28 localhost [UDP: [127.0.0.1]:34619->[127.0.0.1]]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2144276) 5:57:22.76 SNMPv2-MIB::snmpTrapOID.0 = OID: NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatRate = INTEGER: 123456

snmpinform -v 2c -c public 172.16.1.134 “” NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 777

2013-05-23 15:19:25 pushpa.Mysorecalsoft.org [UDP: [172.16.1.134]:41729->[172.16.1.134]]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2149978) 5:58:19.78 SNMPv2-MIB::snmpTrapOID.0 = OID: NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatRate = INTEGER: 777

PART:1

cat  ~/.snmp/mibs/TRAP-TEST-MIB  (create TRAP-TEST-MIB)

——————————————————————————
TRAP-TEST-MIB DEFINITIONS ::= BEGIN
IMPORTS ucdExperimental FROM UCD-SNMP-MIB;

demotraps OBJECT IDENTIFIER ::= { ucdExperimental 990 }

demo-trap TRAP-TYPE
STATUS current
ENTERPRISE demotraps
VARIABLES { sysLocation }
DESCRIPTION “This is just a demo”
::= 17

END

———————————————————————————–

Dont forget to restart agent and trapd when respective configuration got modified

snmptrap -v 1 -c public localhost TRAP-TEST-MIB::demotraps localhost 6 17 ” SNMPv2-MIB::sysLocation.0 s “Just here”

snmptrapd shows:

2013-05-23 15:23:30 localhost [127.0.0.1] (via UDP: [127.0.0.1]:35535->[127.0.0.1]) TRAP, SNMP v1, community public
UCD-SNMP-MIB::ucdExperimental.990 Enterprise Specific Trap (17) Uptime: 6:02:25.43
SNMPv2-MIB::sysLocation.0 = STRING: Just here

Read Full Post »

I worked on SNMP but forgot  and want to be familiar with it …….same for you too …then stop stopp here 🙂
I can refer following link to understand SNMP concepts . http://www.net-snmp.org/wiki/index.php/
Tired of reading…I assume i have red/know concepts and theory part of SNMP protocol.
Okay…Lets jump into pool and learn swimming tactics

AIM: configure SNMP agent and SNMP manager on same Ubuntu system

part 0:

Platform:linux (32bit)
OS: ubuntu 12.04
step1: download snmpagent and tool

sudo apt-get install snmpd (this is THE ;~ SNMP agent)
sudo apt-get install snmp ( want to use snmp commands isn’t?)
sudo apt-get install snmp-mibs-downloader (yes, have to download iana, ietf mibs separately)

PS: let installtion check dependencies n report me if it need any 😉

http://net-snmp.sourceforge.net/download.html
http://net-snmp.sourceforge.net/docs/INSTALL.html

step2: I should know/remember few stuffs too
mibs location :
ls -l /usr/share/mibs/
total 4
lrwxrwxrwx 1 root root 18 Jun 7 2010 iana -> /var/lib/mibs/iana
lrwxrwxrwx 1 root root 18 Jun 7 2010 ietf -> /var/lib/mibs/ietf
drwxr-xr-x 2 root root 4096 Apr 26 10:54 netsnmp
I forgot the script(snmp) name in which we can set the mib directories to search for. okay move-on
But, there is shortcut atleast to know what are the location being searched for mib
snmptranslate -Dinit_mib .1.3 2>&1
No log handling enabled – turning on stderr logging
registered debug token init_mib, 1
init_mib: Seen MIBDIRS: Looking in ‘/home/(user_name)/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp’ for mib dirs …
init_mib: Seen MIBS: Looking in ‘:HOST-RESOURCES-MIB:HOST-RESOURCES-TYPES:UCD-DLMOD-MIB:UCD-DISKIO-MIB:LM-SENSORS-MIB:IP-MIB:IF-MIB:TCP-MIB:UDP-MIB:SNMPv2-MIB:RFC1213-MIB:NOTIFICATION-LOG-MIB:DISMAN-EVENT-MIB:DISMAN-SCHEDULE-MIB:UCD-SNMP-MIB:UCD-DEMO-MIB:SNMP-TARGET-MIB:NET-SNMP-AGENT-MIB:SNMP-FRAMEWORK-MIB:SNMP-MPD-MIB:SNMP-USER-BASED-SM-MIB:SNMP-VIEW-BASED-ACM-MIB:SNMP-COMMUNITY-MIB:IPV6-ICMP-MIB:IPV6-MIB:IPV6-TCP-MIB:IPV6-UDP-MIB:IP-FORWARD-MIB:NET-SNMP-PASS-MIB:NET-SNMP-EXTEND-MIB:SNMP-NOTIFICATION-MIB:SNMPv2-TM:NET-SNMP-VACM-MIB’ for mib files …
init_mib: Seen PREFIX: Looking in ‘.1.3.6.1.2.1’ for prefix …
SNMPv2-SMI::org

Note: I have kept sample MIBs in ~/.snmp/mibs (create directories if it is not there)

conf location:
ls /etc/snmp
snmp.conf, snmpd.conf, snmptrapd.conf, snmpd.conf.org
Whenever i try experimenting. keep reminding myself to save original files as .org.

step 3:
configure agent: used ‘snmpconf -g basic_setup’ to create config file

cat /etc/snmpd/snmpd.conf
———————
rwuser pu_v3_rw noauth
rouser pu_v3_ro noauth
rouser public (added manually)
rwcommunity private (added manually)
rwcommunity pu_v12_rw
trapcommunity public (added manually)
trapsink localhost public (added manually)
linkUpDownNotifications yes (added manually)
syslocation pushpa_location
syscontact pushpa_contact
—————————-

Following are the place where snmp dir present
/var/lib/snmp
/etc/snmp
/usr/share/snmp
/usr/share/doc/snmp

part 1:
step 4:
(Tp = Print a graphical tree, rooted at the specified OID)
snmptranslate -Tp SNMPv2-MIB::system
+–system(1)
|
+– -R– String sysDescr(1)
| Textual Convention: DisplayString
| Size: 0..255
+– -R– ObjID sysObjectID(2)
+– -R– TimeTicks sysUpTime(3)
| |
| +–sysUpTimeInstance(0)
|
+– -RW- String sysContact(4)
| Textual Convention: DisplayString
| Size: 0..255
+– -RW- String sysName(5)
| Textual Convention: DisplayString
| Size: 0..255
+– -RW- String sysLocation(6)
| Textual Convention: DisplayString
| Size: 0..255
+– -R– INTEGER sysServices(7)
| Range: 0..127
+– -R– TimeTicks sysORLastChange(8)
| Textual Convention: TimeStamp
|
+–sysORTable(9)
|
+–sysOREntry(1)
| Index: sysORIndex
|
+– —- INTEGER sysORIndex(1)
| Range: 1..2147483647
+– -R– ObjID sysORID(2)
+– -R– String sysORDescr(3)
| Textual Convention: DisplayString
| Size: 0..255
+– -R– TimeTicks sysORUpTime(4)
Textual Convention: TimeStamp

(-On = Displays the OID numerically)
snmptranslate -On SNMPv2-MIB::system
.1.3.6.1.2.1.1

(Td = description)
snmptranslate -Td .1.3.6.1.2.1.1
SNMPv2-MIB::system
system OBJECT-TYPE
— FROM SNMPv2-MIB, RFC1213-MIB
::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) 1 }

snmptranslate -Td .1.3.6.1.2.1.1.1

(IR = enable random access, no need to give full OID path)
snmptranslate -On -IR sysDescr
.1.3.6.1.2.1.1.1

Refer: link to know more about common options http://www.linuxcommand.org/man_pages/snmpcmd1.html
snmpget -c public -v 1 localhost sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1280231) 3:33:22.31

snmpgetnext -c public -v 1 localhost sysUpTime.0
SNMPv2-MIB::sysContact.0 = STRING: root

snmpgetnext -c public -v 1 localhost sysContact.0
SNMPv2-MIB::sysName.0 = STRING: user_name

snmpget -c public -v 1 localhost ipForwarding.0
IP-MIB::ipForwarding.0 = INTEGER: notForwarding(2)
Part 2:
Now one step-up, it is using externel mib (example)
Download CISCO-RHINO-MIB and store in ~/.snmp/mibs/
http://www.net-snmp.org/wiki/index.php/TUT:Using_and_loading_MIBS

restart snmp-agent /etc/init.d/snmpd restart
and try following and ve fun
snmptranslate -Tp CISCO-RHINO-MIB::ciscoLS1010ChassisGroup
snmptranslate -m +CISCO-RHINO-MIB -IR -On ciscoLS1010ChassisFanLed
snmptranslate -On -IR CISCO-RHINO-MIB::ciscoLS1010ChassisSysType

snmpget and snmpset wont work for this mib since no snmp-handler . This is when we
need to use mib2c and fill up the stuff

Note: check snmp version number used and host name if i get error. because that is silly mistake i might have done.

Read Full Post »

 
I have heard that "C++ begins where C ends,,, 

LETS MOVE ON...
Following program shows how to access struct which contains
 pointer to char,array,array of pointer and pointer to struct.
simple program, access 'struct s' via pointer 'p1' 

Accessing done in sequential manner(see comments in bold letters) ,
 easy to track and understand.

#include<iostream>
#include<cstring>
using namespace std;
struct l
{
 char *i;
 int j;
 int la[2]; //array of integer
 int *lp[2]; //array of pointer
};
struct s
{
 char *m;
struct l *k; //pointer to struct l
 int sa[2]; //array of integer
 int *sp[2]; //array of pointer
};

int main()
{
 struct s one;
 struct s *p1 = &one;

/** Access struct via pointer**/
/** 1st variable in struct s i.e char *m **/
 p1->m = new char;
 *p1->m = 'k';
 cout<<"m="<<*p1->m<<endl;

 /** another method**/
 p1->m = new (nothrow) char;
 if (p1->m == 0)
 cout<<"errr"<<endl;
 *p1->m = 'l';
 cout<<"m="<<*p1->m<<endl;

/** 2nd variable of struct s: struct l *k **/
 p1->k = new l;
 p1->k->i = new char; // seg fault if u miss this
 *p1->k->i = 'k';
 cout<<"i="<<*p1->k->i<<endl;

/** ptr_stru ->ptr_stru -> arry **/
for (int i=0;i<2;i++)
 p1->k->la[i] = i;
 for(int i=0; i<2;i++)
 cout<<"la="<<p1->k->la[i]<<endl;

/** stru - stru - arry_of_ptr **/

 for (int i=0;i<2;i++)
 {
 p1->k->lp[i] = new int;
 *p1->k->lp[i] = i;
 }
 for (int i=0;i<2;i++)
 cout<<"kp="<<*p1->k->lp[i]<<endl;

/** 3rd variable of struct s: int sa[2] **/
 for (int i=0;i<2;i++)
 p1->sa[i] =i ;
 for (int i=0;i<2;i++)
 cout<<"sa="<<p1->sa[i]<<endl;

/** 4th variable of struct s: int *sp[2] **/

 for (int i=0;i<2;i++)
 {
 p1->sp[i] = new int;
 *p1->sp[i] = i;
 }
 for (int i=0;i<2;i++)
 cout<<"sp="<<*p1->sp[i]<<endl;

 return 0;
}

OUTPUT:

m=k
m=l
/**access variables of struct l via pointer 'k'**/
i=k
la=0
la=1
kp=0
kp=1
/** access array and array of pointers **/
sa=0
sa=1
sp=0
sp=1

Read Full Post »

Hey E-World

My best frnd gave me hint, and m already here

Read Full Post »