Добрый день, коллеги!

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

В сети есть много платного ПО с очень удобным интерфейсом и под каждую ОС. Но цены на них бешеные, поэтому решили найти опенсорсный аналог. После недолгих поисков нашёл пару программ из которых выбрали rConfig. Тут решил собрать более или менее подробное руководство по установке и настройке данного ПО.

Коротко об rConfig


Как уже и было сказано, программа совершенно бесплатна, работает на CentOS 7, не очень требователен к ресурсам. Правда, на сайте разработчика не нашел информацию о минимальной конфигурации сервера, но вот то, что расскопал в сети:

  • Выделенный сервер (физический или вирутальный) ;
  • 100 GB свободного места на диске;
  • 1 GB оперативки (рекомендую 4 GB);
  • Процессор Intel x86_64.


Но минимальные требования к софту разработчик разместил:

  • Centos 7+
  • PHP 7+
  • MySQL 5.6+
  • Apache 2.4+
  • Browser IE7+, Firefox3.5+, Chrome11+, Safari3+, Opera 9.4+

Установка


Для начала нужно поднять Linux-сервер. Разработчик рекомендует CentOS с минимальной конфигурацией. Дальше подключаемся к серверу по SSH (можно использовать всем знакомый PuTTY), качаем софт с сайта разработчика, файл установки делаем исполняемым и запускаем его:

cd /home
curl -O http://files.rconfig.com/downloads/scripts/install_rConfig.sh
chmod +x install_rConfig.sh
./install_rConfig.sh

Установка длится около 20-30 минут, нужно ответить на пару вопросов типа настройки NTP, root пароля для MySQL и т.п. Проследить ход установки можно открыв вторую сессию и введя команду:

tail -f /home/install.log

После установки требуется перезагрузить сервер. После перезагрузки нужно ввести команду:

/home/centos7_postReboot.sh

Настройка rConfig


После завершения установки (система оповестит об этом) можно переходить непосредственно к самой настройке rConfig. Для начала создаём пользователя базы данных, базу данных и привязываем пользователя к БД:

mysql -u root –p
Enter new password:
mysql> GRANT ALL ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> CREATE DATABASE rconfig_db;

После этого в браузере открываем веб интерфейс youhostname/install.



Здесь проверяется соответствие необходимого программного обеспечения требованиям rConfig. Далее принимаем лицензионное соглашение, которое, как правило, никто не читает, и переходим к настройке базы данных:



Кнопкой Check Settings проверяется правильность имени БД, логина и пароля. Затем нажимаем Install Settings. После этого в фоновом режиме запускается скрипт, которые заполняет БД необходимыми данными. У меня в первый раз вышла ошибка, мол данная БД уже есть, но думаю это связано с тем, что я не дождался выполнения команды и несколько раз кликнул по кнопке. Если у вас будет также, просто нажимаем Last затем опять Next, вводим нужные данные, нажимаем на Install Settings и набираемся чуток терпения :) Далее переходим к финальной проверке:



Прежде чем перейти к странице входа в систему, удаляем каталог установки:

rm -fr /home/rconfig/www/install/


Добавление устройства


Для добавления устройста заходим на веб интерфейс системы введя доменное имя или IP адрес сервера, вводим логин и пароль, по умолчанию admin/admin. Затем переходим на вкладку Devices и нажимаем на кнопку Add device:



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

Как правило, в крупных организациях пользуются TACACS+ или RADIUS серверами для авторизации на устройствах, которые используют Active Directory. В соотвествии со внутренней политикой пароль пользователя меняется каждый месяц, значит нам придется каждый месяц заходить и менять пароль для входа на устройство. В настройках rConfig есть интеграция с LDAP, но сам пока не настраивал его, и не знаю будет ли работать так, как нужно. Когда настрою и все заработает, постараюсь написать руководство. А пока для тестов ввёл свой username и текущий пароль. Кроме этого, можно настроить имя пользователя и пароль по умолчанию. Делается это на вкладке Settings:



А при добавлении устройства просто можно поставить галочку перед Default username/password.

В Enable Prompt и Main Prompt я просто ввел hostname устройства и поставил соответсвующие символы (>, #). Далее выбираем вендора (по умолчанию только Cisco, но можно отредактировать этот список на вкладке Vendors) и вписываем модель. Из выпадающего списка Template выбираем подлючение по SSH: Cisco IOS — SSH — Enable — ios-ssh-enable.yml. Нажимаем Save и вуаля, если все прописано правильно, то при клике на названии устройства переходим на новую страницу и там статус устройства должен быть Online:



Дополнительные настройки


По умолчанию система выполняет на оборудовании три команды: show ip access-list, show cdp neighbors и show startup-config. Данное действие можно сократить до одной команды, для этого на вкладке Devices переходим в раздел Commands, выбираем команду и делаем Remove Command:



Просмотреть сохранённую конфигурацию можно на странице Device Management, куда можно перейти кликнув на устройство на вкладке Devices:



01 до удаления лишних, по моему мнению, команд, а 02 уже после.

Можно настроить автоматическое выполнение бэкапа, для чего, собственно, и было затеяно все это дело. Для настройки задания переходим на вкладку Scheduled Task, нажимаем на Add Scheduled Task заполняем соответствующие поля:



Выбираем Download Configuration, задаём название и описание задания. Можно настроить отправку e-mail при выполнении или при ошибке выполнения или выбрать сразу оба. Далее можно выбрать конкретное устройство, а можно выбрать всю категорию. Задаём частоту выполнения, в данном случае я выбрал раз в день. Система автоматом прописывает время выполнения в 00:00, что можно изменить. Нажимаем Save и радуемся :)

На этом пока все, думаю материал будет полезен как начинающим сетевым администраторам, так и имеющим достаточный опыт работы с сетью профессионалам. Удачи!

Комментарии (13)


  1. Schalker
    15.11.2021 09:36

    Попробывал свободную версию . Очень порадовал установочный скрипт. Отлично ставит систему. Всегда бы так в open source. Функционал конечно слабоват, но бесплатно же.


    1. ChingizKhalafov Автор
      15.11.2021 12:36

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


  1. KorP
    15.11.2021 09:54

    Что то на сайте rConfig не нашёл - а какие железки, собственно, поддерживаются, помимо циски?


    1. RMavrichev
      15.11.2021 10:24
      +1

      судя по скриншотам - ломится на железку по ssh (т.е. в cli) и даёт ей команду show start (или другую). Т.е. можно и не только к цискам прикрутить.


      1. ChingizKhalafov Автор
        15.11.2021 12:33

        Да, там у меня и делловские коммутаторы бэкапятся.


    1. Vilos
      15.11.2021 11:30
      +1

      Очевидно жеж! Любое сетевое устройство по SSH протоколу. Полагаю в "темплейтах" существует и telnet, а может даже и snmp....(впрочем первых двух обычно более чем достаточно).

      А еще рождается мысль, что возможно сами шаблоны можно подправить под себя....но продукт "руками" не трогал - предположение.


      1. ChingizKhalafov Автор
        15.11.2021 12:32

        Дам, там шаблоны легко создаются и редактируются, чем, в принципе, и хорош опенсорс.


      1. tark-tech
        16.11.2021 11:35

        Ну да, фактически там по шаблонам идет подключение, и что-то вроде sh conf с захватом вывода.

        Из подобного софта есть еще rancid и oxidized - работают они по тому же принципу.


  1. resetsa
    15.11.2021 21:20

    python+nornir+git — как то проще и универсальнее смотрится.


  1. vvpoloskin
    16.11.2021 00:06

    Помнится, с такими готовыми программами были проблемы с большим количеством оборудования - отсутствие многопоточности и регулирования количества потоков (при линейном проходе за сутки успеет собрать дай бог 1000 устройств), проверка на доступность перед запуском скрипта (в большой сети ~5% оборудования всегда лежит), загрузка конфигов на железках только в случае их недавнего изменения (не секрет, что флеш память в массовых коммутаторах дохнет со временем, лучше лишний раз не заходить, а уж тем более делать save). SNMP в общем как-то шустрее работает, чем прямая сессия telnet/ssh.


  1. Schalker
    17.11.2021 09:52
    +1

    Я давно искал замену выкинутой SolarWinds Network Configuration Manager (NCM).

    Чтобы без наворотов, легкую . В хозяйстве - 200 Cisco и 50 Huawei . Устал искать конфиги на TFTP сервере.

    Сравнил несколько продуктов и все же остановился на rConfig , свободной версии. Дальше посмотрим.

    Конечно же cBackup имеет больше функционала, но оно нужно ?


  1. 1A1A1
    17.11.2021 16:34

    1. Schalker
      24.11.2021 17:02

      О, да. интерестно. Oxidized поддерживает кучу производителей. Будем тоже посмотреть.