ADSL Modem with SNMP

ambo

Expert Member
Joined
Jun 9, 2005
Messages
2,685
Reaction score
19
Location
JHB
Can anyone suggest a decent ADSL2+ or VDSL modem that has decent SNMP capabilities?

The Billion I have exposes the basics (interface traffic) via SNMP but I can't get any of the ADSL line statistics for graphing.
 
Alternatively get a cheap MikroTik RB750 and then monitor the PPPoE connection or WAN port via SNMP :)
 
I'm going to contact D-Link now, because for some unexplained reason they've scrapped SNMP with their H/W version T1 model that I have at home. Now it has that silly TR-069 thing that I have no idea what to do with!

Back at the church my older D-Link DSL-2500U has SNMP working just fine:
Code:
root@hpserver:~# snmpwalk -v 2c -c public 192.168.1.1
iso.3.6.1.2.1.1.1.0 = STRING: "Software Version RU_1.53"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.4413
iso.3.6.1.2.1.1.3.0 = Timeticks: (3041903097) 352 days, 1:43:50.97
iso.3.6.1.2.1.1.4.0 = STRING: "ADSL"
iso.3.6.1.2.1.1.5.0 = STRING: "DSL-2500U"
iso.3.6.1.2.1.1.6.0 = STRING: "D-Link"
 
I'm going to contact D-Link now, because for some unexplained reason they've scrapped SNMP with their H/W version T1 model that I have at home. Now it has that silly TR-069 thing that I have no idea what to do with!

Back at the church my older D-Link DSL-2500U has SNMP working just fine:
Code:
root@hpserver:~# snmpwalk -v 2c -c public 192.168.1.1
iso.3.6.1.2.1.1.1.0 = STRING: "Software Version RU_1.53"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.4413
iso.3.6.1.2.1.1.3.0 = Timeticks: (3041903097) 352 days, 1:43:50.97
iso.3.6.1.2.1.1.4.0 = STRING: "ADSL"
iso.3.6.1.2.1.1.5.0 = STRING: "DSL-2500U"
iso.3.6.1.2.1.1.6.0 = STRING: "D-Link"

Update: I can't seem to find the SNR margins via SNMP on the other D-Link DSL-2500U either :(
I did get an MIB file for another D-Link modem: enterprises dlink (171) link-mgmt (11) agentAdsl-mgmt (30) adslDriverConfig (2) adslDriverUpSNRMargin (27)
... but it does not work.

By the way, what are you using to monitor the SNMP with? Many modems are coming out with TR-069, but I have no idea what to monitor it with.
 
I'm going to contact D-Link now, because for some unexplained reason they've scrapped SNMP with their H/W version T1 model that I have at home. Now it has that silly TR-069 thing that I have no idea what to do with!

Back at the church my older D-Link DSL-2500U has SNMP working just fine:
Code:
root@hpserver:~# snmpwalk -v 2c -c public 192.168.1.1
iso.3.6.1.2.1.1.1.0 = STRING: "Software Version RU_1.53"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.4413
iso.3.6.1.2.1.1.3.0 = Timeticks: (3041903097) 352 days, 1:43:50.97
iso.3.6.1.2.1.1.4.0 = STRING: "ADSL"
iso.3.6.1.2.1.1.5.0 = STRING: "DSL-2500U"
iso.3.6.1.2.1.1.6.0 = STRING: "D-Link"

I have the same router/modem, but was unable to get line stats out of it. What oid do you monitor?
 
Update: I can't seem to find the SNR margins via SNMP on the other D-Link DSL-2500U either :(
I did get an MIB file for another D-Link modem: enterprises dlink (171) link-mgmt (11) agentAdsl-mgmt (30) adslDriverConfig (2) adslDriverUpSNRMargin (27)
... but it does not work.
Yeah - this is exactly what I'm struggling with. Even the modems that do have claimed SNMP support do not expose OIDs for SNR, etc.
By the way, what are you using to monitor the SNMP with? Many modems are coming out with TR-069, but I have no idea what to monitor it with.
TR-069 is for remote configuration and provisioning. Its not really designed for ongoing polling and monitoring.
 
Hi There,
Not played with it too much. My TP-Link can have SNMP enabled but I have not checked to see what info it allows to be interrogated.
What tool are you using to process the SNMP info?

Regards

Tim
 
I have the same router/modem, but was unable to get line stats out of it. What oid do you monitor?

Fwiw, i have a small perl script that fetches the stats page from the web interface, and dumps it into a RRD db which I can post if anyone cares. And associated shell script to graph the results.
 
I suspect a Cisco router with adsl wic would do that for you but you gonna have to pay big moola.
 
Maybe it will help someone.

Code:
rrdtool create adsl.rrd --step 30 DS:SNRdown:GAUGE:60:10:60 DS:SNRup:GAUGE:60:10:60 DS:ATTdown:GAUGE:60:10:60 DS:ATTup:GAUGE:60:10:60 DS:ATRdown:GAUGE:60:U:U DS:ATRup:GAUGE:60:U:U DS:RATEdown:GAUGE:60:U:U DS:RATEup:GAUGE:60:U:U RRA:MIN:0:10:105120 RRA:MAX:0:10:105120

Code:
#!/usr/bin/perl -w

use strict;
use LWP::Simple;
require HTML::TokeParser;
use RRDs;

$|=1;

my $url = "http://admin:admin\@ip.ad.dr.ess/statsadsl.html";

sub get_values() {
	my $rawHTML;
	do {
		$rawHTML = get($url);
	} while (! $rawHTML);

	my $tp = HTML::TokeParser->new(\$rawHTML) || die "Can't open: $!";

	my $ret = "N";

	while (my $token = $tp->get_tag("td")) {
		my $text = $tp->get_text;
		if ($text eq "") {
			$token = $tp->get_token;
			my ($ttype, $tag, $attr, $attrseq, $rawtext) = @{ $token };
			if ($tag eq "nobreak") {
				$text = $tp->get_text;
			}
		}
		if ($text eq "SNR Margin (dB):" ||
			$text eq "Attenuation (dB):" ||
			$text eq "Attainable Rate (Kbps):" ||
			$text eq "Rate (Kbps):"
		) {
			$tp->get_tag("td") || die "Unexpected!";
			my $down = substr($tp->get_text, 0, -1) || "U";
			$tp->get_tag("td") || die "Unexpected!";
			my $up = substr($tp->get_text, 0, -1) || "U";
			$ret .= ":$down:$up";
		}
	}

	undef $rawHTML;
	undef $tp;
	return $ret;
}

while(1) {
	my $update = get_values();
	print "$update\n";
	RRDs::update("adsl.rrd", $update);
	sleep 30 - time() % 30;
}

Code:
#!/bin/sh

rm *.png

rrdtool graph down_snr.png --end now --start end-4d --height 600 --width 1200 -a PNG --title='SNR (down)' 'DEF:SNRdownMIN=adsl.rrd:SNRdown:MIN' 'DEF:SNRdownMAX=adsl.rrd:SNRdown:MAX' 'LINE1:SNRdownMIN#00ff00:MIN' 'LINE1:SNRdownMAX#ff0000:MAX'
rrdtool graph down_att.png --end now --start end-4d --height 600 --width 1200 -a PNG --title='Attenuation (down)' 'DEF:ATTdownMIN=adsl.rrd:ATTdown:MIN' 'DEF:ATTdownMAX=adsl.rrd:ATTdown:MAX' 'LINE1:ATTdownMIN#00ff00:MIN' 'LINE1:ATTdownMAX#ff0000:MAX'
rrdtool graph down_rates.png --end now --start end-4d -u $((15*1024)) -l 0 --rigid --height 1000 --width 1800 -a PNG --title='Line rate (down)' 'DEF:ATRdown=adsl.rrd:ATRdown:MIN' 'DEF:RATEdown=adsl.rrd:RATEdown:MIN' 'LINE1:ATRdown#00ff00:Attainable' 'LINE1:RATEdown#ff0000:Actual'
rrdtool graph down_rates_large.png --end now --start end-14d -u $((15*1024)) -l 0 --rigid --height 600 --width 28000 -a PNG --title='Line rate (down)' 'DEF:ATRdown=adsl.rrd:ATRdown:MIN' 'DEF:RATEdown=adsl.rrd:RATEdown:MIN' 'LINE1:ATRdown#00ff00:Attainable' 'LINE1:RATEdown#ff0000:Actual'
# rrdtool graph rates.png --end now --start end-4d --height 600 --width 1200 -a PNG --title='Line rate' 'DEF:ATRdown=adsl.rrd:ATRdown:MIN' 'DEF:ATRup=adsl.rrd:ATRup:MIN' 'DEF:RATEdown=adsl.rrd:RATEdown:MIN' 'DEF:RATEup=adsl.rrd:RATEup:MIN' 'LINE1:ATRdown#ff0000:Attainable down' 'LINE1:ATRup#00ff00:Attainable up' 'LINE1:RATEdown#dddd00:Actual down' 'LINE1:RATEup#00dd00:Actual up'

eog down_rates.png
 
Fwiw, i have a small perl script that fetches the stats page from the web interface, and dumps it into a RRD db which I can post if anyone cares. And associated shell script to graph the results.
That's a rather ghetto way to solve the problem. Would be so much easier if the manufacturer just fixed their SNMP. ;)
 
That's a rather ghetto way to solve the problem. Would be so much easier if the manufacturer just fixed their SNMP. ;)

Well, if ghetto implies effective and timely, I agree :-) It ended up with the same result for me, whether I got it via SNMP, or via web scraping, it was going into a RRD db anyway.

Ultimately, it solved the problem that I was faced with, recording line quality in order to show Telkom how crap my line actually was. Fortunately, I had a tech who had a clue, and accepted what I was showing him, and put in the effort to track down the real problem. (Thanks Legasa/Jackie!)

But I agree, it would be easier if the modem manufacturer's actually put in the effort to comply with standards, that they claim to be implementing anyway.
 
Just stumbled over this, which might be worth pursuing:

https://enc.com.au/2007/06/11/dsl300snmp/
I found basically all of that from the MIB file. I tried it on my DSL-2500U and I got the following:
Code:
root@hpserver:~# snmpget -v 2c -c public 192.168.1.1 1.3.6.1.4.1.171.11.30.2.27.0
iso.3.6.1.4.1.171.11.30.2.27.0 = No Such Instance currently exists at this OID
 
Top
Sign up to the MyBroadband newsletter
X