Weberblog.net
Cisco IOS bietet eine einfach zu bedienende Funktion für die Konfigurationsversionierung auf einem externen Server wie TFTP oder SCP. Darüber hinaus können Sie IOS-Befehle verwenden, um zwei beliebige Snapshots zu vergleichen und zu einem von ihnen zurückzukehren.
Archive
Mit dem Befehl archive im Konfigurationsmodus gelangen Sie in den Konfigurationsmodus archive. Sie müssen einen Pfad auswählen, der ein sicheres Protokoll wie SCP sein sollte. Sie müssen den Benutzernamen und das Kennwort, getrennt durch einen Doppelpunkt, jedoch im Klartext angeben. (Dies ist zwar nicht wirklich gut, aber immer noch viel besser, als die gesamte Konfiguration über einfaches TFTP über Ihr gesamtes Netzwerk zu übertragen!) Die Variablen $h und $t sind für den Hostnamen bzw. das Datum/die Uhrzeit. Der letzte Schritt besteht darin, die Bedingung festzulegen, wenn die Konfiguration an das Ziel kopiert wird: Entweder zeitbasiert über time-period <minutes> oder während des “wr mem” -Prozesses über Write-memory. Ich bevorzuge letzteres. Mein Standard-Setup ist:
1
2
3
|
Es verwendet einen Benutzernamen von “iosarchive” und das Passwort “iospassword”. Der SCP-Server wird über einen FQDN eingestellt “scp.weberlab.de ” nach dem @-Zeichen. Ich kopiere direkt in den Stammordner “/”, während die Dateinamen als Hostname-dash-datetime angezeigt werden.
Jetzt sehen Sie für jeden “write memory” oder “copy run start” den Kopiervorgang. In meinem Fall löst es zuerst den FQDN auf. Beachten Sie das Ausrufezeichen in der Mitte der letzten Zeile, das den Kopiervorgang anzeigt:
Sie können eine Kopie der laufenden Konfiguration auch manuell über archive config auslösen.
Show Archive
Mit dem Befehl show archive können Sie die letzten 10 Archive anzeigen:
Beachten Sie das Schlüsselwort “<- Most Recent” am Ende einer Zeile.
Wenn Sie sich den SCP-Server selbst ansehen (in meinem Fall ein Ubuntu Linux), können Sie genau diese Konfigurations-Snapshots sehen:
Unterschiede & Rollback
Lassen Sie uns ein konkretes Beispiel für die Verwendung der Vergleichs- und Rollback-Funktionen erstellen. Bevor ich anfing, archivierte ich die aktuelle Konfiguration. Dies wurde “R4-Feb” genannt-20-2018-21-57-46.530- UTC-5″. Jetzt habe ich einige Konfigurationsänderungen manuell vorgenommen, nämlich eine Schnittstellenverfolgung für HSRP und eine Zugriffsliste:
1
2
3
4
5
6
7
8
9
|
conf t
int gi0/0
standby 25 Priorität 110
standby 25 preempt
standby 25 track gi0/1 20
beenden
Zugriffsliste 100 IP-Host zulassen 192.168.124.11 Gastgeber 192.168.120.10
Zugriffsliste 100 IP-Host zulassen 192.168.120.10 Gastgeber 192.168.124.11
Ende
|
Danach habe ich die Konfiguration über “archive config” auf den SCP-Server kopiert. Dieser Schnappschuss heißt “R4-Feb-21-2018-08-40-39.857- UTC-6”.
Jetzt habe ich den Befehl show archive config differences <path1> <path2> verwendet, um die Unterschiede zu vergleichen. Dies zeigt fantastisch alle Konfigurationsänderungen auf einen Blick, Zeile 10-16:
Einige Zeit später wollte ich auf die Konfiguration zurücksetzen, bevor ich eine dieser Änderungen vornahm. Daher könnte ich den Befehl configure replace verwenden. Das Schlüsselwort “list” am Ende zeigt zusätzlich alle CLI-Änderungen an:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
R4#configure replace scp://iosarchive:[email protected]/R4-Feb-20-2018-21-57-46.530- UTC-5 list
Hiermit werden alle erforderlichen Ergänzungen und Löschungen
angewendet, um die aktuell ausgeführte Konfiguration durch den
Inhalt der angegebenen Konfigurationsdatei zu ersetzen, bei der
als vollständige Konfiguration und nicht als teilweise
Konfiguration angenommen wird. Geben Sie Y ein, wenn Sie sicher sind, dass Sie fortfahren möchten. ? : y
Übersetzen “scp.weberlab.de “…domänenserver (2003:DE:2016:120::A08:53)
Dateimodus senden: C0644 7370 R4-Feb-20-2018-21-57-46.530- UTC-5
! Datei-Modi senden: C0644 7370 R4-Februar-20-2018-21-57-46.530- UTC-5
!
!Pass 1
!Liste der Rollback-Befehle:
keine Zugriffsliste 100
Schnittstelle GigabitEthernet0/0
kein Standby 25 Track 1 dekrementieren 20
kein Standby 25 preempt
kein Standby 25 Priorität 110
kein Track 1 Schnittstelle GigabitEthernet0/1 Line-Protokoll
Ende
Gesamtzahl der Pässe: 1
Rollback abgeschlossen
R4 #
Februar 21 2018 13:28:25.825 Koordinierte Weltzeit: Rollback: Erworben Konfigurationssperre.
R4#
|
Nett. 😉
Nur zum Spaß habe ich wieder die show archive config differences verwendet, diesmal jedoch mit nur einem einzigen Pfad zur alten Konfiguration, der sie dann mit der laufenden Konfiguration vergleicht:
Beachten Sie auch, dass Sie diesen Befehl ohne Pfade verwenden können, um die laufende Konfiguration mit der Startkonfiguration zu vergleichen. Das “+” zeigt an, dass diese Befehle in der Startkonfiguration, aber nicht in der laufenden Konfiguration vorhanden sind, während ein “-” Befehle in der laufenden, aber nicht in der Startkonfiguration anzeigen würde:
1
2
3
4
5
6
7
8
9
|
R4#Archivkonfigurationsunterschiede anzeigen
!Kontextbezogene Konfigurationsunterschiede:
+track 1 interface GigabitEthernet0/1 line-protocol
interface GigabitEthernet0/0
+standby 25 priority 110
+standby 25 preempt
+standby 25 track 1 decrement 20
+access-list 100 permit ip host 192.168.124.11 host 192.168.120.10
+access-list 100 permit ip host 192.168.120.10 host 192.168.124.11
|
And one more note: Es gibt die Option “incremental-diffs” innerhalb der Befehle “show archive config”, die tatsächliche Konfigurationsbefehle anzeigen, die in der laufenden Konfiguration nicht vorhanden sind, dh ohne diese “+” und “-“. Der Vergleich meiner aktuellen laufenden Konfiguration mit der nach meinen manuellen Änderungen gespeicherten zeigt:
Zeitbasiertes Neuladen & Rollback
Sehr ähnlich dem zeitbasierten Neuladen können Sie ein zeitbasiertes Konfigurationsersatz planen. Dies sind die Befehle, um ein zeitbasiertes Nachladen durchzuführen, nur der Vollständigkeit halber:
1
2
3
4
|
nachladen in hh: mm
nachladen in hhh: mm
Nachladen anzeigen
nachladen abbrechen
|
In Kombination mit den Rollback-Funktionen können Sie einen Zeitpunkt festlegen, zu dem ein Rollback stattfinden soll (z. B. nur wenige Minuten nach einigen großen Änderungen). Falls Sie Ihre Verbindung unterbrochen haben, kann dies Ihr Leben retten. 😉 Wenn alle Ihre Änderungen ordnungsgemäß funktionieren, können Sie das Ersetzen “bestätigen”, dh., stoppen Sie die ausstehende Revert-Aktion.
1
2
3
|
configure replace <Pfad> Zeit <Minuten>
configure replace bestätigen ! stoppen Sie die ausstehende Revert-Aktion
konfigurieren Sie revert jetzt! beschleunigen Sie den Revert
|
Gut zu wissen.
Ausgewähltes Bild “Archives” von Marino González ist lizenziert unter CC BY-NC-ND 2.0.