HSRP 応用編:(3) IP の経路情報 をHSRP のトラッキング対象とする

これまで見てきたトラッキングは、インターフェイスのアップ・ダウンを対象としたものでした。HSRP が動作しているルーター自身の状況を監視していたわけです。

a

他のルータ-の状況をトラッキングしてHSRP の動作に反映させられれば、より柔軟な運用ができます。

オブジェクト・トラッキング機能は、特定の経路情報への到達性(Reachability)を対象にトラッキングすることもできます。

今回は、この機能を利用して、特定のルーターのループバック・インターフェイスをトラッキングします。

このページでは次のようなネットワークを使います。

hsrp-c3-1.png

※ この例で使うネットワークは、機能の理解を目的として簡略化しています。必ずしも最適な構成ではないことをご了承下さい。

※ これまでに設定したオブジェクト・トラッキングの設定は削除しておいてください。


Router-A とB の間でStandby Group 10 を作成して、PC-1 にデフォルト・ゲートウェイを提供しています。

全てが正常に動作しているとき、Router-A がアクティブ・ルーター、Router-B がスタンバイ・ルーターとなっています。

Router-C とD はインターネットへの出口となっており、それぞれ別なISP に接続しています。

すべてが正常に動作しているとき、Router-A が中継するデータはRouter-C を経由して、Router-B が中継するデータはRouter-D を経由してインターネットへ転送されます。

Router-C が使用不可となると、Router-A のルーティングテーブル上でインターネット宛のネクスト・ホップはRouter-B のインターフェイスe0/0(192.168.1.101)に切替わります。

それまでのPC-1 → Router-A → Router-C → インターネットという流れが、PC-1 → Router-A → Router-B → Router-D → Internet となります。

通信は継続できますが、スタンバイ・グループ10のアクティブ・ルーター はRouter-A のままです。

アクティブ・ルーターがRouter-B に切替われば、余計なホップ(Router-A)が介在することなくインターネットへの接続性を確保できます。


Router-A#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-A(config)#
track 1 ip route 1.1.1.5/32 reachability
Router-A(config-track)#exit
Router-A(config)#
track timer ip route 1
Router-A(config)#interface ethernet 0/0
Router-A(config-if)#
standby 10 track 1 decrement 10
Router-A(config-if)#

① トラッキング対象として、Router-C のLoopback 0 インターフェイス(1.1.1.5/32)への到達性を指定しています。到達性の有無は、Ping などによる診断ではなく、ルーティング・テーブル上のエントリの有無で確認します。

② ルーティング・テーブルを確認する間隔を1 秒に指定します。デフォルトは15 秒です。

③ オブジェクト(track 1)がダウンしたら(1.1.1.5/32 がルーティング・テーブルから消えたら)、スタンバイ・グループ10 のプライオリティを10下げるよう指定します。

では、実験を始めましょう。

その前に一つ。

今回は他のルーターの状況変化に連動して、HSRP のプライオリティを変化させます。
Router-A のコンソールでは状況を把握しにくいので、debug track を実行しておきましょう。

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

Router-A のルーティングテーブルを確認します。

Router-A#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

1.0.0.0/32 is subnetted, 7 subnets
C 1.1.1.1 is directly connected, Loopback0
O 1.1.1.3 [110/11] via 192.168.2.102, 00:00:07, Ethernet0/1
O 1.1.1.2 [110/11] via 192.168.1.101, 00:00:07, Ethernet0/0
O 1.1.1.5 [110/51] via 192.168.1.101, 00:00:07, Ethernet0/0
O 1.1.1.4 [110/21] via 192.168.1.101, 00:00:07, Ethernet0/0
O 192.168.4.0/24 [110/20] via 192.168.2.102, 00:00:07, Ethernet0/1
O 192.168.5.0/24 [110/30] via 192.168.1.101, 00:00:07, Ethernet0/0
C 192.168.1.0/24 is directly connected, Ethernet0/0
C 192.168.2.0/24 is directly connected, Ethernet0/1
O 192.168.3.0/24 [110/20] via 192.168.1.101, 00:00:08, Ethernet0/0
Router-A#


では、Router-C で障害を発生させてみましょう。

今回は、Router-C でIP ルーティングを無効にしてみますが、電源オフでも、Loopback0 のIP アドレスを削除するのでも良いです。

Router-C#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-C(config)#no ip routing
Router-C(config)#

OSPF のネイバーがダウンしたりと、HSRP とは関係ないメッセージが表示されますが、今回の実験とは関係ないので無視してください。

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

Router-A#
*Feb 11 12:44:32.361: Track: 1 Change #14 IP route 1.1.1.5/32, OSPF->no route, reachability Up->Down
Router-A#
*Feb 11 12:44:33.593: %HSRP-6-STATECHANGE: Ethernet0/0 Grp 10 state Active -> Speak
Router-A#
*Feb 11 12:44:43.593: %HSRP-6-STATECHANGE: Ethernet0/0 Grp 10 state Speak -> Standby
Router-A#
Router-A#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

1.0.0.0/32 is subnetted, 6 subnets
C 1.1.1.1 is directly connected, Loopback0
O 1.1.1.3 [110/11] via 192.168.2.102, 00:02:20, Ethernet0/1
O 1.1.1.2 [110/11] via 192.168.1.101, 00:02:20, Ethernet0/0
O 1.1.1.4 [110/21] via 192.168.1.101, 00:02:20, Ethernet0/0
O 192.168.4.0/24 [110/20] via 192.168.2.102, 00:02:20, Ethernet0/1
O 192.168.5.0/24 [110/30] via 192.168.1.101, 00:02:20, Ethernet0/0
C 192.168.1.0/24 is directly connected, Ethernet0/0
C 192.168.2.0/24 is directly connected, Ethernet0/1
O 192.168.3.0/24 [110/20] via 192.168.1.101, 00:02:22, Ethernet0/0
Router-A#


① Router-C(1.1.1.5/32)への到達性が失われたことを受けて、Track 1 をダウンさせました。

Track 1 がダウンしたことを受けて、スタンバイ・グループのプライオリティが10 下げられ90 になります。

② Router-B からプライオリティが95 のHello メッセージを受け取り、アクティブ・ルーターを辞めます。

③ スタンバイ・ルーターとなりました。

④ Router-A のルーティング・テーブルを見ると、1.1.1.5/32 が無くなっているのが確認できます。

hsrp-c3-2.png

トラッキング対象にできるオブジェクトはループバック・インターフェイスに限りません。

例えば、上の例でISP-1 からしか受け取らない経路情報がある場合、それをトラッキングすることでもアクティブ・ルーターの切り替えを行うことができます。