In realtà c'è un altro modo.
È possibile attivare una copia TFTP tramite SNMP. Non è terribilmente diretto, ma è incredibilmente utile.
In primo luogo, avrai bisogno di un server TFTP (non sorprende). Avrai anche bisogno di qualcosa che possa inviare richieste snmp. L'ho fatto efficacemente con gli strumenti snmp di Linux.
Ti consigliamo di creare una nuova community per SNMP con accesso in scrittura limitato e probabilmente bloccarla ulteriormente con un ACL IP. In realtà devi solo essere in grado di scrivere ccCopyTable
sull'OID.
Sul lato Linux, avrai bisogno dei seguenti MIB (per leggibilità, piuttosto che funzionalità)
CISCO-CONFIG-COPY-MIB
CISCO-SMI
CISCO-ST-TC
Con i MIB installati nella posizione pertinente per la configurazione SNMP su Linux, dovresti essere in grado di testare la connettività con snmptable in questo modo:
snmptable -v2c -c writeCommunity 192.168.1.1 ccCopyTable
CISCO-CONFIG-COPY-MIB::ccCopyTable: No entries
Di solito è necessario pre-creare il file sul server TFTP per la copia del router.
Per attivare una copia TFTP, è necessario inserire una riga nel file ccCopyTable
.
snmpset
ti permette di farlo.
# 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
Una volta fatto ciò, dovresti essere in grado di rieseguire il primo comando e vedere il comando copia nella tabella ccCopy.
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"
Non accadrà nulla finché non imposterai un'altra colonna su ccCopyTable per attivare la riga.
snmpset -v2c -c writeCommunity 192.168.1.1 \
> ccCopyEntryRowStatus.23 i active
Se si controlla nuovamente ccCopyTable, si dovrebbe vedere che State e TimeStarted sono stati aggiornati per riflettere che il file è stato copiato.
Ci sono maggiori dettagli nei link sorgente qui sotto, incluso come svuotare ccCopyTable (se lo desideri).
Ho usato lo stesso metodo in uno script da un server Linux per attivare una copia TFTP, quindi eseguire il commit del file su git e rimandarlo al repository, tutto in un unico processo rapido.
Fonti: http://www.ciscozine.com/2013/08/22/how-to-save-configurations-using-snmp/
e
http://bodgitandscarper.co.uk/networks/using-snmp-to-trigger-cisco-tftp-backups/
| include
o| exclude
? Faccio fatica a vedere l'utilità di poter visualizzare le tue configurazioni di corsa "in tempo reale".