Automatisieren Sie die Konfigurationssicherung (jede Minute) in Cisco IOS


16

Ich möchte, dass mein Cisco-Router alle 1 Minute ein TFTP-Kopierlauf durchführt (und die Felder automatisch ausfüllt). Ich möchte auch, dass es im Hintergrund läuft. Weiß jemand, ob dies möglich ist / wie es geht? Ich möchte dies tun, um die laufende Konfiguration meines Routers in Notepad ++ anzuzeigen (wodurch Echtzeit-Updates durchgeführt werden), anstatt einen Show-Run durchzuführen und die Leertaste vier- oder fünfmal zu drücken, bevor ich zu dem komme, was ich sehen möchte. Ich denke, das wäre außerordentlich nützlich für komplexe Labore. Außerdem funktionieren Makros aufgrund der TFTP-Serverbefehle, die Eingaben erfordern, nicht.


3
Ist einmal in der Minute wirklich notwendig? Haben Sie auch darüber nachgedacht, integrierte Filterung auf der CLI mit Regex zu verwenden, um die Teile der ausgeführten Konfiguration zu filtern, die Sie sehen möchten? Dh | includeoder | exclude? Ich bemühe mich, die Nützlichkeit zu erkennen, mit der Sie Ihre laufenden Konfigurationen "in Echtzeit" anzeigen können.
John Jensen

Ich möchte einen Monitor mit meiner Topologie und meinen CLI-Fenstern (mit Registerkarten und Bezeichnungen) haben. Mein zweiter Monitor mit allen laufenden Konfigurationen meiner Geräte in Echtzeit. Die Möglichkeit, alle meine running-configs in Echtzeit zu sehen, erleichtert die Fehlersuche, das Vergleichen und das Kopieren / Einfügen von Befehlsblöcken erheblich. Vor allem, wenn Sie sich eingehend mit Routenkartenanweisungen und ACLs befassen, ist es ein großer Vorteil, nicht show run | eingeben zu müssen s Routenkarte mehrmals, um diesen Teil der Konfiguration mit verschiedenen Geräten zu vergleichen. Es tut mir leid, dass Sie Schwierigkeiten haben, dies nützlich zu finden, aber ich schätze, jeder hat seinen eigenen.
Michael

@JohnJensen guter Punkt, ich habe den Teil nicht jede Minute verstanden. Christian, hast du darüber nachgedacht, nur eine zweite separate SSH-Sitzung für deine Geräte auf dem zweiten Monitor zu öffnen, anstatt die laufenden Konfigurationen in einem Textdokument zu öffnen? Überwachen Sie die CLI-Sitzungen von A auf Änderungen und Überwachen Sie die CLI-Sitzungen von B auf das Anzeigen von Konfigurationen. Nicht zu sagen, wie es geht, ist besser als der andere. :)
Brett Lykins

Brett, 'show running-config' erzeugt keine Echtzeitausgabe. Ich müsste jedes Mal, wenn ich etwas ändere, den Befehl show run erneut eingeben und mehrmals die Leertaste drücken, damit mir die gesamte Konfiguration angezeigt wird. Das Ziel ist, dass die Konfigurationsdateien vollständig ausgeführt werden und fast sobald Sie Änderungen vornehmen, ohne dass der Benutzer eingreifen muss, aktualisiert werden.
Michael

@ ChristiandelaPeña Ich folge dir, ich sage nur, dass verschiedene Leute auf unterschiedliche Weise arbeiten. Ich glaube, ich persönlich sehe nicht die Notwendigkeit, die Configs in der von Ihnen beschriebenen Weise live zu aktualisieren. Das macht es nicht falsch, nur nicht so, wie ich arbeite. :) Ich möchte dir die Werkzeuge geben, um zu tun, was du willst, wie du willst. Solange Sie arbeiten und lernen, ist das alles, was mir wichtig ist.
Brett Lykins

Antworten:


19

Sie haben mehrere Möglichkeiten, um diese Art von Funktionalität auf einem Cisco-Gerät zu erhalten. (Welche Sie verwenden, hängt von Ihren Anforderungen und manchmal von der Geräte- und IOS-Last ab. Einige ältere Geräte / IOS-Lasten weisen unterschiedliche Funktionen auf.)

BEARBEITEN: Sie fragen sich, ob Sie dies jede Minute tun möchten. Wie Sie in unserem Chat über diese Frage erfahren haben, wird dies Ihren Router blockieren. (Insbesondere in GNS3.) Die folgenden Optionen stehen Ihnen zur Automatisierung der Bestätigungssicherung zur Verfügung. Ich würde jedoch nicht empfehlen, dies alle 1 Minute zu tun.

Sie können entweder:

  1. Verwenden Sie die Kron-Funktionalität von Cisco für die Befehlsplanung. Auf diese Weise können Sie vordefinierte Befehle zeitgesteuert ausführen. Wie Sie bereits betont haben, ist copy run tftpeine Bestätigung der Dateieingabe erforderlich. (Es sei denn, Sie haben die Bestätigung der Dateiaufforderung deaktiviert , ich empfehle sie jedoch nicht als normale Einstellung.) Für die Umleitung ist keine Bestätigung erforderlich. Der im Scheduler verwendete Befehl lautet alsoshow run | redirect tftp://$SERVERIP/$PATH/$FILE

  2. Verwendung von Cisco Archive - Funktionalität für das Konfigurationsmanagement. Archivieren ist eine Möglichkeit, mehrere Kopien der Konfiguration nacheinander zu speichern und die Konfiguration bei Bedarf auf eine frühere Version zurückzusetzen. Durch das Kopieren mit Kron wird die vorherige Konfiguration überschrieben, während mit Archive bis zu 14 verschiedene Konfigurationsversionen am angegebenen Speicherort gespeichert werden können. Weitere nützliche Informationen zum Thema Archiv finden Sie unter diesem Link im Cisco Learning-Netzwerk . Speziell, wie der Dateiname mit den Tags $ h und $ t dynamisch festgelegt wird.

In den folgenden Beispielen können Sie die Zeiten an Ihre Bedürfnisse anpassen. Dies ist genau das, was ich schnell aus einer Produktionsausrüstung gezogen habe.


Beispielkonfiguration, damit Kron die Konfiguration schreibt und sie einmal pro Woche auf einem TFTP-Server sichert:

kron occurrence SaveConfig at 23:50 Mon recurring
policy-list SaveConfig
!
kron occurrence BackupRunningConfig at 23:55 Mon recurring
policy-list BackupRunningConfig
!
kron policy-list SaveConfig
cli write
!
kron policy-list BackupRunningConfig
cli show running-config | redirect tftp://10.10.10.10/configs/testswitch.txt

Beispielkonfiguration, damit Archive Ihre Konfiguration täglich auf einem TFTP-Server sichert:

archive
 path tftp://10.10.10.10/configs/$h-$t
 time-period 1440
 maximum 14

12

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 ccCopyTableOID 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/


2
So habe ich es jahrelang mit Pancho gemacht, bis ich kürzlich zu RANCID gewechselt bin, um mehr Geräteunterstützung zu erhalten. RANCID wird dringend empfohlen, nur weil Sie auch die Versionskontrolle haben. Verwenden Sie 'svn blame', um herauszufinden, wann diese Schnittstelle von Vollduplex auf Auto geändert wurde, oder beweisen Sie, dass sich seit x Monaten nichts geändert hat.
AnotherHowie

Kann RANCID in Git einchecken anstatt in SVN?
Tom O'Connor

Ich glaube nicht CVS ist die Standardeinstellung. SVN ist eine Option. Da es sich um eine schreibgeschützte RANCID-Versionskontrollsituation (Single Branch, Single User) handelt, hat die Verwendung von etwas anderem keinen besonderen Vorteil. RANCID 3 ist derzeit in Arbeit, daher ist es möglich, dass sie diesen Teil aktualisiert haben. Es ist jedoch eine relativ altmodische Software - Perl, Expect und Shell.
AnotherHowie

So überprüft und 3 RANCID keine neue VC Optionen erwähnen, hier: gossamer-threads.com/lists/rancid/users/6555#6555
AnotherHowie

2

Sie können EEM verwenden

Beispiel:

event manager applet dumpconfig
 event timer {absolute time time-value | countdown time time-value | cron cron-entry cron-entry | watchdog time time-value} [name timer-name]
 action 1.0 cli command "enable"
 action 2.0 cli show running-config | redirect tftp://10.10.10.10/configs/testswitch.txt
 action 998.0 cli command "end"
 action 999.0 cli command "exit"

Ich vermute, nur unter NX-OS ...
Tom O'Connor

1
@ Tom, ich habe kein Nexus (leider ;-)), in IOS wird es unterstützt ... Ich schätze, EEM wird von allen Routern und vor allem von Switches unterstützt: Ich habe zum Beispiel nur ein Modell, das EEM nicht unterstützt - 2950, ​​aber in 2960s, 3560, 3750 (E und nicht E), 4500, 4948, 6500 wird es unterstützt.
Pyatka

2

Sie können dazu RANCID verwenden.

Sie erhalten ein paar andere nette Dinge wie die Versionskontrolle der Configs, E-Mail-Unterschiede und andere nette Dinge (standardmäßig wird ein Hardwareinventar erstellt, sodass Sie eine Warnung erhalten, wenn sich die Hardware ändert).

Es funktioniert mit jedem Switch und Router, den ich bisher benutzt habe (Cisco / Juniper / Dell), was ein weiteres Plus ist.


1

Sie können ein Perl-Skript wie dieses verwenden . Verwendung:perl cisco_backup.pl "my-enable-password"


1
Nur-Link-Posts sind in ihrer Nützlichkeit eingeschränkt. Können Sie Ihrer Antwort die relevanten Teile dieser Lösung hinzufügen?
Ryan Foley

Geben Sie wenn möglich niemals ein Passwort in die Befehlszeile ein. Verwenden Sie stattdessen die Umgebung.
Cougar

0

fetchconfig ist ein weiteres Tool dafür:

fetchconfig ist ein Perl-Skript zum Abrufen der Konfiguration mehrerer Geräte. Es wurde unter Linux und Windows getestet und unterstützt derzeit eine Vielzahl von Geräten, darunter Cisco IOS, Cisco Catalyst, Cisco ASA, Cisco PIX, FortiGate Firewalls, ProCurve, Alcatel-Ethernet-Router (auch bekannt als Riverstone), Dell PowerConnect-Switches, Terayon 3200 / 3500 CMTS, Datacom DmSwitch-Switches, HP MSR-Router, Mikrotik-Router, Tellabs MSR-Router, Juniper EX-Switch JunOS, Oracle Acme-Paket, Audiocodes Mediant, Cisco IOS XR, NEC Univerge IX.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.