例:イベントへの応答としてインターフェイス設定を変更する
特定のイベントに応答して構成を変更する必要がある場合があります。Junos OS リリース 12.1 以降では、1 つ以上の特定のイベントによってイベント ポリシーがトリガーされたときに、設定の変更を行い、コミットするようにイベント ポリシーを設定できます。
この例では、RPM(リアルタイム パフォーマンス監視)プローブを使用して、特定のインターフェイスのPING_TEST_FAILEDイベントを生成します。設定されたRPMプローブから60秒以内に3つのPING_TEST_FAILEDイベントの最初のインスタンスを受信すると、イベントポリシーは変更設定イベントポリシーアクションを実行し、設定を変更して、指定されたインターフェイスを管理的に無効にします。ネットワーク パフォーマンスに一貫して影響を与える不安定でフラッピングのインターフェイスがある場合、このタイプのアクションが必要になる場合があります。
要件
Junos OS リリース 12.1 以降を実行するルーティング、スイッチング、またはセキュリティ デバイス。
概要
この例では、 disable-interface-on-ping-failure という名前のイベントポリシーを作成します。イベントポリシーは、特定のRPMプローブによって生成され、ge-0/3/1インターフェイスに関連付けられたPING_TEST_FAILEDイベントをリッスンするように設定されています。指定されたインターフェイスに対して 60 秒以内に 3 つのPING_TEST_FAILEDイベントが発生した場合、イベント ポリシーは変更設定アクションを実行します。イベント ポリシー設定コマンドは、インターフェイスを管理上無効にします。
この例では、イベント ポリシーをテストするために、ge-0/3/1 インターフェイスに関連付けられた IP アドレスに ping を実行する RPM プローブを設定します。この例では、ge-0/3/1.0 インターフェイスに IPv4 アドレス 10.1.4.1/26 を設定しています。デフォルトでは、テストごとに 1 つのプローブが送信され、この例ではテスト間で 5 秒間の一時停止を使用します。3回連続してプローブロスが発生すると、RPMプローブはPING_TEST_FAILEDイベントを生成します。複数のRPMテストを同時に実行できるため、イベントポリシーは、受信したPING_TEST_FAILEDイベントのとtest-name
属性をRPMプローブの所有者名とテスト名に一致owner-name
させます。RPMプローブが60秒間隔で3つのPING_TEST_FAILEDイベントを生成すると、イベントポリシーがトリガーされ、インターフェイスが無効になります。
このイベント ポリシーは、同じイベントまたは相関イベントが発生するため、同じ構成変更の実行を複数回制限する方法も示します。この例では、 ステートメントは、 within 60 trigger on 3
設定変更が60秒以内にPING_TEST_FAILEDイベントの3回目の出現にのみトリガーされるように指定します。ステートメントは trigger until 4
、PING_TEST_FAILED イベントがそれ以降出現しても、イベント ポリシーを再トリガーしないように指定します。
条件のみを設定するとtrigger on 3
、コミット操作がループに入る可能性があります。と のtrigger on 3
trigger until 4
組み合わせにより、イベント ポリシーが同じ設定変更を繰り返し行うのを防ぎます。
構成
RPM プローブの設定
CLI クイックコンフィギュレーション
この例のセクションを迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set services rpm probe icmp-ping-probe test ping-probe-test probe-type icmp-ping set services rpm probe icmp-ping-probe test ping-probe-test target address 10.1.4.1 set services rpm probe icmp-ping-probe test ping-probe-test test-interval 5 set services rpm probe icmp-ping-probe test ping-probe-test thresholds successive-loss 3 set system syslog file syslog-event-daemon-info daemon info
手順
RPMプローブを設定するには、この例のPING_TEST_FAILEDイベントを作成します。
所有者 icmp-ping-probe を使用して ping-probe-test という名前の RPM プローブを作成します。
[edit services rpm] bsmith@R1# set probe icmp-ping-probe test ping-probe-test
ICMPエコーリクエストを送信するようにRPMプローブを設定します。
[edit services rpm probe icmp-ping-probe test ping-probe-test] bsmith@R1# set probe-type icmp-ping
RPMプローブを設定して、IPアドレス10.1.4.1のge-0/3/1インターフェイスにICMPエコーリクエストを送信します。
[edit services rpm probe icmp-ping-probe test ping-probe-test] bsmith@R1# set target address 10.1.4.1
テスト ウィンドウ間で 5 秒間の一時停止を構成します。
[edit services rpm probe icmp-ping-probe test ping-probe-test] bsmith@R1# set test-interval 5
3 回連続してプローブ損失が発生した後にPING_TEST_FAILEDイベントがトリガーされるように、RPM プローブしきい値を設定します。
[edit services rpm probe icmp-ping-probe test ping-probe-test] bsmith@R1# set thresholds successive-loss 3
階層レベルで新しいログファイルを
[edit system syslog]
設定し、ファシリティdaemon
と重大度のsyslogイベントを記録しますinfo
。プローブ テスト中に送信されたイベントをキャプチャします。
[edit system syslog] bsmith@R1# set file syslog-event-daemon-info daemon info
設定をコミットします。
bsmith@R1# commit
結果
設定モードから、 および show system syslog
コマンドを入力して設定をshow services
確認します。出力結果に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
[edit] services { rpm { probe icmp-ping-probe { test ping-probe-test { probe-type icmp-ping; target address 10.1.4.1; test-interval 5; thresholds { successive-loss 3; } } } } } system { syslog { file syslog-event-daemon-info { daemon info; } } }
イベントポリシーの設定
CLI クイックコンフィギュレーション
この例のセクションを迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set event-options policy disable-on-ping-failure events ping_test_failed set event-options policy disable-on-ping-failure within 60 trigger on set event-options policy disable-on-ping-failure within 60 trigger 3 set event-options policy disable-on-ping-failure within 65 trigger until set event-options policy disable-on-ping-failure within 65 trigger 4 set event-options policy disable-on-ping-failure attributes-match ping_test_failed.test-owner matches icmp-ping-probe set event-options policy disable-on-ping-failure attributes-match ping_test_failed.test-name matches ping-probe-test set event-options policy disable-on-ping-failure then change-configuration commands "set interfaces ge-0/3/1 disable" set event-options policy disable-on-ping-failure then change-configuration user-name bsmith set event-options policy disable-on-ping-failure then change-configuration commit-options log "updating configuration from event policy disable-on-ping-failure"
手順
イベントポリシーを作成し、名前を付けます。
[edit] bsmith@R1# edit event-options policy disable-interface-on-ping-failure
PING_TEST_FAILED イベントで一致させるイベント ポリシーを構成します。
[edit event-options policy disable-interface-on-ping-failure] bsmith@R1# set events ping_test_failed
3つのPING_TEST_FAILEDイベントが60秒以内に発生したときにトリガーするようにポリシーを設定します。
[edit event-options policy disable-interface-on-ping-failure] bsmith@R1# set within 60 trigger on 3
ステートメントを
within 65 trigger until 4
設定して、3つ以上のPING_TEST_FAILEDイベントが発生した場合にポリシーが再トリガーされないようにします。[edit event-options policy disable-interface-on-ping-failure] bsmith@R1# set within 65 trigger until 4
attributes-match
イベントポリシーが、関連するRPMプローブによって生成されたPING_TEST_FAILEDイベントによってのみトリガーされるように、 ステートメントを設定します。[edit event-options policy disable-interface-on-ping-failure] bsmith@R1# set attributes-match ping_test_failed.test-owner matches icmp-ping-probe bsmith@R1# set attributes-match ping_test_failed.test-name matches ping-probe-test
イベント ポリシーがトリガーされた場合に実行される設定モード コマンドを指定します。
各コマンドを1行で設定し、コマンド文字列を引用符で囲み、完全なステートメントパスを指定します。
[edit event-options policy disable-interface-on-ping-failure then change-configuration] bsmith@R1# set commands "set interfaces ge-0/3/1 disable"
オプションを
log
設定し、設定変更を記述したコメントを付けます。関連付けられたイベント ポリシーを通じてコミット操作が成功した後、コメントがコミット ログに追加されます。
[edit event-options policy disable-interface-on-ping-failure then change-configuration] bsmith@R1# set commit-options log "updating configuration from event policy disable-interface-on-ping-failure"
(オプション)デュアル ルーティング エンジンがある場合は、 オプションを
synchronize
設定して、両方のルーティング エンジンで設定をコミットします。警告をforce
無視して、他のルーティング エンジンでコミットを強制する オプションを含めます。この例では、 およびforce
オプションはsynchronize
設定しません。(オプション)設定変更とコミットが行われる権限を持つユーザー名を設定します。
ユーザー名を指定しない場合、アクションはユーザー
root
として実行されます。[edit event-options policy disable-interface-on-ping-failure then change-configuration] bsmith@R1# set user-name bsmith
設定変更が行われる前に、
show interfaces ge-0/3/1
動作モード コマンドの出力を確認します。メモ:インターフェイスは有効にする必要があります。
bsmith@R1> show interfaces ge-0/3/1 Physical interface: ge-0/3/1, Enabled, Physical link is Up Interface index: 142, SNMP ifIndex: 531 ...
設定をコミットします。
bsmith@R1# commit
結果
設定モードから、 コマンドを入力して設定を show event-options
確認します。出力結果に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
[edit event-options] policy disable-interface-on-ping-failure { events ping_test_failed; within 60 { trigger on 3; } within 65 { trigger until 4; } attributes-match { ping_test_failed.test-owner matches icmp-ping-probe; ping_test_failed.test-name matches ping-probe-test; } then { change-configuration { commands { "set interfaces ge-0/3/1 disable"; } user-name bsmith; commit-options { log "updating configuration from event policy disable-interface-on-ping-failure"; } } } }
検証
設定が正しく機能していることを確認します。
イベントの検証
目的
イベント ポリシーを手動でテストするには、3 つのPING_TEST_FAILEDイベントが生成されるまで ge-0/3/1 インターフェイスをオフラインにします。
アクション
設定した syslog ファイルを確認します。RPMプローブが、連続して失われたプローブの後にPING_TEST_FAILEDイベントを生成することを確認します。
bsmith@R1> show log syslog-event-daemon-info Oct 7 15:48:54 R1 rmopd[1345]: PING_TEST_COMPLETED: pingCtlOwnerIndex = icmp-ping-probe, pingCtlTestName = ping-probe-test Oct 7 15:49:54 R1 rmopd[1345]: PING_TEST_COMPLETED: pingCtlOwnerIndex = icmp-ping-probe, pingCtlTestName = ping-probe-test ... Oct 7 15:52:54 R1 rmopd[1345]: RMOPD_ICMP_SENDMSG_FAILURE: sendmsg(ICMP): No route to host Oct 7 15:52:54 R1 rmopd[1345]: PING_PROBE_FAILED: pingCtlOwnerIndex = icmp-ping-probe, pingCtlTestName = ping-probe-test Oct 7 15:52:54 R1 rmopd[1345]: PING_TEST_FAILED: pingCtlOwnerIndex = icmp-ping-probe, pingCtlTestName = ping-probe-test Oct 7 15:52:57 R1 rmopd[1345]: PING_TEST_FAILED: pingCtlOwnerIndex = icmp-ping-probe, pingCtlTestName = ping-probe-test Oct 7 15:53:00 R1 rmopd[1345]: PING_TEST_FAILED: pingCtlOwnerIndex = icmp-ping-probe, pingCtlTestName = ping-probe-test
コミットの検証
目的
コミット ログとメッセージ ログ ファイルを確認して、イベント ポリシーのコミット操作が成功したことを確認します。
アクション
運用モード コマンドを show system commit
発行して、コミット ログを表示します。
bsmith@R1> show system commit 0 2011-10-07 15:53:00 PDT by bsmith via junoscript updating configuration from event policy disable-interface-on-ping-failure 1 2011-09-02 14:16:44 PDT by admin via netconf 2 2011-07-08 14:33:46 PDT by root via other
メッセージのログ ファイルを確認します。
bsmith@R1> show log messages | last 20 Oct 7 15:52:54 R1 rmopd[1345]: RMOPD_ICMP_SENDMSG_FAILURE: sendmsg(ICMP): No route to host Oct 7 15:53:00 R1 file[9972]: UI_COMMIT: User 'bsmith' requested 'commit' operation (comment: updating configuration from event policy disable-interface-on-ping-failure) Oct 7 15:53:02 R1 eventd: EVENTD_CONFIG_CHANGE_SUCCESS: Configuration change successful: while executing policy disable-interface-on-ping-failure with user bsmith privileges
意味
動作モードコマンドとメッセージログファイルからのshow system commit
出力により、Junos OSが設定されたイベントポリシーアクションを実行して設定を変更およびコミットしたことを確認します。指定された日時にユーザー・スミスの権限を受けてイベント・ポリシーを通じて行われたコミット操作は成功しました。出力とメッセージのログファイルはshow system commit
、 階層レベルの ステートメントでlog
指定されたコミットコメントを[edit event-options policy disable-interface-on-ping-failure then change-configuration commit-options]
参照します。
設定変更の検証
目的
設定の階層レベルを確認して、 [edit interfaces ge-0/3/1]
設定の変更を検証します。
アクション
bsmith@R1> show configuration interfaces ge-0/3/1 disable; unit 0 { family inet { address 10.1.4.1/26; } }
意味
ge-0/3/1の設定階層は、イベントポリシーを通じてステートメントを disable
追加するために変更されました。
インターフェイスのステータスの検証
目的
設定変更が行われた後、 show interfaces ge-0/3/1
動作モード コマンドの出力を確認します。
アクション
動作モード コマンドを show interfaces ge-0/3/1
発行します。イベントポリシー設定変更アクションがインターフェイスを無効にした後、ステータスは「Enabled」から「Administratively down」に変わります。
bsmith@R1> show interfaces ge-0/3/1 Physical interface: ge-0/3/1, Administratively down, Physical link is Down Interface index: 142, SNMP ifIndex: 531