HSRP 応用編:(5) 特定のIP アドレスへの到達性をHSRP のトラッキング対象とする

これまでは、インターフェイスや特定のIP 経路情報をトラッキングして、アクティブ・ルーターの切り替えを行ってきました。

a

経路情報を使って特定のIP アドレスをトラッキングするには、そのIP アドレスのホスト・ルートを受け取ってルーティング・テーブルへ載せる必要があります。

自社内のルータのLoopback インターフェイスであれば、ホスト・ルートでも問題ありません。

しかし、他のルーターのインターフェイスに設定されている全てのIP アドレスをホスト・ルートで受け取るのは、現実的ではありません。

ルーター全体が使用不可となる状況はLoopback インターフェイスを監視することでトラッキング可能ですが、ルーターの特定インターフェイスに発生する障害を検出することはできません。

下図を見てください。Router-C のインターフェイスe0/1 はインターネットへの出口となっています。

hsrp-c5-1.png

Router-C 自体は稼動していても、このインターフェイスが使用不可となるとRouter-C を経由してインターネットへ接続することはできなくなります。

IOS バージョン12.3(14)T からサポートされているIP SLA(Service Level Agreement)機能を使うと、特定IP アドレスへの到達性をトラッキングできます。

まずは、Router-A でIP SLA を設定します。

Router-A#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-A(config)#ip sla monitor 1
Router-A(config-sla-monitor)#type echo protocol ipIcmpEcho 192.168.4.102
Router-A(config-sla-monitor-echo)#frequency 10
Router-A(config-sla-monitor-echo)#timeout 1000
Router-A(config-sla-monitor-echo)#exit
Router-A(config)#ip sla monitor schedule 1 life forever start-time now
Router-A(config)#

① IP SLA 番号を指定します(1 から2147483647 の間で指定できます)。

② IP SLA の計測には、応答時間を見るEcho、ホップ毎の遅延のゆらぎを見るJitter など数種類がありますが、今回はEcho を使用します。計測方法はtype に続けてecho と指定します。

IP SLA の計測には、HTTP、FTP、DNS、ICMP などさまざまプロトコルが使用できますが、計測方法にEcho を使う場合はICMP のみ使用可能です。

プロトコルは、protocol に続けてipIcmpEcho と指定します。ICMP の宛先に、Router-C のインターフェイスe0/1(192.168.4.102)を指定します。

③ ICMP Echo リクエストを送信する間隔を秒数で指定します。今回は10 秒にしました。

④ Router-C(192.168.4.102)からICMP Echo リプライが返ってこない場合のタイムアウト値を秒数で指定します。今回は1 秒にしました。

⑤ IP SLA による計測を実施するスケジュールを設定します。

先に作成したIP SLA 番号1 をschedule に続けて指定します。計測開始から何秒間継続するかをlife で指定します。今回は、管理者が停止させるまで継続しつづけるようforever を使います。

計測を開始する時刻をstart-time で指定します。今回は、即座に始めるようnow を使います。

ここまで終わると、Router-A は192.168.4.102へ10 秒間隔でPing を実行し始めます。

続けて、Router-A にオブジェクト・トラッキングを設定します。

Router-A(config)#track 1 rtr 1 
Router-A(config-track)#delay down 1 up 15
Router-A(config-track)#exit
Router-A(config)#interface ethernet 0/0
Router-A(config-if)#standby 10 track 1
Router-A(config-if)#

① rtr で、先ほど設定したIP SLA 番号1 をTrack 1 に割り当てます。

RTR はResponse Time Reporter の略です。

② Down Delay タイマー、Up Delay タイマーを設定します。

③ スタンバイ・グループ10 のトラッキング対象をTrack 1 に指定します。


設定は以上です。

Router-A で、debug track を実行しておきます。

Router-A#
Router-A#debug track
Router-A#

Router-C のインターフェイスe0/1 をshutdown します。

Router-C(config)#interface e0/1
Router-C(config-if)#shutdown
Router-C(config-if)#
*Feb 11 17:55:37.467: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.5 on Ethernet0/1 from FULL to DOWN, Neighbor Down: Interface down or detached
Router-C(config-if)#
*Feb 11 17:55:39.467: %LINK-5-CHANGED: Interface Ethernet0/1, changed state to administratively down
*Feb 11 17:55:40.467: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/1, changed state to down
Router-C(config-if)#

Router-C のインターフェイスe0/1 がダウンしました。

Router-A のコンソールです。

Router-A#
*Feb 11 18:04:38.391: Track: 1 Down change delayed for 1 secs
*Feb 11 18:04:39.391: Track: 1 Down change delay expired
*Feb 11 18:04:39.391: Track: 1 Change #4 rtr 1, state Up->Down
Router-A#
*Feb 11 18:04:41.091: %HSRP-6-STATECHANGE: Ethernet0/0 Grp 10 state Active -> Speak
Router-A#
*Feb 11 18:04:51.091: %HSRP-6-STATECHANGE: Ethernet0/0 Grp 10 state Speak -> Standby
Router-A#

① Router-C のインターフェイスe0/1(192.168.4.102)からICMP Echo リプライが返ってこなくなったのを受けて、Down Delay タイマーを稼動させました。

② Down Delay タイマーが満了しました。

③ Down Delay タイマーの満了を受けて警告を発します。

④ Track 1 からの警告を受けて、スタンバイ・グループ10 のプライオリティを10下げ、ステートがActive からSpeak へ遷移しました。

⑤ ステートがSpeak からStandby へ遷移しました。

hsrp-c5-2.png

トラッキングの対象はルーターのインターフェイスだけに限りません。サーバーを対象にトラッキングすることも可能です。