Я знайомий з CLI на керованих комутаторах Ethernet. Однак нещодавно я натрапив на термін "CLI на транзакції" на комутаторах. Я не точно впевнений, що це і мета, щоб це було в комутаторах. Це схоже на транзакції з базами даних, де ви можете розгортати цілі команди, перш ніж виконувати їх?
- Rx5000 говорить про здатність до змін повертаються в покроково, як ви можете в базі даних.
- Посилання Checkpoint, яке ви згадали, натякає на одне і те ж, але вони вказують, що окремі команди конфігурації можуть бути об'єднані в одну дію "фіксація".
Транзакції Cisco CLI з архівом конфігурації та відкатом
Ці можливості дуже схожі на те, що ви знаходите в інших галузях промисловості ... наприклад, на маршрутизаторі Cisco ви можете вносити зміни в оборотні транзакції, якщо ви archive
ввімкнули конфігурацію 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#
Зараз не налаштовано Loopback100 ...
SW1#sh runn int lo100
^
% Invalid input detected at '^' marker.
SW1#
Приклад налаштування та підтвердження транзакцій CLI
Давайте налаштуємося Loopback100
за допомогою 10-хвилинного таймера відкату, подивимось на зміни, які відбулися з моменту знімка конфігурації, підтвердимо зміни та повернемося назад. Якщо таймер відкату закінчиться без підтвердження конфігурації, він автоматично повернеться до нашого останнього config archive
(що також відбувається під час виконання config terminal revert
).
Ці транзакції є цінними, тому що якщо ви повністю шлангуєте конфігурацію вашого маршрутизатора до того, що він недоступний, він автоматично повернеться до збереженого знімка ... Це також допоможе, якщо ви можете керувати маршрутизатором, але вам потрібно відкатати до відомого товару конфігурація поспішає.
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#
Ми можемо бачити, що Looback100 існує ...
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#
Ми можемо побачити різниці, необхідні для відкату до останнього архіву конфігурації ...
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#
Тепер ми можемо підтвердити зобов’язання ... це означає, що ми не відмовляємось автоматично, якщо закінчується 10-хвилинний таймер.
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#
Відкат транзакцій CLI
Припустимо, ми знайдемо проблему після config confirm
. Давайте повернемося до старої конфігурації, яку ми архівували ...
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#
Тепер Loopback100 не існує в запущеній конфігурації. Конфігурація саме така, якою вона була, коли ми зробили перший знімок.
SW1#sh runn int lo100
^
% Invalid input detected at '^' marker.
SW1#
Коли відбувається відкат, конфігурація блокується від будь-якої іншої діяльності конфігурації. У випадку помилки чи іншої непередбачуваної події, корисно мати configuration mode exclusive auto expire [timeout-in-seconds]
цю конфігурацію під час використання цієї функції. Мені подобається максимальне значення тайм-ауту 600 секунд ... це означає, що максимальний час блокування конфігурації - 10 хвилин.
Історична записка
Спочатку Juniper був першим головним постачальником, який розгорнув функції відкату конфігурації. У той час я працював у Cisco, і наші рахунки продажів кричали за цю функцію в Cisco IOS. Я все ще пам’ятаю внутрішні редакції значних гравців компанії, які сказали, що «в Cisco IOS це неможливо».
Звичайно, з достатньою наполегливістю (і через пару років у середині) у нас це є в IOS ... справа в тому, що не вважайте, що перше "ні, ми не можемо цього зробити" дійсно правильно.