main

Пара слов о сетевой инвентаризации

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

Требования к учёту:

  • учёт самой железки (серийник, мак, ip, расположение, возможности, версия прошивки, и т.д.)
  • учёт кабельного хозяйства (грубо говоря - "что/куда воткнуто")
  • наглядная топология

Бумажки сразу отметаем, как несовременные, неудобные и неподдерживаемые. Держать их в актуальном состоянии - адов труд.

Давайте посмотрим, что мы можем задействовать для ведения учёта.

GLPI

Несомненным преимуществом этой софтины является универсальность - там можно до кучи вести учёт компов, картриджей, принтеров и прочих побрякушек. Учёт самой сетевой железки там есть - и оно даже автоматически обновляется, если использовать fusioninventory (netdiscover/netquery).

Модель назначается устройству автоматически, по совпадению SNMP sysDescr. Существующие устройства определяются по мак'у, серийнику, адресу и/или их комбинации.

Картинки:

страница с основными данными - серийник, и пр. порты связь между устройством и "моделью" F/I добавление устройства - пункт меню добавление устройства - уже кто-то добавил перечень всех поддерживаемых устройств редактирование профиля устройства

Обратите внимание на последнюю картинку - для принтера подсказывается вычисленный уровень расходника, чтобы сравнить с тем что по факту показывается на самом принтере. Мелочь, а приятно.

Вполне реально доработать напильником до состояния "работает идеально".

Теперь о минусах. У устройства в sysdescr может оказаться всякая ересь. Я даже удивлюсь, если её там не окажется. За примерами далеко ходить не надо: циска с sysdescr пихает абсолютно всё:

Cisco IOS Software, C2960S Software (C2960S-UNIVERSALK9-M), Version 15.0(1)SE3, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2012 by Cisco Systems, Inc.
Compiled Wed 30-May-12 14:35 by prod_rel_team

Именно так, в несколько строчек. Другие не выдают там ничего. Третьи (привет, HP!), выдают строчку "HP MULTI ENVIRONMENT" для ВСЕХ принтеров, а точную модель прячут в недра <...>.enterprise.<...>. Это порождает просто гигантское количество хаков и "специальных случаев", обработкой которых никак не должен заниматься софт, изначально писанный для хелпдеска.

То же самое с серийниками и версиями прошивки - разброд, шатание и перетягивание одеяла на себя. Они могут быть где угодно в дампе SNMP и в каком угодно формате. Примеры:

  • лёгкий случай - лежит одной строкой в ENTITY-MIB::entPhysicalSerialNum
  • типичный случай - лежит одной строкой в нестандартном месте, опять 'enterprises'
  • типичный случай - лежит отдельной строкой в разных OID'ах, например отдельно - ветка, отдельно - билд 3 + 11
  • тяжёлый случай - распидорашено посимвольно в разные OID'ы (привет, zyxel!)

Ещё одна печаль - наглядная топология. Есть полузаброшенный плагин, но прикручен он сильно сбоку и информацию там придётся дублировать. Поэтому - бумажку с топологией таки держать придётся, но это очень сильно меньше чем весь учёт сети на бумаге.

Впринципе, для учёта хватит с головой. Точность зависит от раздолбайства ведущего.

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

NetDot

Или Network DOcumentation Tool. Заточена именно под сетевой учёт:

  • железки
  • локации
  • соединения
  • ip-адреса
  • mac-адреса
  • DNS
  • люди (контакты, место работы)
  • BGP AS (!!)
  • учёт использования адресного пространства(!!!)
  • экспорт готовых настроек в nagios, isc-dhcpd, isc-bind, cacti и ещё пару мне незнакомых
  • ну и естественно, топология

Работает стабильно, на тестовом стенде нашёл всего один косяк в закоулках экспорта (серверный эксепшн и 500'я страничка в итоге)

Устройства так же определяются по snmp. Недостатки этого описаны выше, но с оговоркой, здесь не полагаются на точное соответствия, в ход сразу идут regexp'ы.

Минусы

  • полагается на тот факт, что у каждого свитча есть валидное dns-имя. В телекомах оно зачастую так, в крупной компании - далеко не всегда. Исправимо малой кровью.
  • интерфейс построен на модальных окнах, что бесит. Задевается оно на задний план, и будешь полминуты соображать что к чему. <ванга>С юнити и третьегномом должен быть просто ад.

Картинки:

данные об устройстве порты использование адресации подсети топология устройств прямая работа с базой базы - режимы прямая работа с базой - редактирование записи

Видите вопросики и подсвеченные зелёным заголовки полей на последней картинке? Это справка, и она краткая, деловая и реально везде.

Резюме - для малого/среднего телекома лучше не придумаешь, для предприятия - сильно оверкилл и явный перекос в сторону большой связной сети.

Netdisco

Ну и на закуску - ещё один проект. Назначение - не столько инвентаризация, сколько глобальное наблюдение за сетью с базовыми возможностями управления на уровне вкл/выкл порт. Изначально софтина разрабатывалась для управления сетью университета, это можно узнать с их сайта.

Существует 2 ветки разработки - 1.X - стабильная (1.0 - в дебиане, 1.3 - текущая) и 2.0 - полная переработка архитектуры и дизайна. Отличаются примерно так же, как "уазик" от "крузака" - по проходимости первый на наших дорогах победит, а вот во всём остальном...

Что понравилось сразу:

  • автоматическое добавление устройств для discovery, если найден сосед через cdp/lldp/...
  • полуавтоматическая топология на основе того же cdp
  • опрос и база устройств вынесены в отдельную библиотеку SNMP::Info, её можно прицепить куда-либо ещё, например к тому же F/I.
  • также разнесены frontend и backend, общение через базу

Картинки:

перечень устройств порты устройства топология сети

А вот это уже 2я ветка:

перечень устройств сведения об устройстве порты устройства топология сети

И если в старой версии одним из основных инструментом работы была консольная утилита "netdisco" (тупо быстрее получалось), то здесь все операции легко делаются через веб-интерфейс.

Работают обе на уровне "настроил и забыл" - статистика будет накапливаться, новые устройства - подцепляться и опрашиваться.

Поддержка новых устройств дописывается буквально за пару часов. Например, так я починил отображение 3com'ов, zyxel'ей, и сделал частичную поддержку MNDP1 у микротика. Это заняло 2 рабочих дня с учётом раскуривания документации к библиотеке.

Резюме - для компании, где учёт в сети ведётся "для себя" и/или "безопасников". В первую очередь - для топологии и быстрого нахождения хоста по маку (с историей).

UPD: Нашёл ещё подобного, но не ставил и не тестировал:

racktables -- преимущественно для датацентра, документировать занятое место в стойках, на большее врятли потянет.


  1. Частично, потому что у них MIB неполный ↩