В моей работе часто возникает необходимость быстро продиагностировать физические порты на коммутаторах. Способ который я предлагаю ускоряет процесс диагностики и делает его более наглядным по сравнению с прописыванием команд на коммутаторе. Тестирование производится на Linux, так же требуются:

  • minicom (putty тоже подойдет, утилита играет роль отображения информации в консоль);

  • модули python3: serial и tkinter;

  • сведенный к дефолтным настройкам коммутатор Dlink DGS-1210-28/ME;

  • в моем случая "модеризированный патч-корд" из 4 штук в одной шине (картинка в конце текста), но можно и обычный патч-корд.

Для удобства была написана программа gui на python 3. Она разбита на два модуля, один из которых реализует подключение по COM порту, второй - графический интерфейс.

Подробный алгоритм диагностики портов:

  1. включаем коммутатор (ждем когда загрузится), подключаем его к компьютеру через конвертор USB to RS-232;

  2. Чтобы узнать какие USB устройства у вас подключены можно воспользоваться командой:
    ls /dev/ttyUSB*;
    (номер(строка) идущая после "USB" указать при запуске скрипта main.py)

  3. запускаем программу командой:
    python3 main.py 0
    0
    - это часть имени USB to RS-232, который в программе представлен как:
    port = "/dev/ttyUSB"+str(sys.argv[1]);
    у вас эта часть может отличаться.

  4. запускаем параллельно в другом терминале minicom командой:
    minicom -D /dev/ttyUSB0 -b 9600;
    после запуска нажать несколько раз Enter, чтобы пройти строки авторизации;

  5. коммутируем порты витой пары или SFP. Нажимаем кнопки графического интерфейса, что в свою очередь генерирует данные диагностики кабеля соответствующего порта.

Диагностику можно проводить как на одном так и на множестве коммутаторов:

Четыре совмещенных патч-корда склеил для удобства, в основном пользуюсь одним из них, переключая и проверяя сразу 4 порта (8 - если на одном коммутаторе).
SFP так же можно диагностировать, для этих портов прописанное отдельное условие для команды коммутатора show ports <номер порта(25-28)>.

Программу планирую дорабатывать:

  • универсальность для DGS 3120, 3100, 1210;

  • индикация о состоянии кабелей;

  • опция генерации циклического прохода по всем портам и записи результатов диагностики в файл.

Комментарии (12)


  1. CodARM
    03.10.2022 15:30
    +2

    Я, обычно, стараюсь избавляться от сбоящих, по непонятной причине, не модульных устройств. А из этого вышло, что лучше всего не использовать dlink\tplink, а выбирать microti'ки, cis'ки и прочие устройства первого и второго эшелона.

    Не представляю сколько денег и человеко часов компания тратит из-за того, что экономит на оборудовании и закупает D/TP-link'и.


    1. mayorovp
      03.10.2022 17:55

      Ну вот у меня дома последний tplink продержался 5 лет, а microtik — 1 год, ровно на неделю пережил гарантийный срок.


    1. achekalin
      03.10.2022 21:32

      microti'ки ... и прочие устройства первого и второго эшэшелона.э

      Это Вы сильно сказанули!

      Микроты как роутеры универсальны, как коммутаторы неплохи, но им еще расти и расти в этом смысле, а вот с ростом у микротов как компании слабовато. Просто размер комании и распыление играют роль.

      Свичи у них хороши те, что сделаны по референс-дизайнам от производителей чипов. Недорого, неплохо, получше длинка в смысле управления - но не 1-й эшелон.

      P.S. Микротики нежно люблю, но - у всего своя область применимости.


  1. martin74ua
    03.10.2022 16:01
    +1

    А в чем тест то заключается? Зачем миником в соседней консоли? Вообщем писать начали, дальше вступления не пошли....


    1. IDDQDesnik
      03.10.2022 16:52

      Как я понял, вся прога это панель с кнопками, которая плюет в сторону свитча команды:

      test cable-diagnostics interface INTERFACE-ID

      show cable-diagnostics

      (у меня DGS-1510, синтаксис может отличаться)

      Миником в соседней консоли сидит в параллель и ловит результаты.


      1. Basil_12 Автор
        04.10.2022 12:22

        да, все верно, мне просто нужно было очень много портов проверять за короткое время, эта простая программа упрощала этот процесс.


    1. Basil_12 Автор
      04.10.2022 12:28

      я понимаю, что программа большой ценности не представляет, я просто поделился способом диагностики свичей после ремонта/перепрошивки.


      1. edo1h
        05.10.2022 13:09

        ну вот этого всего очень не хватает в статье: почему вам нужно диагностировать (вы работаете в компании, которая чинит свитчи), что именно вы понимаете под диагностикой (запуск в консоли свитча конкретной команды).
        далее было бы очень неплохо описать что это за команда, что она выводит и как интерпретировать полученное.


  1. vasilisc
    03.10.2022 17:44

    Такой мартышкин труд лучше автоматизировать. Например, поручить это делать Zabbix по SNMP. Триггера сразу предупредят что некоторый порт НЕ ОК. И не нужно коммутатор для проверки изымать с производства.


    1. Basil_12 Автор
      04.10.2022 12:24

      я занимался ремонтом коммутаторов, поэтому это было вынужденное снятие коммутаторов из сети.


  1. pod
    04.10.2022 00:55

    Такое замечательно делается из консоли скриптом на tcl(хоть свич на ком порту, хоть свич по сети). А дальше, если есть какой-то биллинг, можно дергать этот скрипт из него, если не хочется ходить в консоль...


  1. gpcade
    05.10.2022 13:41

    Как говорится - где ты был вчера, когда я тестировал moxa uport на Линухе ))))