Skip to content

ZephronixQ/NetDiag

Repository files navigation

NetDiag

Асинхронная утилита на базе Python3 для диагностики, автоопределения, регистрации и активного управления абонентскими терминалами (ONU) на OLT-коммутаторах ZTE C300 и ZTE C600, а также портами коммутаторов доступа IPoE.

Ключевые возможности

1. Работа с GPON сетями (ZTE C300/C600)

  • Параллельный опрос сети OLT: Высокоскоростной одновременный сбор списка незарегистрированных (unconfigured) ONU по всему пулу OLT-коммутаторов с использованием асинхронного ввода-вывода (asyncio).
  • Интеллектуальный трекинг неконфигурированных устройств: Разделение неконфигурированных ONU на новые и давно висящие на основе встроенного SQLite-хранилища.
    • -u (--uncfg) выводит только новые устройства, появившиеся в сети менее 24 часов назад.
    • --uncfg-old выводит устройства, висящие без регистрации более 24 часов, отображая дату их первого обнаружения и последний привязанный к ним договор.
  • Самообучающийся кэш договоров: При выполнении обычной диагностики абонента (-g) или регистрации новой ONU (-r) утилита автоматически сохраняет связку Серийный номер -> Договор в локальную базу данных.
  • Автоопределение положения ONU (Auto-Discovery): Поиск OLT-коммутатора и конкретного физического PON-порта, на котором зарегистрирован или ожидает регистрации абонент.
  • Глубокая диагностика: Сбор уровней PON-сигналов (Tx/Rx), линков Ethernet-порта, прокачки трафика, IP/MAC-адресов абонентского оборудования и истории аварий за одну сессию.
  • Интеллектуальная быстрая регистрация (-r / --reg): Упрощенная регистрация для инженеров L1. Скрипт автоматически определяет OLT, порт, свободный номер ONU (1..128) и целевой VLAN. Поддерживает короткие однобуквенные флаги и быструю регистрацию без флагов.
  • Удаленное управление:
    • Удаленная OMCI-перезагрузка ONU (--reboot).
    • Полная деконфигурация (удаление) ONU с интерфейса OLT (--remove).

2. Работа с коммутаторами доступа L2 (IPoE ZTE ZXR10)

  • Диагностика порта абонента: Сбор данных о состоянии физического линка (Up/Down, скорость), уровне текущей утилизации полосы (Input/Output в %), количестве MAC-адресов на порту, привязках IP по DHCP Relay и системных логах коммутатора.
  • Счетчики ошибок: Вывод в реальном времени количества ошибок на приеме (InMACRcvErr) и контрольных сумм (CrcError).
  • Интеллектуальная аналитика:
    • Детекция кабельных повреждений (CRC-ошибки).
    • Определение ситуаций, когда абонент воткнул кабель провайдера в LAN-порт своего роутера вместо WAN.
    • Детекция финансовой блокировки по диапазону полученного IP-адреса.
  • Управление портом (--reboot): Удаленный перезапуск порта, сброс защиты MAC Protect и обнуление счетчиков ошибок на порту.

Системные требования

  • Python 3.8+
  • Зависимости отсутствуют (утилита построена исключительно на стандартной библиотеке Python, для базы данных используется встроенный модуль sqlite3).

Быстрый старт

  1. Клонируйте репозиторий:
    git clone https://github.com/ZephronixQ/NetDiag.git
    cd NetDiag
  2. Создайте файл config.py и заполните массив OLT_DEVICES параметрами ваших коммутаторов.

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

1. Вывод справки

python main.py -h

2. Работа с GPON OLT (ZTE C300/C600)

Поиск новых незарегистрированных ONU (до 24 часов на портах)

python main.py -u

Поиск давно висящих незарегистрированных ONU (более 24 часов на портах)

python main.py --uncfg-old

Запуск диагностики абонента

python main.py -g XPON57000562

Удаленная перезагрузка ONU

python main.py -g XPON57000562 --reboot

Удаление конфигурации ONU с порта OLT

python main.py -g XPON57000562 --remove

Быстрая регистрация новой ONU (для первой линии L1)

Вариант А: Быстрый ввод без флагов (Серийник + Договор + Порт)

python main.py -r XPON57001520 10022870 4

Вариант Б: Регистрация с авто-выбором свободного порта (Серийник + Договор)

python main.py -r XPON57001520 10022870

Вариант В: С явными флагами (если нужно переопределить VLAN или интерфейс)

python main.py -r XPON57001520 -i 10022870 -p 4 -v 1916

3. Работа с коммутаторами доступа L2 (IPoE ZTE)

Диагностика порта абонента

python main.py --ipoe 192.168.6.200 2

Сброс ошибок, блокировки MAC Protect и перезагрузка порта

python main.py --ipoe 192.168.6.200 2 --reboot

About

Мультиплатформенная асинхронная CLI-утилита для экспресс-диагностики оборудования сетей GPON и IPoE. Развитие проекта billing_network_tool с упором на отказоустойчивость парсинга.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages