5.3.2 ネットワーク層での冗長性

データリンク層での冗長性の確保は、元々作ってはならないループを解消する 仕組みと切っても切れない関係にありましたが、ネットワーク層ではループは別段 問題にはなりません。つまり、ルータを介せばいくらループを作っても構わない訳です。 何故ならば、ルータを介したネットワークでは、スイッチのときのような増殖は 生じない筈だからです。実際、ブロードキャストはルーティングしませんし、 行き先のあるパケットはルーティングテーブルに従って送出されるだけです。 勿論、ルーティングテーブルに問題があり、結果的にパケットが同じ経路を ぐるぐると回ることはありますが、その場合でも一定以上の数のルータを経由した パケットは破棄されるようになっているので、トポロジーとしてループは禁止 されていない訳です。 勿論、ループのあるルーティングには問題がありますから、この場合の問題は どのようにそうした事態を回避するようなルーティングを行うかであり、 ある種の自動的なルーティングの構成方法が必要になります (自動的でなくても動きますが、障害時の自動的な迂回路の生成を ここでは意味しています)。 そこでは、例えば正常時にはもっとも合理的な経路(例えば近くて早い経路を 選択する)を提供しますが、障害が検知された場合には、障害を回避する最も 合理的な経路を提供するような仕組みが必要とされる訳です。 このような動的なルーティングプロトコルとしては、代表的には、 RIP(Routing Information Protocol),OSPF(Open Shortest Path Fast), BGP4(Border Gateway Protocol v4)などが上げられます。

こうしたプロトコルにはそれぞれ一長一短がありますが、 そうした特徴に応じて、通常は利用の局面がほぼ決まっていると言って良いでしょう。

  1. [RIP]
    RIPはブロードキャストやマルチキャストを用いますが、 経路の伝達にいわばバケツリレーのように、ルータが利用できる経路を回りの ルータに教え、それを順に伝達していくような単純な方式を取っています。 このRIPの欠点は、経路が定まるまでに時間がかかるという点にあります。 これは、RIPを話すルータが多ければ多いほど顕著に なります(但し、RIPでは15ホップまでという制約もあります)。 しかし、もしRIPに関与するのが 同一セグメントの2つのルータだけだと、そうした欠点は問題にならないでしょう。 このようにRIPの長所は単純な仕組みのために、 安価な機器や通常のOSなどにも組み込まれていることが多いので、手軽に利用出来 る点が上げられます。

  2. [OSPF]
    OSPFはRIPの欠点を解消するものとして登場したものです。OSPFの最大の特徴は、 全てのルータの情報(つまりはネットワークのトポロジー)を、お互いの情報交換 によって知っている点にあります。つまり、OSPFでは、全てのルータがネットワーク の地図を持っているようなものです。 従って、障害時には、即座に適切な経路を判断する ことができるようになっています。また、RIPの15ホップという欠点もありません。 問題は、 CPUやメモリに対する要求が高い点にありますが、それも近年の進歩の前ではさしたる 問題でもなくなりつつあります。欠点は、全てのルータを知るという特徴故に、 インターネットのような巨大なネットワークでは事実上使えない点にあります。 そうした 意味で、RIPやOSPFは内部ネットワーク用のルーティングプロトコルであると言えます。

  3. [BGP4]
    BGPは、RIPやOSPFと違って、インターネット上の事実上の公式のルーティングプロトコル です。BGPはどちらかというとRIPに近い性格をもっており、RIPのように経路情報を 順に伝達していきますが、RIPとは違い、その情報がどういう経路できたかがBGP情報の 中に明示されているために、RIPの欠点が解消されており、一方全てのネットワーク 情報をBGPメッセージに入れている訳ではないので、OSPFほど膨大な資源を要求しま せん。また、BGPでは、最適な経路よりも、 管理者が指示した経路を優先させるような、ポリシーに基づくルーティングを行う ように作られている点でも、インターネットに適していると言われています。

一方、こうしたルーティングプロトコルでも解決できない問題もあります。 例えば、非常に単純なネットワークでも、ルータが故障したならば当然外に出て行く ことが出来なくなるでしょう。このような場合には、ルータを2つ用意することが 考えられますが、故障したルータの代わりをどのようにして今ひとつのルータが行う のかが問題です。一つの解決策は、クライアントも全てルーティングプロトコルを サポートすることです。この点でRIPは非常に現実的な回答であると言えますが、 そのような解決策が不可能である場合にはどうすれば良いのでしょうか。いささか 面白い方法ですが、デフォルトの出口のIPアドレスを仮想化するという手法 があります。この場合、複数のルータはお互いに常にメッセージを交換し、相手の ルータが生きていることを確認しています。もし、メッセージが来なくなったら、 相手のルータが落ちたと認識し、出口のIPアドレスを自分が使うようにする訳で す。つまり、この場合、全てのルータは出口のIPアドレスとは異なるIPアドレス を元々は有しており、出口となったルータがそれに対応するIPを使うように なっている訳です。 つまり、出口のIPは言わばある種の仮想的なものであり、クライアント はどのような状況でもこの仮想的なIPから出ようとするので、このIPから出て行ける ように自動的なメンテナンスがされていれば良いという訳です。そうした プロトコルとしてVRRP(Virtual Router Redundancy Protocol)、あるいは Cisco独自のHSRP(Hot Standby Routing Protocol)などがあります。

\epsfile{file=vrrp}



Noriyo Kanayama