Доброго времени суток.
Сегодня я попробую рассказать о системе мониторинга файлов конфигураций сетевых устройств – 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:
В настоящее время доступна версия RANCID 2.3.2.
Я рассмотрю установку и настройку системы для Ubuntu (для FreeBSD RANCID можно установить из портов).
Для упрощения допустим что у нас есть 4 маршрутизатора Cisco Systems в филиалах компании за конфигурациями который нам нужно следить и хранить их с учетом всех изменений.
Итак, по порядку:
Устанавливаем 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. В целях безопасности файлу необходимо установить следующие права:
Это важный момент, так как 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 запускаться по расписанию.
Сегодня я попробую рассказать о системе мониторинга файлов конфигураций сетевых устройств – 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 запускаться по расписанию.