Cisco IOSでの構成バックアップの自動化(毎分)


16

Ciscoルータに1分ごとにコピー実行TFTPを自動的に実行させます(およびフィールドに自動的にデータを入力します)。また、バックグラウンドで実行したいです。これが可能かどうか、誰がそれを行うかを知っていますか?これは、ルーターの実行中の構成をnotepad ++(リアルタイムに更新)で表示するために、show runを実行してスペースバーを4回または5回押してから必要なものに到達するためです。これは、複雑なラボでは非常に役立つと思います。また、入力が必要なTFTPサーバーコマンドのため、マクロは機能しません。


3
1分に1回は本当に必要ですか?また、CLIで正規表現を使用してビルトインフィルタリングを使用して、表示する実行コンフィギュレーションの部分をフィルタリングすることも検討しましたか?すなわち| includeまたは| exclude?実行中の構成を「リアルタイム」で表示できることの有用性を確認するのに苦労しています。
ジョンジェンセン

トポロジとCLIウィンドウ(タブとラベル付き)を備えたモニターが1つ必要です。デバイスのすべての実行コンフィギュレーションをリアルタイムで表示する2番目のモニター。すべての実行コンフィギュレーションをリアルタイムで確認できるため、トラブルシューティング、比較、コマンドブロックのコピー/貼り付けが大幅に簡単になります。特に、ルートマップステートメントとACLを深く理解するときは、show run |と入力する必要がないという大きなメリットがあります。■ルートマップを数回確認して、構成のこの部分を別のデバイスと比較します。これが便利だと思うのに苦労して申し訳ありませんが、それぞれに推測します。
マイケル13

@JohnJensen良い点、私は毎分部分をキャッチしませんでした。クリスチャン、実行中の構成をテキストドキュメントで開くのではなく、2番目のモニターでデバイスに対して2番目の別のsshセッションを開くだけでよいと考えましたか?AのCLIセッションで変更を監視し、BのCLIセッションで構成を表示します。1つの方法を他の方法よりも優れているとは言わず、ただアイデアをそこに投げるだけです。:)
ブレットライキンズ

Brett、「show running-config」はリアルタイム出力を生成しません。変更を行うたびにshow runを再度入力する必要があり、スペースバーを数回押すと、すべての構成が表示されます。目標は、ユーザーの介入なしに変更を行うとすぐに更新される完全な実行中の構成を持つことです。
マイケル13

@ChristiandelaPeña私はあなたをフォローします、私はただ、異なる人々が異なる方法で働くと言っています。私は個人的に、あなたが説明している方法でライブアップデートの設定をする必要性を感じていないと思います。それが間違っているわけではなく、私が働いている方法だけではありません。:)私はあなたにあなたがしたいこと、あなたがしたいことをするためのツールを与えたいです。あなたが研究と学習をしている限り、それは私にとって重要なことです。
ブレットライキンズ

回答:


19

Ciscoデバイスでこのタイプの機能を使用するには、いくつかのオプションがあります。(どちらを使用するかは、ニーズと、場合によってはデバイスとIOSの負荷によって異なります。一部の古いデバイス/ IOSの負荷は異なる機能を持ちます。)

編集: あなたはこれを1分ごとに行うことを求めていますが、この質問についてのチャットで見つけたように、あなたのルーターを動かなくなってしまいます。(特にGNS3で。)次のオプションは、confirguationバックアップを自動化するために使用できますが、1分ごとに行うことはお勧めしません。

次のいずれかが可能です。

  1. コマンドのスケジューリングには、シスコのKron機能を使用してください。これにより、事前定義されたコマンドをスケジュールに基づいて実行できます。あなたが指摘したように、copy run tftpファイルプロンプトの確認が必要です。(ファイルプロンプトの確認をオフにしていない限り、通常の設定としてはお勧めしません。)リダイレクトには確認は不要です。したがって、スケジューラで使用されるコマンドはshow run | redirect tftp://$SERVERIP/$PATH/$FILE

  2. 構成管理には、シスコのアーカイブ機能を使用してください。アーカイブは、構成の複数のコピーを順次に保存し、必要に応じて構成を以前のバージョンにロールバックする方法です。Kronでコピーアウトすると、以前の構成が上書きされますが、アーカイブでは、指定した場所に最大14の異なる構成バージョンを保持できます。アーカイブの詳細については、シスコラーニングネットワークのこのリンクを参照してください。具体的には、$ hおよび$ tタグを使用してファイル名を動的に設定する方法。

以下のサンプルのいずれかで、ニーズに合わせて時間を調整できます。これらは、私がいくつかの生産ギアからすぐに引き出したものです。


Kronに週1回設定を書き込み、tftpサーバーにバックアップさせるためのサンプル設定:

kron occurrence SaveConfig at 23:50 Mon recurring
policy-list SaveConfig
!
kron occurrence BackupRunningConfig at 23:55 Mon recurring
policy-list BackupRunningConfig
!
kron policy-list SaveConfig
cli write
!
kron policy-list BackupRunningConfig
cli show running-config | redirect tftp://10.10.10.10/configs/testswitch.txt

アーカイブが毎日tftpサーバーに設定をバックアップするためのサンプル設定:

archive
 path tftp://10.10.10.10/configs/$h-$t
 time-period 1440
 maximum 14

12

実際には別の方法があります。

SNMPを使用してTFTPコピーをトリガーできます。そうではありませんひどくまっすぐ進むが、非常に便利です。

まず、TFTPサーバーが必要です(当然)。snmpリクエストを送信できるものも必要です。Linuxのsnmpツールで効果的に実行しました。

書き込みアクセスが制限されているSNMPの新しいコミュニティをセットアップし、IP ACLでさらにロックダウンすることをお勧めします。実際、ccCopyTableOID に書き込むことができる必要があるだけです。

Linux側では、次のMIBが必要です(機能性ではなく読みやすさのため)

CISCO-CONFIG-COPY-MIB
CISCO-SMI
CISCO-ST-TC

LinuxのSNMP構成に関連する場所にMIBをインストールすると、snmptableとの接続をテストできます。

snmptable -v2c -c writeCommunity 192.168.1.1 ccCopyTable
CISCO-CONFIG-COPY-MIB::ccCopyTable: No entries

通常、ルーターをコピーするために、TFTPサーバーにファイルを事前に作成する必要があります。

TFTPコピーをトリガーするには、に行を挿入する必要がありますccCopyTable

snmpset これを行うことができます。

# snmpset -v2c -c writeCommunity 192.168.1.1 \
> ccCopyProtocol.23 i tftp \
> ccCopySourceFileType.23 i runningConfig \
> ccCopyDestFileType.23 i networkFile \
> ccCopyServerAddress.23 a 192.168.1.100 \
> ccCopyFileName.23 s router.conf

CISCO-CONFIG-COPY-MIB::ccCopyProtocol.23 = INTEGER: tftp(1)
CISCO-CONFIG-COPY-MIB::ccCopySourceFileType.23 = INTEGER: runningConfig(4)
CISCO-CONFIG-COPY-MIB::ccCopyDestFileType.23 = INTEGER: networkFile(1)
CISCO-CONFIG-COPY-MIB::ccCopyServerAddress.23 = IpAddress: 192.168.1.100
CISCO-CONFIG-COPY-MIB::ccCopyFileName.23 = STRING: router.conf

これを行うと、最初のコマンドを再実行して、ccCopyTableのコピーコマンドを確認できるはずです。

snmptable -v 2c -c writeCommunity 192.168.1.1 ccCopyTable

SNMP table: CISCO-CONFIG-COPY-MIB::ccCopyTable

 index Protocol SourceFileType DestFileType ServerAddress    FileName UserName
    23     tftp  runningConfig  networkFile     192.168.1.100 router.conf        ?

SNMP table CISCO-CONFIG-COPY-MIB::ccCopyTable, part 2

 index UserPassword NotificationOnCompletion State TimeStarted TimeCompleted
    23            ?                    false     ?           ?             ?

SNMP table CISCO-CONFIG-COPY-MIB::ccCopyTable, part 3

 index FailCause EntryRowStatus ServerAddressType ServerAddressRev1
    23         ?              ?              ipv4       "192.168.1.100"

行をアクティブにするためにccCopyTableに別の列を設定するまで、何も起こりません。

 snmpset  -v2c -c writeCommunity 192.168.1.1 \
> ccCopyEntryRowStatus.23 i active

ccCopyTableを再度チェックすると、StateとTimeStartedが更新され、ファイルがコピーされたことを反映していることがわかります。

ccCopyTableを空にする方法(必要な場合)など、以下のソースリンクに詳細があります。

Linuxサーバーからのスクリプトで同じ方法を使用してTFTPコピーをトリガーし、ファイルをgitにコミットして、リポジトリにプッシュします。すべて1つの迅速なプロセスです。

出典:http : //www.ciscozine.com/2013/08/22/how-to-save-configurations-using-snmp/

および http://bodgitandscarper.co.uk/networks/using-snmp-to-trigger-cisco-tftp-backups/


2
これは、私が最近RANCIDに切り替えてより多くのデバイスサポートを取得するまで、Panchoを使用して何年もやってきた方法です。RANCIDを強くお勧めします。純粋にバージョン管理もできるからです-'svn blame'を使用て、インターフェイスが全二重から自動に変更されことを確認するか、xか月間何も変更されていないことを証明します。
AnotherHowie

RANCIDはSVNではなくGitにチェックインできますか?
トム・オコナー

そうは思いません。CVSがデフォルトです。SVNはオプションです。書き込み専用、単一ブランチ、単一ユーザー(RANCID)のバージョン管理状況であるため、他の何かを使用することに特別な利点はありません。RANCID 3は現在作業中であるため、その部分を更新した可能性があります。ただし、perl、expect、shellなど、比較的古い形式のソフトウェアです。
AnotherHowie

チェックしたばかりで、RANCID 3には新しいVCオプションが記載されていません。ここではgossamer-threads.com/lists/rancid/users/6555#6555
AnotherHowie

2

EEMを使用できます

例:

event manager applet dumpconfig
 event timer {absolute time time-value | countdown time time-value | cron cron-entry cron-entry | watchdog time time-value} [name timer-name]
 action 1.0 cli command "enable"
 action 2.0 cli show running-config | redirect tftp://10.10.10.10/configs/testswitch.txt
 action 998.0 cli command "end"
 action 999.0 cli command "exit"

のみNX-OS上で、私は...疑う
トム・オコナー

1
@Tom、私はネクサスを持っていません(残念ながら;-))、IOSでサポートされています...私はすべてのルーターとすべてのスイッチのほとんどでEEMがサポートされていると思います:たとえば、EEMをサポートしていないモデルが1つしかありません- 2950、ただし2960年代、3560、3750(EおよびEではない)、4500、4948、6500でサポートされています。
pyatka

2

これを行うにはRANCIDを使用できます。

構成のバージョン管理、電子メールの差分、その他の便利な機能(デフォルトではハードウェアインベントリを取得するため、ハードウェアが変更された場合はアラートが表示されます)など、いくつかの便利な機能があります。

これは、これまでに投入したすべてのスイッチとルーター(Cisco / Juniper / Dell)で機能しますが、これはもう1つのプラスです。


1

このようなperlスクリプトを使用できます。使用法:perl cisco_backup.pl "my-enable-password"


1
リンクのみの投稿は、その有用性が制限されています。このソリューションの関連部分を回答に追加できますか?
ライアンフォーリー

可能であれば、コマンドラインにパスワードを入力しないでください。代わりに環境を使用してください。
クーガー

0

fetchconfigはこのための別のツールです。

fetchconfigは、複数のデバイスの構成を取得するためのPerlスクリプトです。LinuxおよびWindowsでテストされており、現在、Cisco IOS、Cisco Catalyst、Cisco ASA、Cisco PIX、FortiGate Firewalls、ProCurve、Alcatel Ethernet Router(aka Riverstone)、Dell PowerConnect Switches、Terayon 3200 /などのさまざまなデバイスをサポートしています3500 CMTS、Datacom DmSwitchスイッチ、HP MSRルーター、Mikrotikルーター、Tellabs MSRルーター、Juniper EX Switch JunOS、Oracle Acme Packet、Audiocodes Mediant、Cisco IOS XR、NEC Univerge IX。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.