SNMP
Posted: Sun Jun 11, 2017 12:17 am
The BiPAC's SNMP Agent follows the standards and hence there is no separate MIB for download. However, that does mean that you have to gather them together yourself or make educated guesses.
Here I will detail how to get snmpwalk from the Net-SNMP suite of applications to walk the tree of values and resolve the OIDs to their symbolic names and get the units and multipliers for each value. You will then be able to go to your monitoring program of choice and be more confident in configuring it. The MIBs themselves also provide documentation on what the names actually mean, so read them!
Before you start, check out how net-snmp is set up (this isn't compulsory but might help you when debugging):
There are two standard places to put mibs: /usr/share/snmp/mibs - this is usually where your distro puts the default set of mibs that comes with Net-SNMP and ~/.snmp/mibs ie a hidden folder in your home directory is where you can experiment. I suggest that you put your extra mibs into a system wide directory but not the default one so that upgrades don't mess with your changes.
Attached to this post is a set of mibs in an archive: - they are simply text files. These have been hand downloaded one by one and verified. They are the bare minimum set of mibs that combined with the default set from Net-SNMP will enable you to decode the entire output from a Billion ADSL/VDSL router. One of them (VDSL-LINE-MIB) has been hand patched according to the RFC errata.
Put the mibs into say /usr/local/share/snmp/mibs:
Create or edit /etc/snmp/snmp.conf:
$ cat /etc/snmp/snmp.conf
Now you should be able to read all the details from the SNMP agent on many standards compliant ADSL or VDSL router and as a side effect you may find that many switches and a lot more devices are covered as well. The reason that the token ring mib is included here is because it is directly referenced by RMON and RMON2 and so I added it to avoid errors. You should be able to spare 100Kb disc space 8)
You should now be able to run something like this and get a fully described output:
To go back to only displaying numeric OIDs, add -On (capital letter o), for example:
Note: On the 8800NL R2 at least with current firmware (as of 11 Jun 2017) , vdslPhysCurrSnrMgn, for example, is currently output with a scaling factor of 0.1 but the RFC insists on 0.25. In the above output the value is 75 and the web GUI shows 7.5. However the SNMP agent should really spit out 7.5 * 4 = 30. I have filed a bug with Billion for this and will remove this warning when it is resolved.
If you want to explore SNMP fully then I recommend this: http://www.snmplink.org/OnLineMIB/Standards/ as a resource.
Here I will detail how to get snmpwalk from the Net-SNMP suite of applications to walk the tree of values and resolve the OIDs to their symbolic names and get the units and multipliers for each value. You will then be able to go to your monitoring program of choice and be more confident in configuring it. The MIBs themselves also provide documentation on what the names actually mean, so read them!
Before you start, check out how net-snmp is set up (this isn't compulsory but might help you when debugging):
Code: Select all
$ net-snmp-setup --configure-options
$ net-snmp-setup --default-mibdirs
Attached to this post is a set of mibs in an archive: - they are simply text files. These have been hand downloaded one by one and verified. They are the bare minimum set of mibs that combined with the default set from Net-SNMP will enable you to decode the entire output from a Billion ADSL/VDSL router. One of them (VDSL-LINE-MIB) has been hand patched according to the RFC errata.
Put the mibs into say /usr/local/share/snmp/mibs:
Code: Select all
[user@pc:/usr/local/share/snmp/mibs] $ ls -l
total 936
-rw-r--r-- 1 root root 187005 Jun 9 14:35 ADSL-TC-MIB.txt
-rw-r--r-- 1 root root 46751 Jun 9 14:59 BRIDGE-MIB.txt
-rw-r--r-- 1 root root 10793 Jun 9 14:16 HC-PERFHIST-TC-MIB.txt
-rw-r--r-- 1 root root 34063 Jun 9 15:06 P-BRIDGE-MIB.txt
-rw-r--r-- 1 root root 7048 Jun 9 15:14 PERFHIST-TC-MIB.txt
-rw-r--r-- 1 root root 68571 Jun 9 15:08 Q-BRIDGE-MIB.txt
-rw-r--r-- 1 root root 223859 Jun 9 15:24 RMON2-MIB.txt
-rw-r--r-- 1 root root 151668 Jun 9 15:28 RMON-MIB.txt
-rw-r--r-- 1 root root 100143 Jun 9 15:29 TOKEN-RING-RMON-MIB.txt
-rw-r--r-- 1 root root 107131 Jun 9 16:20 VDSL-LINE-MIB.txt
$ cat /etc/snmp/snmp.conf
Code: Select all
# Add a local collection of mibs to the defaults and use the lot
mibdirs +/usr/local/share/snmp/mibs
mibs +all
You should now be able to run something like this and get a fully described output:
Code: Select all
$ snmpwalk -v2c -c community_name ip.ad.re.ss
...
ADSL-LINE-MIB::adslAtucCurrAttainableRate.1 = Gauge32: 20000 bps
ADSL-LINE-MIB::adslAturInvVersionNumber.1 = STRING: A2pvI042j1.d26q_rc1a
ADSL-LINE-MIB::adslAturCurrAttainableRate.1 = Gauge32: 79987 bps
VDSL-LINE-MIB::vdslPhysSide.1 = INTEGER: vtuc(1)
VDSL-LINE-MIB::vdslPhysSide.2 = INTEGER: vtur(2)
VDSL-LINE-MIB::vdslPhysCurrSnrMgn.1 = INTEGER: 75 0.25dB
VDSL-LINE-MIB::vdslPhysCurrSnrMgn.2 = INTEGER: 96 0.25dB
VDSL-LINE-MIB::vdslPhysCurrAtn.1 = Gauge32: 97 0.25dB
VDSL-LINE-MIB::vdslPhysCurrAtn.2 = Gauge32: 0 0.25dB
VDSL-LINE-MIB::vdslPhysCurrOutputPwr.1 = INTEGER: -70 0.1dBm
VDSL-LINE-MIB::vdslPhysCurrOutputPwr.2 = INTEGER: -71 0.1dBm
VDSL-LINE-MIB::vdslPhysCurrAttainableRate.1 = Gauge32: 86021 kbps
VDSL-LINE-MIB::vdslPhysCurrAttainableRate.2 = Gauge32: 25981 kbps
VDSL-LINE-MIB::vdslPhysCurrLineRate.1 = Gauge32: 79987 kbps
VDSL-LINE-MIB::vdslPhysCurrLineRate.2 = Gauge32: 20000 kbps
VDSL-LINE-MIB::vdslPerfDataLofs.1 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataLofs.2 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataLoss.1 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataLoss.2 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataLprs.1 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataLprs.2 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataLols.1 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataLols.2 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataESs.1 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataESs.2 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataSESs.1 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataSESs.2 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataUASs.1 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataUASs.2 = Gauge32: 0 seconds
VDSL-LINE-MIB::vdslPerfDataInits.1 = Gauge32: 0 occurrences
VDSL-LINE-MIB::vdslPerfDataInits.2 = Gauge32: 0 occurrences
VDSL-LINE-MIB::vdslLineConfDownMaxInterDelay.1 = Gauge32: 0 milliseconds
VDSL-LINE-MIB::vdslLineConfUpMaxInterDelay.1 = Gauge32: 0 milliseconds
...
Code: Select all
$ snmpwalk -On -v2c -c community_name ip.ad.re.ss .1.3.6.1.2.1.10.97
If you want to explore SNMP fully then I recommend this: http://www.snmplink.org/OnLineMIB/Standards/ as a resource.