第5回 大規模で複雑なネットワークでの運用に堪えるOSPF


AS内で利用されるルーティング・プロトコルの代表的なものとして、RIPとOSPFが挙げられます。RIPは、運用が容易な反面、各種の制限から大規模で複雑なネットワークでの利用に向きません。そこで、これらの環境の利用でも耐えられるOSPFの登場となります。今回は、OSPFの仕組みについて、まずは経路情報作成の様子を見ていきましょう
(編集局)


RIPとOSPFの比較

 前回(「第4回:RIPの仕組みと運用法を知ろう!」)RIPと同様、OSPF(Open Shortest Path First)はIGPと呼ばれているルーティング・プロトコルの一種です。このOSPFは、RIPと比較すると以下のような長所を備えています。

 また、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はこちらのパスを最適経路として選択する


図2 LSAの交換→LSDBの作成→ルーティング・テーブルの作成。この作業は各ルータにて個別に行われるため、OSPFではネットワーク変更時の収束時間が速いといわれている


ルーティング・テーブルの作成

 ここでは、以下のようなネットワーク構成を例に挙げ、OSPFにおけるルーティング・テーブルの作成過程について、もう少し詳しく説明します。

図3 ネットワーク構成図


●リンクステート・データベース(LSDB)

 先に述べたように、OSPFでは経路情報ではなくLSAを交換します。LSAを収集した各ルータは、このLSAに含まれた情報に基づき、まずLSDBを作成します。

 図3のようなネットワークでは、R-1からR-5のすべてのルータにおいて、以下のようなLSDBが作成されます。

R-1
R-2
R-3
R-4
R-5
N-2
N-3
N-4
R-1
 
 
 
 
 
0
 
 
R-2
 
 
 
 
 
0
 
0
R-3
 
 
 
 
 
0
0
 
R-4
 
 
 
 
 
 
0
0
R-5
 
 
 
 
 
 
 
0
N-1
10
 
 
 
 
 
 
 
N-2
10
10
10
 
 
 
 
 
N-3
 
 
5
10
 
 
 
 
N-4
 
20
 
5
10
 
 
 
N-5
 
 
 
 
10
 
 
 
表1 図3のネットワークを基にしたLSDBの例

 このLSDBからは、「FROM(どこから)」「TO(どこに)」「コスト値がいくつで接続されているか」を参照することができます。

 具体的には、以下のようなことが分かります。

*3LSDBでは、FROMがルータの行にコスト値を入力し、FROMがネットワークの行には「コスト値はなし(0)」を入力します


●最短パス・ツリーの作成

 次に、各ルータは上記LSDBを参照し、自分を起点に、あて先までのコスト値が最小となるツリー(最短パス・ツリー)を作成します。このときに使用されるアルゴリズムがDijkstraアルゴリズムです。

 ここでは、R-1にて作成される最短パス・ツリーを例に挙げます。

図4 最短パス・ツリーの例。各ルータとネットワークの間に入力されているコスト値は、左側の値がそのインターフェイスのコスト値で、かっこでくくられている値が、そこまでのコスト値の合計になる

 この最短パス・ツリーを参照することで、R-1は、すべてのあて先ネットワークまでの最短パスを参照することができます。

●ルーティング・テーブルの作成
 あとは最短パス・ツリーを参照し、あて先ネットワークへのネクスト・ホップとなるルータを入力したルーティング・テーブルが作成されます。

エリアの種類と特徴

 上記のように、OSPFでは少々複雑な作業を経てルーティング・テーブルが作成されます。また、この作業はネットワークの規模に比例してより複雑なものとなります。そこで、OSPFにはエリアという概念が設けられています。OSPFルータがLSAを交換する範囲は、同一エリア内に限られています。このため、大規模なネットワークではこのエリアを作成することで、LSAの交換範囲を抑制することが可能となります。この結果、このLSAに基づき作成されるLSDBのサイズも抑制することが可能となります。

 このエリアの概念は、OSPFがより大規模なネットワークに対応可能である大きな理由の1つといえます(図5)。

図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 routes)と呼びます。

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に変換され、バックボーン・エリアにアナウンスされる

エリア名
流れるLSA
ASBR設置
の可否
デフォルト
・ルート
の必要性
バックボーン
・エリア
Type-1:Router-LSAs
Type-2:Network-LSAs
Type-3:Summary-LSAs
Type-4:ASBR-summary-LSAs
Type-5:AS-external-LSAs
可能
特に必要なし
ノーマル・エリア
Type-1:Router-LSAs
Type-2:Network-LSAs
Type-3:Summary-LSAs
Type-4:ASBR-summary-LSAs
Type-5:AS-external-LSAs
可能
特に必要なし
スタブ・エリア
Type-1:Router-LSAs
Type-2:Network-LSAs
Type-3:Summary-LSAs
不可能
必要
(ABRが
アナウンス)
NSSA
Type-1:Router-LSAs
Type-2:Network-LSAs
Type-3:Summary-LSAs
Type-7:NSSA External LSA
可能
(NSSA External LSAのサポートが必要)
必要
(ABRが
アナウンス)
表2 主なエリアの種類と特徴

 LSAの詳細については、連載の次回分で説明します。