CLI на основе транзакций для коммутаторов Ethernet

10

Я знаком с CLI на управляемых коммутаторах Ethernet. Однако недавно я встретил термин «CLI на основе транзакций» на коммутаторах. Я не совсем уверен, каково это и цель наличия его в выключателях. Это похоже на транзакции базы данных, где вы можете развернуть все команды перед их фиксацией?

Редактировать:

Как просили:

RX5000 Технические данные

Транзакции CLI контрольной точки

скромный
источник
Вам помог какой-нибудь ответ? Если это так, вы должны принять ответ, чтобы вопрос не появлялся вечно, ища ответ. Кроме того, вы можете предоставить и принять свой собственный ответ.
Рон Мопин

Ответы:

10

Я знаком с 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 ... суть в том, что не думайте, что первое "нет, мы не можем этого сделать" действительно правильно.

Майк Пеннингтон
источник
Спасибо за пример. Одна вещь мне не была понятна ... Активируются ли изменения (в данном случае зацикливание) сразу после ввода команд или они активируются после подтверждения транзакций (настройка подтверждения).
скромный
@modest, Cisco применяет команды немедленно; когда вы делаете config confirm, вы просто сообщаете маршрутизатору, что не хотите автоматически откатывать эти изменения. Конечно, можно вносить изменения без своевременного отката. В любом случае, команды немедленно активны.
Майк Пеннингтон
1

Ваше предположение верно. В обоих этих случаях вы можете откатить команды конфигурации до известной точки, если они не работают должным образом.

Рон Транк
источник
Понял. Тем не менее, вы можете добиться эффекта, просто загрузив предыдущий файл конфигурации (при условии, что вы сохранили его, прежде чем начать вносить изменения) в случае, если что-то пойдет не так. Я что-то здесь упускаю?
скромный
@modest Перезагрузка предыдущей конфигурации не приведет к удалению команд, требующих "no <cmd>". Например, если вы примените список доступа к интерфейсу с помощью команды «ip access-group 100 in», а затем наберете «copy start run», чтобы перезагрузить конфигурацию, это не приведет к удалению списка доступа.
Рон Трунк
Другая вещь, которую делает эта функция (по крайней мере на Cisco и Juniper), позволяет вам устанавливать таймер отката. По истечении времени таймера конфигурация откатится сама собой. Это полезно, если вы внесли какие-то изменения, которые приведут к потере связи с устройством. Не то, чтобы я когда-либо делал это :(
Ron Trunk