Как стать автором
Обновить
180.27

Эксперимент: можно ли собрать систему управления сетевыми устройствами исключительно на Open Source решениях?

Время на прочтение4 мин
Количество просмотров6.7K

Всем привет! Это команда Департамента телекоммуникаций КРОК и мы продолжаем свои эксперименты. 

В ситуации, когда с рынка ушли ключевые вендоры, мы вместе с нашими заказчиками отправились на поиски альтернативных решений. Сегодня мы поделимся с вами способом упростить развертывание и администрирование сетевых устройств с помощью Open Source технологий. Предложенная нами схема – не готовый продукт, а лишь попытка ответить на три вопроса: 

  1. Можно ли на Open Source собрать рабочую Network management system?

  2. Какие могут возникнуть сложности? 

  3. Какие есть пути их решений? 

Итак, что мы хотим от системы:

  • Поддержку Zero Touch Provisioning коммутаторов, маршрутизаторов.

  • Возможность менять конфигурацию устройств, после внесения изменений в системе управления. 

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

  • Построение исключительно на Open Source решениях. 

Что нам для этого понадобится:

В нашей лаборатории для инвентаризации и учета IP адресации мы используем NetBox. Мы выбрали это приложение в качестве базового инструмента и как единый источник правды (Single Source of True). NetBox не только хранит инвентарную информацию (серийный номер, модель, производитель), а также позволяет добавлять информацию о интерфейсах, vlan-ах, VRF, NTP, Syslog серверах. 

Так же NetBox позволяет использовать самописные скрипты на Python и имеет очень функциональный API интерфейс. Это позволит нам автоматизировать и значительно ускорить настройку сетевого оборудования. Особенно в ситуации, когда нужно одновременно настроить или накатить изменения на сотни устройств. 

Следующий компонент нашей системы - AWX/Ansible. Мы решили использовать его для внесений изменений на оборудование, которое уже находится в эксплуатации.

В качестве хранилища конфигураций пока выступает SFTP сервер на CentOS. Для контроля версий было бы правильней использовать Git, но на этапе эксперимента нам показалось это излишним.

Для мониторинга наших устройств мы используем Zabbix,  который является одной из лучших систем мониторинга среди open source решений. Инструментом визуализации мы выбрали Grafana, которая более гибкая с точки зрения визуализации и построения дашбордов. 

Отлично, с компонентами более-менее разобрались. Теперь нужно придумать и реализовать логику.

Мы начали с функционала ZTP (Zero Touch Provisioning) для WAN маршрутизаторов. В качестве подопытных выбрали виртуальные маршрутизаторы Huawei AR1000v для тестирования в виртуальной лаборатории EVE-NG.

Прежде чем сделать ZTP нам нужно подготовить конфигурацию для устройств.

Чтобы подготовить конфигурацию, нам нужно сначала получить вводные данные.

А чтобы их получить из NetBox, их нужно сначала добавить, логично, да?

Итак, сначала нам надо добавить новую площадку в NetBox, добавить данные провайдера, выделить подсеть, добавить новое оборудование, определить его hostname, IP адрес, маршрут по умолчанию, NTP сервера и т.д. и т.п.

Каждый раз заносить эту информацию руками не удобно и поэтому мы написали скрипт, который позволяет все это делать автоматически. Для этого нам потребуется заранее определить некоторые базовые параметры, такие как:

- Подсеть, которая будет нарезаться на маленькие подсети для удаленных офисов. (Для тестов мы определили 192.168.64.0/19 из которой будут выделяться подсети /24 для каждого нового офиса)

- Крупные регионы, где могут открываться наши офисы;

- Провайдеры и типы каналов связи, для подключения к сети. В лабе мы добавили 1 провайдера с L3VPN каналами.

Получилась вот такая форма для открытия нового офиса:

Как результат выполнения скрипта мы получаем:

  • Новая площадка добавлена в NetBox

  • Автоматически создана подсеть новой площадки и ее функциональные подсети

  • Новое устройство добавлено в NetBox со статусом ‘Planned’

  • В конфигурации нового устройства добавлены все необходимые подинтерфейсы и их настройки

  • На базе всей этой информации подготовлен конфигурационный файл и выложен на SFTP сервер

  • В система мониторинга создана новая Host Group с именем новой площадки и новое устройство добавлено в мониторинг в статусе ‘Planned’

Теперь осталось подключить наше устройство к сети.

Для ZTP у Huawei используется технология Auto Config. Почитать про нее можно тут

При подключении устройства в сеть DHCP сервер сообщает ему где находится SFTP сервер, имя файла со списком конфигураций и другую служебную информацию. Маршрутизатор скачивает свою конфигурацию, применяет ее и перезагружается. После этого маршрутизатор появляется в сети. Как только роутер становится доступен в системе мониторинга, его статус автоматически изменяется на ‘active’, как в Zabbix, так и в NetBox

Таким образом мы можем очень быстро развернуть новую площадку и подготовить конфигурацию для WAN маршрутизатора. В дальнейшем можно автоматизировать добавление коммутаторов, ИБП и любых сетевых устройств, что позволит подготовить необходимое оборудование для установки за считанные минуты.

По такому же принципу мы реализовали развертывание новых коммутаторов в ЦОД.

С помощью скрипта и формы в NetBox мы выбираем ЦОД, в котором планируется установить коммутаторы, их количество, производителя и модель.

Скрипт автоматически создает указанное количество устройств, определяет их имена, выделяет IP адреса из подсети управления нашего ЦОД, генерирует конфигурационный файл и добавляет их в систему мониторинга:

Что в результате?

Мы собрали систему, построенную на open source решениях, которая позволяет вести учет оборудования и адресного пространства, мониторить состояние оборудования, упрощает и ускоряет добавление новых площадок и устройств. 

Но остались сложности, решение которым мы пока не нашли. Первая касается разнообразия настроек оборудования у разных вендоров. Как быть, если у заказчика в одной сети используется оборудование от разных производителей? Вторая – изменение изменений. Идея в том, чтобы меняя конфигурацию оборудования в NetBox, изменения автоматически применялись и на конечных устройствах.  Тут есть два пути: можно вносить изменения по частям, меняя настройки для каждого интерфейса или подготовить новый файл конфига и залить его железо. 

В ближайшее время мы планируем  протестировать различные варианты решений данных проблем и снова вернемся к вам системами, построенными на Open Source. 

Заходите в наш уютный Telegram-канал и чат-бот мероприятий.

Теги:
Хабы:
Всего голосов 13: ↑12 и ↓1+12
Комментарии18

Публикации

Информация

Сайт
croc.ru
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия