Interfejs CLI oparty na transakcjach na przełącznikach Ethernet

10

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?

Edytować:

Zgodnie z prośbą:

Arkusz danych RX5000

Transakcje CLI Checkpoint

skromny
źródło
Czy jakaś odpowiedź ci pomogła? jeśli tak, powinieneś zaakceptować odpowiedź, aby pytanie nie wyskakiwało wiecznie, szukając odpowiedzi. Alternatywnie możesz podać i zaakceptować własną odpowiedź.
Ron Maupin

Odpowiedzi:

10

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 archivewłą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 Loopback100za 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.

Mike Pennington
źródło
Dzięki za przykład. Jedna rzecz nie była dla mnie jasna ... Czy zmiany (w tym przypadku sprzężenie zwrotne) są aktywowane natychmiast po wpisaniu poleceń, czy też są aktywowane po potwierdzeniu transakcji (konfiguracja potwierdź).
skromny
@modest, Cisco natychmiast stosuje polecenia; kiedy to zrobisz config confirm, po prostu mówisz routerowi, że nie chcesz automatycznie przywracać tych zmian z powrotem. Oczywiście, jest całkowicie możliwe wprowadzanie zmian bez czasowego wycofywania. Tak czy inaczej, polecenia są natychmiast aktywne.
Mike Pennington
1

Twoje założenie jest prawidłowe. W obu przypadkach można cofnąć polecenia konfiguracji do znanego punktu, jeśli nie działają one zgodnie z oczekiwaniami.

Ron Trunk
źródło
Zrozumiany. Możesz jednak osiągnąć ten efekt, po prostu ładując poprzedni plik konfiguracyjny (zakładając, że zapiszesz go przed rozpoczęciem wprowadzania zmian) na wypadek, gdyby coś poszło nie tak. Czy coś mi umyka?
skromny
@modest Ponowne załadowanie poprzedniej konfiguracji nie spowoduje usunięcia poleceń wymagających „no <cmd>”. Na przykład, jeśli zastosujesz listę dostępu do interfejsu za pomocą polecenia „ip access-group 100 in”, a następnie wpiszesz „copy start run”, aby ponownie załadować konfigurację, nie spowoduje to usunięcia listy dostępu.
Ron Trunk
Inną rzeczą, którą robi ta funkcja (przynajmniej w Cisco i Juniper), jest możliwość ustawienia timera wycofywania. Po upływie czasu konfiguracja sama się przywróci. Jest to przydatne, jeśli wprowadziłeś jakąś zmianę, która powoduje utratę łączności z urządzeniem. Nie, żebym kiedykolwiek to zrobił :(
Ron Trunk