Автоматическое сохранение конфигурации устройств Cisco

Решила написать небольшой пост о автоматическом сохранение конфигурационных файлов cisco.

Зачем сохранять конфигурацию? Примеров много — может сгореть железка — ее вы можете поменять без проблем, а бэкапа конфигурационного файла нету — придется настраивать с нуля. Хорошо, если у вас хорошая память (и вы помните все настройки) или у вас все полностью описано система. Но что, если конфигурационный файл занимает тысячи строк?
Или к примеру один из сотрудников случайно почистит файл конфигурации или удалит. Возможно преднамеренно…
Можно хранить конфигурацию не во flash — а на внешнем носителе или удаленном сервере — но потерять конфигурацию можно и в этом случае. Бэкап конфигурации делать нужно обязательно — и на постоянной основе.

Я опишу, как можно автоматизировать данный процесс.


В начале, требуется поднять TFTP сервер (так же можно использовать FTP либо другой способ, я сохраняю в конфигурации по локальной сети в отдельном менеджмент VLAN — поэтому использую TFTP без аутентификации).
Под TFTP-сервер возможно использовать как Linux — так и Windows сервера, у меня для этих целей есть сервер с ОС Windows 2012. Под него нужно скачать TFTP сервер — я для этих целей использую бесплатную tftpd32 service edition, она устанавливается и подымается как сервис в системе. Запускаем программу, указываем ей папку, в которой будет сохранятся конфигурационный файлы, указываем какой IP она будет использовать и проверяем доступность TFTP-сервера с маршрутизатора простым копированием файла с внутреннего flash:

RT-01#copy flash: tftp:
Source filename []? 3.txt
Address or name of remote host []? 192.168.10.24
Destination filename [3.txt]?
!!!
11335 bytes copied in 0.044 secs (257614 bytes/sec)
RT-01#


У меня во внутренней памяти маршрутизатора лежал файл «3.txt» — и я его успешно скопировал на TFTP-сервер.

Способ первый. Создание задания kron.


1) Создание скрипта-политики для бэкапа:

Router(config)#kron policy-list (имя)
Router(config-kron-policy)#cli copy (откуда копировать) (куда копировать)
Router(config-kron-policy)#exit


где следующие параметры:

сli — определение EXEC CLI команды в задании политики.
policy-list — определение политики, которая будет ассоциироваться с заданием в инструкции.

Пример:

RT-01(config)#kron policy-list conf_to_tftp
RT-01(config-kron-policy)#cli copy system:/running-config tftp://192.168.10.24/rt-01.txt


2) Создается инструкция для устройств c временем и интервалом выполнения задания:

Router(config)#kron occurrence (name) at (hh:mm) (day/month/oneshot/reccuring)
Router(config-kron-occurrence)#policy-list (имя)


Пример:

RT-01(config)#kron occurrence daily at 4:00 recurring
RT-01(config-kron-occurrence)#policy-list conf_to_tftp


3) Проверка конфигурации командой show kron.

RT-01#sh kron schedule
Kron Occurrence Schedule
daily inactive, will run again in 0 days 15:04:22 at 4 :00 on


Способ второй. Создание архивирования.

Архивирование появилось в устройствах с версии 12.3 — поэтому, возможно придется обновлять iOS. В данный момент для многих устройств уже используются iOS от версии 15.x и выше. Соответственно на старых устройствах данный функционал не поддерживается.
Посмотрим параметры данной команды:

RT-01(config)#archive
RT-01(config-archive)#?
Archive configuration commands:
default Set a command to its defaults
exit Exit from archive configuration mode
log Logging commands
maximum maximum number of backup copies
no Negate a command or set its defaults
path path for backups
rollback Rollback parameters
time-period Period of time in minutes to automatically archive the running-config
write-memory Enable automatic backup generation during write memory


опишу каждый параметр:

log — настройка логирования;
maximum — максимальное количество резервных копий конфигурации (по умолчанию 10);
path — путь, который указывает где хранятся резервные копии. При задании имени файла можно использовать переменные $H — имя устройства, и $T — текущее время;
time-period — период времени через который будет автоматически выполняться архивирование текущей конфигурации (в мин), если выставить значение 1440 (24 часа), то сохраняться будет каждые сутки и при сохранении конфигурации устройства;
write-memory — включает автоматическую генерацию резервной копии конфигурации, после выполнения сохранения конфигурации;
hidekeys — скрывать пароли при архивации (хотя никто не отменял использование secret вместо password).

посмотрим возможные пути для сохранения архивов:

RT-01(config-archive)#path?

flash0: Write archive on flash0: file system
flash1: Write archive on flash1: file system
flash: Write archive on flash: file system
ftp: Write archive on ftp: file system
http: Write archive on http: file system
https: Write archive on https: file system
rcp: Write archive on rcp: file system
scp: Write archive on scp: file system
tftp: Write archive on tftp: file system


Команда так же позволяет сохранять конфигурацию в различные места.

Настройка сохранения на TFTP будет выглядеть следующим образом:

RT-01(config)#archive
log config
logging enable
logging persistent reload
hidekeys
path tftp://192.168.10.24/$H-$T
write-memory


Теперь при каждом выполнении команды сохранения конфига на устройстве создастся файл на удаленном tftp сервере.
Проверяем работоспособность, сохраняем конфигурацию:

RT-01#wr
Building configuration…
[OK]!


И смотрим сохраненные архивы:
RT-01#sh archive
The maximum archive configurations allowed is 10.
The next archive file will be named tftp://192.168.10.24/RT-01-Mar--5-13-17-00.303.txt-1
Archive # Name
1 tftp://192.168.10.24/RT-01-Mar--5-13-16-56.343.txt-0 < — Most Recent
2
3
4
5
6
7
8
9
10


Видно что создан один архив.
У команды еще одна полезная фича — сравнение архивов.
Сделаем (сохранив конфигурацию) еще один архив и проверим их различия командой:

Router# sh archive config differences (name1) (name2)

Пример:

RT-01#sh archive config differences tftp://192.168.10.24/RT-01-Mar--5-13-16-56.343.txt-0 tftp://192.168.10.24/RT-01-Mar--5-13-20-30.647.txt-1
Loading RT-01-Mar--5-13-16-56.343.txt-0 from 192.168.10.24 (via Port-channel1):!
[OK — 6663 bytes]

Loading RT-01-Mar--5-13-20-30.647.txt-1 from 192.168.10.24 (via Port-channel1):!
[OK — 6663 bytes]
!Contextual Config Diffs:
!No changes were found


Различий нет — архивы одинаковы.

Так же есть существует способ восстановления предыдущей версии архива командой:

RT-01(config)#configure replace tftp://192.168.10.24/RT-01-Mar--5-13-20-30.647.txt-1


Второй способ удобнее, так как позволяет сделать бэкап при каждом сохранение конфигурации — а значит и возможность откатиться к последней (даже десяти последним) конфигурациям, но его минус — не поддерживается старыми iOS. Для меня данная проблема не актуальна — так как я использую archive.
Share post

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 11

    +1
    Третий вариант: некий центральный сервер по ночам сам заходит на все железки и выдергивает у них конфиги. Преимущество — никаких настроек на самих железках не требуется вообще. И можно почти в real-time отслеживать изменения в конфигурации и дергать новую версию в ответ на каждый "%SYS-5-CONFIG_I" (но осторожнее на старых каталистах, у них sh run сильно грузит ЦП).
      0
      Для этого возможно нужно использовать некоторое ПО, обычно оно стоит денег...(на вскидку приходит HP NNM).

      Или вы имеете ввиду Rancid? На самом деле до нее я еще не добрался — да и на хабре уже была статья по установке и конфигурированию данного решения.

        0
        Я когда-то самостоятельно писал скрипты под это дело. Один вытягивает список хостов из боевого мониторинга (чтобы раздельные списки не держать), другой по списку заходит на железки по ssh и делает show run, протоколируя увиденное в файл. Можно было бы прикрутить реакцию на %SYS-5-CONFIG_I, а не просто в крон вписать — как два пальца.

        Ну и есть не только Prime и NNM. Например, мне нравится продукция Solarwinds — дешево и приятно в работе.
      0
      Должен отметить, что шедуллер иногда является причиной краша и последующего релоада роутера. Замечено на разных ИОСах и разных моделях. Среди них 3845, 2801 и 7206.
        0
        честно говоря, ни разу не попадалось(
        но, все может быть.
        +1
        Скрипт обходящий железки проще и надежней. Так и не могу понять смысл хранения конфигурации локально на самой железке: если сдохла то шанс вытащить не сильно велик, да и сложнее чем с сервера.

        Вот если б кто написал статью-мануал о том как привязать изменения в конфигах к SVN- репозитарию, так что б инженеры по всем введенным в conf- режиме командам отписывались было бы шикарно.
          0
          kb.nocproject.org/display/SITE/NOC Умеет делать сбор конфигов с нужной периодичностью и строить diff между изменениями конфигов.


          NOC бесплатен и с документацией у него туго, но софтина очень полезная, сбор конфигов это малая толика того, что он умеет.

            0
            посмотрю, что это — спасибо.

            я вижу что они сделали темплейт для VMWare — скажите, он может взаимодействовать с Nexus 1000V?
              0
              Лучше спросить об этом авторов. А так проект окрытый, я добавил в него поддержку своего железа, благо все на питоне. Все новые темплейты уже закомичены в основную ветку. Присоединяйтесь! ))
              0
              Кстати разработчики подсказывают что умеет перечитывать конфиги при изменении и работает это не только с оборудованием Cisco.
              Лично у меня собирает конфиги с разных коммутаторов cisco, huawei серии s2300/s3300/s5300, IP DSLAM huawei MA5605/5105, Siemens HIX56xx, всякого разного барахла от D-Link. С Juniper'ов конфиги не снимал, не моя зона ответственности.
              А так NOC даже в таком состоянии очень сильный и гибкий инструмент. Из приятных последних допиленных вещей это автоматическое построение карт сетей на основе анализов различных протоколов.
              А что позволяет делать Service Activation, можно на отдельную статью написать.
              Картинка карты нарисованной автоматически на основе анализа LLDP

              На основании LLDP + CDP

              0
              на Cisco ASA нет таких механизмов резервирования конфигурации, как на коммутаторах и маршрутизаторах, но есть call-home.
              Можно использовать snapshot и команду copy, как показано в примере ниже.
              В качестве Mail сервера можно использовать любой почтовый сервер (SMTP без авторизации).

              service call-home
              no call-home reporting anonymous
              call-home
               alert-group-config snapshot
                add-command "copy /noconfirm running-config tftp://10.0.0.33/ASA;int=inside"
               contact-email-addr asa@network.loc
               mail-server 10.0.0.44 priority 1
              
               profile COPYCONFIG
                destination address email monitoring@network.loc
                destination transport-method email
                subscribe-to-alert-group snapshot periodic daily
              


              полная инфа по командам

              Only users with full accounts can post comments. Log in, please.