Современная сеть насчитывает десятки маршрутизаторов. И с ростом их количества все тяжелее и тяжелее помнить и отслеживать изменения настроек, разбираться с коллизиями IP. В такой ситуации все большее значение приобретают системы управления IP-адресации, позволяющие планировать распределение IP, мониторить и бэкапить установки сетевого оборудования, снабжать админа полезными отчетами. Свои варианты часто предлагают сами производители оборудования, но также имеются универсальные open source инструменты.

 

rConfig

rConfig — веб-приложение, выполняющее, по сути, одну важную задачу: снимок конфигурации сетевых устройств и массовое развертывание настроек. Администратор может самостоятельно настроить список команд, которые должны быть выполнены на отдельном устройстве или определенной группе, при этом команды можно соотносить с категориями. Для удобства последующего отбора и задания команд в интерфейсе можно определять любое количество категорий, добавлять информацию о производителях, логотипы и произвольные поля. Для управления используется Telnet или SSH. В настройках устройства указывается стандартная информация для подключения (логин, пароль, IP-адрес и порт) и дополнительная информация о конкретном устройстве. Команды объединяются в задачи, которые назначаются для выполнения определенным категориям в указанное время, задается интервал повторения (используется cron). Логи сохраняются на диск, при этом они распределяются по каталогам, соответствующим категории, устройству и времени. Причем в течение дня можно загружать несколько копий конфигурации, все автоматически получат свою метку времени. При экспериментах с сетевыми настройками это выручает. Доступна функция сравнения сохраненных конфигураций, статистика, просмотр журналов, поиск нужного параметра в любой категории, отчеты по настройкам и найденным изменениям. Результаты могут отправляться на email. Функция Configuration Compliance Management позволяет контролировать конфигурации устройств для соответствия политике.

Распространяется по лицензии GNU GPL. Проект предлагает демоверсию, перед ее использованием потребуется регистрация. Правда, она реализована на старой версии 2, в которой отсутствует ряд возможностей. Поэтому, чтобы получить полное представление, потребуется самостоятельно установить rConfig.

Написан на PHP, для хранения информации задействуется MySQL, файлы хранятся на FTP-сервере. Требования к оборудованию невелики. По сути, для развертывания требуется обычный LAMP-сервер с отдельными специфическими модулями PHP, о наличии которых придется побеспокоиться. Документации проект особо не предлагает, только небольшую инструкцию по установке в CentOS 6.x. В архиве с исходными текстами есть заготовки именно под этот дистрибутив. Вероятно, его можно считать рекомендуемым разработчиками. Хотя инструкция чуть устарела даже для 6.x, то есть просто скопировать команды в окно терминала в расчете, что все возьмет и заработает, не выйдет. При развертывании в CentOS 7 выплывает еще несколько «мелочей». Для других дистрибутивов придется уже разбираться с различиями по названию пакетов и устройству дерева файловой системы. Но после установки дальнейшие настройки вполне понятны, хотя интерфейс и не локализован.

rConfig — управление командами, выполняемыми на устройствах
rConfig — управление командами, выполняемыми на устройствах
 

RANCID

RANCID (расшифровывается как Really Awesome New Cisco confIg Differ) — набор утилит, которые производят мониторинг маршрутизаторов, опрос конфигураций, включая ПО и аппаратные средства (карты, серийные номера и прочее), резервирование настроек. Принцип работы прост. После запуска производится подключение к устройствам, прописанным в базе данных (router.db), выполняются запросы, необходимые для получения нужной информации, данные форматируются, удаляется лишнее, результат фиксируется в системе контроля версий CVS или Subversion. При необходимости отправляется email, в котором показываются все изменения по сравнению с предыдущей версией (в документации есть пример такого сообщения). В случае выхода из строя роутера администратор может быстро перенести все настройки на новое устройство. Для подключения используются протоколы SSH, Telnet или RSH. Из коробки поддерживаются устройства многих производителей: Allied Telesis AW+, Cisco, Juniper, Mikrotik, Catalyst, HP Procurv и других. Поддержка части железа реализована в виде модулей, которые можно скачать отдельно на сайте проекта. К сожалению, полного списка проект не предоставляет и выяснить, будет ли работать RANCID с конкретным маршрутизатором, чаще можно, лишь проверив на практике. Интерфейса для настроек проект не предлагает. Есть CGI-файл, позволяющий персоналу при помощи браузера выполнять набор ограниченных команд, не требующих пароля (пакет rancid-cgi). Вот, собственно, и все. Список доступных команд указывает сам админ, просто снимая комментарии в файле настройки (Ubuntu /etc/rancid/lg.conf). Но конечно, можно использовать любой удобный интерфейс к CVS или Subversion для просмотра сохраненных конфигураций.

Все основные установки выполняются в конфигурационном файле rancid.conf. В основном здесь стандартные параметры — размещение файлов, установки для отправки email. Часто что-то менять здесь нет необходимости. Но например, LIST_OF_GROUPS задает группу сетевых устройств, для которых будет производиться менеджмент конфигураций. Таким образом, мы можем сгруппировать отдельно маршрутизаторы и коммутаторы или разделить устройства в зависимости от администраторов, поддерживающих данные устройства.

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

add user 10.10.10.* sysadmin
add password 10.10.10.* pass enable_pass
add method 10.10.10.*    ssh

База данных маршрутизаторов router.db представляет собой текстовый файл в формате «имя или IP:производитель:состояние»:

10.10.10.1:cisco:up
router.example.org:juniper:down

В комплекте идет несколько утилит (в Ubuntu они размещены в /var/lib/rancid/bin). Самая главная — rancid-run, запускающая собственно процесс сбора данных, после всех настроек его инициируют через cron. Утилита rancid-cvs позволяет инициализировать хранилище, создавая каталоги для каждой группы устройств. Ее необходимо запустить, когда будут готовы конфигурационные файлы. Почти два десятка утилит *login представляют собой команды доступа к маршрутизаторам разных производителей. Например, mtlogin позволяет подключаться к роутерам Microtik, clogin — к Cisco, jlogin — к оборудованию Juniper Networks и так далее. Их можно использовать для проверки подключения и ручного управления устройствами, удобного выполнения команд и скриптов:

$ /var/lib/rancid/bin/clogin -c "show clock" 10.10.10.1
$ /var/lib/rancid/bin/clogin -x script_name

Установка возможна на FreeBSD, Linux, OS X и Solaris. В большинстве систем и дистрибутивов нужный пакет, как правило, присутствует в репозитории. Сами разработчики рекомендуют FreeBSD. На сайте есть ссылки на статьи с примерами. Для Linux придется их адаптировать под свой дистрибутив.

Явных функций восстановления RANCID не имеет. В зависимости от конкретного устройства можно использовать стандартные функции бэкапа или просто скопипастить настройки в строку конфигурирования. В Cisco, например, для этих целей подходит стандартный copy running-config. Выкладываем файл на FTP и указываем на него (в privileged mode):

> enable
# copy running-config ftp://user:password@example.org/file
Основные настройки RANCID производятся в конфигурационном файле rancid.conf
Основные настройки RANCID производятся в конфигурационном файле rancid.conf

О возможностях проекта говорит то, что RANCID используют такие компании, как AOL, Global Crossing, MFN, NTT America и другие.

 

NeDi — Network Discovery

NeDi — продвинутая система для управления, инвентаризации сетевого оборудования и визуализации сети, распространяемая под лицензией GNU GPL. C ее помощью можно производить в автоматическом режиме поиск и инвентаризацию сетевых устройств, исследовать узлы, которые к ним подключены, получать информацию (версия ПО, IP, MAC, конфигурация, вендор, данные о загрузке интерфейсов, процессора, памяти, температурный режим) с сохранением журналов и построением наглядных графиков с помощью rrdtool. В том числе можем обнаруживать и мониторить виртуальные машины в виртуальных средах. Реализована поддержка API системы мониторинга Cacti, которая используется для отрисовки графиков. Также выполняется резервирование конфигурации маршрутизаторов, возможно отслеживать некоторые другие сетевые события, например расход бумаги на сетевом принтере. Кроме собственно обнаружения, ведется мониторинг, и при выходе из строя устройства, отключении порта и некоторых других событиях (появление в сети нового устройства, создание бэкапа) администратор получает email или SMS. Доступны некоторые отчеты: устройства, состояние, события, инциденты и другие. Администратор может настроить фильтры отбора устройств по нужному критерию. Доступны кнопки, позволяющие одним нажатием отобрать нужную информацию: например, самые загруженные, самые быстрые, самые горячие, не мониторящиеся. Поддерживается оборудование разных производителей, модульная архитектура в виде def-файлов позволяет легко добавить поддержку устройств любого производителя (при помощи утилиты Defgen).

NeDi также весьма полезный инструмент для мониторинга безопасности сети. Он легко обнаруживает новое проводное или беспроводное устройство, изменения в IP-адресации, появление в сети устройства, помеченного как пропавшее. О событиях администратора предупреждает всплывающее окно и звуковой сигнал. Графики показывают проблемные перегруженные места в сети. Функция идентификации хоста позволяет отслеживать открытые порты Telnet или SSH.

Для обнаружения и сбора данных используется SNMP, поддерживаются протоколы CDP (Cisco Discovery Protocol), FDP (Foundry Discovery Protocol) и майкрософтовский LLTD (Link Layer Topology Discovery). Для получения МАС-адресации и прочей информации с роутеров на базе Cisco IOS (и некоторых других) может быть использован привилегированный CLI. Такой способ быстрее, чем сканирование VLAN, но его уже нужно будет настраивать персонально, указывая пароли для доступа к Telnet или SSH. Основным методом остается все-таки SNMP. Проверяются также DNS- и NTP-сервисы. Конфигурации хранятся в БД (MySQL или PostgreSQL) или в виде текстовых файлов. После обнаружения администратор может самостоятельно добавить описание и назначить более наглядный значок для конкретного устройства.

Возможна одновременная работа нескольких администраторов, организован простой чат для быстрого обмена информацией. Кроме собственной базы пользователей, привлекается LDAP и RADIUS. Есть несколько полезных инструментов вроде IP-калькулятора и конвертера текста. Реализован простой бэкап и восстановление настроек самого NeDi.

Фактически NeDi представляет собой несколько Perl-скриптов для конкретной задачи: обнаружения, мониторинга, записи событий в БД, SNMP и генерирования статистики. Для их запуска используется консоль, GUI и cron.

Вся информация выводится через веб-интерфейс, имеющиеся шаблоны позволяют его одинаково комфортно просматривать как на ПК с большим экраном, так и на мобильном устройстве. Вид можно менять при помощи тем. Интерфейс, правда, доступен только на английском, итальянском и немецком. Локализация реализована в виде HTML-файлов, и при желании можно перевести самостоятельно по мере внедрения. После регистрации в первом окне Welcome to NeDi (находится в User -> Profile) выдаются общие подсказки по дальнейшим действиям: уточнению настроек, установке отправной точки для сканирования и сканированию сети, настройке задач и мониторингу SNMP. Просто нажимаешь на значок и переходишь к пункту, а можно сам значок поискать в меню. Бэкап устройства может быть произведен в CLI непосредственным запуском nedi.pl или в GUI Devices -> List -> Status. Информация сохраняется обычно в /var/nedi/config. Восстановление настроек лежит исключительно на администраторе.

В большинстве случаев установки через интерфейс производятся при помощи редактирования конфигурационных файлов, для удобства все они собраны в раскрывающийся список. В основном файле nedi.conf следует прописать правильные параметры для сканирования SNMP (обязательно), опционально политики доступа к CLI, маску IP, настройки подключения к БД, отправку email и SMS, выводимые сообщения, интеграцию с Cacti и другое. Отступы следует делать табом.

Интерфейс написан на PHP, поэтому для работы нам потребуется обычный LAMP-сервер. Проект предлагает инструкции по установке на FreeBSD, OS X и SUSE. Вероятно, можно их считать рекомендуемыми, хотя NeDi прекрасно работает и в любом другом Linux. Руководства для других ОС можно поискать в Сети и адаптировать под текущий релиз. Также ответы на некоторые вопросы есть на форуме. Кроме архива с исходными текстами, предлагается готовый ISO-образ, собранный на базе OpenBSD, и образ для VMware (пароль в CLI — root/root, веб — admin/admin). Образ для VMware полностью настроен, при наличии DHCP-сервера получает IP автоматически, после чего можно заходить через веб и начинать работу. Знание особенностей OpenBSD не требуется. Подготовлены несколько команд, позволяющих быстро выполнить основные операции, все они показываются при загрузке (ne запускает NeDi, wa — snmpwalk, er выводит ошибки веб-сервера и так далее). Проект предлагает документацию плюс видео на своем канале. В принципе, материала достаточно, чтобы при желании разобраться.

После регистрации NeDi показывает список основных задач
После регистрации NeDi показывает список основных задач

Редактирование конфигурационного файла при помощи веб-интерфейса NeDi
Редактирование конфигурационного файла при помощи веб-интерфейса NeDi

 

GestioIP

GestioIP сами разработчики относят к классу IPAM (IPv4/IPv6 Address Management). Это веб-приложение для управления IP-адресацией сетей, автоматического обнаружения сетевых устройств, позволяющее администратору быстро получить нужные данные и произвести настройки. Для обнаружения узлов, сбора информации о них и мониторинга состояния используется SNMP, DNS и ICMP (Ping). База данных устройств может быть заполнена автоматически путем сканирования сети, при помощи импорта из XLS-файлов или вручную. Таблицы маршрутизации могут быть как статическими, локальными, так и обновляться при помощи протоколов динамической маршрутизации OSPF, RIP, IS-IS и EIGRP. Фильтры и функции поиска позволяют легко найти информацию об IP-адресах или хостах, провести аудит. Есть три варианта просмотра сетей: по IP, по типу и по статусу. Корневые (root) сети являются контейнерами, позволяющими удобно сгруппировать подсети, но не содержат конечных станций. Включает систему управления линиями dial-up и VLAN. Доступные инструменты позволяют легко произвести разделение, слияние, расширение, уменьшение сетей с сохранением записи хостов, найти сети с перекрывающейся адресацией, бронировать IP (для DHCP, например). Есть в поставке IP-калькулятор. Можно сгенерировать готовые установки DNS-зон для серверов BIND или djbdns. Инструмент IPv6 Migrator позволяет генерировать IPv6. Есть функция экспорта в CVS, ведется статистика.

Поддерживается интеграция с open source системой инвентаризации OCS Inventory NG. Возможна аутентификация на основе Apache mod_auth (поддерживается внутренняя база пользователей) и интеграция с Active Directory и LDAP.

По сути своей это веб-приложение, написанное на Perl, все задачи выполняются при помощи CGI-скриптов, запускаемых вручную из GUI или через cron. Интерфейс несложный, параметров для настройки немного, выводимые данные настраиваются. Хотя, чтобы разобраться с некоторыми особенностями, придется заглянуть в документацию. Большой плюс — интерфейс изначально поддерживает русский.
Распространяется GestioIP по лицензии GNU GPL. Также разработчики предлагают коммерческий модуль, позволяющий автоматически делать бэкап и восстановление установок сетевых устройств, управлять их конфигурациями, выполнять команды и сохранять вывод. Поддерживается одновременный запуск команд на нескольких маршрутизаторах. Полученные настройки хранятся централизованно, поддерживается история, есть функция сравнения конфигураций и результатов запущенных заданий. Например, можно очень просто сохранить ARP-кеш за некоторый период, затем сравнить и увидеть, есть ли изменения. В качестве шаблонов заданий и опроса устройств используются XML-файлы. Это упрощает самостоятельное создание нужных установок.

Для развертывания потребуется Apache с модулем mod-perl и MySQL. Подходит любая *nix и Win, но рекомендуется Linux. Проект предлагает архив с исходными текстами и четыре внятных руководства по установке и настройке (на английском). Установка упрощается тем, что разработчики подготовили скрипт (./setup_gestioip.sh), который проверяет все необходимое и автоматически доустанавливает нужные Perl-модули. В Ubuntu следует подключить universe, причем проверяется запись в /etc/apt/source.list, если universe прописан в одном из файлов в /etc/apt/source.list.d, скрипт запись не найдет. Дальнейшие донастройки производятся в мастере.

Установка GestioIP упрощается подготовленным скриптом
Установка GestioIP упрощается подготовленным скриптом

Наглядная статистика GestioIP
Наглядная статистика GestioIP

 

Вывод

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

2 комментария

  1. Аватар

    arnautovd

    10.08.2015 в 20:52

    Благодарю за обзор. Возьмем на вооружение. Есть еще один полезный инструмент — phpipam.

  2. Аватар

    wolfeyes

    11.08.2015 в 22:27

    А где же NOC? NOC в студию с полным обзором в следующих выпусках….

Оставить мнение