HSRPの概要

HSRP(Hot Standby Router Protocol)は、Cisco独自のデフォルトゲートウェイ冗長化プロトコルです。複数のルータをグループ化して1つの仮想ルータを構成します。仮想ルータは、実ルータと同様にIPアドレス、MACアドレスを持っています。仮想ルータのIPアドレスとMACアドレスは以下のとおりです。

他の記事でも述べていますが、「仮想ルータ」といってもルータまるごとグループ化しているわけではありません。デフォルトゲートウェイとして動作しているインタフェースだけを仮想ルータとしてグループ化しています。

仮想ルータのIPアドレス: 設定で指定
仮想ルータのMACアドレス: 00-00-0c-07-ac-XX (XX:HSRPグループ番号)

グループ化した実ルータはアクティブルータとスタンバイルータの役割を分担します。アクティブルータは仮想ルータ宛てのパケットをルーティングするルータです。アクティブルータがダウンすると、スタンバイルータがアクティブルータとなり仮想ルータ宛てのパケットをルーティングします。

PCやサーバのデフォルトゲートウェイとして仮想ルータのIPアドレスを設定しておけば、これまでのアクティブルータがダウンしても新しいアクティブルータがパケットをルーティングするので、継続して他のネットワークとの通信が可能です。

HSRPのIPアドレスとポート番号

HSRPを有効にすると、HSRPメッセージを交換します。HSRPは階層としてはアプリケーション層に位置してトランスポート層にUDPを利用します。HSRPメッセージは、UDPポート1985でカプセル化されています。また、HSRPメッセージの宛先IPアドレスは224.0.0.2のマルチキャストアドレスです。このマルチキャストアドレスは、同じネットワーク内のすべてのルータを表しています。

HSRPのカプセル化
図 HSRPのカプセル化
図では省略していますが、さらにイーサネットヘッダでカプセル化します。

HSRPの仕組み

HSRPメッセージのうちHSRP Helloを交換することによって、複数のルータで仮想ルータのIPアドレスを認識し、アクティブルータを決めます。アクティブルータは、HSRPプライオリティによって決められます。プライオリティが大きいルータがアクティブルータです。プライオリティのデフォルト値は100です。プライオリティが同じ場合は、IPアドレスが大きいルータがアクティブルータとなります。

次の図では、R1とR2のFa0/0でHSRPを有効化しています。R1とR2はFa0/0でHSRP Helloメッセージをやりとりして、仮想ルータのIPアドレス192.168.1.3を認識します。また、HSRP Helloメッセージにはプライオリティの値が含まれていて、プライオリティが大きいR1がアクティブルータになります。

HSRPの仕組み その1
図 HSRPの仕組み その1

アクティブルータは、仮想ルータ宛てのパケットをルーティングする役割を担っています。具体的には、以下のような動作を行います。

  • アクティブルータになったときにGARPを送信してARPキャッシュやMACアドレステーブルを更新する
  • 仮想IPアドレスのARPリクエストに対してARPリプライを返す。ARPリプライには仮想MACアドレスが含まれる
  • 宛先MACアドレスが仮想MACアドレスのイーサネットフレームを受信する
  • HSRP Helloパケットの送信元MACアドレスとして仮想MACアドレスを利用する
  • 宛先IPアドレスが仮想IPアドレスのパケットを受信する

簡単にいえば、アクティブルータは実IPアドレス/MACアドレスに加えて、仮想ルータのIPアドレス/MACアドレスも持っていることになります。さきほどのネットワーク構成では、R1がアクティブルータです。すると、R1は実IPアドレス 192.168.1.1以外に仮想ルータのIPアドレスも持っています。さらに、R1はFa0/0のMACアドレスだけではなく仮想ルータのMACアドレスも持っています。たとえば、HSRPのグループ番号を1とすれば、R1は「00-00-0c-07-ac-01」という仮想MACアドレスも持っています。

HSRPの仕組み その2
図 HSRPの仕組み その2

HSRPでデフォルトゲートウェイを冗長化している場合、PCのデフォルトゲートウェイには仮想ルータのIPアドレスを設定します。PCから他のネットワークへパケットを送信するときには、デフォルトゲートウェイのIPアドレスに対するMACアドレスを求めるためにARPを実行します。そして、仮想ルータのIPアドレスに対するARPリクエストには、アクティブルータであるR1が応答します。R1は仮想ルータのIPアドレスに対するMACアドレスとして、仮想MACアドレスをARPリプライで返します。

PCはARPリプライでデフォルトゲートウェイのMACアドレスがわかるので、イーサネットヘッダの送信先MACアドレスに仮想MACアドレスを指定して、他のネットワーク宛てのパケットをデフォルトゲートウェイへと転送します。そして、送信先MACアドレスが仮想MACアドレスとなっているイーサネットフレームは、アクティブルータであるR1へと転送され、R1がルーティングします。

HSRPの仕組み その3
図 HSRPの仕組み その3
図の動作は、PCに仮想IPアドレスに対するARPキャッシュが存在しない場合を想定しています。

アクティブルータとスタンバイルータは、それぞれ定期的にHSRP Helloメッセージを送信しています。デフォルトは3秒間隔です。アクティブルータがダウンすると、アクティブルータからの定期的なHelloメッセージが届かなくなり、スタンバイルータが新しいアクティブルータとなります。現在のアクティブルータであるR1がダウンすると、スタンバイルータのR2が新しいアクティブルータとなります。R2は仮想IPアドレスとMACアドレスを引き継ぎます。この切り替えには、デフォルトで約10秒かかります。

HSRPの仕組み その4
図 HSRPの仕組み その4
図では省略していますが、R2は新しくアクティブルータになるとGARPを送信してPCのARPキャッシュやレイヤ2スイッチのMACアドレステーブルの情報を更新します。

PCはデフォルトゲートウェイとなるルータが切り替わったことを特に意識しません。他のネットワーク宛てにパケットを送信するときは、解決した仮想MACアドレスを送信先MACアドレスに指定すれば、新しいアクティブルータのR2へ転送されてR2がルーティングします。

HSRPの仕組み その5
図 HSRPの仕組み その5


IPルーティングのキホン