HSRPについて
HSRPについて
この節の流れ
続いて、デフォルトゲートウェイの冗長化への理解を深めるために、H S R Pについて、より詳しく解説していきます。
以下の内容を順追って説明します。
- HSRPの構成
- 状態遷移について
- 障害発生時の動作流れ
- 障害発生時の対策①:プリエンプト
- 障害発生時の対策②:インターフェーストラッキング
- 負荷分散の仕組み
HSRPの構成
各ルータの役割分担について
まずHSRPの構成から説明していきます。
FHRPの環境下では通信、ルーティングを行う有効なルータと、万が一の時に備えて通信などは行わないルータに分かれます。
HSRPでは、現在有効なルータをアクティブルータ、そうでないルータをスタンバイルータに役割を分担します。
- アクティブルータ:仮想ルータ(仮想IP、MACアドレス)宛のパケットを転送、ルーティングするルータ
- スタンバイルータ:通常はパケットの転送はしませんが、アクティブルータの控えとして機能します。アクティブルータがダウンした際は代わりに、転送などの作業を担います。
役割の決定方法
ではHSRPの構成下において、どのようにしてアクティブルータ、スタンバイルータの役割が決まっていくのでしょうか?
各ルータに設定されたプライオリティの値を元に判断します。このプライオリティの値が最も高い、ルータがアクティブルータになり、次に高いルータがスタンバイルータになります。
それ以降のルータはアクティブルータがダウンした際に、スタンバイルータになります。
プライオリティ値が同じ場合は、IPアドレスが高い順番で役割が決まります。
役割決定の流れ
役割を決めるためには、HSRP構成下のルータ間で情報交換するためのHelloパケットを交換することで、各ルータのプライオリティ値が共有された結果、各ルータの役割が決めります。
構成内で使用する用語(要素)のまとめ
以上の内容に加え、HSRPの構成に必要な用語と要素に以下にまとめました。
- アクティブルータ:仮想ルータ(仮想IP、MACアドレス)宛のパケットを転送、ルーティングするルータ
- スタンバイルータ:通常はパケットの転送はしませんが、アクティブルータの控えとして機能します。アクティブルータがダウンした際は代わりに、転送などの作業を担います。
- 仮想ルータ:実在はしないが概念的にデフォルトゲートウェイとして使用するルータ。
- 仮想IPアドレス:仮想ルータのIPアドレス。デフォルトゲートウェイのIPアドレスとしての指定先である。
- 仮想MACアドレス:仮想ルータのMACアドレス。デフォルトゲートウェイのMACアドレスとしての指定先である。
- スタンバイグループ:HSRP構成(ネットワーク)内におけるルータのグループ。
- グループ番号:スタンバイグループの識別番号
- Helloパケット:HSRP構成内のルータ間の情報のやり取りで利用するパケット
状態遷移について
HSRPでは、アクティブルータやスタンバイルータといった各ルータの役割以外にも、このような役割が決まるまでの状態があり、以下の表で詳しくまとました。
各ルータの役割が決まるまでの過程
障害発生時の動作流れ(障害発生の検知方法)
Helloパケットの役割について
Helloパケットは各ルータの役割分担を決めるだけでなく障害を検知するためにも使用します。
役割が決定した後、アクティブルータとスタンバイルータは3秒おきにHelloパケットを送信し合い、それ以外のルータは受信するだけで送信しません。
Helloパケットがアクティブルータから10秒届かない場合、何か障害が発生したと判断され、スタンバイルータはアクティブルータに切り替わり、そのどちらでもなかったルータ(Listen状態)が今度はスタンバイルータに切り替わります。
またアクティブルータはActive状態からInitial状態になります。
障害発生時の動作流れ
障害発生時の対策①:プリエンプト
アクティブルータを固定のルータに指定したい場合
アクティブルータに何かしらの障害が発生した場合、スタンバイルータがアクティブルータとしての役割を引き継ぐことになります。
ですがアクティブルータとして機能させるために、あえてプライオリティ値を高く設定している場合、ある程度、状況が落ち着き次第、元々、アクティブルータのつもりで設定していたルータに、再度、アクティブルータの状態に戻ってもらう必要があります。
そこでHSRPでは、プライオリティ値が高いルータが、ダウンしない限り、アクティブ状態であり続けるために、プリエンプト機能があります。
障害発生時の対策②:インターフェーストラッキング
障害が起きてもアクティブ状態から変化できない場合
HSRPは、ルータのインターフェースごとに設定しますが、設定していないインターフェースの通信で、障害が起きた場合、アクティブルータの状態は遷移されません。
この場合、障害が発生したルータにも関わらず、パケットが転送され続けることになるので、そういった問題を解決するために、インターフェーストラッキングという機能があります。
HSRPを設定していないインターフェースがダウンした場合、ダウンしたインターフェースのルータのプライオリティの値を、低くすることで、アクティブから別の状態に切り替えさせます。
負荷分散の仕組み
接続ホストの台数、パケットの量が増えたりなど、トラフィック(通信の量)が大きくなるほど、1台のルータへの負担が大きくなります。
そのためデフォルトゲートウェイを冗長化させた構成では、当然、1台に処理が集中しないように複数のルータへ負荷分散させるようにする必要があります。
負荷分散させる方法は大きく分けて二つあります。
- ネットワーク内に複数のHSRPグループを作成する:(MHSRP)
- VLANでネットワークを分割する
MHSRP(Multiple HSRP)-ネットワーク内に複数のHSRPグループを作成する
1つのネットワーク内で複数のHSRPグループを作成することで、グループごとに、仮想ルータや仮想IPアドレス、デフォルトゲートウェイ、アクティブルータなどを、複数、設けることができます。
デフォルトゲートウェイ(仮想IPアドレス)が、複数、存在するということは、クライアントごとに、異なるデフォルトゲートウェイを指定することができるので、結果的に負荷分散が実現されます。
また1つのルータが、複数のHSRPグループに所属させることもでき、一方のグループではアクティブルータだけど、もう一方ではスタンバイルータといった構成を作ることもできます。
VLANでネットワークを分割する
スイッチで複数のVLANを設ければ、ネットワークを分割することができます。
そして、VLANによって分割された、ネットワークごとに、デフォルトゲートウェイや仮想ルータ、仮想IPアドレス、アクティブルータなどを設けることが可能です。
VLAN、ネットワークごとに、異なるHSRPグループを割り当てれば、クライアントごとに、所属するブイランを分けることで、結果的に、異なるグループに所属させることができるので、複数の仮想ルータに、アクセスを分散させることができます。
このようにVLANを使用することで、複数のルータへ負荷分散することができます。
また、VLANでネットワークを分割した場合、各ルータを、分割されたそれぞれのネットワークのHSRPグループへ所属させることができ、一方のグループではアクティブルータだけど、もう一方ではスタンバイルータといった構成を作ることもできます。
しかし、この場合、ルータにある1つのインターフェースが、異なるネットワーク(VLAN)から通信を受ける可能性がありますが、1つのインターフェースにつき、1つのネットワークのIPアドレスしか、割り当てることができません。
こういった問題を解決するために、1つのインターフェースを仮想的に分割することで、分割した各インターフェース(サブインターフェース)に対して、別々のネットワークのIPアドレスを割り当てることができます。(※詳しくはネットワーク基礎2 3章にて解説)