Я знаком с CLI на управляемых коммутаторах Ethernet. Однако недавно я встретил термин «CLI на основе транзакций» на коммутаторах. Я не совсем уверен, каково это и цель наличия его в выключателях. Это похоже на транзакции базы данных, где вы можете развернуть все команды перед их фиксацией?
- Rx5000 говорит о способности к изменениям возвращаемых в пошагово, как вы можете в базе данных.
- Checkpoint ссылка , которую вы упомянули намек на то же самое, но они указывают , что дискретные команды конфигурации могут быть сгруппированы в один «совершить» действие.
Транзакции CLI Cisco с архивом конфигурации и откатом
Эти возможности очень похожи на то, что вы найдете в других местах отрасли ... например, на маршрутизаторе 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 ... суть в том, что не думайте, что первое "нет, мы не можем этого сделать" действительно правильно.