Dlink Cable Tester: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 45 промежуточных версий этого же участника)
Строка 1: Строка 1:
  +
[[Категория:DlinkSwitch]]
  +
[[Категория:SNMP]]
  +
[[Категория:Switch]]
  +
 
=Кабельный тестер=
 
=Кабельный тестер=
В коммутаторы DES-3526 и DES-3550 (возможно DES-3028 и DES-3052) встроен кабельный тестер который позволяет определять (довольно приблезительно) длинну кабеля.
+
В коммутаторы DES-3526 и DES-3550 (возможно DES-3028 и DES-3052) встроен кабельный тестер который позволяет определять (уточнить точность измерений) длинну кабеля.
  +
  +
==Использование из CLI==
  +
Комманда не требует админских полномочий (повторяющиеся строки удалены):
  +
<PRE>
  +
DES3526:user#cable_diag ports 1-24
  +
Command: cable_diag ports 1-24
  +
  +
Perform Cable Diagnostics ...
  +
  +
Port Type Link Status Test Result Cable Length (M)
  +
---- ------ ------------- ----------------------------- ----------------
  +
1 FE Link Down OK -
  +
2 FE Link Down No Cable -
  +
...
  +
10 FE Link Down Pair1 Open at 22 M -
  +
Pair2 Open at 22 M
  +
11 FE Link Down Pair1 Open at 25 M -
  +
Pair2 Open at 25 M
  +
12 FE Link Down Pair1 Open at 88 M -
  +
Pair2 Open at 88 M
  +
14 FE Link Up OK 40
  +
15 FE Link Down Pair1 Open at 18 M -
  +
Pair2 Open at 18 M
  +
16 FE Link Up OK 69
  +
18 FE Link Down Pair1 Open at 4 M -
  +
Pair2 Open at 4 M
  +
19 FE Link Up OK 34
  +
20 FE Link Down OK -
  +
21 FE Link Up OK 40
  +
22 FE Link Down Pair1 Open at 29 M -
  +
Pair2 Open at 29 M
  +
24 FE Link Down Pair1 Open at 22 M -
  +
Pair2 Open at 22 M
  +
</PRE>
  +
  +
Возможные значения:
  +
<BR>
  +
Pair Open - обрыв на растоянии ХХ метров.<BR>
  +
Link Up, длинна ХХ метров.<BR>
  +
Link Down, OK - нельзя измерить длинну кабеля (но нагрузка есть)<BR>
  +
Link Down, No Cable - нет кабеля.<BR>
   
==Использование с консоли==
 
 
==Использование с SNMP==
 
==Использование с SNMP==
  +
Есть длинковские MIBы на ftp://dlink.ru, но более универсальый способ - использовать цифровую запись. (не нужно следить за наличием MIBов на всех точках откуда будет работать скрипт, проще интегрировать в NMS, и .д.)
  +
{{Note|По информации c [http://forum.dlink.ru форума техподдержки Dlink] кабельный тестер не работает корректно на гигабитных портах. У меня линк на гигабитном порту пропадал до перезагрузки коммуатора.}}
  +
  +
  +
===Опсание OID-ов===
  +
<PRE>
  +
1.3.6.1.4.1.171.12.58.1.1.1.2 -
  +
swEtherCableDiagPortType OBJECT-TYPE
  +
SYNTAX INTEGER {
  +
fastEthernet(0),
  +
gigaEthernet(1),
  +
other(2)
  +
}
  +
</PRE>
  +
{{Command|<nowiki>
  +
snmpwalk -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.2
  +
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.2.1 = INTEGER: 0
  +
...
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.2.25 = INTEGER: 1
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.2.26 = INTEGER: 1
  +
</nowiki>}}
  +
Имеем, порты 1-24 поддерживают нужный функционал.
  +
  +
  +
  +
Проверить состояние линков:
  +
<PRE>
  +
1.3.6.1.4.1.171.12.58.1.1.1.3 -
  +
swEtherCableDiagLinkStatus OBJECT-TYPE
  +
SYNTAX INTEGER {
  +
link-down(0),
  +
link-up(1),
  +
other(2)
  +
}
  +
</PRE>
  +
  +
{{Command|<nowiki>
  +
snmpwalk -v2c -c public 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.3
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.3.1 = INTEGER: 0
  +
</nowiki>}}
  +
  +
Все OID с результатом имеют валидные значения только после выполнения теста.
  +
<BR>
  +
Далее - OIDы для состояния пар
  +
<PRE>
  +
1.3.6.1.4.1.171.12.58.1.1.1.4 - cтатус первой пары
  +
1.3.6.1.4.1.171.12.58.1.1.1.5 - cтатус второй пары
  +
1.3.6.1.4.1.171.12.58.1.1.1.6 - cтатус третьей пары
  +
1.3.6.1.4.1.171.12.58.1.1.1.7 - cтатус четвертой пары
  +
</PRE>
  +
  +
Возможные значения:
  +
<PRE>
  +
ok(0),
  +
open(1),
  +
short(2),
  +
open-short(3),
  +
crosstalk(4),
  +
unknown(5),
  +
count(6),
  +
no-cable(7),
  +
other(8)
  +
</PRE>
  +
  +
  +
И, соответвенно, длины пар:
  +
<PRE>
  +
1.3.6.1.4.1.171.12.58.1.1.1.8 - длинна первой пары
  +
1.3.6.1.4.1.171.12.58.1.1.1.11 - длинна четвертой пары
  +
</PRE>
  +
  +
OID, предназначенный для запуска теста
  +
<PRE>
  +
1.3.6.1.4.1.171.12.58.1.1.1.12
  +
</PRE>
  +
Это единственный OID предназначенный как для чтения так и для записи.
  +
<PRE>
  +
action(1)
  +
processing(2)
  +
other(3)
  +
</PRE>
  +
  +
===Тестирование===
  +
Работа с кабельным тестером вцелом совершенно стандартна (что есть несомненный плюс)<BR>
  +
Общий подход:
  +
* Запустить тест (запись нужного значения в соответвующий OID
  +
* Дождаться завершения (проверить стением OID со статусом)
  +
* Считать интересующие значения.
  +
  +
Попробую проверить работу этой ф-и на портах с различными длинами и состоянием кабеля.
  +
  +
  +
====Линк есть, работающий абонент====
  +
<PRE>
  +
DES3526:user#cable_diag ports 21
  +
Command: cable_diag ports 21
  +
  +
Perform Cable Diagnostics ...
  +
  +
Port Type Link Status Test Result Cable Length (M)
  +
---- ------ ------------- ----------------------------- ----------------
  +
21 FE Link Up OK 40
  +
</PRE>
  +
  +
Запустить тест:
  +
{{Command|<nowiki>
  +
snmpset -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.12.21 i 1
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.12.21 = INTEGER: 1
  +
</nowiki>}}
  +
  +
Проверить что он завершился (cтатус != 2):
  +
{{Command|<nowiki>
  +
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.12.21
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.12.21 = INTEGER: 3
  +
</nowiki>}}
  +
  +
Проверить состояние линка (1 - есть линк)
  +
{{Command|<nowiki>
  +
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.3.21
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.3.21 = INTEGER: 1
  +
</nowiki>}}
  +
  +
Проверить состояние 1-й пары (0 - ОК)
  +
{{Command|<nowiki>
  +
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.4.21
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.4.21 = INTEGER: 0
  +
</nowiki>}}
  +
  +
Проверить состояние 2-й пары (0 - ОК)
  +
{{Command|<nowiki>
  +
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.5.21
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.5.21 = INTEGER: 0
  +
</nowiki>}}
  +
  +
Проверить состояние 3-й пары (8 - Нет кабеля, что естественно для 100-мбитного порта)
  +
{{Command|<nowiki>
  +
$ snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.6.21
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.6.21 = INTEGER: 8
  +
</nowiki>}}
  +
  +
Проверить состояние 4-й пары (8 - Нет кабеля, что естественно для 100-мбитного порта)
  +
{{Command|<nowiki>
  +
$ snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.7.21
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.7.21 = INTEGER: 8
  +
</nowiki>}}
  +
  +
  +
Определить длинну 1-й пары (40 метров)
  +
{{Command|<nowiki>
  +
$ snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.8.21
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.9.21 = INTEGER: 40
  +
</nowiki>}}
  +
  +
Определить длинну 2-й пары (40 метров, что логично, т.к. пары одинаковые)
  +
{{Command|<nowiki>
  +
$ snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.9.21
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.9.21 = INTEGER: 40
  +
</nowiki>}}
  +
  +
Определить длинну 3-й пары (0 метров, фактически - не используется, не включена)
  +
{{Command|<nowiki>
  +
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.10.21
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.10.21 = INTEGER: 0
  +
</nowiki>}}
  +
  +
Определить длинну 4-й пары (0 метров, фактически - не используется, не включена)
  +
{{Command|<nowiki>
  +
$ snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.11.21
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.11.21 = INTEGER: 0
  +
</nowiki>}}
  +
  +
====Кабель не подключен====
  +
<PRE>
  +
DES3526:user#cable_diag ports 2
  +
Command: cable_diag ports 2
  +
Perform Cable Diagnostics ...
  +
  +
Port Type Link Status Test Result Cable Length (M)
  +
---- ------ ------------- ----------------------------- ----------------
  +
2 FE Link Down No Cable -
  +
</PRE>
  +
  +
Запустить тест, убедиться что при запросе ответе - "нет кабеля" (8)
  +
{{Command|<nowiki>
  +
snmpset -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.12.2 i 1
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.12.2 = INTEGER: 1
  +
  +
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.4.2
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.6.2 = INTEGER: 8
  +
</nowiki>}}
  +
  +
====Кабель есть, отключен====
  +
Подключаю 2-х метровый патч-корд к коммутатору (второй конец висит в воздухе):
  +
<PRE>
  +
DES3526:user#cable_diag ports 2
  +
Command: cable_diag ports 2
  +
  +
Perform Cable Diagnostics ...
  +
  +
Port Type Link Status Test Result Cable Length (M)
  +
---- ------ ------------- ----------------------------- ----------------
  +
2 FE Link Down Pair1 Open at 3 M -
  +
Pair2 Open at 2 M
  +
  +
</PRE>
  +
  +
{{Command|<nowiki>
  +
snmpset -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.12.2 i 1
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.12.2 = INTEGER: 1
  +
</nowiki>}}
  +
  +
Кабель имеет статус open:
  +
{{Command|<nowiki>
  +
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.4.2
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.4.2 = INTEGER: 1
  +
</nowiki>}}
  +
  +
"Обрыв" (в реальности - просто конец кабеля) на расстоянии 3 метра по одной и 2 метра по другой паре.
  +
{{Command|<nowiki>
  +
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.8.2
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.8.2 = INTEGER: 3
  +
</nowiki>}}
  +
  +
{{Command|<nowiki>
  +
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.9.2
  +
SNMPv2-SMI::enterprises.171.12.58.1.1.1.9.2 = INTEGER: 2
  +
</nowiki>}}
  +
  +
Насколько я могу судить, точности измерения вполне достаточня (плюс-минус метр).
  +
  +
====Короткое на нескольких парах====
  +
Сделал тестовый кабель с "коротким" на первой и третьей парах.<BR>
  +
Коммутатор показал правильные результаты для используемых пар:
  +
  +
<PRE>
  +
DES3526:user#cable_diag ports 3
  +
Command: cable_diag ports 3
  +
  +
Perform Cable Diagnostics ...
  +
  +
Port Type Link Status Test Result Cable Length (M)
  +
---- ------ ------------- ----------------------------- ----------------
  +
3 FE Link Down Pair1 Short at 3 M -
  +
Pair2 Open at 3 M
  +
  +
</PRE>
  +
При проверке через SNMP соответвующих OID результат такой же, останавливаться подробнее нет смысла.
  +
  +
==ToDo==
  +
Проверить работу тестера на "полуживых" линках с потерями и очень длинных линках (более 150М).
  +
  +
==Вывод==
  +
Отмечу несомненную полезность данного функционала, позволяющяя:
  +
*локализовать проблему с кабелем
  +
*контролировать работу монтажных бригад.
  +
  +
==Благодарности==
  +
Отдельное спасибо Ивану Демину (Длинк) за предоставленную информацию об OIDах.

Текущая версия на 15:11, 5 мая 2020


Кабельный тестер

В коммутаторы DES-3526 и DES-3550 (возможно DES-3028 и DES-3052) встроен кабельный тестер который позволяет определять (уточнить точность измерений) длинну кабеля.

Использование из CLI

Комманда не требует админских полномочий (повторяющиеся строки удалены):

DES3526:user#cable_diag ports 1-24
Command: cable_diag ports 1-24

Perform Cable Diagnostics ...

 Port   Type    Link Status            Test Result           Cable Length (M)
 ----  ------  -------------  -----------------------------  ----------------
  1     FE      Link Down      OK                             -
  2     FE      Link Down      No Cable                       -
...
  10    FE      Link Down      Pair1 Open      at 22  M       -
                               Pair2 Open      at 22  M
  11    FE      Link Down      Pair1 Open      at 25  M       -
                               Pair2 Open      at 25  M
  12    FE      Link Down      Pair1 Open      at 88  M       -
                               Pair2 Open      at 88  M
  14    FE      Link Up        OK                             40
  15    FE      Link Down      Pair1 Open      at 18  M       -
                               Pair2 Open      at 18  M
  16    FE      Link Up        OK                             69
  18    FE      Link Down      Pair1 Open      at 4   M       -
                               Pair2 Open      at 4   M
  19    FE      Link Up        OK                             34
  20    FE      Link Down      OK                             -
  21    FE      Link Up        OK                             40
  22    FE      Link Down      Pair1 Open      at 29  M       -
                               Pair2 Open      at 29  M
  24    FE      Link Down      Pair1 Open      at 22  M       -
                               Pair2 Open      at 22  M

Возможные значения:
Pair Open - обрыв на растоянии ХХ метров.
Link Up, длинна ХХ метров.
Link Down, OK - нельзя измерить длинну кабеля (но нагрузка есть)
Link Down, No Cable - нет кабеля.

Использование с SNMP

Есть длинковские MIBы на ftp://dlink.ru, но более универсальый способ - использовать цифровую запись. (не нужно следить за наличием MIBов на всех точках откуда будет работать скрипт, проще интегрировать в NMS, и .д.)

Note: По информации c форума техподдержки Dlink кабельный тестер не работает корректно на гигабитных портах. У меня линк на гигабитном порту пропадал до перезагрузки коммуатора.


Опсание OID-ов

1.3.6.1.4.1.171.12.58.1.1.1.2 - 
swEtherCableDiagPortType OBJECT-TYPE
  SYNTAX INTEGER {
    fastEthernet(0),
    gigaEthernet(1),
    other(2)
  }
snmpwalk -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.2 SNMPv2-SMI::enterprises.171.12.58.1.1.1.2.1 = INTEGER: 0 ... SNMPv2-SMI::enterprises.171.12.58.1.1.1.2.25 = INTEGER: 1 SNMPv2-SMI::enterprises.171.12.58.1.1.1.2.26 = INTEGER: 1

Имеем, порты 1-24 поддерживают нужный функционал.


Проверить состояние линков:

1.3.6.1.4.1.171.12.58.1.1.1.3 -       
swEtherCableDiagLinkStatus OBJECT-TYPE
  SYNTAX INTEGER {
    link-down(0),
    link-up(1),
    other(2)
  }
snmpwalk -v2c -c public 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.3 SNMPv2-SMI::enterprises.171.12.58.1.1.1.3.1 = INTEGER: 0

Все OID с результатом имеют валидные значения только после выполнения теста.
Далее - OIDы для состояния пар

1.3.6.1.4.1.171.12.58.1.1.1.4 - cтатус первой пары
1.3.6.1.4.1.171.12.58.1.1.1.5 - cтатус второй пары
1.3.6.1.4.1.171.12.58.1.1.1.6 - cтатус третьей пары
1.3.6.1.4.1.171.12.58.1.1.1.7 - cтатус четвертой пары

Возможные значения:

 ok(0),
 open(1),
 short(2),
 open-short(3),
 crosstalk(4),
 unknown(5),
 count(6),
 no-cable(7),
 other(8)


И, соответвенно, длины пар:

1.3.6.1.4.1.171.12.58.1.1.1.8 - длинна первой пары
1.3.6.1.4.1.171.12.58.1.1.1.11 - длинна четвертой пары

OID, предназначенный для запуска теста

1.3.6.1.4.1.171.12.58.1.1.1.12

Это единственный OID предназначенный как для чтения так и для записи.

 action(1)
 processing(2)
 other(3)

Тестирование

Работа с кабельным тестером вцелом совершенно стандартна (что есть несомненный плюс)
Общий подход:

  • Запустить тест (запись нужного значения в соответвующий OID
  • Дождаться завершения (проверить стением OID со статусом)
  • Считать интересующие значения.

Попробую проверить работу этой ф-и на портах с различными длинами и состоянием кабеля.


Линк есть, работающий абонент

DES3526:user#cable_diag ports 21
Command: cable_diag ports 21

 Perform Cable Diagnostics ...

 Port   Type    Link Status            Test Result           Cable Length (M)
 ----  ------  -------------  -----------------------------  ----------------
  21    FE      Link Up        OK                             40

Запустить тест:

snmpset -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.12.21 i 1 SNMPv2-SMI::enterprises.171.12.58.1.1.1.12.21 = INTEGER: 1

Проверить что он завершился (cтатус != 2):

snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.12.21 SNMPv2-SMI::enterprises.171.12.58.1.1.1.12.21 = INTEGER: 3

Проверить состояние линка (1 - есть линк)

snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.3.21 SNMPv2-SMI::enterprises.171.12.58.1.1.1.3.21 = INTEGER: 1

Проверить состояние 1-й пары (0 - ОК)

snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.4.21 SNMPv2-SMI::enterprises.171.12.58.1.1.1.4.21 = INTEGER: 0

Проверить состояние 2-й пары (0 - ОК)

snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.5.21 SNMPv2-SMI::enterprises.171.12.58.1.1.1.5.21 = INTEGER: 0

Проверить состояние 3-й пары (8 - Нет кабеля, что естественно для 100-мбитного порта)

$ snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.6.21 SNMPv2-SMI::enterprises.171.12.58.1.1.1.6.21 = INTEGER: 8

Проверить состояние 4-й пары (8 - Нет кабеля, что естественно для 100-мбитного порта)

$ snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.7.21 SNMPv2-SMI::enterprises.171.12.58.1.1.1.7.21 = INTEGER: 8


Определить длинну 1-й пары (40 метров)

$ snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.8.21 SNMPv2-SMI::enterprises.171.12.58.1.1.1.9.21 = INTEGER: 40

Определить длинну 2-й пары (40 метров, что логично, т.к. пары одинаковые)

$ snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.9.21 SNMPv2-SMI::enterprises.171.12.58.1.1.1.9.21 = INTEGER: 40

Определить длинну 3-й пары (0 метров, фактически - не используется, не включена)

snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.10.21 SNMPv2-SMI::enterprises.171.12.58.1.1.1.10.21 = INTEGER: 0

Определить длинну 4-й пары (0 метров, фактически - не используется, не включена)

$ snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.11.21 SNMPv2-SMI::enterprises.171.12.58.1.1.1.11.21 = INTEGER: 0

Кабель не подключен

DES3526:user#cable_diag ports 2
Command: cable_diag ports 2
 Perform Cable Diagnostics ...

 Port   Type    Link Status            Test Result           Cable Length (M)
 ----  ------  -------------  -----------------------------  ----------------
  2     FE      Link Down      No Cable                       -

Запустить тест, убедиться что при запросе ответе - "нет кабеля" (8)

snmpset -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.12.2 i 1 SNMPv2-SMI::enterprises.171.12.58.1.1.1.12.2 = INTEGER: 1 snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.4.2 SNMPv2-SMI::enterprises.171.12.58.1.1.1.6.2 = INTEGER: 8

Кабель есть, отключен

Подключаю 2-х метровый патч-корд к коммутатору (второй конец висит в воздухе):

DES3526:user#cable_diag ports 2
Command: cable_diag ports 2

 Perform Cable Diagnostics ...

 Port   Type    Link Status            Test Result           Cable Length (M)
 ----  ------  -------------  -----------------------------  ----------------
  2     FE      Link Down      Pair1 Open      at 3   M       -
                               Pair2 Open      at 2   M

snmpset -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.12.2 i 1 SNMPv2-SMI::enterprises.171.12.58.1.1.1.12.2 = INTEGER: 1

Кабель имеет статус open:

snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.4.2 SNMPv2-SMI::enterprises.171.12.58.1.1.1.4.2 = INTEGER: 1

"Обрыв" (в реальности - просто конец кабеля) на расстоянии 3 метра по одной и 2 метра по другой паре.

snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.8.2 SNMPv2-SMI::enterprises.171.12.58.1.1.1.8.2 = INTEGER: 3
snmpget -v2c -c private 172.16.34.3 1.3.6.1.4.1.171.12.58.1.1.1.9.2 SNMPv2-SMI::enterprises.171.12.58.1.1.1.9.2 = INTEGER: 2

Насколько я могу судить, точности измерения вполне достаточня (плюс-минус метр).

Короткое на нескольких парах

Сделал тестовый кабель с "коротким" на первой и третьей парах.
Коммутатор показал правильные результаты для используемых пар:

DES3526:user#cable_diag ports 3
Command: cable_diag ports 3

 Perform Cable Diagnostics ...

 Port   Type    Link Status            Test Result           Cable Length (M)
 ----  ------  -------------  -----------------------------  ----------------
  3     FE      Link Down      Pair1 Short     at 3   M       -
                               Pair2 Open      at 3   M

При проверке через SNMP соответвующих OID результат такой же, останавливаться подробнее нет смысла.

ToDo

Проверить работу тестера на "полуживых" линках с потерями и очень длинных линках (более 150М).

Вывод

Отмечу несомненную полезность данного функционала, позволяющяя:

  • локализовать проблему с кабелем
  • контролировать работу монтажных бригад.

Благодарности

Отдельное спасибо Ивану Демину (Длинк) за предоставленную информацию об OIDах.