Ich bin mit CLI auf verwalteten Ethernet-Switches vertraut. Kürzlich stieß ich jedoch auf einen Begriff "transaktionsbasierte CLI" für Switches. Ich bin mir nicht ganz sicher, was das ist und welchen Zweck es hat, es in Schaltern zu haben. Ist es ähnlich wie bei Datenbanktransaktionen, bei denen Sie die gesamten Befehle abrollen können, bevor Sie sie festschreiben?
- Der RX5000 spricht von der Möglichkeit, Änderungen schrittweise rückgängig zu machen, wie dies in einer Datenbank möglich ist.
- Der von Ihnen erwähnte Checkpoint- Link spielt auf dasselbe an, gibt jedoch an, dass diskrete Konfigurationsbefehle zu einer einzigen "Commit" -Aktion zusammengefasst werden können.
Cisco CLI-Transaktionen mit Konfigurationsarchiv und Rollback
Diese Funktionen sind denen in anderen Branchen sehr ähnlich. Beispielsweise können Sie auf einem Cisco-Router Änderungen an umkehrbaren Transaktionen vornehmen, wenn Sie diese archive
in der laufenden Konfiguration von Cisco aktiviert haben .
SW1#sh runn | b archive
archive
path bootflash:$h_config
!
SW1#term exec prompt time
SW1#archive config
SW1#dir bootflash:
Directory of bootflash:/
21 -rw- 52770 Nov 3 2013 12:48:04 -06:00 SW1_config-Nov--3-12-48-02-CST-1
20 -rw- 52770 Nov 3 2013 12:45:02 -06:00 SW1_config-Nov--3-12-45-00-CST-0
22 -rw- 52762 Nov 3 2013 12:52:22 -06:00 SW1_config-Nov--3-12-52-20-CST-0
23 -rw- 52762 Nov 3 2013 14:38:44 -06:00 SW1_config-Nov--3-14-38-41-CST-1
26 -rw- 66622 Jan 31 2014 13:17:46 -06:00 SW1_configJan-31-13-17-42-CST-2 <---
131436544 bytes total (95956992 bytes free)
SW1#
Derzeit ist kein Loopback100 konfiguriert ...
SW1#sh runn int lo100
^
% Invalid input detected at '^' marker.
SW1#
Beispiel CLI-Transaktion konfigurieren und bestätigen
Lassen Sie uns Loopback100
mit einem 10-minütigen Rollback-Timer konfigurieren , unsere Änderungen seit dem Konfigurations-Snapshot betrachten, die Änderungen bestätigen und dann einen Rollback durchführen. Wenn der Rollback-Timer abläuft, ohne die Konfiguration zu bestätigen, wird er automatisch auf unseren letzten zurückgesetzt config archive
(was auch bei der Ausführung der Fall ist config terminal revert
).
Diese Transaktionen sind wertvoll, denn wenn Sie die Konfiguration Ihres Routers vollständig bis zu dem Punkt abspritzen, an dem sie nicht mehr erreichbar ist, wird automatisch ein Rollback auf Ihren gespeicherten Snapshot durchgeführt. Dies ist auch hilfreich, wenn Sie den Router verwalten können, aber einen Rollback auf ein bekanntes Gut durchführen müssen Konfiguration in Eile.
SW1#configure terminal revert timer 10
Rollback Confirmed Change: Backing up current running config
to bootflash:SW1_configJan-31-13-20-21-CST-3
Enter configuration commands, one per line. End with CNTL/Z.
SW1(config)#
SW1(config)#int loopback 100
SW1(config-if)#ip address 1.2.3.4 255.255.255.255
SW1(config-if)#end
SW1#
Wir können sehen, dass Looback100 existiert ...
SW1#sh runn int lo100
Load for five secs: 28%/0%; one minute: 24%; five minutes: 24%
Time source is NTP, 13:21:25.243 CST Fri Jan 31 2014
Building configuration...
Current configuration : 65 bytes
!
interface Loopback100
ip address 1.2.3.4 255.255.255.255
end
SW1#
Wir können die Unterschiede sehen, die erforderlich sind, um zum letzten Konfigurationsarchiv zurückzukehren ...
SW1#sh archive config differences bootflash:SW1_configJan-31-13-17-42-CST-2
Load for five secs: 17%/0%; one minute: 24%; five minutes: 23%
Time source is NTP, 13:25:55.832 CST Fri Jan 31 2014
!
!Contextual Config Diffs:
-interface Loopback100
-ip address 1.2.3.4 255.255.255.255
SW1#
Jetzt können wir das Festschreiben bestätigen. Dies bedeutet, dass wir nicht automatisch ein Rollback durchführen, wenn der 10-Minuten-Timer abläuft.
SW1#configure confirm
SW1#sh runn int loo100
Load for five secs: 25%/0%; one minute: 25%; five minutes: 24%
Time source is NTP, 13:30:17.269 CST Fri Jan 31 2014
Building configuration...
Current configuration : 65 bytes
!
interface Loopback100
ip address 1.2.3.4 255.255.255.255
end
SW1#
CLI-Transaktions-Rollback
Angenommen, wir finden danach ein Problem config confirm
. Lassen Sie uns zu der alten Konfiguration zurückkehren, die wir archiviert haben ...
SW1#configure replace bootflash:SW1_configJan-31-13-17-42-CST-2
This will apply all necessary additions and deletions
to replace the current running configuration with the
contents of the specified configuration file, which is
assumed to be a complete configuration, not a partial
configuration. Enter Y if you are sure you want to proceed. ? [no]: yes
Total number of passes: 1
Rollback Done
SW1#
Jetzt ist Loopback100 in der laufenden Konfiguration nicht vorhanden. Die Konfiguration ist genau so, wie wir sie bei unserem ersten Schnappschuss gemacht haben.
SW1#sh runn int lo100
^
% Invalid input detected at '^' marker.
SW1#
Wenn ein Rollback auftritt, wird die Konfiguration für jede andere Konfigurationsaktivität gesperrt. Im Falle eines Fehlers oder eines unvorhersehbaren Ereignisses ist es eine gute Idee, diese configuration mode exclusive auto expire [timeout-in-seconds]
in Ihrer Konfiguration zu haben, wenn Sie diese Funktion verwenden. Ich mag den maximalen Timeout-Wert von 600 Sekunden. Dies bedeutet, dass die Konfiguration maximal 10 Minuten gesperrt werden kann.
Historischer Hinweis
Ursprünglich war Juniper der erste große Anbieter, der Konfigurations-Rollback-Funktionen bereitstellte. Ich habe damals für Cisco gearbeitet, und unsere Vertriebskonten haben nach dieser Funktion in Cisco IOS gesucht. Ich erinnere mich noch an interne Erlasse von bedeutenden Akteuren des Unternehmens, die sagten, "es ist in Cisco IOS unmöglich".
Natürlich haben wir es mit genügend Ausdauer (und ein paar Jahren in der Mitte) in IOS ... der Punkt ist, nehmen Sie nicht an, dass das erste "Nein, das können wir nicht" wirklich richtig ist.