HSRP 実践編:(12) HSRP とICMP リダイレクト(1) アクティブ・ルーター

これまでの説明では、Router-C だけIOS バージョン12.0 で動作させていましたが、このページでは全てのルーターをIOS バージョン12.4 とします。HSRP とICMP リダイレクトの協調機能が12.0 ではサポートされていないからです。

a
この機能がサポートされていないルーターはAdvertisement メッセージを送信することができません。
Advertisement を送信できないと、他のルーター(アクティブ、スタンバイ)に自身の存在を知らせることができないため、パッシブ・ルーターであるにもかかわらずリダイレクト先に選ばれてしまう可能性があります。

パッシブ・ルーターとは、スタンバイ・グループに参加しており、且つ、どのグループのアクティブ・ルーターにもなっていないルーターを指します。

Cisco は、(正常動作時に)パッシブ・ルーターが存在するようなネットワーク構成は、ミスコンフィグレーションだと言っています。



Cisco IOS IP Configuration Guide, Release 12.2 "Redirects to Passive HSRP Routers" から抜粋

A network configuration with passive HSRP routers is considered a misconfiguration. For HSRP ICMP redirection to operate optimally, every router on the network that is running HSRP should contain at least one active HSRP group.

ミスコンフィグレーションは少し言い過ぎのような気もします。

パッシブ・ルーターはアクティブ・ルーターになっているスタンバイ・ルーターがひとつもないルーターであり、リソースが有効に使われないのは事実です。「好ましくない構成」が妥当でしょう。

※ 『HSRPを究める:実践編(10) HSRP のアクティブ・ルーターに障害を発生させてみる(3)』でshutdown したRouter-A のインターフェイスs2/0 を、no shutdown しておいてください。

hsrp-b12-1.png
Router-A で、debug ip icmp を実行しておきます。

Router-A#debug ip icmp
ICMP packet debugging is on
Router-A#


PC-1 のデフォルト・ゲートウェイは、スタンバイ・グループ10 のバーチャル・ルーター(Router-A)に設定されています。

ここで、Router-A のインターフェイスs2/0 で、OSPF のコストを10000 に変更します。

Router-A#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-A(config)#interface serial 2/0
Router-A(config-if)#ip ospf cost 10000
Router-A(config-if)#^Z
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, 4 subnets
C 1.1.1.101 is directly connected, Loopback0
O 1.1.1.103 [110/11] via 192.168.1.103, 00:01:37, Ethernet0/0
O 1.1.1.102 [110/11] via 192.168.1.102, 00:01:37, Ethernet0/0
O 1.1.1.104 [110/75] via 192.168.1.103, 00:01:37, Ethernet0/0
[110/75] via 192.168.1.102, 00:01:37, Ethernet0/0
O 192.168.4.0/24 [110/74] via 192.168.1.103, 00:01:37, Ethernet0/0
O 192.168.5.0/24 [110/84] via 192.168.1.103, 00:01:37, Ethernet0/0
[110/84] via 192.168.1.102, 00:01:37, Ethernet0/0
C 192.168.1.0/24 is directly connected, Ethernet0/0
C 192.168.2.0/24 is directly connected, Serial2/0
O 192.168.3.0/24 [110/74] via 192.168.1.102, 00:01:37, Ethernet0/0
Router-A#


192.168.5.0/24 へ到達するためのネクスト・ホップが、Router-B、C のリアルIP アドレス(インターフェイスe0/0)に変わりました。

PC-1 からサーバー(192.168.5.105)へPing を打ちます。


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

Feb  8 08:48:18.935: ICMP: HSRP changing redirect sent to 192.168.1.201 for dest 192.168.5.105
Feb 8 08:48:18.935: ICMP: gw 192.168.1.103 -> 192.168.1.3, src 192.168.1.1
Feb 8 08:48:18.935: ICMP: Use HSRP virtual address 192.168.1.1 as ICMP src
Feb 8 08:48:18.935: ICMP: redirect sent to 192.168.1.201 for dest 192.168.5.105, use gw 192.168.1.3
Router-A#

1行目のメッセージで、Router-A はPC-1 へICMP リダイレクトを送信しようとします。

2行目で、ネクスト・ホップのゲートウェイをRouter-B のリアルIP(192.168.1.103)から、Router-B がアクティブ・ルーターとなっているスタンバイ・グループ30 のバーチャル・ルーター(192.168.1.3)へ変更しています。

ICMP リダイレクトの送信元IP アドレスも、本来はRouter-A のリアルIP アドレスですが、自身がアクティブ・ルーターとなっているスタンバイ・グループ10 のバーチャルIP アドレス(192.168.1.1)へ変更しています(3行目)。

※ 端末の実装によっては、デフォルト・ゲートウェイ(192.168.1.1)ではないルーターから送られてきたICMP リダイレクトを無視するものもあります。無視されてリダイレクトに失敗するのを回避するため、送信元IP アドレスをバーチャルIP アドレスに変更しています。

4行目で、ICMP リダイレクトをPC-1 へ送信しています。

PC-1 が192.168.5.105 へ到達するためのゲートウェイが、192.168.1.3 となりました。

Router-B に不具合が発生しても、他のルーターがアクティブ・ルーターとなることで通信を継続することができます。

hsrp-b12-2.png