Port names for D-Link 'smart' switches
![](https://secure.gravatar.com/avatar/1280ab8004c08ad36f83942837b1423e.jpg?s=120&d=mm&r=g)
Minor feature suggestion for the D-LINK switches.
As, iin Observium, one cannot change the port description, you need to rely on being able to set those in the switches (e.g. when you want to use Peering, Transit and other trickery).
On D-LINK ifName contains a generated Slot0/1 … Slot0/28, etc. These cannot be changed.
However at
.1.3.6.1.4.1.171.10.76.21.1.1.16.1.2 (DGS series) .1.3.6.1.4.1.171.10.75.15.2.1.14.1.3 (DES series)
and so on - there is a always a table with a sysPortDescString :
$ snmptranslate -Tp -M+`pwd`:d-link -m+DES-1210-28MEbx .1.3.6.1.4.1.171.10.75.15.2.1.14.1.3
+-- -RW- String sysPortDescString(3) Textual Convention: DisplayString Size: 0..32
I.e. in the private enterprise MIBs for the various DGS/DES switches there is a sysPortDescString that can be set by the user through the file/SDN or web interfaces.
Example of the output below. May be useful to pick up.
Dw.
snmpwalk -M+/usr/local/www/observium/mibs/d-link -m+Q-BRIDGE-MIB -m+DGS-1210-28P-CX -v2c -c public 10.11.0.18 sysPortDescString DGS-1210-28P-CX::sysPortDescString.1 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.2 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.3 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.4 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.5 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.6 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.7 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.8 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.9 = STRING: Flow 39 DGS-1210-28P-CX::sysPortDescString.10 = STRING: DGS-1210-28P-CX::sysPortDescString.11 = STRING: PI 39 DGS-1210-28P-CX::sysPortDescString.12 = STRING: Flow 37 DGS-1210-28P-CX::sysPortDescString.13 = STRING: DGS-1210-28P-CX::sysPortDescString.14 = STRING: Beeb DGS-1210-28P-CX::sysPortDescString.15 = STRING: DGS-1210-28P-CX::sysPortDescString.16 = STRING: Lintercept DGS-1210-28P-CX::sysPortDescString.17 = STRING: DGS-1210-28P-CX::sysPortDescString.18 = STRING: DGS-1210-28P-CX::sysPortDescString.19 = STRING: DGS-1210-28P-CX::sysPortDescString.20 = STRING: DGS-1210-28P-CX::sysPortDescString.21 = STRING: Wifi - Ypenburg DGS-1210-28P-CX::sysPortDescString.22 = STRING: Wifi - Soesteberg DGS-1210-28P-CX::sysPortDescString.23 = STRING: Wifi - Valkenburg DGS-1210-28P-CX::sysPortDescString.24 = STRING: DGS-1210-28P-CX::sysPortDescString.25 = STRING: TopOfRack: 16A DGS-1210-28P-CX::sysPortDescString.26 = STRING: TopOfRack: 16B DGS-1210-28P-CX::sysPortDescString.27 = STRING: TopOfRack: 19A DGS-1210-28P-CX::sysPortDescString.28 = STRING: TopOfRack: 19B
![](https://secure.gravatar.com/avatar/3bbbd945c333b8013d0dfa23058f65b9.jpg?s=120&d=mm&r=g)
Hi,
you have MIB files for this D-Link models? I see you use DGS-1210-28P-CX..
Also, can you provide temporary snmp ro access for me?
If yes, reply to me personally.
On Wed, Feb 3, 2016 at 1:09 PM, Dirk-Willem van Gulik dirkx@webweaving.org wrote:
Minor feature suggestion for the D-LINK switches.
As, iin Observium, one cannot change the port description, you need to rely on being able to set those in the switches (e.g. when you want to use Peering, Transit and other trickery).
On D-LINK ifName contains a generated Slot0/1 … Slot0/28, etc. These cannot be changed.
However at
.1.3.6.1.4.1.171.10.76.21.1.1.16.1.2 (DGS series) .1.3.6.1.4.1.171.10.75.15.2.1.14.1.3 (DES series)
and so on - there is a always a table with a sysPortDescString :
$ snmptranslate -Tp -M+`pwd`:d-link -m+DES-1210-28MEbx
.1.3.6.1.4.1.171.10.75.15.2.1.14.1.3
+-- -RW- String sysPortDescString(3) Textual Convention: DisplayString Size: 0..32
I.e. in the private enterprise MIBs for the various DGS/DES switches there is a sysPortDescString that can be set by the user through the file/SDN or web interfaces.
Example of the output below. May be useful to pick up.
Dw.
snmpwalk -M+/usr/local/www/observium/mibs/d-link -m+Q-BRIDGE-MIB -m+DGS-1210-28P-CX -v2c -c public 10.11.0.18 sysPortDescString DGS-1210-28P-CX::sysPortDescString.1 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.2 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.3 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.4 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.5 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.6 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.7 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.8 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.9 = STRING: Flow 39 DGS-1210-28P-CX::sysPortDescString.10 = STRING: DGS-1210-28P-CX::sysPortDescString.11 = STRING: PI 39 DGS-1210-28P-CX::sysPortDescString.12 = STRING: Flow 37 DGS-1210-28P-CX::sysPortDescString.13 = STRING: DGS-1210-28P-CX::sysPortDescString.14 = STRING: Beeb DGS-1210-28P-CX::sysPortDescString.15 = STRING: DGS-1210-28P-CX::sysPortDescString.16 = STRING: Lintercept DGS-1210-28P-CX::sysPortDescString.17 = STRING: DGS-1210-28P-CX::sysPortDescString.18 = STRING: DGS-1210-28P-CX::sysPortDescString.19 = STRING: DGS-1210-28P-CX::sysPortDescString.20 = STRING: DGS-1210-28P-CX::sysPortDescString.21 = STRING: Wifi - Ypenburg DGS-1210-28P-CX::sysPortDescString.22 = STRING: Wifi - Soesteberg DGS-1210-28P-CX::sysPortDescString.23 = STRING: Wifi - Valkenburg DGS-1210-28P-CX::sysPortDescString.24 = STRING: DGS-1210-28P-CX::sysPortDescString.25 = STRING: TopOfRack: 16A DGS-1210-28P-CX::sysPortDescString.26 = STRING: TopOfRack: 16B DGS-1210-28P-CX::sysPortDescString.27 = STRING: TopOfRack: 19A DGS-1210-28P-CX::sysPortDescString.28 = STRING: TopOfRack: 19B
observium mailing list observium@observium.org http://postman.memetic.org/cgi-bin/mailman/listinfo/observium
![](https://secure.gravatar.com/avatar/0fa97865a0e1ab36152b6b2299eedb49.jpg?s=120&d=mm&r=g)
I think that will be unlikely in this case, but if you can get sysobjectids, we might have access to similar devices already.
Adam.
Sent from BlueMail
On Feb 9, 2016, 10:37, at 10:37, Mike Stupalov mike@observium.org wrote:
Hi,
you have MIB files for this D-Link models? I see you use DGS-1210-28P-CX..
Also, can you provide temporary snmp ro access for me?
If yes, reply to me personally.
On Wed, Feb 3, 2016 at 1:09 PM, Dirk-Willem van Gulik dirkx@webweaving.org wrote:
Minor feature suggestion for the D-LINK switches.
As, iin Observium, one cannot change the port description, you need
to
rely on being able to set those in the switches (e.g. when you want
to use
Peering, Transit and other trickery).
On D-LINK ifName contains a generated Slot0/1 … Slot0/28, etc. These cannot be changed.
However at
.1.3.6.1.4.1.171.10.76.21.1.1.16.1.2 (DGS series) .1.3.6.1.4.1.171.10.75.15.2.1.14.1.3 (DES series)
and so on - there is a always a table with a sysPortDescString :
$ snmptranslate -Tp -M+`pwd`:d-link -m+DES-1210-28MEbx
.1.3.6.1.4.1.171.10.75.15.2.1.14.1.3
+-- -RW- String sysPortDescString(3) Textual Convention: DisplayString Size: 0..32
I.e. in the private enterprise MIBs for the various DGS/DES switches
there
is a sysPortDescString that can be set by the user through the
file/SDN or
web interfaces.
Example of the output below. May be useful to pick up.
Dw.
snmpwalk -M+/usr/local/www/observium/mibs/d-link -m+Q-BRIDGE-MIB -m+DGS-1210-28P-CX -v2c -c public 10.11.0.18 sysPortDescString DGS-1210-28P-CX::sysPortDescString.1 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.2 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.3 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.4 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.5 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.6 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.7 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.8 = STRING: Guest_Port DGS-1210-28P-CX::sysPortDescString.9 = STRING: Flow 39 DGS-1210-28P-CX::sysPortDescString.10 = STRING: DGS-1210-28P-CX::sysPortDescString.11 = STRING: PI 39 DGS-1210-28P-CX::sysPortDescString.12 = STRING: Flow 37 DGS-1210-28P-CX::sysPortDescString.13 = STRING: DGS-1210-28P-CX::sysPortDescString.14 = STRING: Beeb DGS-1210-28P-CX::sysPortDescString.15 = STRING: DGS-1210-28P-CX::sysPortDescString.16 = STRING: Lintercept DGS-1210-28P-CX::sysPortDescString.17 = STRING: DGS-1210-28P-CX::sysPortDescString.18 = STRING: DGS-1210-28P-CX::sysPortDescString.19 = STRING: DGS-1210-28P-CX::sysPortDescString.20 = STRING: DGS-1210-28P-CX::sysPortDescString.21 = STRING: Wifi - Ypenburg DGS-1210-28P-CX::sysPortDescString.22 = STRING: Wifi - Soesteberg DGS-1210-28P-CX::sysPortDescString.23 = STRING: Wifi - Valkenburg DGS-1210-28P-CX::sysPortDescString.24 = STRING: DGS-1210-28P-CX::sysPortDescString.25 = STRING: TopOfRack: 16A DGS-1210-28P-CX::sysPortDescString.26 = STRING: TopOfRack: 16B DGS-1210-28P-CX::sysPortDescString.27 = STRING: TopOfRack: 19A DGS-1210-28P-CX::sysPortDescString.28 = STRING: TopOfRack: 19B
observium mailing list observium@observium.org http://postman.memetic.org/cgi-bin/mailman/listinfo/observium
-- Mike Stupalov http://observium.org/
observium mailing list observium@observium.org http://postman.memetic.org/cgi-bin/mailman/listinfo/observium
![](https://secure.gravatar.com/avatar/1280ab8004c08ad36f83942837b1423e.jpg?s=120&d=mm&r=g)
On 09 Feb 2016, at 11:37, Mike Stupalov mike@observium.org wrote:
you have MIB files for this D-Link models? I see you use DGS-1210-28P-CX..
D-Link is quite good at putting all their files up; e.g for that model - see
http://ftp.dlink.ru/pub/Switch/DGS-1210-28P/SNMP
or the relevant URL for your country. Not all of those are part of Observium.
Couple of things
- you want to check them with snmptranslate/smilint - as most:
- contain non ASCII chars that make net-snmp choke.
- contain malformed comments or reserved words like ‘end’ and ‘revision’ in places that confuse net-snmp.
So easiest is to move the declaration to line 1; remove the first comment block (at least the lines with Revision and Revision End) - and padd out any lines with an extra ‘-‘ if they give complaints. And do a quick iconv or regex to remove any non-ascii and \r characters.
- D-Link unfortunately is a bit messy - and reuses the same structure; but ‘under’ each switch its OID.
So the sysPortDescString for the various switches is a unique OID whose tail end is identical - but the product path is not!. I use below script for things like this.
Dw.
searching for sysPortDescString in DES-1210-10-AXME .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-10axme.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.14.1.14.1.3
searching for sysPortDescString in DES-1210-10MEbx .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-10me.des-1210-10mebx.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.14.1.1.14.1.3
searching for sysPortDescString in DES-1210-26MEbx .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-26me.des-1210-26mebx.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.16.1.1.14.1.3
searching for sysPortDescString in DES-1210-28-AX .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28ax.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.5.1.14.1.3
searching for sysPortDescString in DES-1210-28-AXME .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28axme.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.15.1.14.1.3
searching for sysPortDescString in DES-1210-28ME-B2 .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28ME.des-1210-28ME-B2.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.15.2.1.14.1.3
searching for sysPortDescString in DES-1210-28MEbx .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28me.des-1210-28mebx.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.15.2.1.14.1.3
#!/bin/sh # quick and dirty search all MIBS for some entry; ignore parse # errors. # (c) 2008, dirkx(at)apache(dot)org - under the ASLv2. MIT or any # BSD license. # STR=${1:-"sysPortDescString”}
MIBDIRS=${MIBDIRS:-`pwd`}
DIRS=`find "${MIBDIRS}/mibs" -type d | while read DIR; do /bin/echo -n :$DIR; done`
find mibs -type f | xargs grep -l "$STR" | sed -e "s|.*/||" | while read FILE do echo searching for $STR in $FILE snmptranslate -Of -Ib -M+$DIRS -m"$FILE" "$STR" 2> /dev/null || echo not found snmptranslate -On -Ib -M+$DIRS -m"$FILE" "$STR" 2> /dev/null || echo not found echo done
![](https://secure.gravatar.com/avatar/3bbbd945c333b8013d0dfa23058f65b9.jpg?s=120&d=mm&r=g)
D-Link MIBs this is biggest shit from all possible.
It uses separate OID tree (and separate MIBs) for each device model. Some time it changes OID tree and MIB file for newer firmware ( incompatible with the previous).
All 1210 models as example...
I need snmp access to real device, for check code. Without access, nothing will be added..
On 09.02.16 14:06, Dirk-Willem van Gulik wrote:
On 09 Feb 2016, at 11:37, Mike Stupalov mike@observium.org wrote:
you have MIB files for this D-Link models? I see you use DGS-1210-28P-CX..
D-Link is quite good at putting all their files up; e.g for that model - see
http://ftp.dlink.ru/pub/Switch/DGS-1210-28P/SNMP
or the relevant URL for your country. Not all of those are part of Observium.
Couple of things
you want to check them with snmptranslate/smilint - as most:
contain non ASCII chars that make net-snmp choke.
contain malformed comments or reserved words like
‘end’ and ‘revision’ in places that confuse net-snmp.
So easiest is to move the declaration to line 1; remove the first comment block (at least the lines with Revision and Revision End) - and padd out any lines with an extra ‘-‘ if they give complaints. And do a quick iconv or regex to remove any non-ascii and \r characters.
D-Link unfortunately is a bit messy - and reuses the same structure; but ‘under’ each switch its OID.
So the sysPortDescString for the various switches is a unique OID whose tail end is identical - but the product path is not!. I use below script for things like this.
Dw.
searching for sysPortDescString in DES-1210-10-AXME .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-10axme.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.14.1.14.1.3
searching for sysPortDescString in DES-1210-10MEbx .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-10me.des-1210-10mebx.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.14.1.1.14.1.3
searching for sysPortDescString in DES-1210-26MEbx .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-26me.des-1210-26mebx.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.16.1.1.14.1.3
searching for sysPortDescString in DES-1210-28-AX .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28ax.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.5.1.14.1.3
searching for sysPortDescString in DES-1210-28-AXME .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28axme.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.15.1.14.1.3
searching for sysPortDescString in DES-1210-28ME-B2 .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28ME.des-1210-28ME-B2.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.15.2.1.14.1.3
searching for sysPortDescString in DES-1210-28MEbx .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28me.des-1210-28mebx.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.15.2.1.14.1.3
#!/bin/sh # quick and dirty search all MIBS for some entry; ignore parse # errors. # (c) 2008, dirkx(at)apache(dot)org - under the ASLv2. MIT or any # BSD license. # STR=${1:-"sysPortDescString”}
MIBDIRS=${MIBDIRS:-`pwd`}
DIRS=`find "${MIBDIRS}/mibs" -type d | while read DIR; do /bin/echo -n :$DIR; done`
find mibs -type f | xargs grep -l "$STR" | sed -e "s|.*/||" | while read FILE do echo searching for $STR in $FILE snmptranslate -Of -Ib -M+$DIRS -m"$FILE" "$STR" 2> /dev/null || echo not found snmptranslate -On -Ib -M+$DIRS -m"$FILE" "$STR" 2> /dev/null || echo not found echo done
participants (3)
-
Adam Armstrong
-
Dirk-Willem van Gulik
-
Mike Stupalov