Conosco CLI su switch Ethernet gestiti. Tuttavia, recentemente mi sono imbattuto in un termine "CLI basato sulle transazioni" sugli switch. Non sono esattamente sicuro di cosa sia questo e lo scopo di averlo negli switch. È simile alle transazioni del database in cui è possibile srotolare gli interi comandi prima di eseguirli?
- Il RX5000 sta parlando della possibilità di cambiamenti Revert in modo incrementale, come è possibile in un database.
- Il link Checkpoint che hai citato allude alla stessa cosa, ma specifica che i comandi di configurazione discreti possono essere raggruppati in un'unica azione "commit".
Transazioni CLI Cisco con archivio di configurazione e rollback
Queste funzionalità sono molto simili a quelle che si trovano altrove nel settore ... ad esempio su un router Cisco, è possibile eseguire modifiche nelle transazioni reversibili, se sono state archive
abilitate nella configurazione in esecuzione di 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#
Non esiste un Loopback100 configurato in questo momento ...
SW1#sh runn int lo100
^
% Invalid input detected at '^' marker.
SW1#
Esempio di transazione CLI configurare e confermare
Configuriamo Loopback100
con un timer di rollback di 10 minuti, esaminiamo le nostre modifiche dall'istantanea di configurazione, confermiamo le modifiche e quindi eseguiamo il rollback. Se il timer di rollback scade senza confermare la configurazione, tornerà automaticamente al nostro ultimo config archive
(che si verifica anche quando si esegue config terminal revert
).
Queste transazioni sono preziose, perché se si configura completamente la configurazione del router al punto da renderla irraggiungibile, tornerà automaticamente all'istantanea salvata ... aiuta anche se è possibile gestire il router ma è necessario ripristinare un valore noto config in fretta.
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#
Possiamo vedere che Looback100 esiste ...
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#
Possiamo vedere le differenze richieste per il rollback all'ultimo archivio di configurazione ...
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#
Ora possiamo confermare il commit ... questo significa che non eseguiamo automaticamente il rollback se scade il timer di 10 minuti.
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#
Rollback della transazione CLI
Supponiamo di trovare un problema dopo config confirm
. Torniamo alla vecchia configurazione che abbiamo archiviato ...
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#
Ora Loopback100 non esiste nella configurazione in esecuzione. La configurazione è esattamente come quando abbiamo scattato la nostra prima istantanea.
SW1#sh runn int lo100
^
% Invalid input detected at '^' marker.
SW1#
Quando si verifica un rollback, la configurazione viene bloccata da qualsiasi altra attività di configurazione. In caso di un bug o di un evento imprevedibile è una buona idea avere configuration mode exclusive auto expire [timeout-in-seconds]
nella propria configurazione quando si utilizza questa funzione. Mi piace il valore di timeout massimo di 600 secondi ... ciò significa che il tempo massimo di blocco della configurazione è di 10 minuti.
Nota storica
Originariamente, Juniper è stato il primo fornitore principale a implementare funzionalità di rollback di configurazione. All'epoca lavoravo per Cisco e i nostri account di vendita urlavano per questa funzione in Cisco IOS. Ricordo ancora gli editti interni di importanti attori dell'azienda, che dicevano "è impossibile in Cisco IOS".
Certo, con abbastanza persistenza (e un paio d'anni nel mezzo) ce l'abbiamo in IOS ... il punto è, non dare per scontato che il primo "no, non possiamo farlo" sia davvero corretto.