はじめに
HSRPを有効化すると、ICMP redirectが無効化される といった記載をされている記事をよく目にしますが、この情報は古く、現在は動作が異なります。
詳細としては、IOS 12.1(3)T以前ではHSRPを有効化すると、ICMP redirectが無効化される実装でした。
これを踏まえ、今回は
・そもそも何故HSRPを有効化するとICMP redirectが無効になる実装だったのか
・現在はどのような実装になっているのか
この2点を解説します。
IOS 12.1(3)T以前の実装
IOS 12.1(3)T以前では、何故HSRPを有効化するとICMP redirectが無効化されてしまうのか。
これは、ICMP redirectによって端末のGW(GateWay)がVIPから実IPに切り替わってしまうことを防ぐためです。
以下のようなネットワークで、端末から192.168.20.0/24のネットワークに通信を行います。
※R1は192.168.20.0/24へのネクストホップとして192.168.1.3が登録されているとします。
端末は自身のルーティングテーブルに従いVIP宛に通信を行いますが、この際にICMP redirectが無効化されていなければ…
①端末はR1にトラフィックを送信
②R1はICMP redirectで、192.168.20.0/24へのGWを192.168.10.3と通知
③端末は今後192.168.20.0/24へは192.168.10.3宛にトラフィックを送信
となります。
すると、HSRPで冗長化しているはずが、R3に障害が発生すると端末はサーバに通信できなくなってしまう といった事態が引き起こされてしまいます。
このような事態を防ぐために、以前はHSRPを有効化するとICMP redirectが無効化される実装となっていました。
IOS 12.1(3)T以降の実装
IOS 12.1(3)T以降では、standby redirectというコマンドが実装され、HSRPとICMP redirectの共存が可能になりました。
簡単に説明すると、ICMP redirectにてGWを通知する際は、実IPではなくVIPを返すという動作になります。
これにより、端末は192.168.20.0/24のネットワークへのGWがHSRP Group 34のVIPであることを学習することができるため、適切且つ冗長性が維持された通信が可能となります。
さいごに
このように、既存のネットワーク技術も効率よく、適切に使用するために機能がアップデートされることがあります。
思い込みはトラブルの元となってしまいますので、よく知っている技術こそ、学習した頃から変わっていないかを改めて確認してみてください。
Reference
Configuration Guide : HSRP Support for ICMP Redirect
Command Reference : standby redirect