Il y a en fait une autre façon.
Vous pouvez déclencher une copie TFTP à l'aide de SNMP. Ce n'est pas terriblement avant droit, mais il est incroyablement utile.
Tout d'abord, vous aurez besoin d'un serveur TFTP (sans surprise). Vous aurez également besoin de quelque chose qui puisse envoyer des requêtes snmp. Je l'ai fait efficacement avec les outils snmp de Linux.
Vous voudrez mettre en place une nouvelle communauté pour SNMP qui dispose d'un accès en écriture limité, et probablement le verrouiller encore plus loin avec une ACL IP. En fait, il vous suffit de pouvoir écrire sur l' ccCopyTable
OID.
Côté Linux, vous aurez besoin des MIB suivantes (pour plus de lisibilité, plutôt que de fonctionnalités)
CISCO-CONFIG-COPY-MIB
CISCO-SMI
CISCO-ST-TC
Avec les MIB installées à l'emplacement approprié pour votre configuration SNMP sous Linux, vous devriez pouvoir tester la connectivité avec snmptable ainsi:
snmptable -v2c -c writeCommunity 192.168.1.1 ccCopyTable
CISCO-CONFIG-COPY-MIB::ccCopyTable: No entries
Vous devez généralement pré-créer le fichier sur le serveur TFTP pour le routeur dans lequel copier.
Pour déclencher une copie TFTP, vous devez insérer une ligne dans le ccCopyTable
.
snmpset
vous permet de le faire.
# 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
Une fois que vous avez fait cela, vous devriez pouvoir réexécuter la première commande et voir la commande de copie dans le 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"
Rien ne se passera tant que vous n'aurez pas défini une autre colonne sur ccCopyTable pour activer la ligne.
snmpset -v2c -c writeCommunity 192.168.1.1 \
> ccCopyEntryRowStatus.23 i active
Si vous vérifiez à nouveau ccCopyTable, vous devriez voir que State et TimeStarted ont été mis à jour pour refléter que le fichier a été copié.
Il y a plus de détails dans les liens source ci-dessous, y compris comment vider ccCopyTable (si vous le souhaitez).
J'ai utilisé la même méthode dans un script à partir d'un serveur Linux pour déclencher une copie TFTP, puis valider le fichier dans git et le repousser dans le référentiel, le tout en un seul processus rapide.
Sources: http://www.ciscozine.com/2013/08/22/how-to-save-configurations-using-snmp/
et
http://bodgitandscarper.co.uk/networks/using-snmp-to-trigger-cisco-tftp-backups/
| include
ou| exclude
? J'ai du mal à voir l'utilité de pouvoir visualiser vos configurations en cours "en temps réel".