Pull to refresh

Ведение систем IPAM и DCIM в NetBox: начинаем с кабельного журнала

Reading time 5 min
Views 38K

Привет! Меня зовут Дмитрий, в Росбанке я занимаюсь автоматизацией сетевой инфраструктуры. Этим постом я начинаю серию публикаций о NetBox — популярном опенсорс-инструменте для документирования инфраструктуры на уровне IP-адресации (IPAM) и железа (DCIM). NetBox ценен тем, что даже с базовой функциональностью «из коробки» он предоставляет множество возможностей, не говоря уже о допиливании через форки. Далее я представлю NetBox подробнее и на нашем примере расскажу, с чего начинать работу.

Для чего нужен NetBox

NetBox, по сути, является базой данных, где можно смоделировать все объекты сети и хранить всю информацию о них. Такую модель можно использовать как стартовую точку для автоматизации сети. А благодаря удобному UI и простоте использования, NetBox можно применять и на первом уровне поддержки для первичной обработки кейсов. Наконец, NetBox может стать точкой Source of Truth (SOT), через которую будет осуществляться всё взаимодействие с сетью.

Source of Truth — «центр правды» — должен всегда соответствовать реальному состоянию сети. В случае расхождений мы либо переделываем сеть, либо переписываем NetBox. Любая активность с сетью всегда должна быть согласована с NetBox. А вот насколько подробно отражать всё в NetBox, каждый пользователь уже решает, исходя из своих потребностей. Не всем нужен, например, полный список SFP-модулей с серийниками.

Наш пример внедрения: NetBox для кабель-менеджмента в сетевой фабрике Cisco ACI

Расскажу теперь, как мы сами начинали работу с NetBox. В качестве первой площадки выбрали сетевую фабрику для Cisco ACI.

Вручную настраивать ACI сложно, поэтому мы планировали очень тесно подружить ее с NetBox. Через скрипты всё делать гораздо проще, при условии, что все варианты унифицированы и хорошо параметризованы. Скрипт настройки фабрики способен обработать даже таблицы Excel, и с NetBox проблем быть не должно.

Большая часть взаимодействия с NetBox проходит через REST. Я советую сразу принять эту практику как основную и ничего не добавлять вручную. Для сбора нужных данных можно опросить сеть или распарсить свои базы в Excel. У нас NetBox используется в ЦОДе. Для менеджмента новых и старых подключений нам очень важно иметь корректную картину по стойкам, юнитам и кабельным соединениям.

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

Что нужно будет для этого занести в NetBox:

  • все стойки ЦОД,

  • все патч-панели с портами и их коммутацию,

  • коммутаторы и их интерфейсы,

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

Собрать нужную информацию просто, когда у нас есть прямая связь между коммутаторами. А если на этом пути появляются розетки на стороне клиента, этажные и межэтажные патч-панели? Или мы работаем с оптическим соединением через оптические кросы, муфты и сплайсы? Тогда данные придется собирать из разных источников. Но результат будет стоить потраченных усилий, ведь любой сотрудник эксплуатации сможет прямо «в поле» со своего мобильного зайти в NetBox, проследить нужные кроссировки, найти свободный порт не в резерве, оставить фото в карточке объекта. В общем, осуществить весь менеджмент готовности трассы прямо на ходу.

NetBox разделяет логические и физические соединения. Логические соединения — это наши интерфейсы, которые будут связаны во вкладке «Интерфейсы», даже если физически соединение организовано сложнее. Для физических соединений в NеtBox предусмотрена концепция сквозного прохода. 

О заполнении коммутаторами и портами мы подробней поговорим позже, в статье, посвященной устройствам в NetBox. Сейчас предположим, что они у нас уже заведены, и начнем с более простых вещей — патч-панелей. У патч-панелей есть связанные задние и передние порты. Передние порты панели соединяются с коммутатором, задние — с другими патч-панелями. Учтите, что NetBox позволяет соединять несовместимые медь и оптику, не ругаясь при этом. Вот как логически выглядит объект патч-панели:

Каждый линк — это отдельное соединение, для которого можно установить свой цвет (удобно для оптики), статусы и теги. Патч-панели, как и другие устройства, можно создавать из готовых шаблонов, не прописывая внутреннюю кроссировку передних и задних портов вручную.

Вложенные объекты в NetBox

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

Здесь пора познакомиться с важной функцией NetBox — созданием родительских отношений через вложенные объекты. Вложенные объекты не занимают места в стойке, но при этом являются полноценными девайсами со всеми атрибутами. Вот, например, как создать такой объект для шаблона патч-панели:

  1. Добавляем статус Parent для шаблона патч-панели. Порты патч-панели можно создать и связать заранее в шаблоне.

  2. Добавляем для шаблона патч-панели необходимое количество слотов расширения через device bays, называем их.

  3. Создаем шаблон сплайса, устанавливаем статус Child, 0 мест в стойке, задаем количество портов FRONT и REAR.

  4. Добавляем в стойку патч-панель, сплайсы добавляем в стойку без места. После того как сплайсы появятся в стойке, их можно добавить в слоты расширения патч-панели.

  5. Добавляем соединение между задними портами патч-панели и передними портами сплайсов, согласно информации о кроссировках.

  6. Добавляем соединение между задними портами сплайсов, ответных сплайсов или патч-панелей в других шкафах, согласно данным о кроссировках. 

Таким образом можно создать удобный кабельный журнал для оптики, разложив трассы по сплайсам и разметив модули/волокна цветами. Увы, вложенные объекты нельзя заранее разложить в шаблоне, чтобы быстро создавать потом готовый кросс.

Моделируя логические сущности с их желаемым поведением, в NetBox можно найти способ решения задачи, подходящий именно для вашего кейса. Инструмент гибкий и дает большой простор для поиска новых решений. Конечно, для наполнения базы потребуется некоторое время и, возможно, даже инвентаризация. Но потом (если вы уговорите всех жить через NetBox) все усилия будут оправданы :)

Автоматизация работы в NetBox

Более подробно автоматизация будет рассмотрена в следующем посте. Здесь я оставлю инструкцию для старта, когда вы только-только заполнили базу. 

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

  • Настройте NetBox для сбора информации из сети, для начала только в GET-режиме.

  • Время выходить на живую сеть. Сделайте, например, описания портов и настройте новые порты для клиентов. 

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

  • Важно также прикрутить протоколы для проверки коммитов и соответствующие тесты. Для большой и сложной сети здесь придется идти на компромисс. Не всегда можно взять и развернуть копию целого ЦОДа, поэтому нужно будет выбирать для тестирования самое важное.

Как узнать больше 

У NetBox есть комьюнити в слаке (Networktocode и NetDev Community), где можно спросить совета или почитать, что как делают коллеги. В сложных случаях мне всегда там помогали. Пощупать Netbox без развертывания у себя можно в песочнице Digital Ocean. Раз в день она сбрасывается в дефолт. Для тестов доступна админка и REST.

В следующем посте я остановлюсь на добавлении автоматизаций в NetBox — следующем шаге после наполнения базы. Если у вас появились вопросы по платформе, буду рад ответить в комментариях.

Tags:
Hubs:
+5
Comments 10
Comments Comments 10

Articles

Information

Website
www.rosbank.ru
Registered
Founded
Employees
5,001–10,000 employees
Location
Россия