Skip to content

Python Netmiko scripts to automate mass configuration of B4Com / IP Infusion OcNOS switches (VLANs, SVIs, VRFs, VRRP, OSPF).

License

Notifications You must be signed in to change notification settings

TottiCode10/b4com-ocnos-autoconfig

Repository files navigation

B4Com / OcNOS automation scripts (Netmiko)

Набор Python-скриптов для автоматизации массовой настройки оборудования на базе B4Com OS (в т.ч. OcNOS).
Главная цель проекта — показать рабочую схему подключения к реальному устройству и базовый шаблон массовой конфигурации через Netmiko. Всё остальное — опциональные примеры, которые можно расширять самостоятельно.

На чём проверено

Скрипты проверялись:

  • на реальном коммутаторе B4Com CS4100 (CS4148Q-8U);
  • в эмуляции OcNOS (GNS3/QEMU).

Для подключения использовался Netmiko с device_type="ipinfusion_ocnos" — это стабильный вариант для данной ОС.

Идея и границы проекта

Проект — минимальный каркас:

  • показывает корректный способ подключения к OcNOS/B4Com;
  • даёт базовые массовые операции (VLAN → trunk → SVI → VRF → bind IP to VRF → VRRP per VRF → OSPF per VRF→ cleanup);
  • оставляет место для расширений.

Если вам нужно больше режимов, протоколов или иной логики — добавляйте сами: структура скриптов специально сделана прямой и читаемой.

Что внутри

Скрипты запускаются по шагам и опираются на общий конфиг b4_cfg.py.

Основные скрипты

  • 00_check_connect_b4.py — проверка подключения и сбор стартового состояния.
  • 10_create_vlans_b4.py — массовое создание VLAN и привязка к VLAN bridge.
  • 11_set_trunk_b4.py — настройка trunk-порта под созданный диапазон VLAN.
  • 20_create_svis_b4.py — создание SVI-интерфейсов.
  • 30_create_vrfs_b4.py — создание VRF.
  • 31_bind_svis_to_vrf_b4.py — привязка SVI к VRF и назначение IP.
  • 35_create_vrrp_b4.py — создание VRRP-групп на SVI.
  • 50_create_ospf_b4.py — создание OSPF: один процесс на каждый VRF.
  • 40_collect_outputs_b4.py — сбор проверочных show.
  • 90_delete_all_b4.py — cleanup по значениям из cfg.
  • run_all_b4.py — последовательный запуск всех основных шагов в правильном порядке
    (10 → 11 → 20 → 30 → 31 → 35 → 50 → 40).
    Удобно для полного прогона теста одной командой.

Для эмуляции (GNS3/OcNOS) В папке gns3/ лежит отдельная версия b4_netmiko.py, адаптированная под “шумную” консоль QEMU (другие тайминги и вход в config-mode).

Установка

  1. Python 3.10+
  2. Зависимости: pip install netmiko

Настройка конфига

Откройте b4_cfg.py и задайте:

  • параметры подключения (HOST, PORT, USER, PASSWORD, DEVICE_TYPE);

  • диапазоны VLAN/SVI/VRF и IP-схему;

  • параметры отправляемых пакетов и задержек.

Удаляется и создаётся ровно то, что задано в cfg. Меняете диапазоны в cfg → меняется фактический объём конфигурации и удаления.

Рекомендуемый порядок запуска:

  • python 00_check_connect_b4.py

  • python 10_create_vlans_b4.py

  • python 11_set_trunk_b4.py

  • python 20_create_svis_b4.py

  • python 30_create_vrfs_b4.py

  • python 31_bind_svis_to_vrf_b4.py

  • python 35_create_vrrp_b4.py

  • python 50_create_ospf_b4.py

  • python 40_collect_outputs_b4.py

Если нужен полный прогон одной командой:

  • python run_all_b4.py

Удаление/сброс:

  • python 90_delete_all_b4.py

Как работают логи

Каждый запуск создаёт набор файлов в out_b4/:

*_session.log — полный диалог с CLI (сырые ответы устройства);

*_commands.log — какие команды отправлялись;

*_errors.log — только те места, где устройство ругалось.

Логи не перезаписываются: каждый запуск — новый набор файлов с таймстампом.

Важно про errors.log:

при создании VLAN часто появляются предупреждения CLI — файл ошибок может появиться, но это не обязательно критично. Смотрите контекст в session.log.

Известные особенности

B4Com OS по умолчанию транзакционная (нужен commit). Netmiko это не обрабатывает, поэтому в начале каждого скрипта отправляется:

cmlsh transaction disable

Это выключает commit на время сессии.

Тесты

При удалении большого количества сущностей (например, несколько тысяч VLAN/SVI) устройство иногда не успевает переварить поток удаления. Если удалилось не всё и есть ошибки — просто запустите 90_delete_all_b4.py ещё раз, остатки дочистятся.

Результаты тестов:

На реальном B4Com CS4100:

  • подтверждена стабильная массовая конфигурация в объёмах от сотен до тысяч сущностей;

  • протестированы кейсы до 2100 VLAN / 2100 SVI / 600 VRF / 600 OSPF per-VRF;

  • все последние тесты завершались без критических ошибок, интерфейсы и процессы были активны.

Резюме

Цель была простая: добиться рабочей автоматизации OcNOS/B4Com через Netmiko на реальном железе и показать понятный шаблон массовых настроек. Цель достигнута: есть стабильное подключение, базовые массовые скрипты и воспроизводимые тесты на реальном коммутаторе. Дальше проект можно развивать под любые нужды — логика и структура для этого уже есть.

About

Python Netmiko scripts to automate mass configuration of B4Com / IP Infusion OcNOS switches (VLANs, SVIs, VRFs, VRRP, OSPF).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages