LoginSignup
0
0

More than 3 years have passed since last update.

HSRPをEnbedded Event Manager(EEM)で切り戻す

Posted at

はじめに

Cisco機器のゲートウェイ冗長化機能HSRPがありますが、切り替わりはともかく、切り戻す際にはどのように戻していますか?

各案件、各会社のポリシーなどにより、様々なやり方があるかと思います。

  • 自動で主系機器に切り戻す
  • 手動で主系機器に切り戻す
  • 切り戻しはせず、動いている機器側を使う

私が関わっていた案件では、何かしらの問題が生じて切り替わった場合、原因が判明するまでは切り戻したくない、また極力パケットは同じ経路を通るようにしたいお客様が多かったので、常に優先度が高いルータが選出されるようにするPreempt設定はせず、問題解決後、手動で主系機器に切り戻す方法をよく行っていました。

ただ、HSRPには意図的に切り替えを行うオペレーションコマンドが無いため、切り替えるためには、コンフィグレーションモードでインタフェースを落として切り替えたり、一時的にHSRPPreempt設定を加えて切り替えるしかありません。

一時的にでも設定変更するリスクが伴うため、ヒューマンエラーを減らすよう、以前私が使っていたEnbedded Event Manager(EEM)によるHSRPの切り戻しを紹介しようと思います。

Enbedded Event Managerとは

Cisco機器で使用できる機能で、カスタムコマンドの作成や特定イベント発生時にログ通知するようなことが行えるものとなります。

サーバで言うところのいわゆるシェルスクリプトによるコマンド実行にイメージが近いと思います。

Feature Setによっては使えないものもあったと思うので、もし使う場合は事前に調べてください。

カスタムコマンドの作成

今回は以下の操作を行うコマンドを作成します。

  • 指定HSRPグループの設定にPreempt設定を加える
  • 5秒待機
  • 指定HSRPグループの設定からPreempt設定を削除する

やっていることは手動で行う場合と同様なので、コンフィグレーションモードで一時的に設定変更するのと変わりませんが、カスタムコマンドを作っておけば管理者モードで実行できるのと、作業時のコマンド数が減るのでヒューマンエラーを減らせる利点があります。

また、主系機器への切り戻しを行うコマンドとなるので、本設定を行うのは主系となる機器のみ設定すれば良いです。
※従系機器に入っててもPriorityが低くて切り替わらないので、あっても問題ないですが。

今回は以下構成を想定してカスタムコマンドを作成していきます。

項目 設定
アプレット名 hsrp10failback
HSRP適用インタフェース GigabitEthernet0/1
HSRPグループID 10

アプレットの作成

EEMアプレットごとに定義を設定でき、各アプレットに複数の処理を設定できます。

今回はhsrp10failbackという名前のアプレットを作成して、カスタムコマンド用の設定を加えていきます。

「1.x」と書かれている部分は順番を表す数字となり、今回は0.1ずつ増やしていますが、昇順になっていればいくつでも構いません。

アプレットの作成
event manager applet hsrp10failback
 event none
 action 1.0 cli command "enable"
 action 1.1 cli command "configure terminal"
 action 1.2 cli command "interface GigabitEthernet0/1"
 action 1.3 cli command "standby 10 preempt"
 action 1.4 wait 5
 action 1.5 cli command "no standby 10 preempt"
 action 1.6 cli command "end"

尚、コマンド実行時に引数を渡して指定のHSRPグループIDの切り替えを行うといったことは(多分)できないので、複数のHSRPグループが存在する場合は、その分作成しましょう。

エイリアスの作成

EEMを実行する際にはevent manager run [アプレット名]の形式で実行する必要がありますが、長いので、エイリアスを設定して[アプレット名]のみで実行できるようにします。

エイリアスの作成
alias exec hsrp10failback event manager run hsrp10failback

設定出来たら、エイリアスを読み込むために一度ログアウト&ログインしておきましょう。

HSRP切り戻しコマンドの実行

管理者モードで以下コマンドを実行することで一時的にPreempt設定が行われるので、HSRPPriorityが高い機器へ切り戻されます。

カスタムコマンドの実行
hsrp10failback

おわりに

大分昔に使っていたやり方なので、もし今もう一度切り戻しツールを作るとしたらAnsibleなどで作ると思いますが、諸々の理由でAnsibleなどのツールが使えないという人のために残しておきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0