Znam CLI na zarządzanych przełącznikach Ethernet. Ostatnio jednak natknąłem się na termin „CLI oparty na transakcjach” na przełącznikach. Nie jestem do końca pewien, co to jest i jaki jest cel posiadania przełączników. Czy jest podobny do transakcji w bazie danych, w których można rozwinąć całe polecenia przed ich zatwierdzeniem?
- RX5000 mówi o zdolności do zmian zawróconych stopniowo, jak to tylko możliwe w bazie danych.
- Checkpoint odwołuje wspomniałeś nawiązuje do tego samego, ale one określić, że dyskretne polecenia konfiguracyjne mogą być grupowane w jeden „popełnić” działania.
Transakcje Cisco CLI z archiwum konfiguracji i wycofaniem
Możliwości te są bardzo podobne do tych, które można znaleźć w innych gałęziach przemysłu ... na przykład na routerze Cisco można zatwierdzać zmiany w transakcjach odwracalnych, jeśli archive
włączono je w uruchomionej konfiguracji Cisco.
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#
Obecnie nie ma skonfigurowanego Loopback100 ...
SW1#sh runn int lo100
^
% Invalid input detected at '^' marker.
SW1#
Przykładowa konfiguracja i potwierdzenie transakcji CLI
Skonfigurujmy Loopback100
za pomocą 10-minutowego timera wycofania, spójrz na nasze zmiany od czasu migawki konfiguracji, potwierdź zmiany, a następnie przywróć. Jeśli licznik wycofania upłynie bez potwierdzenia konfiguracji, automatycznie powróci do naszego ostatniego config archive
(co dzieje się również podczas wykonywania config terminal revert
).
Transakcje te są cenne, ponieważ jeśli całkowicie podłączysz konfigurację routera do punktu, w którym jest nieosiągalny, automatycznie przywróci zapisaną migawkę ... pomaga również, jeśli możesz zarządzać routerem, ale musisz przywrócić do znanego dobra config w pośpiechu.
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#
Widzimy, że Looback100 istnieje ...
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#
Widzimy różnice wymagane do wycofania do ostatniego archiwum konfiguracji ...
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#
Teraz możemy potwierdzić zatwierdzenie ... oznacza to, że nie cofamy się automatycznie, jeśli upłynie 10-minutowy zegar.
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#
Cofnięcie transakcji CLI
Załóżmy, że po tym znajdziemy problem config confirm
. Cofnijmy się do starej konfiguracji, którą zarchiwizowaliśmy ...
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#
Teraz Loopback100 nie istnieje w uruchomionej konfiguracji. Konfiguracja jest dokładnie taka, jaka była, kiedy zrobiliśmy naszą pierwszą migawkę.
SW1#sh runn int lo100
^
% Invalid input detected at '^' marker.
SW1#
Gdy nastąpi wycofanie, konfiguracja jest blokowana przed jakąkolwiek inną aktywnością config. W przypadku błędu lub jakiegoś nieprzewidywalnego zdarzenia, dobrym pomysłem jest mieć go configuration mode exclusive auto expire [timeout-in-seconds]
w swojej konfiguracji podczas korzystania z tej funkcji. Podoba mi się maksymalna wartość limitu czasu wynosząca 600 sekund ... oznacza to, że maksymalny czas, w którym można zablokować konfigurację, wynosi 10 minut.
Nota historyczna
Początkowo Juniper był pierwszym dużym dostawcą, który wdrożył funkcje przywracania konfiguracji. Pracowałem wtedy dla Cisco, a nasze konta sprzedaży krzyczały o tę funkcję w Cisco IOS. Nadal pamiętam edykty wewnętrzne znaczących graczy w firmie, którzy powiedzieli: „w Cisco IOS jest to niemożliwe”.
Oczywiście, przy wystarczającej wytrwałości (i kilku latach w środku) mamy to w IOS ... chodzi o to, że nie zakładaj, że pierwsze „nie, nie możemy tego zrobić” naprawdę jest poprawne.