Ich habe ein Labor-Setup, in dem ich versuche, SCP über SNMP für einen Cisco-Router zu verwenden. Ich habe einige Online-Dokumentationen gefunden, z. B.: Http://ccie20728.wordpress.com/2008/05/20/get-the-cisco- Konfiguration-über-snmp /
Hier ist mein High-Level-Setup. Auf dem Router:
R1(config)# username cisco password cisco
R1(config)# ip domain-name somedomain.com
R1(config)# crypto key generate rsa general-keys modulus 1024
R1(config)# aaa new-model
R1(config)# aaa authentication login cisco local
R1(config)# aaa authorization exec cisco local
R1(config)# ip scp server enable
R1(config)# line vty 0
R1(config)# login authentication cisco
R1(config)# snmp-server community cisco RW
Damit der Router als SCP-Server fungiert, muss er mit dem obigen cmd aktiviert werden. Auf einem Ubuntu-Server habe ich openSSH installiert / ausgeführt und mache diese cmds:
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.2.111 i 4
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.3.111 i 4
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.4.111 i 1
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.5.111 a <svr ip addr>
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.6.111 s cisco.txt
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.7.111 s cisco
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.8.111 s cisco
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.14.111 i 1
Um dann den Status zu überprüfen, mache ich ein snmpget und / oder einen snmpwalk über:
snmpwalk -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.10.111
Wenn ich dies ausführe, erhalte ich die Ganzzahl (2), was bedeutet, dass sie ausgeführt wird, und gehe dann zur Ganzzahl (4), was bedeutet, dass sie fehlgeschlagen ist.
Dann überprüfe ich den Grund für den Fehler:
snmpwalk -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.13.111
und ich bekomme die ganze Zahl (2), was "badfilename" bedeutet.
Daher habe ich oben verschiedene Permutationen eines Dateinamens für ".6.111 string" ausprobiert, einschließlich verschiedener Dateierweiterungen mit und ohne Bindestrichen, denselben Dateinamen wie beim Ausführen von config cmds, sogar einen angegebenen absoluten Pfaddateinamen, aber keiner scheint zu funktionieren.
Ich habe versucht, das sshd
mit verschiedenen Protokollierungsstufen zu debuggen und keine Ausgabe von der gespeicherten / gespeicherten Syslog-Datei zu erhalten.
Hat jemand das zum Laufen gebracht?
Antworten:
Ich habe es gerade auf meinem CPE versucht:
Welche Kopien mit config (4) in das Netzwerk (1) kopiert werden, durch Austauschen dieser können Sie die Richtung ändern (von Netzwerk zu ausgeführt).
Wenn ich über dem Skript ausgeführt werde, hat mein Home-Verzeichnis die Datei 'Dateiname', die meine CPE running-config enthält:
Zusätzlich zu dem, was @daniel erwähnt, ist auch Ihr '14' oder 'Zeilenstatus' falsch. Sie verwenden 1 'Aktiv', während Sie 4 'createAndGo' verwenden sollten.
quelle
Laut Cisco SNMP Object Navigator wird Wert 4 für 1.3.6.1.4.1.9.9.96.1.1.1.1.3 nicht unterstützt. Stattdessen bedeutet Wert 2 die Running-Konfiguration:
Wahrscheinlich erhalten Sie deshalb den Fehler badFileName.
BEARBEITEN:
Tatsächlich scheint es einen Widerspruch zwischen SNMP Object Navigator und der MIB-Definition zu geben , als Typ für
ccCopySourceFileType
undccCopyDestFileType
istConfigFileType
und gemäß der MIB-Definition:Und dies scheint durch Yttis Antwort gestützt zu werden
quelle
Ich habe dies schon einmal gepostet : http://checkforbees.com/router-backup/
Ich denke, Ihr Problem liegt bei den mehreren Snmpsets. Sie müssen zunächst den Eintrag erstellen, um dies zu tun. [14.xxx = 5 (createAndWait)] Anschließend können Sie den Eintrag nach Bedarf einrichten, bevor Sie den rowStatus auf "1" (aktiv) setzen.
[Hinweis: Meine Skripte sind Jahrzehnte alt, daher sind sie auf TFTP abgestimmt.]
Ich mache eine Schleife über ... 10.111 (Status), während es "läuft". Ich vermute, Sie haben Ihren Eintrag "111" nie gelöscht.
snmpset
Dies ist ansonsten Ihre genaue Folge von s gegen einen 2960S mit dem ssh-Server einer Linux-Box. (Wie meine Eingabeaufforderung andeutet, eine Debian-Box.)quelle
badFilename
könnte auch einen SSH-Anmeldefehler bedeuten, aber ich bekomme einennoConfig(5)
dafür. (was das Gegenteil von dem ist, was es sagen sollte)badFileName(2)
von 12.4T. (der 2960S ist 15.x)Überprüfen Sie hier: So kopieren Sie Konfigurationsdateien von und zu Cisco IOS-Routern, die SNMP verwenden
Wechseln Sie
ccCopyProtocol
zu Ihrer gewünschten Übertragungsmethode:Hier ist ein Bash-Skript zum Automatisieren von Konfigurationssicherungen.
quelle