HSRP 基礎編:(1) HSRP は何をするプロトコルか?

IPで通信する機器が、自分と違うネットワーク(サブネット)に存在する相手にパケットを送信するためには、ルーターに中継してもらう必要があります。
a

ルーターの役割とルーティング

複数のルーターでメッシュ状に構成される一般的なIP ネットワークでは、ある宛先ネットワークへ到達するための経路(ルート)が二つ以上存在するのが一般的です。

そのようなネットワーク環境で、どのルーターに中継してもらうのが最も適しているかを送信機器や中継機器が知る手段は、静的なもの(スタティック)と動的なもの(ダイナミック)があります。

ルーター等の通信機器は、パケットを宛先ネットワークに届けるために最適な最寄りの中継ポイント(ルーター)がどれかを知るための表を持っています。ルーティング・テーブルです。
ルーティング・テーブルは、管理者がコマンドや管理画面からマニュアル入力して作成することもできますが、静的(スタティック)に登録されたルートは、ネットワークの状況が変化しても自律的に対応できません。

この問題を解決する手段が、動的な手段、ルーティング・プロトコルです。
ルーターは、ルーティング・プロトコルを使って他のルーターとルーティング・テーブルの情報を交換します。受け取った情報と自分の持つ情報を比較して、より良い(≒最短ルート)方をルーティング・テーブルに載せることで、最新のネットワーク環境に対応します。
何を以て「より良い」「最適」と判断するか、また、情報の交換方法や頻度はルーティング・プロトコルにより異なります。

IP 用ルーティング・プロトコルの例:

  • RIP (Routing Information Protocol)
  • OSPF (Open Shortest Path First)
  • EIGRP (Enhanced Interior Gateway Routing Protocol)
  • BGP (Border Gateway Protocol)

ルーティング・テーブルを表示させてみると、0.0.0.0 とかDefault という行があります。
デフォルト・ルートと呼ばれるもので、すべての宛先と合致する、トランプのジョーカー(ワイルドカード)のようなルート情報です。特定の宛先ネットワークへ到達するための情報がルーティング・テーブルに存在しない場合に使われます。つまり、最後の手段(Last Resort)です。
ルーティング・テーブルに存在せずどこに送信したら分からないパケットは、(パケットを破棄すべき状況でない限り)このデフォルト・ルートを参照して送信先を決めます。


デフォルト・ゲートウェイ

どのルーターに中継を頼むか判断しなければならないのは、中継できるルーターが二台以上ある場合だけです。中継するルーターが一台しかなければ、そのルーターしかいないのですから、そもそも選ぶ必要はありません。
当然、IP ネットワーク上には複数の宛先ネットワークが存在しますから、宛先毎のルート情報をルーティング・テーブルに載せるのも良いですが、結局、中継ルーターはすべて同じです。無意味な上に無駄です。どの宛先も、一台しかないルーターで中継するのですから。
つまり、必要なルートはデフォルト・ルートだけです。

一般的な家庭用ブロードバンド・ルーターは、インターネットへの出口(いわゆる「WAN ポート」「インターネット・ポート」)が一つしかありません。
そのようなルーターにとって最寄りの中継ルーターは、電話線(ADSL)や光ケーブルの先に居るインターネット・サービス・プロバイダー(ISP)のルーターだけです。
ブロードバンド・ルーターのルーティング・テーブルには、デフォルト経路の宛先ルーターとしてISP ルーターのIP アドレスが登録されます。

  • デフォルト経路は、ブロードバンド・ルーターの管理画面でマニュアル入力することもできますが、多くの場合、DHCP (Dynamic Host Configuration Protocol) を使ってプロバイダーから自動配布されます。

通常LAN ポートが一つしかないパソコンや家庭内のIP 機器(ゲーム機、IT 家電など)も同様です。インターネット上のどこへアクセスする場合でも、最寄りのルーターはインターネットへの出口にあるブロードバンド・ルーターだけです。
そのような機器は、デフォルト・ゲートウェイ(最寄りのルーター)と呼ばれるデフォルト経路情報を持ちます。

Windows 等でnetstat -r コマンドを使ってみると、実際には、自分自身への経路や自分と同じサブネット内へブロードキャストするための経路なども登録されているのがわかります。デフォルト経路しか登録されていないわけではありませんが、通常の通信に使用されるのはデフォルト経路です。

ブロードバンド・ルーターと同様、パソコンのデフォルト・ゲートウェイ設定もマニュアル入力することもできますが、DHCP (Dynamic Host Configuration Protocol) を使ってDHCP サーバーから入手するのが一般的です。世の中に出回っているほとんどのブロードバンド・ルーターはDHCP サーバーの機能を持っています。

  • ブロードバンド・ルーターは、WAN ポートではDHCP クライアント、LAN ポートではDHCP サーバーとして動作するのが一般的です。


ルーターが二台以上あると・・・?

ルーターが一台しかない一般家庭のネットワークであれば、デフォルト・ゲートウェイだけで問題ありません。
が、ビジネスで利用する企業などのネットワークでは、ほとんどあらゆることに「冗長性」が求められます。ルーターが一台しかないと、そこに問題が発生したらネットワークが一切使えなくなり、仕事にならなくなります。
冗長性とは、簡単に言うと代替手段ということです。ルーターを複数台用意しておけば、一台壊れてもネットワークを使い続けることができます。

最もシンプルな方法は、予備を用意しておいて壊れたら交換することです。これをコールド・スタンバイと呼びます。が、交換して電源を入れるまでの間は、やはりネットワークが使用できなくなります。
予備も電源を入れておいて、何かあったらすぐにケーブルを差し替えても良いでしょう。が、人が介入する必要があるため、復旧するまでの時間が読めません。

二台のルーターを同時に電源を入れておき、どちらもネットワークにつなげておけばどうでしょう?

根本的な問題があります。
どちらの方法も、ルーターを入れ替えるだけでは終わりません。パソコンに設定されたデフォルト・ゲートウェイを、予備ルーターのIP アドレスに書き換える作業が必要です。
DHCP で自動取得している場合でも、まず、DHCP サーバーの配布情報(デフォルト・ゲートウェイ)を予備ルーターのアドレスに変更したうえで、すべてのパソコンでアドレスを再取得(renew) しなければいけません。
そうしないと、ルーターが予備側に切り替わっても、パソコンは一台目のルーターを使おうとし続けます。壊れていても。

hsrp-a1.png
これらの方法では、人の手を介さなければならない、という点がどうしても解決できません。パソコンの台数が増えるほど手間は増え、現実的ではありません。

二台とも同じIP アドレスを設定しておけばどうでしょう?

アドレスは一意(ユニーク)だからこそ機能するものです。同じアドレスを持つ機器(この例ではルーター)が二台あると、ネットワークの構成が破たんしてしまいます。いわゆるIP Address Duplication(IP アドレスの重複)です。


HSRP は何をするプロトコルか?

パソコンがルーターの不具合を検知して自律的に予備ルーターを切り替えるには、デフォルト・ゲートウェイという方法を使わず、RIP やOSPF といったルーティング・プロトコルを実装する必要があり、現実的ではありません。
IRDP (ICMP Router Discovery Protocol)やProxy ARP を利用することも無理ではありませんが、切り替えに要する時間に難があり、実用的ではありません。


端末の側で特別な手段を実装することなく、デフォルト・ゲートウェイの冗長化をルーター側で実現する方法に、VRRP (Virtual Router Redundancy Protocol) やHSRP (Hot Standby Router Protocol) があります。

VRRP はIETF によって標準化されたプロトコルですが、HSRP はCisco Systems 社が開発した独自プロトコルです。この記事では、HSRP について説明します。