Cisco IOSアーカイブ機能

大規模な紹介は書きませんが、ArchiveはIOS 12.3(4)で導入された便利なツールであり、いくつかの問題を解決するのに役立つとしか言いません。



  1. 自動保存構成
  2. 設定モードで入力された各コマンドのロギング
  3. 構成の比較とロールバック


自動保存構成



1.構成のストレージパス。 回転



次のように、アーカイブ構成のストレージパスを指定できます。



SW1#conf t Enter configuration commands, one per line. End with CNTL/Z. SW1(config)#archive SW1(config-archive)#path tftp://10.0.5.1/ SW1(config-archive)#end SW1#
      
      





もちろん、ローカルストア(flash:、disk0:、sup-bootflash:、nvram :)に保存できますが、デバイスが停止した場合に構成を復元する方法は?



次に、アーカイブを手動で作成してみます。



 SW1#archive config ! SW1#
      
      





注意: 「archive config」コマンドは、現在のデバイス構成(running-config)を正確にアーカイブし、running-configをstartup-configに保存しません。



結果はこの名前のファイルです:







なぜこれで? 構成アーカイブファイルのデフォルト名は「 [string]-<timestamp>-№ 」であるため:



 SW1#show archive The maximum archive configurations allowed is 10. The next archive file will be named tftp://10.0.5.1/-<timestamp>-1 Archive # Name 1 tftp://10.0.5.1/-Jan-11-15-44-33.695-0 <- Most Recent 2 ...... 10
      
      





ローカルストレージを使用して構成ファイルをアーカイブすることにした場合、ファイルの数を制限することは理にかなっています。 最大14個まで指定できます。この例では、unixストレージを使用しています。UnetLABでIOU / IOLを使用しているためです。



 SW1(config-archive)#path unix: SW1(config-archive)#maximum 5
      
      





この場合、アーカイブパスをローカルに変更し、5ファイルの制限を設定した後、6番目のアーカイブを作成しようとすると、最も古いアーカイブファイルが削除されます。



しかし、リモートTFTPサーバーに保存されるアーカイブ構成の数を制限しようとした場合:



 SW1(config-archive)#maximum 3 Cannot set maximum when backing up to network path
      
      





アーカイブパスがネットワークの場合、制限を設定することはできません。ファイルを流し込むサーバーによって制限する必要があります。



2.自動アーカイブ。 クロン



パスについてはすべて明らかですが、アーカイブを自動的に作成する必要があります。 「アーカイブ」のコンテキストで「書き込みメモリ」コマンドを使用すると、実行構成を起動構成に保存するときに自動アーカイブが有効になります。



 SW1(config-archive)#write-memory SW1(config-archive)#end SW1#write mem Building configuration... Compressed configuration from 1177 bytes to 843 bytes[OK]! SW1#copy running-config startup-config Destination filename [startup-config]? Building configuration... Compressed configuration from 1177 bytes to 843 bytes[OK]! SW1#
      
      





「wr mem」または「copy run start」を使用するかどうかは関係ありません-アーカイブが作成されます。 この例では、コマンドを使用した後、2つのファイルが作成されました。



running-configをstartup-configにコピーするときのアーカイブは適切ですが、定期的なコピーが必要な場合はどうでしょうか? アーカイブが実行される分間隔を示す「期間」コマンドを使用できます。 たとえば、値10080を使用して、毎週アーカイブできます。 毎分自動アーカイブの結果は次のとおりです。



 SW1(config)#archive SW1(config-archive)#time-period 1 SW1(config-archive)#! SW1(config-archive)#end SW1#
      
      









特定の時間間隔ではなく、特定の時間にアーカイブする必要がある場合はどうなりますか? 答えはkronです。 クロンは、政治とシェドラーによって決定されます。 構文は直感的であるため、例を使用して簡単に表示できます。



ポリシーを設定しましょう:



 SW1(config)#kron policy-list CONFIG_BACKUP SW1(config-kron-policy)#cli wr mem SW1(config-kron-policy)#exit
      
      





^これは実行されるコマンドです



重要な点を考慮する価値があります。kronは、cliコマンドの対話型コマンドをサポートしていないため、対話が必要です。 たとえば、「copy run start」は保存するファイル名を要求するため、kronでは機能しません。 したがって、「wr mem」を使用する必要があります。



スケジューラを設定しましょう:



 SW1(config)#kron occurrence CONFIG_BACKUP_SCHED ? at Date of kron occurrence eg. 14:30 Feb 13 in Delta time to kron occurrence SW1(config)#kron occurrence CONFIG_BACKUP_SCHED at ? hh:mm Time of day for occurrence (hh:min eg. 14:30) SW1(config)#kron occurrence CONFIG_BACKUP_SCHED at 10:00 ? <1-31> Day of month DAY Day of Week eg mon, tue, etc MONTH Month of year eg jan, feb, etc oneshot Schedule kron occurrence exactly once recurring Schedule kron occurrence repeatedly SW1(config)#kron occurrence CONFIG_BACKUP_SCHED at 10:00 recurring Clock currently not set it reads 16:25:44 UTC Wed Jan 11 2017 SW1(config-kron-occurrence)#policy-list CONFIG_BACKUP SW1(config-kron-occurrence)#end SW1#
      
      





どこで:



CONFIG_BACKUP_SCHED-シェダーの名前。

atおよびin-明らかに、それぞれ特定の時間または特定の間隔で実行されます。 atの場合、時刻は{hh:mm [月] [日] [曜日]}のように示されます。 私の例では、実行は毎日です。

oneshotrecurring-それぞれ1回または定期的に実行します。 ドキュメントには、IOSの一部のバージョンでシステム起動オプションも利用できる、つまり、 起動時の実行

policy-list CONFIG_BACKUP-動作するポリシーを示します。



したがって、私の例では、「wr mem」コマンドは毎日10:00に実行され、これには構成のアーカイブが必要になります(アーカイブ設定に従って)。



これはほぼkronの構成になります。



 SW1#show running-config | section kron kron occurrence CONFIG_BACKUP_SCHED at 10:00 recurring policy-list CONFIG_BACKUP kron policy-list CONFIG_BACKUP cli wr mem
      
      





3.構成アーカイブの名前の変数。 タイムスタンプ



アーカイブファイルの名前はあまり意味がありません。 ファイル名は「-<timestamp>-№」のように形成されることを上で述べました。 あなたが作る場合:







非常に読みやすい名前ではなく、ミリ秒は明らかに不要です。 これは次の結果です。



 SW1#show running-config | section timestamp service timestamps debug datetime msec service timestamps log datetime msec
      
      





読み取り可能なファイル表示を設定するには、タイムスタンプ形式を修正する必要があります(タイムゾーンも指定します)。



 SW1(config)#clock timezone Golf +7 SW1(config)#service timestamps log datetime year localtime show-timezone
      
      





ファイルは次のようになります。







すなわち 「月-日-年-時-分-秒-時間帯のベルトファイル番号」。

コマンド「service timestamps」の形式から、たとえば年やタイムゾーンを削除する方法は非常に明確です。



ホスト名は何ですか? 明確にするために、次のフォームを使用できます。



 SW1(config)#archive SW1(config-archive)#path tftp://10.0.5.1/SW1 SW1(config-archive)#end SW1#show archive The maximum archive configurations allowed is 10. The next archive file will be named tftp://10.0.5.1/SW1-<timestamp>-0 .....
      
      





次に、ご覧のとおり、ファイル名は「SW1」というテキストと一時的なスタンプで構成されます。 どのデバイスから構成が明らかになります。 ただし、ホスト名が変更された場合は、アーカイブでこの設定を手動で変更する必要があります。 ホスト名を格納する$ h変数を使用できます。 ちなみに、 $ t変数はタイムスタンプを保存しますが、iOS 15では<timestamp>が自動的にファイル名に置き換えられます。 IOS 12では、エントリ「path tftp://10.0.5.1/$h-$t」を使用する必要がありますが、これで十分です。



 SW1(config)#archive SW1(config-archive)#path tftp://10.0.5.1/$h SW1(config-archive)#end SW1#
      
      





そして結果:







入力したコマンドのログ記録



「アーカイブ」機能を使用すると、構成ファイルをアーカイブできるだけでなく、入力された構成コマンドをアーカイブすることもできます。 デバイスの構成を変更するコマンド、および「enable」コマンド(つまり、誰かが特権モードに入ると、これもログに記録されます)。



「履歴の表示」との違いは明らかです(履歴は個人的なコマンドのみをリストします)。 しかし、例を使って示す方が良いです:



 SW1(config)#archive SW1(config-archive)#log config SW1(config-archive-log-cfg)#logging enable SW1(config-archive-log-cfg)#logging size 200 SW1(config-archive-log-cfg)#hidekeys
      
      





logging enable-構成コマンドのログを有効にします。

ロギングサイズ-格納されるコマンドの最大数。

hidekeys-ログに記録されたコマンドを表示するときにパスワードを非表示にします。



すべての外観:



 SW1#show archive log config all idx sess user@line Logged command 1 1 mark@console | logging enable 2 1 mark@console | logging size 200 3 1 mark@console | hidekeys 4 2 mark@console |username greg privilege 1 secret ***** 5 2 mark@console |!config: USER TABLE MODIFIED 6 0 greg@vty0 |!exec: enable
      
      





すなわち ユーザー名(私の場合はマークとgreg)、アクションが実行された行、「enable」コマンドも表示されますが、作成されたgregのパスワードは表示されません(意図したとおり)。



 SW1(config-archive-log-cfg)#notify syslog
      
      





また、およそ次のメッセージでsyslogサーバーに通知します(設定されている場合、またはコンソールとモニターに注ぐ場合)。



 *Jan 12 2017 17:12:30 Golf: %PARSER-5-CFGLOG_LOGGEDCMD: User:mark logged command:interface Ethernet0/3 *Jan 12 2017 17:12:32 Golf: %PARSER-5-CFGLOG_LOGGEDCMD: User:mark logged command:no shutdown
      
      





セッションごとに各ユーザーの情報を表示することもできます。







ただし、ここでは、このコンテキストでのセッションが端末を構成するためのログインセッションであることを考慮する必要があります。 すなわち 3セッションとは、マークがログアウトされたことを意味するものではなく、構成モードを終了したことを意味するだけです。



さらにいくつかの例:







構成の比較。 ロールバック構成



1.構成の比較



iOSのアーカイブ機能とともに、構成を比較するための便利な機能が登場しました。 たとえば、startup-configをtftpサーバーの構成と比較します。



 SW1#$show archive config differences nvram:startup-config tftp://10.0.5.1/SW1-Jan-13-2017-10-00-00-Golf-3 Loading SW1-Jan-13-2017-10-00-00-Golf-3 from 10.0.5.1 (via Vlan1): ! [OK - 1483 bytes] !Contextual Config Diffs: +service timestamps log datetime localtime show-timezone year +username greg secret 4 WGWXTgqyMqk91MhF3Gz5CQdMnLHU4clSthRczGfB2dY +clock timezone Golf 7 0 +archive +log config +logging enable +logging size 200 +hidekeys +path tftp://10.0.5.1/$h +write-memory +kron occurrence CONFIG_BACKUP_SCHED at 10:00 recurring +policy-list CONFIG_BACKUP +kron policy-list CONFIG_BACKUP +cli wr mem -service timestamps log datetime msec
      
      





+は、行が2番目に指定された構成ファイル(つまり、SW1-Jan-13-2017-10-00-00-Golf-3)にあるが、最初の行(startup-configにはない)であることを意味します);



-行は最初の構成ファイル(startup-config)にありますが、2番目(SW1-Jan-13-2017-10-00-00-Golf-3)にはありません。



running-configをリモートtftpサーバー上の同じ構成ファイルと比較するには、次のコマンドを使用します。



 SW1#show archive config differences system:running-config tftp://10.0.5.1/SW1-Jan-13-2017-10-00-00-Golf-3
      
      





running-configとstartup-configを比較するには、短いエントリを使用します。



 SW1#show archive config differences !Contextual Config Diffs: interface Ethernet0/3 -shutdown
      
      





実際、これはコマンド「 アーカイブ構成の違いを表示するシステム:running-config nvram:startup-config 」です。

さて、この場合、eth0 / 3インターフェースが現在の構成で管理上無効にされているという点でのみrunがstartと異なることは明らかです。



構成ファイルを指定した「show archive config incremental-diffs」コマンドは、このファイルから実行するコピー操作中にrunning-configに追加される行を表示します。



 SW1#$ show archive config incremental-diffs tftp://10.0.5.1/SW1-Jan-13-2017-10-00-00-Golf-3 Loading SW1-Jan-13-2017-10-00-00-Golf-3 from 10.0.5.1 (via Vlan1): ! [OK - 1483 bytes] !List of Commands: service timestamps log datetime localtime show-timezone year username greg secret 4 WGWXTgqyMqk91MhF3Gz5CQdMnLHU4clSthRczGfB2dY clock timezone Golf 7 0 archive log config logging enable logging size 200 hidekeys path tftp://10.0.5.1/$h write-memory kron occurrence CONFIG_BACKUP_SCHED at 10:00 recurring policy-list CONFIG_BACKUP kron policy-list CONFIG_BACKUP cli wr mem end
      
      





ただし、running-configのコピーはconfigure replaceとまったく同じではないことに注意してください



たとえば、startup-configを見ると:



 SW1#show archive config differences !Contextual Config Diffs: interface Ethernet0/3 -shutdown SW1#show archive config incremental-diffs nvram:startup-config !List of Commands: end !No changes were found
      
      





すなわち 「差異」は実行時にeth0 / 3が無効であることを示しますが、「増分開始」は「開始開始実行」を現在の構成にコピーすると何も追加されないことを示します。 すなわち このコマンドでは、running-configをstartup-configにロールバックしません。



2.ロールバック構成



vtyを使用する場合、一部のユーザーは「reload in [min]」コマンドを使用して、現在の構成でエラーが発生してデバイスへのアクセスが失われた場合、デバイスは特定の時間間隔後に自動的に再起動し、変更はstartup-configにロールバックされます。



アーカイブを使用すると、デバイスを再起動せずにこのような問題を解決できます-遅延ロー​​ルバック実行構成。



注意:ロールバックを使用するには、構成のアーカイブを構成する必要があります。 たとえば、これ:



 SW1#show running-config | section archive archive log config logging enable logging size 200 hidekeys path tftp://10.0.5.1/$h write-memory
      
      





a。 特定の時間間隔でのロールバック



機器の構成に進みます。 「configure terminal revert timer」コマンドでロールバックタイマーを事前設定します。



 SW1#configure terminal revert timer 20 !Rollback Confirmed Change: Backing up current running config to tftp://10.0.5.1/SW1-Jan-13-2017-16-16-30-Golf-1 Enter configuration commands, one per line. End with CNTL/Z. SW1(config)# *Jan 13 2017 16:16:30 Golf: %ARCHIVE_DIFF-5-ROLLBK_CNFMD_CHG_BACKUP: Backing up current running config to tftp://10.0.5.1/SW1-Jan-13-2017-16-16-30-Golf-1 *Jan 13 2017 16:16:30 Golf: %ARCHIVE_DIFF-5-ROLLBK_CNFMD_CHG_START_ABSTIMER: User: mark: Scheduled to rollback to config tftp://10.0.5.1/SW1-Jan-13-2017-16-16-30-Golf-1 in 20 minutes
      
      





ご覧のとおり、running-configは10.0.5.1/SW1-Jan-13-2017-16-16-30-Golf-1にアーカイブされ、このファイルへのロールバックは20分間延期されました。



次に、たとえば、変更を行います(eth0 / 3を無効にします):



 SW1(config)#interface ethernet 0/3 SW1(config-if)#shutdown SW1(config-if)#end SW1#show running-config | section interface ..... interface Ethernet0/3 shutdown duplex auto .....
      
      





ロールバックの1分前に時間が経過すると、iOSが警告します:



 SW1#Rollback Confirmed Change: Rollback will begin in one minute. Enter "configure confirm" if you wish to keep what you've configured *Jan 13 2017 16:26:38 Golf: %ARCHIVE_DIFF-5-ROLLBK_CNFMD_CHG_WARNING_ABSTIMER: System will rollback to config tftp://10.0.5.1/SW1-Jan-13-2017-16-16-30-Golf-1 in one minute. Enter "configure confirm" if you wish to keep what you've configured
      
      





分が期限切れになり、ロールバックが発生します(実際、「configure replace」):



      (  configure replace): SW1#Rollback Confirmed Change: rolling to:tftp://10.0.5.1/SW1-Jan-13-2017-16-16-30-Golf-1 Loading SW1-Jan-13-2017-16-16-30-Golf-1 from 10.0.5.1 (via Vlan1): ! [OK - 1483 bytes] Loading SW1-Jan-13-2017-16-16-30-Golf-1 from 10.0.5.1 (via Vlan1): ! [OK - 1483 bytes] !Pass 1 !List of Rollback Commands: interface Ethernet0/3 no shutdown end Total number of passes: 1 Rollback Done
      
      





私たちはチェックします:



 SW1#sh run | section interface ..... interface Ethernet0/3 duplex auto .....
      
      





Eth0 / 3は無効ではありません。 ロールバックに成功しました。



b。 残り時間。 インスタントロールバック



「show archive config rollback timer」コマンドを使用して、ロールバックが見つかるまでの残り時間に関する情報:



 SW1#configure terminal revert timer 10 !Rollback Confirmed Change: Backing up current running config to tftp://10.0.5.1/SW1-Jan-13-2017-16-40-36-Golf-2 Enter configuration commands, one per line. End with CNTL/Z. SW1(config)#end SW1#show archive config rollback timer Time configured(or reconfigured): 16:40:36 Golf Fri Jan 13 2017 Timer type: absolute timer Timer value: 10 min User: mark
      
      





残り時間は表示されませんが、間隔が設定された時間と間隔自体の長さ、つまり 数えることができます。



間隔を変更する方法-減らすか増やすか? 「configure revert timer」コマンド:



 SW1#configure revert timer 5 SW1# *Jan 13 2017 16:43:50 Golf: %ARCHIVE_DIFF-5-ROLLBK_CNFMD_CHG_RESET_ABSTIMER: User: mark: Reset Rollback Confirmed Change timer(absolute) to 5 minute SW1#show archive config rollback timer Time configured(or reconfigured): 16:43:50 Golf Fri Jan 13 2017 Timer type: absolute timer Timer value: 5 min User: mark
      
      





実際、このコマンドは何も追加も削除もせず、単に現在の瞬間から新しい間隔を設定します。



インスタントロールバックの作成方法 「今すぐ元に戻す」コマンド:



 SW1#configure revert now Rollback Confirmed Change: rolling to:tftp://10.0.5.1/SW1-Jan-13-2017-16-40-36-Golf-2 Loading SW1-Jan-13-2017-16-40-36-Golf-2 from 10.0.5.1 (via Vlan1): ! [OK - 1483 bytes] Loading SW1-Jan-13-2017-16-40-36-Golf-2 from 10.0.5.1 (via Vlan1): ! [OK - 1483 bytes] Total number of passes: 0 Rollback Done
      
      





まあ、私はこの場合に変更はありませんでした。 これは「configure replace」と同じです。ロールバックする必要がある設定のみを指定できません。



c。 ロールバックをキャンセルする方法



ロールバック間隔を設定し、変更を加え、現在の構成に満足しているとします。 ロールバックの実行構成をキャンセルする方法は? 「configure confirm」コマンド:



 SW1#configure confirm SW1# *Jan 13 2017 16:48:42 Golf: %ARCHIVE_DIFF-5-ROLLBK_CNFMD_CHG_CONFIRM: User: mark: Confirm the configuration change
      
      





「構成確認」は、実行を保存して開始するのではなく、単にロールバックをキャンセルするだけであることを明確に理解する必要があります。



注意:設定を確認した後、つまり ロールバックをキャンセルするには、「アーカイブ設定のロールバックタイマーを表示する」をチェックする必要があります。 答えは次のようになります。



 SW1#show archive config rollback timer %No Rollback Confirmed Change pending
      
      





PS記事全体でこれについて何度も言及しましたが、最後に繰り返します。configurereplaceのようなロールバックは、running-configのロールバックであり、他のファイルはありません。



All Articles