AS内で利用されるルーティング・プロトコルの代表的なものとして、RIPとOSPFが挙げられます。RIPは、運用が容易な反面、各種の制限から大規模で複雑なネットワークでの利用に向きません。そこで、これらの環境の利用でも耐えられるOSPFの登場となります。今回は、OSPFの仕組みについて、まずは経路情報作成の様子を見ていきましょう (編集局)
RIPとOSPFの比較
前回(「第4回:RIPの仕組みと運用法を知ろう!」)のRIPと同様、OSPF(Open Shortest Path First)はIGPと呼ばれているルーティング・プロトコルの一種です。このOSPFは、RIPと比較すると以下のような長所を備えています。
- ネットワーク変更時の収束時間が短い
- 標準でVLSMに対応している
- 標準でマルチキャストに対応している
- 標準で認証機能に対応している
- 定期的なアップデートを行わない
- 帯域幅を考慮したコストの設定が可能
- 同一コストの複数パスを利用したロードバランスが可能
- 階層構造を取ることにより、効率の良いネットワークを構築できる
- RIPのような最大メトリック値(15)という制限がない
また、RIPは、OSPFと比較すると以下のような長所を備えています。
- 実装が比較的容易である
- サポートしている機器が多い
上記を参照しても分かるように、OSPFにはRIPよりも多彩な機能が備わっています。しかし、その分実装も難しくなっており、またOSPFに対応した機器はより高価なものとなるのが一般的です。
このため、一般的には、小規模で比較的単純なネットワークではRIPを採用し、大規模でより複雑なネットワークではOSPFを採用するというケースが多いようです。
OSPFの役割と仕組み
・OSPFの役割
OSPFは、主に一般企業やISPなどの内部ネットワークを制御するために利用されています。具体的には、一般企業ではネットワーク全体を制御するメインのルーティング・プロトコルとして、バックボーン・ネットワークを構築する際などによく採用されています。また、ISPなどでは、AS内部のローカル経路を制御したり、IBGP接続用のループバック・アドレスやEBGP経由で受信した経路情報のネクスト・ホップ・アドレスを解決したりするなど、どちらかというと2次的なルーティング・プロトコルとして採用されています。
・OSPFの仕組み
OSPFは、本連載の第1回「ルーティング・プロトコルの役割を理解する」の「主要なルーティング・プロトコルとその組み合わせ」の項で説明したように、リンクステート・アルゴリズムに基づいたルーティング・プロトコルです。また、RIPやBGPなどのようにUDPやTCP上で動作するルーティング・プロトコルではなく、IP上で直接動作しているため(IPプロトコル番号:89番)、IPに特化したルーティング・プロトコルということができます。
OSPFでは、あて先までのコスト値(主にインターフェイスの帯域幅により決定)が最小の経路を最適経路と見なします。このコスト値は、あて先に到達するまでに通過するルータのコスト値の合計になります(図1)。また、あて先までのコスト値が同一の、複数のパスが存在する場合、これらのパスをロード・シェアリングして使用することが可能です。
また、多くのルーティング・プロトコルは経路情報そのものを交換しますが、OSPFではLSA(Link-State Advertisement)を交換します。LSAには、そのルータに接続されたネットワークの情報やインターフェイスのコストなどの情報が含まれており、各ルータはこのLSAをアナウンス/収集し、そこから各自がリンクステート・データベース(LSDB)を作成します*1。さらに、各ルータはこのLSDBに基づいて最短パス・ツリーを作成し、各自でルーティング・テーブルを作成します(図2)。また、このLSAは定期的にアナウンスするのではなく、更新があった場合のみ、その差分情報をアナウンスします*2。
*1同一エリア内のルータが作成するLSDBは、すべて同じものになります
*2実際には、30分周期ですべてのLSAが再交換されます
さらに、OSPFでは、エリアの概念を導入することで、ネットワークを論理的に分割することができます。また、RIPのような最大メトリック値が15という制限もないため、より大規模ネットワークに適したルーティング・プロトコルであるといえます。
図1 コスト値による最適経路の選択。あて先までのコスト値は、経由するルータの出力インターフェイスに設定されたコスト値の合計になる。今回の例では、R-1からあて先ネットワークへは、
(1) R-1→R-2→R-5経由 (コスト値=40)
(2) R-1→R-3→R-4→R-5経由 (コスト値=30)
の2つのパスが存在する。この場合、(2)のパスのコスト値がより小さいため、R-1はこちらのパスを最適経路として選択する
ルーティング・テーブルの作成
ここでは、以下のようなネットワーク構成を例に挙げ、OSPFにおけるルーティング・テーブルの作成過程について、もう少し詳しく説明します。
・リンクステート・データベース(LSDB)
先に述べたように、OSPFでは経路情報ではなくLSAを交換します。LSAを収集した各ルータは、このLSAに含まれた情報に基づき、まずLSDBを作成します。
図3のようなネットワークでは、R-1からR-5のすべてのルータにおいて、以下のようなLSDBが作成されます。
このLSDBからは、「FROM(どこから)」「TO(どこに)」「コスト値がいくつで接続されているか」を参照することができます。
具体的には、以下のようなことが分かります。
- FROM:R-1は、TO:N-1に、コスト値10で接続している
- FROM:R-1は、TO:N-2に、コスト値10で接続している
- N-1の先には何もない
- N-2は、R-1、R-2、R-3に接続している*3
- FROM:R-2は、TO:N-2に、コスト値10で接続している
- FROM:R-2は、TO:N-4に、コスト値20で接続している
- N-4は、R-2、R-4、R-5に接続している
:
:
*3LSDBでは、FROMがルータの行にコスト値を入力し、FROMがネットワークの行には「コスト値はなし(0)」を入力します
・最短パス・ツリーの作成
次に、各ルータは上記LSDBを参照し、自分を起点に、あて先までのコスト値が最小となるツリー(最短パス・ツリー)を作成します。このときに使用されるアルゴリズムがDijkstraアルゴリズムです。
ここでは、R-1にて作成される最短パス・ツリーを例に挙げます。
この最短パス・ツリーを参照することで、R-1は、すべてのあて先ネットワークまでの最短パスを参照することができます。
・ルーティング・テーブルの作成
あとは最短パス・ツリーを参照し、あて先ネットワークへのネクスト・ホップとなるルータを入力したルーティング・テーブルが作成されます。
エリアの種類と特徴エリアの種類と特徴
上記のように、OSPFでは少々複雑な作業を経てルーティング・テーブルが作成されます。また、この作業はネットワークの規模に比例してより複雑なものとなります。そこで、OSPFにはエリアという概念が設けられています。OSPFルータがLSAを交換する範囲は、同一エリア内に限られています。このため、大規模なネットワークではこのエリアを作成することで、LSAの交換範囲を抑制することが可能となります。この結果、このLSAに基づき作成されるLSDBのサイズも抑制することが可能となります。
このエリアの概念は、OSPFがより大規模なネットワークに対応可能である大きな理由の1つといえます(図5)。
このように、エリアを作成/分割することで、LSAの交換範囲を分けることができます。
ABR(Area Border Router)
図5の中で、複数のエリアに接続されているルータ(エリア0とエリア1、またはエリア0とエリア2の境界に存在しているルータ)はABR(Area Border Router)と呼ばれます。自身が所属しているエリア以外の情報は、基本的にこのABRがLSAを作成し、各エリア内にアナウンスします。これにより、各エリア内のルータはエリア外部の情報を知ることができるようになります。
ASBR(AS Border Router)
同じく図5の中で、OSPF以外のプロトコル(今回の例ではRIP)の経路情報を、OSPF内にリディストリビュートしているルータをASBR(AS Border Router)と呼びます。また、このようなOSPF以外のプロトコルからの経路情報を、外部経路(AS external outes)と呼びます。
AS(Autonomous System)
OSPFでいうASとは、1つのバックボーン・エリアを中心に構成されたOSPFネットワーク全体を指すイメージになります。
・エリアの種類と特徴
OSPFのエリアには、いくつかの種類があります。ここでは、主なエリアの紹介と、各エリアの特徴を説明します。
1. バックボーン・エリア
バックボーン・エリアは、OSPFを用いたネットワークを構築する際に必ず必要となるエリアです。この後説明するバックボーン以外のエリアは、必ずこのバックボーン・エリアに接続されている必要があります。なぜなら、各エリア間の通信は、このバックボーン・エリアを介して行われることになるからです。
また、各エリアにはエリアIDと呼ばれる番号を設定し区別しますが、このバックボーン・エリアには必ず0という番号を設定します。このエリアIDは32bitsで表現されており、IPアドレスと同じように0.0.0.0と入力したり、単純に0と入力したりすることができます*4。
*4バックボーン・エリアの場合、エリアIDは必ず0になるので問題はありませんが、例えばそれ以外のエリアに1というIDを入力した場合、この1の解釈が各ネットワーク機器メーカーによって異なる場合があります。
・A社の場合:エリアID 1=0.0.0.1
・B社の場合:エリアID 1=1.0.0.0
このため、複数のメーカーの製品を組み合わせてOSPFネットワークを構築する場合、エリアIDは「0.0.0.1」ときちんと入力することを推奨します
2. ノーマル・エリア
ノーマル・エリアは、基本的にあらゆる種類のLSAが流れるエリアです(図6・表2)。このため、このエリアには、ASBRを設置することも可能です。
3. スタブ・エリア
スタブ・エリアには、外部経路を伝えるLSA(AS-external-LSA)が流れません(図6・表2)。そのため、このエリアにはASBRを設置することはできません。また、外部経路が伝わらないため、スタブ・エリアのABRは、このエリア内にデフォルト・ルートをアナウンスする必要があります。
4. NSSA("not-so-stubby" area)
基本的には、スタブ・エリアと同じ特徴を持つエリアです(図6・表2)。唯一の違いは、このNSSAにはASBRが設置可能であるということです。ただし、通常のAS-external-LSAは流れないため、NSSA内部では、専用の外部経路のLSA(NSSA External LSA)が用意されています。
図6 主なエリアの種類と特徴。このように、各エリアによって流すことができるLSAの種類が変わってくる。NSSA External LSAは、NSSAのABRにて通常のAS-external-LSAに変換され、バックボーン・エリアにアナウンスされる
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
LSAの詳細については、連載の次回分で説明します。
Copyright © ITmedia, Inc. All Rights Reserved.