Estoy familiarizado con CLI en conmutadores Ethernet administrados. Sin embargo, recientemente me encontré con un término 'CLI basado en transacciones' en los conmutadores. No estoy exactamente seguro de qué es eso y el propósito de tenerlo en los interruptores. ¿Es similar a las transacciones de la base de datos donde puede desenrollar todos los comandos antes de confirmarlos?
- El RX5000 habla de la capacidad de revertir los cambios de forma incremental, como puede hacerlo en una base de datos.
- El enlace de punto de control que mencionó alude a lo mismo, pero especifica que los comandos de configuración discretos se pueden agrupar en una sola acción "commit".
Transacciones de CLI de Cisco con archivo de configuración y reversión
Estas capacidades son muy similares a las que se encuentran en otras partes de la industria ... por ejemplo, en un enrutador Cisco, puede confirmar cambios en las transacciones reversibles, si ha archive
habilitado la configuración en ejecución de 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#
No hay un Loopback100 configurado en este momento ...
SW1#sh runn int lo100
^
% Invalid input detected at '^' marker.
SW1#
Ejemplo de transacción CLI configurar y confirmar
Configuremos Loopback100
con un temporizador de reversión de 10 minutos, observe nuestros cambios desde la instantánea de configuración, confirme los cambios y luego retroceda. Si el temporizador de reversión caduca sin confirmar la configuración, volverá automáticamente a nuestro último config archive
(que también ocurre cuando realiza config terminal revert
).
Estas transacciones son valiosas, porque si controla completamente la configuración de su enrutador hasta el punto de que es inalcanzable, se revertirá automáticamente a su instantánea guardada ... también ayuda si puede administrar el enrutador pero necesita retroceder a un bien conocido config a toda prisa.
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#
Podemos ver que Looback100 existe ...
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#
Podemos ver los diferenciales necesarios para revertir al último archivo de configuración ...
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#
Ahora podemos confirmar la confirmación ... esto significa que no retrocederá automáticamente si el temporizador de 10 minutos expira.
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#
Retraso de transacción de CLI
Supongamos que encontramos un problema después config confirm
. Volvamos a la configuración anterior que archivamos ...
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#
Ahora Loopback100 no existe en la configuración en ejecución. La configuración es exactamente la que era cuando tomamos nuestra primera instantánea.
SW1#sh runn int lo100
^
% Invalid input detected at '^' marker.
SW1#
Cuando ocurre una reversión, la configuración se bloquea de cualquier otra actividad de configuración. En caso de un error, o algún evento impredecible, es una buena idea tener configuration mode exclusive auto expire [timeout-in-seconds]
en su configuración al usar esta función. Me gusta el valor de tiempo de espera máximo de 600 segundos ... esto significa que el tiempo máximo de bloqueo de la configuración es de 10 minutos.
Nota historica
Originalmente, Juniper fue el primer proveedor importante en implementar funciones de reversión de configuración. En ese momento trabajaba para Cisco, y nuestras cuentas de ventas estaban pidiendo esta característica en Cisco IOS. Todavía recuerdo edictos internos de jugadores importantes de la compañía, que dijeron "es imposible en Cisco IOS".
Por supuesto, con suficiente persistencia (y un par de años en el medio) lo tenemos en iOS ... el punto es, no asuma que el primer "no, no podemos hacer eso" realmente es correcto.