【HSRPについて】


このHPはHSRPについてまとめたものです。


1-1 HSRPとは

HSRPとは、 Ciscoが独自に開発したプ ロトコルで、2台以上のルータ(及びマルチレイ ヤスイッチ)をある種のクラスタとして動作す る様に 設定し、単一の仮想ルータを提供す る。ホストは、 仮想ルータのアドレスをデフォルトゲートウェ イとして使用するように設定され、HSRPはどの ルータが実際にデフォルトゲートウェイとして 動作するのかの決定を管理する。


★仮想ルータ

仮想ルータ は仮想IPアドレスと仮想MAC アドレスを持つ。 アクティブルータとスタン バイルータにより構成 され、仮想IPアドレスは ルータで 明示的に設定する。また仮想MACアドレスはHSRP グループ番号を基に自動的に作成される。 MACアドレスは以下の値 になる。







MACアドレス の最初の3バイト「0000.0c」は、Ciscoのベ ンダーコード。次の 「07.ac」はHSRPコード、 「●●」は HSRPのグループ番号を16 進数にしたものと なる。




★HSRPグループ

仮想ルータを作 成するための複数ルータの集合を「HSRPグルー プ」と呼ぶ。HSRPグループには、次のエンティティが含まれ る。







★HSRPステート

HSRPルータ ーには、以下の状態(ステート)が ある。

●イニシャル
●ラーニング
●リスニング
●スピーク
●スタンバイ
●アクティブ

各状態の意 味と説明を以下の表にまとめる。






HSRPは以下 のコマンドで実施する。構成はインターフェイス単位で行 う。

(config-if)♯ stanby【 グループNo】ip【バーチャルIPアドレス】








1-2 HSRPルータの選 出

HSRPの選出 方法は、グループ中の各ルータに設定された プライオリティ値(0-255 )に基づいて行われる。 デフォルトのプライオリテ ィ値は100。 値の最も高いルータが「ア クティブ」に設定され、2番目に高いルータが 「スタンバイ」になる。

HSRPルータは、 3秒間のデフォルトタイマー(設定可能)に基づいて、 このインターフェイスからHelloパケットを送信し、現在仮想ルータグループに 属しているという事実をアドバタイズする。

Helloパケットのプライオリティに基づき、1台のルータがグループ内の アクティブルータの役割を担う。アクティブルータは、転送する必要のパケットを受信すると転送し、スタンバイルータは破棄する。

この状態は、Helloパケットがアクティブルータから連続して受信される限り変わらない。

またHelloパ ケットはUDPによってポート番号 1985番宛てに送信される。送信先IPアドレスは、すべてのルータを示すマル チキャストアド レスの224.0.0.2で、TTLを1にすることでHello パケットの転送を防いでいる。


★HSRPにより使われるパケットフォーマット

HSRPにより使われるパケットフォーマットは以下のとおり。




●バージョン
HSRPメッセージのバージョンで、0がセットされる。

●Op Code(オペレーションコード) 
パケットの種別を示す。
0はHelloパケット、1はCoupパケット、2はResignパケットを示す。

◆Coupパケット
アクティブルータはなかったルータが、アクティブルータになろうとするときに送信するパケット。
それまでアクティブルータであったルータから、自分よりも低いプライオリティのHello を受け取ると、 スタンバイルータは、Coup メッセージを送信して、アクティブルータ になろうとする。
Coupメッセージは、Preemptの設定がされている場合に送信する。

◆Resignパケット
それまでアクティブルータであったルータが、アクティブルータを辞めるときに送信するメッセージ。
アクティブルータ でHSRP の設定を削除すると、Resign メッセージを送信して、スタンバイルータ が即座にアクティブルータ になることを 促す。

●State
HSRPステータスを表示する。
0はInitial、1はラーニング、2はリスニング、4はスピーク 、8はスタンバイ、16はアクティブ を示す。

●ハロータイム
Helloメッセージを送信する周期。

●ホールドタイム
この期間内にHelloパケットを受信しないと、該当ルータが無効であると見なす。

●プライオリティ
アクティブとスタンバイルータを選出する際の優先度として使われる。 高いほど、優先度も高い。デフォルト100。

●グループ
HSRPのグループ番号を表示する。

●予約
未使用フィールド。このフィールドには0が格納されている。

●認証データ
HSRPグループ認証に使われるパスワードを平文で表示する。

●仮想IPアドレス
HSRPグループの仮想IPアドレスを表示する。



1-3 HSRPの動作

アクティブ ルータとスタンバイルータはデフォルト値で3 秒に1回、アクティブルータがHello パケットを交換することによって、アクティ ブ・スタンバイの関係を保つ。

デフォルトのプライオリテ ィ値は100。 値の最も高いルータが「ア クティブ」に設定され、2番目に高いルータが 「スタンバイ」になる。

全てのルー タがデフォルト値ままであった場合は、ルータのインターフェイス に設定されたIPアドレスが最も高い数値に設定 されたルータがアクティブルータに昇格する。

プライオリ ティ値の設定は、以下のインターフェイス設定 コマンドで行う。

(config-if)♯ stanby【 グループNo】priority【プライオリティ値】

このHelloパ ケットには、HSRPグループのグループID 、Helloの送信元ルータのアドバタイズされたプ ライオリティ が含まれる。

Helloパケッ トの途絶がHoldDownタイマ(デフォル ト値は10秒)で設定された時間続くと、アク ティブルーターがダウンしたと見なして、 スタンバイ中のルータがアクティブルータに昇 格する。

また、リス ニング状態に置かれているルータが他に存在す る場合は、プ ライオリティ値が次に高いルータが新たなスタ ンバイルータとなる。





HelloタイマとHoldDownタ イマの値は、イン ターフェイスコンフィグレーションモードで以 下のコマンドを設定する。

(config-if)♯stanby【 グループNo】timers【hellotime】【holdtime】  

Hellotimeと一緒に、 Holddowntimeも設定する。またhellotimeには、1-255の間でHelloパケット の送信間隔を秒単位で設定(デフォルト は3秒)し、holdtimeには1-255の範囲で秒単位 で設定する。また、HoldDownタイムの値は、 Hellパケットの送信間隔の3倍以上 にする必要がある。


1-4 HSRPの Preempt

デフォルト のHSRP設定ではあとから起動したデバイスがリ スニングステートに移行した際に、すでに他のデバイスがアク ティブルータ及びスタンバイルータとして機能 していることが確認できれば、さらに高いプラ イオリティを保持していても、自らをスピーキ ングステートに移行させることは無い。

つまり、一 旦アクティブルータから退いたルータが再度ア クティブになったり、あとから最もプライオリ ティの高いルータがHSRPグループに参加する場 合、現行のアクティブルータに 障害が発生するまでは不可能になり、ルータと してのプライオリティが高くてもその条件は変 わらない。

preemptとは アクティブルータの選出に関して、当該ルータのプライオリテ ィ値が最も高くなった時点で、常にアクティブ ルータとして認識させる機能で、次のコマンド を使って有効化する。

(config-if)♯stanby【 グループNo】preempt {delay minimum【秒( 0-3600)】reload【秒(0-3600)】 }


デフォルト の設定では、現行のアクティブルータをローカ ルルータがpreemptしてアクティブ化する処理は 、即座に実行される。Preemptによりアクティブ ルータ に切り替わるまでの時間調整したい場合 は、【delay】に続けて以下のいずれか、あるい は両方のパラーメータを指定する。

◆minimum・・・・・ minimumを指定す ると、インターフェイスがアップ 後、上記の【秒】の指定値(0-3600)分だけ強制 的にルータを待機させてからプライオリティ値 の低いアクティブルータと置き換わらせるよう に出来る。

◆reload・・・・・ reloadを指定する と、ルータのreload後に【秒】 の指定値(0-3600)分だけ強制的に当該ルータ を待機させるように出来る。この機能は、収束 までに時間を要するルーティングプロトコルを 扱う場合に有効。







1-5 HSRPトラッキン グ

HSRPのアクティブルータへの 切り替えは、設定されているインターフ ェイス上で、アクティブルータからHSRP Hello を受信できないときに行われる。

そのため、 下図のアクティブルータのS0/0にてインターフ ェイスがダウンした場合、ア クティブルータは切り替わらず、アクティブルーターにパケ ットが転送されたとしても通信できない。





これを解決するために、インターフェイスの状態 を監視してアクティブルータを切り替えるよう にするための機能がHSRPインターフェイストラ ッキング。

HSRPインターフェイストラッ キングでは、指定したインターフェイス に障害を検出すると、もとのプライオリティ値 から設定された値をマイナスすることにより、 別のインターフェイス上の障害を反映したアク ティブルータ及びスタンバイルータの選定を行 うことができる。

HSRPインターフェイストラッ キングは、インターフェイスコンフィグレーシ ョンモードで次のコマンドを入力する。

(config-if)# standby 【 グループNo】 track 【インターフェイスNo】【 インターフェイスプライオリティ】

例えば 「standby 1 track Serial0/0 20」 では、「S0/0がダウンした場合プ ライオリティ値が20減少する」という動作にな る。

また、HSRPインターフェイス トラッキングが正常に動作するためには、純粋 にHSRPプライオリティで、アクティブルータを 決定しなければ いけないため、preemptの設定が必要にな る。






1-6 MHSRP ( Multiple HSRP ) の設定

HSRPでは、グループ毎に別々のルータ をアクティブルータとして選定することで、ト ラフィックを分散させることができる。 これをMHSRP( Multiple HSRP ) という。

MHSRPにより、1つのルータがあるHSRPグ ループのアクティブルータとして働き、別の HSRPグループのスタンバイルータとして機能す るようことができるようになる。

MHSRPを設定することで、 1つのルータを複数のHSRP グループに所属させることができ、複数のデフ ォルトゲートウェイを用意することで、冗長性 を高めると共に、負荷分散を行うことができる 。