Pull to refresh

RANCID — резервирование конфигураций сетевых устройств

Доброго времени суток.
Сегодня я попробую рассказать о системе мониторинга файлов конфигураций сетевых устройств – RANCID (Really Awesome New Cisco config Differ).
RANCID – это разработка американской компании Shrubbery Networks, Inc., которая позиционирует себя как команда имеющая 20 летний опыт администрирования, конфигурирования и поддержки Unix систем и сетевых устройств. Система разработана для ОС Unix, Linux и MAC OS X. Хотя в названии и упоминается компания Cisco, RANCID работает и с оборудованием других брендов, цитата с офсайта – «Rancid currently supports Cisco routers, Juniper routers, Catalyst switches, Foundry switches, Redback NASs, ADC EZT3 muxes, MRTd (and thus likely IRRd), Alteon switches, and HP Procurve switches and a host of others.» Данным продуктом пользуются такие компании как AOL, Global Crossing, MFN, NTT America, Certainty Solutions Inc.
Я попробую рассмотреть установку и настройку RANCID для хранения конфигураций маршрутизаторов Cisco.
RANCID автоматически загружает конфигурационные файлы с сетевых устройств, сравнивает их с предыдущими версиями, что позволяет вам отслеживать изменения в конфигурации и хранить историю конфигураций ваших сетевых устройств. Есть возможность оповещения по электронной почте при изменении конфигурации устройства и загрузки файлов конфигурации на устройство. Для хранения конфигураций, RANCID использует системы контроля версий – Subversion или CVS (Concurrent Version System).


Как работает RANCID:
  • Подключаемся к сетевому устройству (список устройств указывается в файле router.db – некая база данных используемых сетевых устройств).
  • Выполняем команды необходимые для получения информации с устройства, которую хотим хранить.
  • Приводим полученную информацию к необходимому виду, формату.
  • Проверяем, изменилась ли конфигурация устройства и если он изменилась — отправляем уведомление на электронную почту, если это необходимо.
  • Изменяем информацию в системе контроля версий.

В настоящее время доступна версия RANCID 2.3.2.
Я рассмотрю установку и настройку системы для Ubuntu (для FreeBSD RANCID можно установить из портов).
Для упрощения допустим что у нас есть 4 маршрутизатора Cisco Systems в филиалах компании за конфигурациями который нам нужно следить и хранить их с учетом всех изменений.

Итак, по порядку:

Установка.


Устанавливаем RANCID командой – sudo apt-get install rancid
В процессе установки нас предупредят о зависимостях, и если все прошло нормально, то мы увидим следующее:



Настройка.


После установки файлы RANCID будут находиться в следующих каталогах:
/var/log/rancid – директория логов
/var/lib/rancid – директория установки RANCID (BASEDIR)
/usr/share/doc/rancid– документация и примеры конфигурационных файлов
/etc/rancid – каталог, где хранится файл конфигурации — rancid.conf, этот файл содержит настройки переменных, таких как задержка выполнения заданий, количество попыток подключения к устройству, таймауты подключения, в нем же указываются группы устройств, параметры уведомления и пути к каталогам RANCID.
Предполагается что сетевые устройства будут сгруппированы по каким либо параметрам, например тип оборудования или его географическое расположение. Имя группы задается в параметре LIST_OF_GROUPS файла rancid.conf. Например, LIST_OF_GROUPS = “routers”
После установки необходимо создать файл .cloginrc или отредактировать файл примера находящийся по адресу — /usr/share/doc/rancid/examples/cloginrc.sample. Данный файл помещаем в домашний каталог пользователя с правами которого будут запускаться скрипты RANCID. В целях безопасности файлу необходимо установить следующие права:

chmod 600 .cloginrc

Это важный момент, так как RANCID не будет работать, если файл будет доступен для чтения/записи другим пользователям.
В .cloginrc можно использовать следующие директивы:
add method <имя устройства, IP адрес> {ssh, telnet, rsh} – метод подключения к устройству, можно указать несколько, первый в списке будет более приоритетный;
add user <имя устройства, IP адрес> {username} — имя пользователя которое будет использоваться для подключения к маршрутизатору;
add password <имя устройства, IP адрес> {vtypassword} {enablepassword} – пароли для подключения, соответственно первый будет использоваться для подключения к устройству, второй для привилегированного режима;
add autoenable <имя устройства, IP адрес> {0,1} – позволяет автоматически использовать привилегированный режим после подключения.

У меня получился такой файл:



Для подключения к устройствам чей IP адрес попадает под маску 10.5.51.* будет использоваться логин – root, пароль — Rsduj%0, для всех остальных — admin, P@ssw0rd83.

Следующий шаг — запуск скрипта rancid-cvs:



Rancid-cvs создает все необходимые директории и конфигурационные файлы для каждой из групп указанных в переменной LIST_OF_GROUPS файла rancid.conf и импортирует их в CVS. Этот скрипт должен запускаться каждый раз, после добавления новых групп.
Для каждой группы создается файл router.db в котором хранится список устройств в группе, тип устройств и их состояние.

“router:mfg:state”
router – FQDN имя или ip адрес маршрутизатора;
mfg – производитель (cisco|cat5|juniper..);
state – состояние устройства (up или down), если указать down, скрипт просто проигнорирует это устройство.



На этом настройка завершена, можно приступать к проверке и запуску скрипта.

Проверка и запуск.


Проверяем доступность устройства и правильность параметров указанных в cloginrc.



Если нам удалось подключиться к устройству и выполнить команду, значит мы все настроили правильно и можно запускать следующий скрипт — rancid-run. Этот скрипт выполнит подключение ко всем маршрутизаторам из файла router.db для каждой группы.
После отработки rancid-run, в папке с логами появляется файл:





В файле router.db было указано 3 маршрутизатора в состоянии up, конфиги которых были сохранены в папке с названием группы и одно устройство было в состоянии down – к нему rancid-run и не пытался подключиться.
Мы убедились, что конфигурации сохраняются, теперь проверим, учитываются ли изменения в конфигурациях маршрутизаторов. Изменяем что либо в настройках маршрутизатора с адресом 10.5.52.129. Заново запускаем rancid-run и проверяем вновь появившийся лог-файл.





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

Если данная тема окажется интересна, то в следующей заметке настроим вэб интерфейс к CVS – cvsweb, уведомления по почте при изменении конфигурации устройства и заставим скрипт rancid-run запускаться по расписанию.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.