SNMP

Discussions for BiPAC 8800 series: 8800NL, 8800NLR2, 8800AXL, 8800AXLR2
Post Reply
gerdesj
Posts: 10
Joined: Wed Oct 19, 2016 9:47 pm

SNMP

Post by gerdesj »

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):

Code: Select all

 $ net-snmp-setup --configure-options
 $ net-snmp-setup --default-mibdirs
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:
DSL-MIBS.tar.gz
- 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
 
Create or edit /etc/snmp/snmp.conf:

$ 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
 
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:

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
    ...
To go back to only displaying numeric OIDs, add -On (capital letter o), for example:

Code: Select all

  $ snmpwalk -On -v2c -c community_name ip.ad.re.ss .1.3.6.1.2.1.10.97
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.
You do not have the required permissions to view the files attached to this post.
Post Reply