ネットワーク

HSRPとICMP redirectについて

はじめに

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