Transaktionsbasierte CLI auf Ethernet-Switches

10

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?

Bearbeiten:

Wie gewünscht:

RX5000 Datenblatt

Checkpoint-CLI-Transaktionen

bescheiden
quelle
Hat dir eine Antwort geholfen? Wenn ja, sollten Sie die Antwort akzeptieren, damit die Frage nicht für immer auftaucht und nach einer Antwort sucht. Alternativ können Sie Ihre eigene Antwort bereitstellen und akzeptieren.
Ron Maupin

Antworten:

10

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 archivein 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 Loopback100mit 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.

Mike Pennington
quelle
Danke für das Beispiel. Eines war mir nicht klar ... Werden die Änderungen (in diesem Fall der Loopback) sofort aktiviert, sobald Sie die Befehle eingeben, oder werden sie aktiviert, sobald Sie die Transaktionen bestätigen (Configure Confirm).
bescheidene
@modest, Cisco wendet die Befehle sofort an. Wenn Sie a config confirmausführen, teilen Sie dem Router lediglich mit, dass Sie diese Änderungen nicht automatisch zurücksetzen möchten. Natürlich ist es durchaus möglich, Änderungen ohne zeitgesteuertes Rollback vorzunehmen. In jedem Fall sind die Befehle sofort aktiv.
Mike Pennington
1

Ihre Annahme ist richtig. In beiden Fällen können Sie Konfigurationsbefehle auf einen bekannten Punkt zurücksetzen, wenn sie nicht wie erwartet funktionieren.

Ron Trunk
quelle
Verstanden. Sie können den Effekt jedoch erzielen, indem Sie einfach die vorherige Konfigurationsdatei laden (vorausgesetzt, Sie speichern sie, bevor Sie Änderungen vornehmen), falls etwas schief geht. Vermisse ich hier etwas?
bescheidene
@modest Durch erneutes Laden der vorherigen Konfiguration werden keine Befehle entfernt, für die "no <cmd>" erforderlich ist. Wenn Sie beispielsweise eine Zugriffsliste mit dem Befehl "ip access-group 100 in" auf eine Schnittstelle anwenden und dann "copy start run" eingeben, um die Konfiguration neu zu laden, wird die Zugriffsliste nicht entfernt.
Ron Trunk
Mit dieser Funktion (zumindest bei Cisco und Juniper) können Sie auch einen Rollback-Timer einstellen. Wenn der Timer abläuft, wird die Konfiguration von selbst zurückgesetzt. Dies ist nützlich, wenn Sie Änderungen vorgenommen haben, die dazu führen, dass Sie die Kommunikation mit dem Gerät verlieren. Nicht, dass ich das jemals getan hätte :(
Ron Trunk