Nexus9000 Series Checkpoint(rollback出来るようにconfigを保存する機能)について解説

Cisco
スポンサーリンク

 

スポンサーリンク

一般的なNWの設定変更の場合

通常、設定変更を行う場合にはconf t(configure terminal)を実行して、コンフィグレーションモードに入ることで設定変更を行うことが可能です。

設定を変えた場合には、コマンドを投入した瞬間から設定が反映されるので、理解せずにコマンドを投入すると即時に影響が出る恐れがありました。

また、思わずエンターキーを押すなどのヒューマンエラーによっても予期しない状態でコマンドが入ってしまう恐れがありました。

今回は、そうしたことを防ぐ機能である second-stage configuration commitについて紹介したいと思います。

使用方法

非常に簡単です。
configure dual-stageを実行して、設定投入時にはcommitを投入するだけです。

実際に試してみた例が下記となります。

Router1# configure dual-stage
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config-dual-stage)#
Router1(config-dual-stage)#
Router1(config-dual-stage)# inte
interface intersight
Router1(config-dual-stage)# interface loopback 100
Router1(config-dual-stage-if)# ip address 100.100.100.100
Router1(config-dual-stage-if)# ip address 100.100.100.100/32
Router1(config-dual-stage-if)#
Router1(config-dual-stage-if)# shutdown
Router1(config-dual-stage-if)#
Router1(config-dual-stage-if)# co
commit congestion-control control-plane copp
Router1(config-dual-stage-if)#
Router1(config-dual-stage-if)# commit
Verification Succeeded.Proceeding to apply configuration. This might take a while depending on amount of configuration in buffer.
Please avoid other configuration changes during this time.
Configuration committed by user ‘admin’ using Commit ID : 1000000001
Router1(config-dual-stage)#

運用時の注意点

使用するとディスク容量を多少使用するため、定期的に削除した方が良いです。

clear configuration commits diskspace 1

これを投入することで、最新版のcommit IDから指定した値の数だけ削除することができます。

Router1# clear configuration commits diskspace 1
Deleting 1 rollback points from ‘1000000001’ to ‘1000000001’
12 KB of disk space will be freed.
Continue with deletion (yes/no)? [no] yes
Router1#
Router1# clear configuration commits diskspace 1
There are no rollback points to delete
Router1# clear configuration commits diskspace 1

Commit IDを確認する

commit IDを確認したい場合は下記となります。

Router1# show configuration commit list
SNo. Label/ID User Line Client Time Stamp
—- ———— ———— ———— ———- ———-
1 1000000001 admin /dev/pts/3 CLI Fri Nov 24 14:18:55 2023

COMMIT IDを使用したロールバック

fileやcheckpointとして保存したファイル以外にもcommit IDを使用してconfigの状態を戻すことが可能です。
試しに、先ほど作成したinterface loopback 0を削除してみたいと思います。

Router1(config)# no interface loopback 0
Router1(config)#
Router1(config)#
Router1(config)#
Router1(config)# end
Router1#
Router1#

その後、rollback configuration toを使用して元に戻します。

Router1# ro
rollback routing-context
Router1# rollback configuration to ?
1000000001 Commit IDRouter1# rollback configuration to 1000000001
Rolling back to commitID :1000000001
ADVISORY: Rollback operation started… CTRL-C is disabled.
Modifying running configuration from another VSH terminal in parallel
is not recommended, as this may lead to Rollback failure.Rollback in progress
Configuration committed by rollback using Commit ID : 1000000002
Router1#
Router1# show running-config interface loopback 100
^
Invalid range at ‘^’ marker.
Router1# show running-config interface loopback 0!Command: show running-config interface loopback0
!Running configuration last done at: Fri Nov 24 14:21:35 2023
!Time: Fri Nov 24 14:21:52 2023version 10.3(1) Bios:version

interface loopback0
ip address 10.10.10.10/32

Router1#
Router1# show configuration commit list
SNo. Label/ID User Line Client Time Stamp
—- ———— ———— ———— ———- ———-
1 1000000001 admin /dev/pts/3 CLI Fri Nov 24 14:18:55 2023
2 1000000002 admin /dev/pts/3 Rollback Fri Nov 24 14:21:37 2023
Router1#

このように、任意のCOMMIT IDの時点まで戻すことが可能です。その場合はさらにCOMMIT IDが作成されます。

COMMITした設定を実機を使って動作確認したい場合(便利)

commitコマンドの後に時間を指定することができます。このコマンドを使用した場合、指定した時間を経過すると自動的にrollbackされます。

使用用途としては、動的ルーティング関連の設定変更や設定の削除などをしたい場合に、仮に影響があった場合は直ぐに戻したい場合などです。

最小値は30(秒)なので、30秒経過すると自動的に設定が戻るので、影響を最小限に防ぐことが可能です。
※そもそも、理解しないでコマンドを投入するのはNG

では、実際に試してみましょう。今回はloopback0にtestという名前で説明を追加します。そのあと、 commit confirmed 30を使用することで、30秒の間だけ設定が反映され、30秒経過した後は設定が元に戻ることを確認します。

Router1(config-dual-stage)# interface loopback 0
Router1(config-dual-stage-if)#
Router1(config-dual-stage-if)#
Router1(config-dual-stage-if)# de
default description
Router1(config-dual-stage-if)# description test
Router1(config-dual-stage-if)#
Router1(config-dual-stage-if)# commit ?
*** No matching command found in current mode, matching in (config) mode ***
<CR>
confirmed Rollback this commit unless there is a confirming commitRouter1(config-dual-stage-if)# commit confirmed 30
Verification Succeeded.Proceeding to apply configuration. This might take a while depending on amount of configuration in buffer.
Please avoid other configuration changes during this time.
Configuration committed by user ‘admin’ using Commit ID : 1000000003
Router1(config-dual-stage)# Confirm commit Timer expired, triggering rollback commit
Rollback in progress
Configuration committed by rollback using Commit ID : 1000000004Router1(config-dual-stage)# show configuration commit list
SNo. Label/ID User Line Client Time Stamp
—- ———— ———— ———— ———- ———-
1 1000000001 admin /dev/pts/3 CLI Fri Nov 24 14:18:55 2023
2 1000000002 admin /dev/pts/3 Rollback Fri Nov 24 14:21:37 2023
3 1000000003 admin /dev/pts/3 CLI Fri Nov 24 14:26:49 2023
4 1000000004 admin /dev/pts/3 Rollback Fri Nov 24 14:27:26 2023
Router1(config-dual-stage)#
Router1(config-dual-stage)# show running-config interface loopback 0!Command: show running-config interface loopback0
!Running configuration last done at: Fri Nov 24 14:27:23 2023
!Time: Fri Nov 24 14:28:35 2023

version 10.3(1) Bios:version

interface loopback0
ip address 10.10.10.10/32

このように、30秒経過すると自動的に設定情報が元に戻ります。戻った時に自動的に新たなCOMMIT IDが付与されます。
NW設定変更に伴い機器への通信が不可能になる可能性がある作業については、このコマンドを使用して動作確認してから実際に機器への設定を反映させることで、データセンター駆け付けといった最悪の事態を防ぐことが出来ます。
この機能、WANルータにあると良いんですけどね。

コメント