CLI basado en transacciones en conmutadores Ethernet

10

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?

Editar:

De acuerdo a lo pedido:

Hoja de datos RX5000

Operaciones de CLI de punto de control

modesto
fuente
¿Alguna respuesta te ayudó? Si es así, debe aceptar la respuesta para que la pregunta no siga apareciendo para siempre, buscando una respuesta. Alternativamente, puede proporcionar y aceptar su propia respuesta.
Ron Maupin

Respuestas:

10

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 archivehabilitado 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 Loopback100con 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.

Mike Pennington
fuente
Gracias por el ejemplo Una cosa no estaba clara para mí ... ¿Los cambios (en este caso, el bucle invertido) se activan de inmediato tan pronto como escribe los comandos o se activan una vez que confirma las transacciones (configurar confirmación).
modesto
@modest, Cisco aplica los comandos de inmediato; cuando haces un config confirm, solo le estás diciendo al enrutador que no quieres revertir esos cambios automáticamente. Por supuesto, es completamente posible hacer cambios sin una reversión programada. De cualquier manera, los comandos están inmediatamente activos.
Mike Pennington
1

Tu suposición es correcta. En ambos casos, puede revertir los comandos de configuración a un punto conocido si no funcionan como se esperaba.

Ron Trunk
fuente
Entendido. Sin embargo, puede lograr el efecto simplemente cargando el archivo de configuración anterior (suponiendo que lo guarde antes de comenzar a hacer cambios) en caso de que las cosas salgan mal. ¿Me estoy perdiendo de algo?
modesto
@modest Recargar la configuración anterior no eliminará los comandos que requieren "no <cmd>". Por ejemplo, si aplica una lista de acceso a una interfaz con el comando "ip access-group 100 in" y luego escribe "copy start run" para volver a cargar la configuración, eso no eliminará la lista de acceso.
Ron Trunk
La otra cosa que hace esta característica (al menos en Cisco y Juniper) es permitirle configurar un temporizador de reversión. Cuando caduque el temporizador, la configuración se revertirá por sí sola. Esto es útil si ha realizado algún cambio que le haga perder la capacidad de comunicación del dispositivo. No es que haya hecho eso :(
Ron Trunk