Есть на самом деле другой способ.
Вы можете запустить копию TFTP, используя SNMP. Это не очень прямолинейно, но невероятно полезно.
Во-первых, вам понадобится TFTP-сервер (что неудивительно). Вам также нужно что-то, что может отправлять запросы SNMP. Я сделал это эффективно с помощью инструментов snmp Linux.
Вы захотите создать новое сообщество для SNMP с ограниченным доступом для записи и, возможно, заблокировать его еще больше с помощью ACL IP. На самом деле вам нужно только иметь возможность писать в ccCopyTable
OID.
На стороне Linux вам понадобятся следующие MIB (для удобства чтения, а не для функциональности)
CISCO-CONFIG-COPY-MIB
CISCO-SMI
CISCO-ST-TC
Установив MIB в соответствующем месте для вашей конфигурации SNMP в Linux, вы сможете проверить соединение с помощью snmptable следующим образом:
snmptable -v2c -c writeCommunity 192.168.1.1 ccCopyTable
CISCO-CONFIG-COPY-MIB::ccCopyTable: No entries
Обычно вам нужно предварительно создать файл на TFTP-сервере, чтобы маршрутизатор скопировал в него.
Чтобы запустить копию TFTP, вам нужно вставить строку в ccCopyTable
.
snmpset
позволяет вам сделать это.
# snmpset -v2c -c writeCommunity 192.168.1.1 \
> ccCopyProtocol.23 i tftp \
> ccCopySourceFileType.23 i runningConfig \
> ccCopyDestFileType.23 i networkFile \
> ccCopyServerAddress.23 a 192.168.1.100 \
> ccCopyFileName.23 s router.conf
CISCO-CONFIG-COPY-MIB::ccCopyProtocol.23 = INTEGER: tftp(1)
CISCO-CONFIG-COPY-MIB::ccCopySourceFileType.23 = INTEGER: runningConfig(4)
CISCO-CONFIG-COPY-MIB::ccCopyDestFileType.23 = INTEGER: networkFile(1)
CISCO-CONFIG-COPY-MIB::ccCopyServerAddress.23 = IpAddress: 192.168.1.100
CISCO-CONFIG-COPY-MIB::ccCopyFileName.23 = STRING: router.conf
Как только вы это сделаете, вы сможете снова запустить первую команду и увидеть команду copy в ccCopyTable.
snmptable -v 2c -c writeCommunity 192.168.1.1 ccCopyTable
SNMP table: CISCO-CONFIG-COPY-MIB::ccCopyTable
index Protocol SourceFileType DestFileType ServerAddress FileName UserName
23 tftp runningConfig networkFile 192.168.1.100 router.conf ?
SNMP table CISCO-CONFIG-COPY-MIB::ccCopyTable, part 2
index UserPassword NotificationOnCompletion State TimeStarted TimeCompleted
23 ? false ? ? ?
SNMP table CISCO-CONFIG-COPY-MIB::ccCopyTable, part 3
index FailCause EntryRowStatus ServerAddressType ServerAddressRev1
23 ? ? ipv4 "192.168.1.100"
Ничего не произойдет, пока вы не установите другой столбец в ccCopyTable для активации строки.
snmpset -v2c -c writeCommunity 192.168.1.1 \
> ccCopyEntryRowStatus.23 i active
Если вы снова проверите ccCopyTable, вы увидите, что State и TimeStarted были обновлены, чтобы отразить, что файл был скопирован.
Ниже приведена более подробная информация о ссылках на источники, в том числе о том, как очистить ccCopyTable (если хотите).
Я использовал тот же метод в сценарии с сервера Linux, чтобы вызвать копию TFTP, затем зафиксировать файл в git и отправить его обратно в хранилище, и все это одним быстрым процессом.
Источники: http://www.ciscozine.com/2013/08/22/how-to-save-configurations-using-snmp/
и
http://bodgitandscarper.co.uk/networks/using-snmp-to-trigger-cisco-tftp-backups/
| include
или| exclude
? Я изо всех сил пытаюсь увидеть полезность возможности просматривать ваши текущие конфигурации "в режиме реального времени".