Es gibt tatsächlich einen anderen Weg.
Sie können eine TFTP-Kopie mit SNMP auslösen. Es ist nicht schrecklich gerade nach vorne, aber es ist unglaublich nützlich.
Erstens benötigen Sie einen TFTP-Server (nicht überraschend). Sie benötigen auch etwas, das SNMP-Anfragen senden kann. Ich habe es effektiv mit den snmp-Tools von Linux gemacht.
Sie möchten eine neue Community für SNMP einrichten, die nur über eingeschränkten Schreibzugriff verfügt, und diese möglicherweise mit einer IP-ACL weiter sperren. Eigentlich müssen Sie nur in der Lage sein, in die ccCopyTable
OID zu schreiben .
Auf der Linux-Seite benötigen Sie die folgenden MIBs (aus Gründen der Lesbarkeit und nicht der Funktionalität)
CISCO-CONFIG-COPY-MIB
CISCO-SMI
CISCO-ST-TC
Wenn die MIBs an dem für Ihre SNMP-Konfiguration unter Linux relevanten Ort installiert sind, sollten Sie in der Lage sein, die Konnektivität mit snmptable folgendermaßen zu testen:
snmptable -v2c -c writeCommunity 192.168.1.1 ccCopyTable
CISCO-CONFIG-COPY-MIB::ccCopyTable: No entries
Normalerweise müssen Sie die Datei auf dem TFTP-Server vorab erstellen, damit der Router sie kopieren kann.
Um eine TFTP-Kopie auszulösen, müssen Sie eine Zeile in das einfügen ccCopyTable
.
snmpset
ermöglicht es Ihnen, dies zu tun.
# 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
Sobald Sie dies getan haben, sollten Sie in der Lage sein, den ersten Befehl erneut auszuführen und den Befehl copy in der ccCopyTable anzuzeigen.
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"
Es geschieht nichts, bis Sie eine andere Spalte in ccCopyTable festlegen, um die Zeile zu aktivieren.
snmpset -v2c -c writeCommunity 192.168.1.1 \
> ccCopyEntryRowStatus.23 i active
Wenn Sie ccCopyTable erneut überprüfen, sollten Sie feststellen, dass State und TimeStarted aktualisiert wurden, um anzuzeigen, dass die Datei kopiert wurde.
Unter den folgenden Quellenlinks finden Sie weitere Details, einschließlich der Vorgehensweise zum Leeren von ccCopyTable (falls gewünscht).
Ich habe die gleiche Methode in einem Skript von einem Linux-Server verwendet, um eine TFTP-Kopie auszulösen, dann die Datei an git zu übergeben und sie zurück in das Repository zu verschieben, alles in einem schnellen Prozess.
Quellen: http://www.ciscozine.com/2013/08/22/how-to-save-configurations-using-snmp/
und
http://bodgitandscarper.co.uk/networks/using-snmp-to-trigger-cisco-tftp-backups/
| include
oder| exclude
? Ich bemühe mich, die Nützlichkeit zu erkennen, mit der Sie Ihre laufenden Konfigurationen "in Echtzeit" anzeigen können.