HSRP とは

 デフォルトゲートウェイを失うと、そのデフォルトゲートウェイに接続しているセグメント上の機器は通信できなくなってしまいます。

 このような障害を回避するための対策としてデフォルトゲートウェイを二重化するという方法があります。

 ルータBを増設して、下の図のようにネットワークを構成しなおしたとします。しかし、セグメントAに所属するPCのデフォルトゲートウェイをRouterBに設定しなおさなければなりません。

 デフォルトゲートウェイを複数登録できるOSもありますが、全てのPCに設定するのは大変な作業ですし、なりより切り替わるのにとても時間がかかってしまうので現実的ではありません。

クライアントPCは、通常、自動的にデフォルトゲートウェイを変更することはできません。

 2台のルータに同じIPアドレスを割り当てれば、うまくいきそうな、感じもしますが、しかし、それは、「重複するIPアドレスが存在してはならない」というネットワークの掟を破ってしまうことになり、IPアドレスの競合が発生してしまいます。

そこで、デフォルトゲートウェイを二重化する方法として、次のような方法があります。

  • HSRPを使う方法
  • VRRPを使う方法

 「HSRP」、「VRRP」の共にデフォルトゲートウェイを冗長化するためのプロトコルで、複数のルータを1台のルータに見せかけることができます。PCのデフォルトゲートウェイの設定を変更することなく、ルータの障害を回避することができます。

 上下の灰色のルータは、複数のルータを1台のルータに見せかけたものです。実際には存在しません。Router_A、Router_Bは、「仮想IPアドレス」と「仮想MACアドレス」を共有することで、1つのルータに見せかけます。プライオリティ値が大きいルータが「主系」となり、プライオリティ値が小さい方が「従系」となります。

HSRPの仕組み

ここからは、「HSRPの仕組み」について説明していきます。

 HSRPとVRRPは、どちらもデフォルトルートを冗長化するプロトコルで、ほぼ同じような機能を持っていますが、冗長化を実現するための仕組みや設定、細かな動作は異なります。

 HSRPは、Ciscoが独自に開発したプロトコルで、ベンダー独自の規格であるため、他社との互換性がありません。複数の他ベンダーが、このHSRPと同等なことを可能するために開発したがVRRPです。

 HSRPは、同じグループ内のルータで、1つの「仮想IPアドレス」と「仮想MACアドレス」を共有することで、1つのルータに見せかけます。グループ内で、1台がActiveルータになり、その他のルータがStandbyルータになります。

 ルーティング処理やARP応答は、Activeルータが担当します。デフォルトでルータ同士が、3秒ごとにHelloパケットを交換して、互いにHSRP情報をやり取りしています。このパケットは、UDPのポート番号1985、宛先IPアドレスとして、「224.0.0.2」のマルチキャストを使用しています。

 Helloパケットを受信してから、10秒間、相手からHelloパケットが届かない場合、相手ルータが故障していると判断します。この相手が故障していると判断する時間のことをHold Timeと言います。

相手が故障と判断するとStandbyルータがActiveルータへと切り替わります。

Activeだったルータは、「Init(イニシャルステート)」へと状態が遷移します。

 HSRPでは、以下の状態を遷移してActiveルータ、Standbyルータになります。ダウンした側は、イニシャルステートへの遷移します。

状態説明
イニシャルステート初期状態。HSRPのやり取りを全くしていない状態。
ラーニングステートHelloパケットを受信していない状態。
仮想IPアドレスを認識していない。
リスニングステートHelloパケットを受信する状態。
仮想IPアドレスを取得する。
スピークステート定期的にHelloパケットを送信する状態。
アクティブステート
   or
スタンバイステート
Helloパケットを定期的に交換する。
Activeルータは、仮想IPアドレス宛の通信を処理し、Standbyルータは、待機する。

ActiveルータとStandbyルータの選出について

Activeルータは以下のように選出されます。

  1. プライオリティ値の高い方がActiveルータに選出される。
  2. プライオリティ値が同じ場合、大きいIPアドレスを持つルータがActiveルータに選出される。

 プライオリティ値のデフォルトは、「100」です。つまり、プライオリティ値を設定しない場合は、大きいIPアドレスを持つルータがActiveルータに選出されます。