Not many people know it, but the DLink DSL-300 ADSL modem has SNMP management capabilities. And for such a small and cheap network device, its not too bad an implementation of it. Or perhaps I’ve just seen a lot of dead-awful ones to compare objectively. Of course the displaying of the private community in the MIB, which is something the DSL-300 does, is a pretty dumb idea.
I should point out right here that these instructions work for me. They might work for you, or you might just find some easter egg in the modems firmware that turns it into a smoke machine So do any of this stuff at your own risk.
You will have to connect to the modem using a serial port first to find out the IP address and change either your computers or the modems IP address so they are in the same network. Note that this address is not the same as the one your provider gives. And the communities are the very hard to guess public and private for read-only and read-write respectively.
The modem has some of the standard SNMP MIBs that anyone who’s played with SNMP will quickly recognise, such as.
* system information
* interface information including the ifTable
* IP MIB – Packets in out, discards etc
* ip routes
* TCP MIB
* SNMP MIB, which is statistics about the agent itself
* SNMPv2-SMI::mib-2.17.4
All pretty standard stuff you see in pretty much any device. All the good information is always found in the private enterprises part of the MIB, and the DSL-300 is no exception. The problem is that if you ask
DLink about it, they will tell you nothing. The nice thing about DLink is they’re pretty consistent about annoying the hell out of their customers by denying them technical information.
With that rant out of the way, its time to work out for myself what these values are for. I’ve got some worked out but it will take some more time to get it all clear and possibly some will never be worked out, thanks DLink!
All OIDs start with private.enterprises.171.11 There are quite a few gaps so if you know what the missing values mean, drop me a line.
OID | Type | Description |
---|---|---|
1.1.1.0 | STRING | Software version eg “R1.14AU” |
1.1.2.0 | STRING | PROM firmware version “Ver. 1.00” |
1.1.3.0 | STRING | Hardware version “Rev. 1.00” |
1.1.4.0 | INTEGER | Management Protocols supported: 2=snmp-ip |
1.1.5.1 | Table | Table showing what MIBs are supported |
1.1.5.1.1.X | INTEGER | – Index of Table |
1.1.5.1.2.X | STRING | – Name of MIB supported eg “DSL504-MIB”, “RFC1213-MIB” |
1.1.5.1.3.X | INTEGER | – Version of MIB supported |
1.1.5.1.4.X | INTEGER | – Type of MIB |
30.1.1.0 | INTEGER | Bridge/Router: 1=PPPoA-Router, 2=PPPoA-Bridge, 3=RFC1483-Router, 4=RFC1483-Bridge |
30.1.2.0 | INTEGER | Config Save 1 |
30.1.3.0 | INTEGER | System Restart 1 |
30.1.4.0 | INTEGER | ?? 1 |
30.2.1.0 | INTEGER | ADSL Driver Mode: 0=link down, 1=T1-413, 2=G-lite, 3=G-DMT |
30.2.2.0 | INTEGER | Upstream rate in kbps |
30.2.3.0 | INTEGER | Downstream rate in kbps |
30.2.4.0 | STRING | Device driver version |
30.2.5.0 | INTEGER | ADSL Link Status: 0=Idle, 1=Connecting, 2=Connected |
30.2.6.0 | INTEGER | Driver Path: 0=Fast, 1=Interleave |
30.2.7.0 | INTEGER | Near End FEC line error count |
30.2.8.0 | INTEGER | Far End FEC line error count |
30.2.9.0 | INTEGER | Near End CRC line error count |
30.2.10.0 | INTEGER | Far End CRC line error count |
30.2.11.0 | INTEGER | Near End HEC line error count |
30.2.12.0 | INTEGER | Far End HEC line error count |
30.2.13.0 | INTEGER | Near End LOS (Loss Of Signal) count |
30.2.14.0 | INTEGER | Far End LOS (Loss Of Signal) count |
30.2.15.0 | INTEGER | Near End LOF (Loss Of Frame) count |
30.2.16.0 | INTEGER | Far End LOF (Loss Of Frame) count |
30.2.17.0 | INTEGER | Near End line error count |
30.2.18.0 | INTEGER | Far End line error count |
30.2.19.0 | INTEGER | Near End Alarm Indication Signal: 0=no alarm, 1=alarm |
30.2.20.0 | INTEGER | Far End Alarm Indication Signal: 0=no alarm, 1=alarm |
30.2.21.0 | INTEGER | Near End Remote Defect Identification: 0=no defect, 1=defect |
30.2.22.0 | INTEGER | Far End Remote Defect Identification: 0=no defect, 1=defect |
30.2.23.0 | INTEGER | Upstream Capacity (in percent) |
30.2.24.0 | INTEGER | Downstream Capacity (in percent) |
30.2.25.0 | INTEGER | Upstream line attenuation |
30.2.26.0 | INTEGER | Downstream line attenuation |
30.2.27.0 | INTEGER | Upstream Noise Margin |
30.2.28.0 | INTEGER | Downstream Noise Margin |
30.2.29.0 | INTEGER | Upstream Output Power |
30.2.30.0 | INTEGER | Downstream Output Power |
30.2.31.0 | INTEGER | Link retrain count |
30.2.32.0 | Array | Carrier Load Array |
30.2.33.0 | INTEGER | Unable to initialize count |
30.2.34.1.1.1-96 | INTEGER | A 96 row table, index column. The value equals the instance. |
30.2.34.1.2.1-96 | INTEGER | Near End Error Second |
30.2.34.1.3.1-96 | INTEGER | Far End Error Second |
30.2.35.0 | INTEGER | Near End Error Second count for the day |
30.2.36.0 | INTEGER | Far End Error Second count for the day |
30.2.37.1.1.1-7 | INTEGER | Error Second for the day table – instance. Value = instance |
30.2.37.1.2.1-7 | INTEGER | Near End Error Second count for the day |
30.2.37.1.3.1-7 | INTEGER | Far End Error Second count for the day |
30.3.1.0 | INTEGER | Spanning Tree State: 0=other, 1=disabled, 2=enabled |
30.3.2.0 | INTEGER | VPI of bridged PVC |
30.3.3.0 | INTEGER | VCI of bridged PVC |
30.4.1.1.1.1 | INTEGER | Index of table |
30.4.1.1.2.1 | IpAddress | IP address of modem |
30.4.1.1.3.1 | IpAddress | Network mask of modem |
30.4.1.1.4.1 | INTEGER | Send RIP 1=RIPv1 2=RIPv2 3=Both RIP 4=None |
30.4.1.1.5.1 | INTEGER | Accept RIP 1=RIPv1 2=RIPv2 3=Both RIP 4=None |
30.4.1.1.6.1 | INTEGER | IP Forwarding: 2=None 3=All |
30.4.1.1.7.1 | INTEGER | DHCP Client: 1=other, 2=disabled, 3=enabled |
30.4.1.1.8.1 | INTEGER | NAT State: 1=other, 2=disabled, 3=enabled |
30.4.2.1.0 | INTEGER | Static Route Count 0 |
30.4.3.1.1.1.6 .112.117.98.108.105.99 |
Hex-STRING | SNMP read-only community, 28 bytes long with 0 padding. eg fred = 66 72 65 64 00… |
30.4.3.1.1.1.7 .112.114.105.118.97.116.101 |
Hex-S | SNMP read/write community, same encoding as Read-only |
30.4.3.1.1.2.6 .112.117.98.108.105.99 |
INTEGER | ?? 1 |
30.4.3.1.1.2.7 .112.114.105.118.97.116.101 |
INTEGER | ?? 2 |
30.9.1.0 | IpAddress | IP address of TFTP server |
30.9.2.0 | String | Remote filename on TFTP server |
30.9.3.0 | String | Local filename |
30.9.4.0 | INTEGER | Set to 1 to make modem connect to server |
30.9.5.0 | INTEGER | Set to 1 to get remote file |
30.9.6.0 | INTEGER | TFTP status: 0=idle, 1=Wait ACK, 2=Wait Data, 3=Sent Write Request, 4=Sent Read Request, 5=Done |
Some definitions you might find useful:
* Error Second (ES) – Any second where at least one bit error was received.