Есть много способов бэкапа, начиная от систем, построенных на базе Linux, кончая CiscoWorks.
Вот несколько вариантов попроще:
1. Очень неплоха Kiwi CatTools [1], правда, она небесплатная. 2. Могу предложить также простую, написанную мной утилиту [2], запускаемую из командной строки. Она скачивает конфиги (startup-config или running-config) по протоколу telnet. Пример использования см. во врезке ниже. 3. Применение протокола и утилиты rsh (см. [3]). 4. Закачка конфигов с помощью протокола и утилиты SSH. Функционально аналогичен предыдущему методу, но имеет преимущества по защищенности и не работает на некоторых устройствах Cisco (например, протокол SSH не поддерживается серией Catalyst 2900). Опишу метод более подробно.
------------- >>ciconfig.log
@for /F "tokens=1,*" %%l in (ip\bad-canal.txt) do ciconfig.exe -ip:%%l -od:bad-canal
-d0 -UN:%login% -UP:%p1% -ES:%pES1% -TP:%pES1% -cf0 -wt:20 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\comstar.txt) do ciconfig.exe -ip:%%l -od:comstar
-d0 -UN:%login% -UP:%p1% -ES:%pES1% -TP:%pES1% -cf0 -wt:2 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\golden.txt) do ciconfig.exe -ip:%%l -od:golden
-d0 -UN:%login% -UP:%p1% -ES:%pES1% -TP:%pES1% -cf0 -wt:4 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\life.txt) do ciconfig.exe -ip:%%l -od:life
-d0 -UN:lifeadmin -UP:life#admin -ES:life@admin -TP:life@admin -cf0 -wt:4 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\piter-private.txt) do ciconfig.exe -ip:%%l -od:piter
-d0 -UN:%login% -UP:%p1% -ES:%pES1% -TP:%pES1% -cf0 -wt:2 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\piter-public.txt) do ciconfig.exe -ip:%%l -od:piter
-d0 -UN:spb -UP:spb_1346 -ES:%pES1% -TP:%pES1% -cf0 -wt:2 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\pollars.txt) do ciconfig.exe -ip:%%l -od:pollars
-d0 -UN:%login% -UP:%p1% -ES:%pES1% -TP:%pES1% -cf0 -wt:2 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\raznoe.txt) do ciconfig.exe -ip:%%l -od:raznoe
-d0 -UN:%login% -UP:%p1% -ES:%pES1% -TP:%pES1% -cf0 -wt:10 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\rtkom.txt) do ciconfig.exe -ip:%%l -od:rtkom
-d0 -UN:%login% -UP:%p1% -ES:%pES1% -TP:%pES1% -cf0 -wt:2 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\servA.txt) do ciconfig.exe -ip:%%l -od:servA
-d0 -UN:%login% -UP:%p1% -ES:%pES1% -TP:%pES1% -cf0 -wt:2 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\servB.txt) do ciconfig.exe -ip:%%l -od:servB
-d0 -UN:%login% -UP:%p1% -ES:%pES1% -TP:%pES1% -cf0 -wt:2 -desc:"%%m"
@for /F "tokens=1,*" %%l in (ip\transtelekom.txt) do ciconfig.exe -ip:%%l -od:transtelekom
-d0 -UN:%login% -UP:%p1% -ES:%pES1% -TP:%pES1% -cf0 -wt:2 -desc:"%%m"
%rar% m ..\cfg_backup\ciscocfg.rar bad-canal\*.txt
%rar% m ..\cfg_backup\ciscocfg.rar comstar\*.txt
%rar% m ..\cfg_backup\ciscocfg.rar golden\*.txt
%rar% m ..\cfg_backup\ciscocfg.rar life\*.txt
%rar% m ..\cfg_backup\ciscocfg.rar piter\*.txt
%rar% m ..\cfg_backup\ciscocfg.rar pollars\*.txt
%rar% m ..\cfg_backup\ciscocfg.rar raznoe\*.txt
%rar% m ..\cfg_backup\ciscocfg.rar rtkom\*.txt
%rar% m ..\cfg_backup\ciscocfg.rar servA\*.txt
%rar% m ..\cfg_backup\ciscocfg.rar servB\*.txt
%rar% m ..\cfg_backup\ciscocfg.rar transtelekom\*.txt
%rar% a ..\cfg_backup\ciscocfg.rar ip\*.txt
autoname ..\cfg_backup\ciscocfg.rar
В качестве ssh-клиента понадобится бесплатная утилита plink.exe, входящая в набор программ putty (напомню, что это open-source telnet/ssh клиент). Plink.exe специально предназначена для запуска из командных файлов. С помощью неё можно получить доступ к интерактивной ssh-консоли устройства Cisco, а можно выполнить последовательность команд. Вот, например, как автоматически получить running-config по протоколу SSH (эту команду можно запустить по шедулеру, или включить в командный файл):
- опция "-ssh" указывает коннектиться по -ssh. - опция "-l локальный_пользователь_15" указывает логин. Обычно это локальный пользователь устройства Cisco с уровнем привилегий 15 (хотя это необязательно, в зависимости от системы авторизации и входа в привилегированный режим в командном файле для Cisco - см. далее опцию "-m commands.txt" - можно указать команды для входа в привилегированный режим). - опция "-pw пароль_локального_пользователя_15" указывает пароль локального пользователя устройства Cisco. - "a.b.224.254" указывает IP или сетевое имя устройства Cisco, к которому осуществляется подключение. - опция "-m commands.txt" задает список команд для устройства Cisco, включая пробелы (для прохода промта "--More--") и возвраты каретки (для ввода команд). - опция "-batch" отключает любую интерактивность программы (за исключением самого устройства Cisco). - ">running-config.txt" перенаправляет вывод в текстовый файл - это и будет закачанный running-config. - для использования в командных файлах с протоколом ssh лучше перекомпилировать plink, убрав отключение сеанса в случае отсутствия отпечатка ключа в реестре, если используется опция -batch, либо сконфигурировать устройство Cisco таким образом, чтобы автоматическая смена ключей не производилась.
Содержимое файла команд для Cisco commands.txt:
enable пароль_режима_enable show running-config
quit
Тут вроде все понятно, однако есть несколько замечаний:
- 4-я строка якобы пустая - на самом деле там 12 пробелов, гарантированно проматывающих промты "--More--". Количество пробелов можно посчитать и подобрать опытным путем по вкусу - в зависимости от длины конфига Cisco. - команда quit не только разрывает SSH-сеанс, но и завершает программу plink. - первый коннект к хосту нужно делать вручную, иначе вышеуказанная команда не выполнится из-за того, что хеш ключа не сохранен в памяти (реестре) - если мы используем немодифицированный plink:
plink -ssh -l локальный_пользователь_15 -pw пароль_локального_пользователя_15 a.b.224.254 -m commands.txt -batch >running-config.txt The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is. The server's rsa2 key fingerprint is: ssh-rsa 768 86:82:05:3e:62:40:b1:a1:15:ee:74:b2:eb:5a:26:66 Connection abandoned.
Для запуска вручную нужно в консоли ввести команду и подтвердить валидность хоста, тогда хеш ключа запишется в реестр и дальше можно plink для коннекта с этим SSH-сервером запускать автоматически шедулером:
plink -ssh -l локальный_пользователь_15 -pw пароль_локального_пользователя_15 a.b.224.254 The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is. The server's rsa2 key fingerprint is: ssh-rsa 768 86:82:05:3e:62:40:b1:a1:15:ee:74:b2:eb:5a:26:66 If you trust this host, enter "y" to add the key to PuTTY's cache and carry on connecting. If you want to carry on connecting just once, without adding the key to the cache, enter "n". If you do not trust this host, press Return to abandon the connection. Store key in cache? (y/n) y Using username "локальный_пользователь_15". Type help or '?' for a list of available commands. router> quit
Хакнутый plink, который никогда не задает глупых вопросов по поводу сохранения хешей, см. по ссылке [4].
[Ссылки]
1. Kiwi CatTools site:solarwinds.com. 2. ciconfig.exe - утилита для автоматизации управления оборудованием Cisco. 3. Что такое RSH. 4. plink.exe - модифицированный plink.
archive log config logging enable path tftp://xxx.yyy.zzz.aaa/filename write-memory копирует конфиг на тфтп сервер при его сохранении (copy run start). Старые конфиги не затираются.
Комментарии
log config
logging enable
path tftp://xxx.yyy.zzz.aaa/filename
write-memory
копирует конфиг на тфтп сервер при его сохранении (copy run start). Старые конфиги не затираются.
RSS лента комментариев этой записи