Как навести порядок в сетевой инфраструктуре с NetBox
У каждого сетевого инженера или сисадмина наверняка есть грустная история про Excel-табличку. В ней годами вели учет свободных IP-адресов, пока кто-то случайно не выдал один и тот же адрес шлюзу и новому серверу базы данных. А когда дело доходит до физических стоек в серверной, документация обычно отстает от реальности на несколько месяцев. Никто уже точно не помнит, в какой именно порт патч-панели уходит вон тот синий кабель.
Проект NetBox появился в 2016 году именно как ответ на этот хаос. Написанный на Python и Django, он задумывался как замена разрозненным системам учета адресов (IPAM) и управлению ресурсами дата-центров (DCIM). Сегодня репозиторий собрал больше 21 тысячи звезд на GitHub и стал стандартом де-факто для хранения эталонного состояния сети.

Что такое Source of Truth и зачем он нужен
Главная идея NetBox заключается в концепции Source of Truth, то есть единого источника правды. NetBox фиксирует желаемое состояние сети, а не текущее фактическое.
Это принципиальный момент. Программа не опрашивает коммутаторы по SNMP и не сканирует порты. Она описывает, как сеть должна быть устроена по замыслу инженера.

Такое разделение обязанностей меняет подход к автоматизации. Вместо того чтобы настраивать железки вручную и потом мучительно собирать отчеты, инженер вносит изменения в базу NetBox. Дальше скрипты или системы оркестрации вроде Ansible и Salt забирают эти параметры через REST API, генерируют конфигурации и заливают их на оборудование.
Основные возможности
Разработчики намеренно сфокусировались на сетевой специфике, поэтому структура данных готова к работе сразу после установки.
1. Детальное моделирование физики и логики
В системе можно связать воедино все уровни инфраструктуры:
- Размещение площадок, серверных комнат, стоек и конкретных юнитов
- Типы устройств, модули расширения, блоки питания и сетевые интерфейсы
- Сквозную трассировку кабельных соединений от порта сервера до порта коммутатора ядра
- IP-префиксы, пулы адресов, VLAN и VRF
Интерфейс умеет визуализировать стойку с установленным оборудованием и строить сквозную цепочку прохождения кабелей через патч-панели.


2. Рендеринг конфигураций через Jinja2
Прямо внутри NetBox можно хранить шаблоны Jinja2. Они подтягивают параметры из базы данных и формируют готовые конфиги для Cisco, Juniper, Mikrotik или серверов Linux. Сами шаблоны можно загружать через веб-интерфейс или синхронизировать с внешним git-репозиторием.
3. Пользовательские скрипты и вебхуки
Рутинные операции, например ввод нового филиала в эксплуатацию, отнимают много времени при ручном заполнении десятков форм. В NetBox встроена поддержка Custom Scripts на Python. Вы пишете скрипт с нужными полями ввода, а инженер запускает его из браузера. Скрипт сам выделит нужные подсети, создаст устройства и назначит адреса по правилам компании.
Для интеграции с другими сервисами есть вебхуки. Добавили новый сервер, и вебхук тут же отправил событие в систему мониторинга или обновил запись на DHCP-сервере.
4. Контроль изменений и правила валидации
Система ведет журнал абсолютно всех действий. Видно, кто именно изменил статус порта, когда выделил адрес и с каким запросом это было связано.
Чтобы сотрудники не нарушали стандарты компании, администратор может настроить кастомные правила валидации. Например, запретить удалять устройства в статусе «Active» или требовать обязательного заполнения инвентарного номера для определенных моделей серверов.

Техническая начинка и расширяемость
Под капотом NetBox находится классический, проверенный временем стек:
- Python 3 и веб-фреймворк Django
- PostgreSQL в качестве основной базы данных
- Redis для очередей задач и кэширования
У приложения открытый API на базе REST и GraphQL, что сильно упрощает написание интеграций.
Если стандартных сущностей не хватает, функциональность расширяют плагинами. Например, официальный плагин NetBox Branching добавляет логику работы с данными через ветки, как в Git. Инженер создает ветку, вносит планируемые изменения топологии, согласует их с коллегами и мерджит в основную базу только перед выкаткой в продакшн. Другие популярные плагины добавляют учет зон DNS и сессий BGP.
Кому проект пригодится
Если в вашей компании пара серверов и один неуправляемый свитч, разворачивать NetBox бессмысленно. Накладные расходы на его поддержку перевесят пользу.
Но если инфраструктура насчитывает десятки коммутаторов, сотни виртуальных машин или несколько филиалов, проект быстро окупает время на внедрение. Он превращает разрозненные знания отдельных инженеров в структурированную базу данных, готовую к автоматизации.
Пощупать интерфейс без локальной установки можно в публичном демо, а документация проекта подробно описывает шаги по установке через Docker или напрямую на хост.
