OSPF(Open shortest Path First)

1 OSPFの機能と役割

 RIPと同様に,OSPF(Open Shortest Path First)は,IGPs(内部ゲートウェイ・プロトコル)の1つだ。OSPFは,ネットワーキングのこの特定分野での最新の考え方を示すものである。このため,インターネット・ワーキング装置の大手ベンダーにとって,実装すべきルーティング・プロトコルとなっている。
 すでに述べたように,受信したルーティング情報の質を測定するために,RIPは距離ベクトル・アルゴリズムを使う。このタイプのアルゴリズムでは,インターネット内のどのルーターも,到達可能なすべてのネットワークについて学習しているが,知っているのは最終宛先へのルート上の次のホップと,それかもつ相対コストだけである。
 これに対して,OSPFはリンク状態(Link State)アルゴリズムを使用する。このアルゴリズムでは,インターネットの特定のエリアにあるどのルータ一も同じデータベースをもつ。その中には自律システム(AS)全休のトポロジーが記述され,到達可能なネットワーク,それらを相互接続するルーター,および,それぞれのリンクの使用にかかるコストが分かるようになっている。さらにOSPFは,この情報を便って,最短パスツリー(Shotest Path Tree)と呼ばれるものを構築する。これは自分から見たトポロジーを記述するもので,これによってルーティング・テーブルに置くべきルート(経路)を決定するようになっている。
 OSPFルーターは,自律システムのトポロジーを正確に知っている。このため,トポロジーの変更があってもすぐに対応することができ,収束に要する時間が大幅に短縮できる。また,自律システムをいくつかの管理領域に分割することも可能だ。これによりルーティング・プロトコル自体が生成するトラフィック量か減り,収束時間がさらに短縮し,ルーティング障害に対する防護能力が大幅に高まる。また,どのリンクの使用コストについても,管理者が自由に定義でき,指定されたサービス・タイプ(TOS)に基づいて,リンクに何種類かのコストを割り当てることも可能である。さらにOSPFでは,同一コストの複数パスを同心に使用することや,マルチキャストによるルーティング情報の中継も許されており,ルーター間の情報交換を認証することもできる。これらの機能があるため,OSPFは実用的で柔軟なルーティング・プロトコルになっていて,利用可能能なリンクを十分に活用でき,欠陥情報が自律システム全体に広がるのを防ぐことができる。
 RFC1583の記述によると,OSPFはインターネット草案標準プロトコルで,格付けは選択となっている。これに対してRIPは,欠点があるにもかかわらず標準プロトコル(STD34)である(注:RIPはすでに歴史的プロトコルにこうかくされている)。
 この章では,OSPFについて詳しく説明し,簡単なネットワークを例にあげ,どのように最小のオーバーヘッドでルーティングが達成されるかを見ることにする。

2 メトリック

 すでに述べたように,OSPFでは,リンク・コストを管理者が設定できるようになっている。リンクの実際の使用コストが設定可能であるため,管理者が,特定のルートをより精密にコントロールし,どのルートを使うべきかを管理することができる。

OSPFとRIPの動作比較
図1 OSPFとRIPの動作比較

 多くのルーティング・プロトコルでメトリックを手動で変更できるようになってきたが,OSPFはこの柔軟性を最大限に活用している。初期設定では,OSPFがリンク・コストを計算する基礎となっているのは実際のリンク速度である。これに対して,一般に距離ベクトル・アルゴリズムでは,リンク速度は無視される。
 OSPFでは,送信元ネットワークと宛先ネットワークの間に2つのルートがある場合,リンク速度に基づくコストの合計は小さいルートが使用される。図1はRIPとOSPFの動作を比較したものだ。コストがすべて初期設定値であるとすると,OSPFは実際のコストが最小のパスを選択することが分かる。左側のパスはホッブ数が多いだが,使われているリンクが高速であるため,より大きなスループットをもたらす。
 もちろん,リンク・コストに基づいてルートを選択する場合に,ルーターの性能やリンクやハードウェアの信頼性は考慮されない。これらの要素が問題になる場合には,管理者によるコストの割当が必要になる。

2.1 TOSルーティング
 IPヘッダにはサービス・タイプ・フィールド(TOS:Type of Service)がある。TOSはルーティング・プロセスによるデータグラムの処理方法を指定するために使われる。次に示すように,このフィールドは1オクテットで,その構成は,3ビットかデータグラムの優先度を,4ビットがTOSを記述するものになっている。これらのビットをOSPFルーティング・プロトコルで使用する場合,その値と意味は表1のようになる

表1 IPのサービス・タイプ・フィールド値
OSPF値   D     T     R     M   RFC1700の説明
0 0 0 0 0 ノーマル(デフォルト)サービス
2 0 0 0 1 金銭的コストを最小にする
4 0 0 1 0 信頼性を最大にする
8 0 1 0 0 スループットを最大にする
16 1 0 0 0 遅延を最小にする
30 1 1 1 1 セキュリティを最大にする


IPデータグラム・ヘッダ
図2 IPデータグラム・ヘッダ

 管理者は,特定のサービス・タイプを基にして,異なるコストをリンクに与えることができる。たとえば,送信元ネットワークと宛先ネットワーク間に何本かのパスがある場合,アプリケーションが要求するサービス・タイプに応じて,異なるリンク・コストを定義することかできる。ファイル転送アプリケーションと仮想ターミナル・アプリケーションがあり,地上リンクと衛星リンクを経由するパスか使える場合,必要なスループットや遅延を基礎にして,異なるリンク・コストを適用することができる。これを図3に示す。

サービス・タイプ・ルーティング
図3 サービス・タイプ・ルーティング

 地上リンクは遅延が小さく,よいレスポンスが得られる。それに対して衛星リンクは,大量のデータを搬送するには非常によいのだが,遅延が大きくなるため,対話型アプリケーションでは使えまない。したがって,必要なサービス・タイプを指定できるのであれば,ファイル転送は衛星リンクで行い,仮想ターミナル・データは地上リンクで送ることになる。このようにすれば,使用可能なパスを最大限に有効利用できる。
 サービス・タイプ・ルーティングにも,欠点かないわけではない。複数のコストに基づく多数のパスを置くためには,ルーターはもっている情報から複数のルーティング・テーブル項目を作る必要かある。この場合,4つのTOSビットについては16通りの組み合わせが可能だから,ル一ターはこれを計算し16通りのルーティング・テーブルを使わなければならないかもしれない。どのOSPFルーターもサービス・タイプに基づいてルートを計算できることが必要であるし,サービス・タイプ0についてはすべてのリンクでコストの設定ができることが必要である。0以外のサービス・タイプについてはその使用についてもデータのルーティングについてもOSPFルーターの必要要件とはなっておらず,これによってルーティング・テーブルと,ルーター内の処理サイクルを節約できるようになっている。
 どのルートについても,利用可能な0以外のサービス・タイプのパスが存在しないことが十分考えられる。この場合も,サービス・タイプ0のパスはあるはずだから,0以外のサービス・タイプを要求するデータグラムもTOS-0パス経由で配信される。TOS-0専用ルーターと呼ばれ,サービス・タイプ0だけを使うルーターと,便われる可能性のある16種のサービス・タイプをすべてサポートする別のルーターを自由に混在させることができる。このようにルーターを混在させておくと,0以外のサービス・タイプを要求するトラフィックの転送には,可能な限りTOS-0専用ルーターは使われないようにできる。

2.2 複数のパス
 OSPFルーターはどの宛先へのルートもすべて発見するので,複数のパスがあればそれを記憶して使うことかできる。OSPFは複数パスの使用を要求しないし,内部でのルートの記憶方法についても指定しない。逆に実装によっては,一定数のルートだけを選んで保存し,どの宛先にも最適なルートだけを便うようにしてもよい。重要なことは,それを選択使用するかどうかに関係なく,ルーターかルートについて知っていることである。

3 OSPFの概要

 RIPなどの他のIGPsと比較すると,OSPFは複雑なプロトコルである。また,OSPFには新しい概念がたくさん採用されている。また,新しい用語がかなり使われているので,これらを理解しておかなければその動作を正しく理解することはできない。ここでこれらの用語を説明し,このプロトコルの概要をとらえてから詳しい説明に進もうと思う。

3.1 0SPFの用語
・自律システム(AS)
 この用語の従来の解釈は,1人の管理者がコントロールするインターネットを指すものである。しかし,OSPFでは,ASは同じルーティング・ポリシーの下にあるルーターの集合と考えることができる。たとえば,ルーターのグループの1つがRIPなどを使い,別のグループがOSPFを使っていれば,このインターネットは2つの自律システムに分けられるかもしれない。
・ルーターID
 OSPFには識別子の考え方が採用されている。ルーターIDは自律システム内のそれぞれのルーターを個別に示すために使われる。この識別子は32ビットの数値で,特に指定されない場合,そのルーターの各インタフェースに割り当てられたIPアドレスのうちもっとも大きいものが使われる。
・インタフェース
 インタフェースは場合によってはリンクとも呼ばれ,ルーターと,それが接続されているネットワークの1つを結ぶものである。インタフェースに与えられるのは,IPアドレス,サブネット・マスク,それにメトリックである。ただし,注意が必要なのだが,OSPFでは番号なしのポイント・ツー・ポイント・リンクの使用が許されている。これを使う場合は,IPアドレスやサブネット情報 は不要である。
・隣接関係(Adjacency)
 隣接関係というのは,同じネットワーク内の選ばれたルーター(隣接ルーター)の間で結ばれる関係である。隣接関係を形成することで,ルーティング情報を交換する場合に,ネットワーク全体のトラフィックを減らすことができる。
・Helloプロトコル
 これは簡単なプロトコルだが,OSPFの一部として使われる重要なものである。隣接ルーターの結び付きや隣接関係の確立と維持に使われる。イーサネットなどのマルチ・アクセス・ネットワークでは,これらの隣接ルーターの自動検出にも使われる。
・データベース記述(DD)パケット
 データベース同期プロセスの一環として,ルーター間で交換される。このパケットがもっているのは,到達可能なネットワークとルーターの要約情報で,自分のデータベースを更新するとき,どのような追加情報が必要かを決めるために,ルーターがこれを利用する。
・リンク状態要求(LSR)パケット
 自分のデータベースの更新に必要な追加情報を要求するとき,ルーターがこれを使用する。
・リンク状態更新(LSU)パケットと,リンク状態広告(LSA)
 LSUパケットにはLSAが入っていて,さらにこの中に,特定のルーターやネットワークに関する完全な情報が収められている。ルーターがデータベースを同期させるために必要な情報は,このパケットから得られるようになっている。図4は,データベースの同期を簡単に示したものである。

データベースの同期(簡略化したもの)
図4 データベースの同期(簡略化したもの)

・エリア(Area)
 すでに述べたが,OSPFではインターネットを管理エリアに分割することができる。ただし,エリアを使う場合には基本的な制限があり,どのエリアも,バックボーン・エリアという特別なエリアに接続しなければならない。エリア間のトラフィックは,すべてバックボーンを通して配信する必要がある。ネットワークの接続形態の制約で直接接続ができない場合は,エリア問のルーティング・トラフィックを運ぶために,仮想リンクと呼ばれる特別なパスが設けられる。
 エリアを使用すると,「インターネット内のルーターがどれも同じデータベースをもっている」とはもういえなくなる。エリア内のルーターは,それぞれのデータベースを通してそのエリアを同じように見ているが,別なエリアにあるルーターのデータベースは同じではない。
・内部ルーター(Internal Router)
 ルーターが直接接続しているどのネットワークも同じエリアに属しているとき,このルーターを内部ルーターという。したがって,インターネットをエリアに分割しなければ,どのルーターもこれに該当することになる。
・エリア境界ルーター(ABR:Area Border Router)
 複数のエリアに接続しているルーター。簡単にいうと,これらのルーターには複数のデータベースがあり,ルーターの接続先エリアをそれぞれ記述している。ABRは,直接または仮想リンクを通して,バックボーン・エリアにも接続している必要がある。
・バックボーン・ルーター(Backbone Router)
 バックボーン・エリアヘのインタフェ一スをもつルーター。したがって,ABRはバックボーン・ルーターです。ただし,このカテゴリに入るのはABRだけではない。ルーターの中には,どのインタフェースもすべてバックボーンに接続したものもあるからです。このようなルーターはバックボーンルーターであるとともに内部ルーターでもある。
・自律システム境界ルーター(ASBR:Autonomous System Border Router)
 ASBRが担当するのは,他の自律システムにあるルーターとの情報交換である。このルーターにはABRでも内部ルーターでもなることができる。また,バックボーン・ルーターでもそうでなくても,ASBRになることができる。一般にこれらのルーターは,接続先エリアのそれぞれについての情報を収めたデータベースをもち,他のASとの間で別のルーティング・プロトコルを実行する。このプロトコルは,IGPsの場合も,EGPsの場合もある。

簡略化したOSPFエリアの例
図5 簡略化したOSPFエリアの例

 図5に示すのは,エリアに分割されたインターネットの例である。このとても簡略化したインターネットでも,すでに説明したルーターのタイプが存在することが分かる。たとえば,ルーター1と3はABRとして動作している。ルーター1,2,3はバックボーン・ルーターだが,ルーター2のインタフェースはどれも同じエリアにあるから,これは内部ルーターでもある。この例にはASBRはないが,ルーターの1つ,たとえばルーター2が,別なルーティング・プロトコルを使う自律システムに接続されていれば,これはASBRになり,したがって2つのルーティング・プロトコルを使用することになる。
 もちろんABRは,接続先のそれぞれのエリアについて1つずつ,複数のデータベースをもつことになる。ルーター1には2つのデータベースがあり,1つがエリア0.0.0.0を,もう1つが0.0.0.3を記述する。ルーター3には3つのデータベースがあり,それぞれが0.0.0.0,0.0.0.1,0.0.0.2を記述する。ルーター4と5がもつデータベースは1つだけで,それぞれがエリア0.0.0.1と0.0.0.2を記述する。また,ASBRとして動作していないとすれば,ルーター2がもつデータベースは,エリア0.0、0.0を記述するもの1つだけである。

3.2 ネットワークとエリアのタイプ
 OSPFは,異なるタイプのネットワークとエリアをいくつか定義し,それぞれがもつ特性を示している。ネットワークのタイプは接続されるルーターの数で決まる。エリアの決め方はそれほど明確ではなく,必要なエリア・タイプを管理者が設定できるように装置が作られているのが一般的だ。エリア・タイプが指定されていない場合は,プレイン・エリア(Plain Area)とみなされ,このエリア宛とエリア内のリンク状態広告のすべてについて流し込み(Flooding)が行われるのが普通だ。
・スタブ・ネットワーク
 スタブとは「端」を意味するが,スタブ・ネットワークは,OSPFルーターが1台だけ接続されているネットワークである。図5では,ネットワーク4以外はどれもこれに該当する。
・通過ネットワーク
 このネットワークには,2台以上のOSPFルーターが接続されている。したがって,このネットワークはトラフィックを送受信する以外に,他のネットワーク間のトラフィックを中継することもできる。図5のネットワーク4は,このようなネットワークの例である。
・スタブ・エリア
 スタブ・エリアを設定できるのは,ABRが1台だけの場合と,出口の選択にあたって,外部の宛先ごとに判断する必要がない場合である。たとえば,スタブ・エリア内の同じネットワークにつながるABRが2台置かれ,バックボーン内の同じネットワークにリンクされていることがある。

スタブ・エリアにABRが2台置かれ,バックボーン内の同じネットワークにリンクされている
図6 スタブ・エリアにABRが2台置かれ,バックボーン内の同じネットワークにリンクされている

 この場合,このエリアの外部に配信されるトラフィックは,宛先によっては出口は変わりない。図5では,0.0.0.1,0.0.0.2,および0.0.0.3の各エリアは,どれもスタブ・エリアとして設定することが可能だ。
 スタブ・エリアの制限の1つは,ASBRを置けないことである。外部ルート広告のフラッディングは,このエリア経由では行えないからだ。エリアをこのように設定する利点は,データベースのサイズを小さくでき,ルーターに必要なメモリも少なくなることだ。外部ルート広告については後で説明する。
・準スタブエリア(NSSA : Not SO Stubby Area)
 RFC1587の定義では,このエリアはスタブ・エリアと同じものだが,AS外部ルートのインポートと流し込み(Flooding)をここを通して行うことができ,したがってASBRの使用が許されている。ですからABRは,ASBRからインポートされたルートを取り出し,バックボーンを通る転送用にそれを要約することができる。
・スタブ-要約なし
 サポートしていないベンダーがあるため,このタイプのエリアを接続するABRは,要約LSAをこのエリア内に伝達することができない。したがって,このエリアの内部にあるルーターは,デフォルト・ルートだけを使って,他のエリアのネットワークにデータを送る。

3.3 指名ルーターとバックアップ指名ルーター
 他のルーティング・プロトコルと同じように,ルーティング情報が交換されるのは隣接OSPFルーターの間である。他のプロトコルと異なるのは,OSPFルーターがIPマルチキャスト・パケットをこの交換に使い,交換とは関係のないホストの負荷を少なくすることだ。ただしこれによって,これらの交換から生じるトラフィックをどのように小さくするかなど,別な問題が発生する。この例を示したのが次の図である。ここでは9台のルーターが同じブロードキャスト・ネットワークを共有している。

ルーターの隣接関係(1)
図7 ルーターの隣接関係(1)

 どのルーターも他のすべてのルーターと情報を交換するとすれば,合計36通り([n(n−1)]/2)の交換が行われることになる。情報を交換するルーターを制限すれば,この数を大幅に減らすことが可能である。このためOSPFでは,どのルーターも最大で2台の隣接ルーターとだけ隣接関係(Adjacency)を結ぶ。これを示したのが図8である。

ルーターの隣接関係(2)
図8 ルーターの隣接関係(2)

 隣接関係を作る相手のルーターは,指名ルーター(DR,Designated Router)およびバックアップ指名ルーター(BDR,Backup Designated Router)と呼ばれる。これらのルーターは特別な責任を負うもので,同じネットワーク上のすべてのルーターにルーティング情報を配布するのは,これらのルーターの仕事となる。図を見ると分かるが,この方法で動作させることによって,ルーティング・トラフィック量が大幅に削減され,交換は15通り(2[n−1]−1)だけになっている。
 指名ルーターとバックアップ指名ルーターは,ともに他のそれぞれのルーターと隣接関係を作る。この2つのルーター間でも同じことを行って,回復力を得る手段を提供する。指名ルーターが故障しても,同じ情報をバックアッブ指名ルーターがもっているため,安定したトポロジーヘの移行を最小限の時間で達成することができる。
 隣接関係の形成と維持を行うのはHelloプロトコルである。これは指名ルーターとバックアップ指名ルーターの選択に使われる簡単なプロトコルで,隣接ルーターが動作しているかどうかも確認する。
 OSPFは,ルーティング・テーブル全休を一定間隔で交換する定時更新を使わない。OSPFルーターはその代わりに,起動時にそのデータベースを交換する。つまり,データベースの同期をとるために最初に激しく活動をするが,その後は必要に応じてルーティング情報を交換するだけとなる。これによりルーティング情報から発生するトラフィックは軽減される。しかし,これだけでは隣接ルーターが動作しているかどうかは保証されないし,どのネットワークが到達可能であるかも報告されない。このため,HelloプロトコルがOSPFの動作に不可欠なのである。このプロトコルがなければ,新規ルーターや故障ルーターを検出する手段がないことになる。その結果,新規ルートや故障ルートを識別することもできない。Helloプロトコルについては「4」で説明する。

3.4 ルーターの隣接関係とネットワーク・タイプ
 現在のインターネットでは,プロトコルがどのようなネットワークでも使用できることが重要である。したがって,OSPFではルーターは次のようなネットワーク上で隣接関係を形成できるようになっている。
・ポイント・ツー・ポイント・ネットワーク
 これは,1対のルーターを64kbpsの専用線などで結ぶネットワークです。これらのネットワークにはIPアドレスを削り当てなくてもよく,その場合,このリンクは無番号であるといわれる。
・ブロードキャスト・ネットワーク
 ブロードキャスト・ネットワークでは,多数のルーターが接続され,1つのパケットをすべてのユニットに同時に送信(ブロードキャスト)できるようになっている。実際には,OSPFはマルチキャストを使って隣接装置間の通信を行っているが,複数の装置と同時に通信する原理はやはり同じである。イ一サネットは,このようなタイプのネットワークの一例である。
・非ブロードキャストネットワーク
 ISDN,X.25,フレームリレーなど,非ブロードキャストのマルチアクセス・ネットワークで,複数ルーターの同時接続は可能だが,ブロードキャストとマルチキャストの機能はない。これらのネットワークでは,すべての隣接装置に同時にパケットを送ることができず,その代わりに,それぞれの隣接装置にユニキャストで送ることになる。したがって,何かの方法で事前に設定を行うことが,このタイプのネットワークでは必要になる。

4 プロトコルの動作

 OSPFは,RIPとは異なりIPを直接使用し,プロトコルID8910で識別される。したがってOSPFは,IPと第2層に関連する下位層のネットワーク・ヘッダにだけ組み込まれる。さらに,マルチアクセス・ネットワークでは,OSPFメッセージはユニキャストかマルチキャストで送られる。マルチキャストを使用するために2つのIPアドレスか割りあてられている。これを表2に示す。

表2 OSPFマルチキャストのIPアドレス
マルチキャスト名 アドレス 説明
AllSPFRRouter 224.0.0.5 すべてのルーターが,このアドレスに送られるパケットを受信できなければならない。Helloプロトコルとその他のいくつかのパケットは,このアドレスの送られる
AllDRRouter 224.0.0.6 指名ルーターとバックアップ指名ルーターは,このアドレスで受信できなければならない。いくつかのプロトコル・パケットの中が,これを宛先アドレスとして使うものがある。


OSPFのヘッダ
図9 OSPFのヘッダ

 これらのマルチキャスト・アドレスに送られるパケットは,複数のネットワークを通過するようにはなっていない。このため,ルーターはこのパケットを転送してはいけない。これが確実に守られるように,IPヘッダの生存時間フィールドは1に設定されている。また,OSPFはサービス・タイプ・ルーティングを行うことができるが,OSPFパケットはTOS-0を使って送られる。ただし,優先度フィールドは7にしてインターネット制御を示さなければならない。
 OSPFは複雑なプロトコルであると述べたが,実際のパケット・フォーマットを簡単にするため,さまざまな工夫がされている。したがって,どのOSPFパケットも,次に示すような共通のヘッダ・フォーマットを使用している。
 バージョン・フィールドには,プロトコルのバージョン番けが8ビットで示される。現在,これは2となる。8ビットのタイプ・フィールドには,パケット・タイプを示す値が置かれる。有効なタイプを表3に示す。

表3 OSPFタイプ値
タイプコード(10進数) 説明
1 Hello
2 データベース記述
(Datebase Description)
3 リンク状態要求
(Link State Request)
4 リンク状態更新
(Link State Update)
5 リンク状態応答確認
(Link State Acknowledgement)


 16ビットのパケット長フィールドは,パケットの長さをオクテット単位で示す。この値はOSPFヘッダの長さを含むが,IPヘッダは除かれる。理論上は最大65,535オクテットになる可能性があるので,必要な場合は,IPの機能によるデータグラムのフラグメント化に依存する。ただし実際には,特に仮想リンクで送信するときなどに,OSPFルーターがパケットのサイズを576オクテットに制限し,フラグメント化を避けるようにしている。
 32ビットのルーターIDフィールドは,パケット送信元のルーターIDを知らせるために使われる。このIDは,特に指定されなければ,ルーター(の各インタフェース)に設定されたIPアドレスのうちの最大のものが使われ,隣接関係がある場合に隣接関係の相手方を識別するために使われる。
 エリアIDも32ビット。これはこのパケットの送信元が属するエリアを識別するために使われる。ルーティング情報は,自律システム内を移動するルーティング情報の総量を減らすために1つのエリア内に置かれている。すでに述べたが,多数のルーターやネットワークがあるときなどは,ASがいくつかのエリアに分割されるのが普通である。この考え方はOSPFの重要な特長である。これについては,「6」で詳しく説明する。
 16ビットのチェックサム・フィールドは,パケットが途中で変わることなく到着したことを保証する。チェック・サムの計算は,TCP/IPで標準の方法で行われ,すべての16ビット単位の1の補数の合計の16ビットの1の補数で,計算中に運ばれるすべてのビットが含まれる。このチェック・サムの計算は,ヘッダの先頭からデータの末尾まで,OSPFパケット全体に対して行われるが,64ビットの認証フィールドは除外される。パケットのオクテットが奇数であれば,0だけのオクテットでパディングを行ってからチェックサム処理を行う。
 16ビットの認証タイプ・フィールドは,使用されている認証体系を表す。64ビットの認証フィールドは実際の認証データとなる。現在OSPFがサポートしているのは,無認証(タイプ0)と簡易パスワード(タイプ2)の2種類の認証タイプである。無認証の場合,このエリアでのルーティング情報の交換は認証なしで行われる。認証フィールドは受信則に利用されないからどのような値でもかまわない。簡易パスワード認証の場合,認証フィールドに置かれるのは実際のパスワードである。
 認証はエリアごとに設定されるから,そのエリア内のルーターは,すべて同じ認証タイプを使わなければならない。ただし,パスワード認証の場合,実際に使われるパスワードはインタフェースごとに設定できる。したがって,エリア内のネットワークごとに,異なるパスワードを設定することが可能である。

簡単なインターネット
図10 簡単なインターネット

表4 図10に使用するIPアドレス
ネットワーク ルーターとインターフェース IPアドレス サブネット・マスク TOS-0メトリック
ネットワーク1 ルーター1
インターフェース1
192.168.1.1 255.255.255.0 10
ネットワーク2 ルーター1
インターフェース2
192.168.2.1 255.255.255.0 10
ネットワーク3 ルーター1
インターフェース3
192.168.3.1 255.255.255.0 10
ネットワーク4 ルーター1
インターフェース4
192.168.4.1 255.255.255.0 10
ルーター2
インターフェース4
192.168.4.2 255.255.255.0 10
ルーター3
インターフェース1
192.168.4.3 255.255.255.0 10
ネットワーク5 ルーター2
インターフェース1
192.168.5.2 255.255.255.0 10
ネットワーク6 ルーター2
インターフェース2
192.168.6.2 255.255.255.0 10
ネットワーク7 ルーター2
インターフェース3
192.168.7.2 255.255.255.0 10
ネットワーク8 ルーター4
インターフェース1
192.168.8.4 255.255.255.0 10
ネットワーク9 ルーター5
インターフェース1
192.168.9.5 255.255.255.0 10


 次にOSPFの実際の動作を,図10に示す簡単なインターネットを使って説明する。OSPFの説明が進んだら,さらにルーターを追加することになるだろう。これらのルーターは,リモートサイトヘの接続の際に回復力を保つ手段を提供するものだが,プロトコル全般の主要な機能と利点を詳しく示すためにも利用する。
 図の各部に割り当てられたアドレス,サブネット・マスク,それにメトリックは,表4のとおりである。本性的サブネット・マスクだけを使うことと,LANインタフェースのすべてに,一貫してメトリック10を使うことに注意してほしい。また,使われるのはTOS-0だけである。
 図10と表4を見ると,ルーター3とルーター4,およびルーター3とルーター5を結ぶために使われているワイド・エリア・リンクは,OSPFの無番号機能(Un-Numbered Facility)を利用している。これは必須のものではなく,これらのリンクがポイント・ツー・ポイント方式であるため可能になっている。これによって,IPアドレスが節約され,ルーターの設定全体が簡単になっている。

4.1 Helloプロトコル
 すでに説明したが,隣接関係の形成開始に使われるHelloプロトコルは,複数のルーターに共通なリンク上で動作する。これを,1つのネットワークを取り出して隣接関係がどのように形成され,維持されるかをみていこう。ここではネットワーク4を使う。ネットワークのこの部分を,図11に示す。

隣接関係の形成
図11 隣接関係の形成

 初めて起動されたとき,OSPFルーターはHelloパケットを出し,自分が利用可能であることをネットワーク上の他のルーターに知らせ,指名ルーターとバックアップ指名ルーターがすでにあるかどうかを調べる。この指名ルーターとバックアップ指名ルーターは,ルーター優先度(Router Priority)と呼ばれる設定可能パラメータを使って選択されるものである。もちろん,2台以上のルーターに同じ優先度が与えられていることも十分考えられる。この場合,ルーターIDを使って,起こり得るデッド・ロックを防止する。通常このルーターIDは,ルーターに割り当てられた最大IPアドレスとするのが初期設定となっている。指名ルーターとバックアップ指名ルーターがまだ決められていなければ,Helloパケットのこれらのフィールドに基づいて選択が行われる。
 他のルーターがすでにネットワーク上で動作していれば,それらのルーターから自分の存在を示すHelloパケットが返されるし,該当するものがある場合には,指名ルーターとバックアップ指名ルーターの役割を引き受けているルーターのアドレスも知らされまる。この応答にはリストも含まれていて,最近受け取ったHelloパケットの送信元ルーターがすべて示されている。だから,ルーターが自分のアドレスをこのリストに見つけると,双方向通信が確立されたことになるのだが,ただしこの時点では,どのルーターとも隣接関係は成立していない。
 隣接関係を確立する相手は,そのネットワークの指名ルーターとバックアップ指名ルーターだけである。ルーター同士が隣接関係にあるといえるのは,両方のデータベースの同期がとられたときだ。このプロセスは,きちんと決められた一連のイベントに従うようになっているが,これについては次のセクションで取り上げる。
 Helloプロトコルに話を戻す。Helloパケットは,双方向関係の確立後,その維持にも利用される。ルーターは定期的にHelloパケットを出し,また他の隣接装置から同様のパケットが送られてくるのを待つ。ルーター・デッド間隔(Router Dead lnterval) と呼ばれるタイム・アウト間隔内に隣接装置からのHelloパケットが到着しないと,その隣接装置はダウンしているものとみなされて,トポロジーが変更され,指名ルーターとバックアップ指名ルーターがそれを知らせる。
 これで分かると思うが,HelloプロトコルはOSPFの正しい動作に欠かせないものである。OSPFがトポロジーの変化に非常に敏感であるのは,この簡単なプロトコルのおかげである。Helloパケットのフォーマットを図12に示すが,説明済みのOSPFヘッダは除いてある。

Helloプロトコル
図12 Helloプロトコル

 このプロトコルでは,サブネット・マスク・フィールドがヘッダの認証フィールドの直後にあり,このネットワークで使われているマスクを示すようになっている。もちろん,ネットワークを共有するルーターがすべて同じマスクを使わなければ,ルーティングを行うことは不可能になる。
 16ビットのHelloインターバル・フィールドは,このパケットを生成するルーターがHelloを送る間隔を秒単位で示すオプション・フィールドは,ルーターがサポートできるオプション,あるいはサポートしようとするオプションを指定する。このフィールドでは,図13に示すように,下位のT,E,MC,およびNまたはPの4ビットだけが使われる。

オプション・フィールド
図13 オプション・フィールド

TビットはルーターのTOS能力を示すもので,0に設定されていると,ルーターがTOS-0しかサポートできず,つまりTOS-0専用ルーターであることを表す。非TOS-0ルーティングを行える他のルーターは,TOSが0でないデータを配信する場合,可能な限りこのルーターを無視する。Eビットは,このエリアの外部ルーティング能力と,外部リンク広告がスタブ・エリア経由で流し込み(Flooding)されるかどうかを示す。MCビットは,RFC1584で定義されたルーターのマルチキャスト能力であるMOSPFを示す。最後にNまたはPビットは,ルーターのNSSA(準スタブ・エリア:スタブ・エリア内に外部リンク広告を処理できるルーターがあることを示す)能力を示すために使われる。このビットはHelloパケット内ではNと呼ばれ,このエリアのタイプについて,すべてのルーターの認識が同じになることを保証する。
 ルーター優先度フィールドを使って運ばれるのは,指名ルーターとバックアップ指名ルーターの決定に使われる優先順位です。この1オクテット・フィールドには,0から255までの値が入る。ただし,値0が使われる場合,自分に指名ルーターやバックアップ指名ルーターの役割を引き受ける資格がないことを,パケットの送信元ルーターが示している。したがってこのルータ−が選択されることはない。
 32ビットのルーター・デッド間隔フィールドは秒数を示しているが,この時間内にHelloパケットが隣接装置から送られないと,ルーターはその隣接装置がダウンしていると宣言する。指名ルーター・フィールドとバックアップ指名ルーター・フィールドはそれぞれ32ビットで,このパケットの送信元から見た指名ルーターとバックアップ指名ルーターを表すために使われる。したがって,この2つのフィールドには,これらのルーターのIPアドレスが置かれる。
 最後に,隣接1から隣接nまでの隣接リストには,ルーター・デッド間隔内に受け取ったHelloパケットの送信元ルーターがすべて表示される。つまり,Helloパケットの送信元ルーターは,受信した別のHelloパケットに自分の名前を見ることによって,隣接ルーターと双方向通信が確立されたことを知ることができる。

4.2 データベース情報の交換と隣接関係の成立
 双方向コミュニケーションの確立が終わると,その隣接ルーター間でデータベース情報が交換される。この手順は,ポーリング応答(マスター/スレーブ)方式を使い,隣接ルーターとデータベース記述(DD)パケットを交換することで始まる。このパケットは,ルーターのトポロジー・データベースの内容を,一連のリンク状態広告(LSA)として記述したもので,実際のデータベースそのものの一部を記述した要約情報である。

データベースの更新
図14 データベースの更新

 次に,この情報に基づき,それぞれのルーターがリンク状態要求(LSR)のリストを作成する。これを送らなければ,自分のデータベースを最新に保つことができない。たとえば,LSAを示すデータベース記述パケットを受信しても,ルーターがそのLSAをもっていないことがある(あるいは,データベース記述が,その隣接ルーターのもつ情報が古いことを示す場合もある)。そのためこの要求リストを作成し,隣接ルーターに送るのである。
 LSRを受信すると,ルーターはリンク状態更新(LSU)パケットを送る。このパケットには,要求されたリンク状態広告(LSA)がすべて入っている。このようにして,双方のルーターがまったく同じデータベースをもつことになり,これで隣接関係になったといえる。
 図14は,この交換がどのように行われるかを示すものである。ここではいくつかのデータベース記述パケットの交換が行われるから,隣接関係形成のこの段階に関係するルーターは,ポ−リング応答モードで動作することになる。この交換中は,ルーターの1つがマスターになってデータベース記述パケット(ポーリング)を送り,次にそれが,スレーブの送るデータベース記述パケット(応答)によって応答確認される。両方のルーターがパケットをすべて送り終わるまで,これが繰り返される,マスターになるのは,2台のルーターのうち高位のルーターIDをもつもので,したがって相手にはスレーブの役割をさせることになる。
 図で分かるように,ポーリングと応答は,パケットのシーケンス番号で関連付けられている(これをデータベース記述シーケンス番号と呼ぶ。この段階では,最初の確立のとき,使用すべきシーケンス番号を双方が提案する。ただし,交換中に実際に使われるのは,マスターが提案した番号である。

4.4 データベース記述(DD)パケットの交換
 図16に示すパケット・フォーマットの一部は,OSPFヘッダを除いたデータベース記述パケットのフォーマットを示すものである。これもOSPFヘッダの認証フィールドの直後に置かれる。
 オプション・フィールドはHelloパケットのものと同じ意味をもつ。これは,すでに図13で説明したとおり。。図15に示す8ビットのフラグ・フィールドは次のような意味をもっている。I(Init)ビットは,これが一連のデータベース記述パケットのうち,最初のものであることを表わす。M(More)ビットは,後続のデータ記述パケットがあることを示す。MS(Master/Slave)ビットは,このルーターの役割を表わす。この最後のビットが設定されていると,データベース記述パケットの交換は,このルーターはマスターとして動作する。設定されていなければスレーブとなる。

データベース記述フラグ
図15 データベース記述フラグ 

データベース記述パケット
図16 データベース記述パケット

リンク状態広告(LSA)ヘッダ
図17 リンク状態広告(LSA)ヘッダ

 データベース記述シーケンス番号は,データベース記述パケットの交換順序を示すために使われる。このフィールドの初期値は,フラグ・フィールドのIビットが設定されるときに決まり,その後転送が完了するまで,パケットが送られるごとに増分される。
 パケットの残りを占めるリンク状態広告ヘッダには,実際の広告を個別に識別するために必要な情報がすべて置かれている。これを示したのが図17である。
 16ビットのリンク状態年齢(Link State Age)フィールドは,このリンク状態広告が作成されてからの時間を秒数で示す。オプション・フィールドは,Helloパケット・フォーマットで説明したとおり,このルーターの能力を記述するものである。8ビットのリンク状態タイプ・フィールドは,このリンク状態広告(LSA)のタイプを示す。実際には6種類のLSAタイプがあり,どれも図17に示すヘッダで始まる。この6種類のLSAタイプと,このフィールドに入れるその値を,表5に示す。

表5 LSAのタイプ値
タイプ 説明
1 ルーター・リンク ルーターの各インターフェイスの状態とコストを示す
2 ネットワーク・リンク 2台以上のルーターをもつ通過ネットワークを示す
3 要約リンク(IPネットワーク) エリア境界ルーター(ABR)が作成したもので,AS内の別のエリアにあるネットワークを示す
4 要約リンク(ASBR) ASBRを示す
5 AS外部リンク AS外のネットワークを示す
7 AS外部リンク(NSSA) 準スタブ・エリア(NSSA)経由のAS外部リンク広告


 32ビットのリンク状態IDフィールドは,記述されている環境を識別するために使用する。ネットワーク・リンク広告の場合,このフィールドに置かれるのは宛先ルーターのインタフェースのIPアドレスで,ルーター・リンク広告の場合はそのルーターIDである。要約リンク広告であれば,宛先ネットワークのIPアドレスか,ASBRのルーターIDが置かれru 。また,このLSAが外部リンクを記述していれば,宛先ネットワークのIPアドレスになる。最後の2つのタイプについては,リンク状態広告全体と他の自律システムヘのルーティングを取り上げるとき,さらに詳しく説明する。
 32ビットの広告元ルーターフィールドにはルーターIDが置かれる。そのルーターはこのデータベース記述パケットを送出したもので,元のLSAをもっている。
 32ビットのリンク状態シーケンス番号は,このデータベース記述パケットに与えられた固有の一連の番号である。このシーケンス番号は,後で古い情報や重複情報を検出するために使える。
 16ビットのチェックサム・フィールドに置かれるのは,ヘッダを含み,リンク状態年齢を除いた,LSA全体のチェックサムである。最後の16ビットの長さフィールドは,20オクテットのヘッダを含むLSAの長さを示す

4.4 リンク状態要求(LSR)による追加情報の要求
 データベース記述パケットの交換が終わると,受信情報と現在の保存情報とをそれぞれのルーターが比較し,それを元にリンク状態要求(LSR)を作成する。これらのLSRは,ルーターのデータベース情報を最新に保てるように設計されていて,これによってデータベースを完全に同期させることができる。
 これらの要求は隣接ルーターに送られ,受信側ルーターは,リンク状態更新(LSU)パケットを使って,完全なリンク状態広告を返送する。隣接ルーターから正しいLSUパケットを受け取ると,送信側はそれを確認して要求をリストから削除し,また新しいLSRを送る。要求がすべて満たされるまでこれが続けられる。
 リンク状態要求のフォーマットを,図19に示す(OSPFヘッダは除く)。

リンク状態要求(LSR)パケット
図18 リンク状態要求(LSR)パケット

 この図を見ると,1つのリンク状態要求パケットで複数のLSRを運べるのが分かる。これらのLSRは,そのタイプ(32ビット,ID(32ビット)および広告元ルーターID(32ビット)で個別に識別される。要求を使って識別するのは広告で,その特定のインスタンスではない。ただし,要求は,その広告の最新のインスタンスを提供することを暗黙に求めている。

4.5 リンク状態更新(LSU)パケット

リンク状態更新(LSU)パケット
図19 リンク状態更新(LSU)パケット

 図19に示すように,リンク状態更新(LSU)パケットは,OSPFヘッダとそれに続くいくつかのリンク状態広告(LSA)でできている。この図はパケット全体を示していて,ヘッダ部分は影が付いたところになる。
 これらのパケットはリンク状態要求に対する応答として送られ,受信側ルーターがリンク状態応答確認でこれに応えるようになっている。応答確認は単なるOSPFヘッダで,いくつかのリンク状態広告ヘッダが,認証フィールドの直後に置かれている。応答確認は,更新を発信したルーターにユニキャストを使って送られるか,AllSPFRoutersマルチキャスト・アドレスに送られる。
 多数の応答確認をまとめて,1つのリンク状態応答確認パケットに入れることができる。ユニキャストで宛先を指定された応答確認は,重複したLSAへの応答としてすぐに送信される。マルチキャスト応答確認は,送信を遅らせて次の2つのことができるようにする。まず,応答確認を遅延させることで,多数のLSAを同時に応答確認できる可能性がある。次に,マルチキャストを行うことで,いくつかの隣接装置から同時に受信したLSAの確認が可能になる。

4.6 リンク状態広告(LSA)
 リンク状態広告には全部で6種類の異なるタイプがあるが,どれも同じ20オクテットのリンク状態広告ヘッダで始まる。ヘッダの次に,ルーターが接続されている実際のインターネットについての,特定の情報が記述される。
 どのルーターもルーター・リンク広告を作成する。これはルーターがもつリンク番号とタイプを記述するものである。この広告によって,異なるタイプのサービス(特にTOS-0)が必要な場合に,隣接装置に各リンクのメトリックが分かるようになっている。指名ルーターとして選ばれた場合,ルーターはネットワーク・リンク広告も作成する。この広告は,同じネットワークにあるルーターに対して,隣接ルーターについて教えるものである。ABRとASBRが作成するその他のタイプの広告もある。これについては後で触れる。
 図17でリンク状態広告ヘッダを紹介した。これにはリンク状態タイプ・フィールドがあり,広告のタイプを示すために使われる。また,オプショ・ンフィールドもあって,こちらはルーターの能力を示すために使われる。その他に,広告の年齢,広告のID,広告元ルーターのID,シーケンス番号用のフィールドがある。

■ルーター・リンク広告
 タイプ1のルーター・リンク広告は,エリア内のそれぞれのルーターで作成される。そして,そのルーターからそのエリアヘのリンクの状態とコストを示すために使われる。すべてのリンクと,サポートされているそれぞれのタイプについてのメトリックは,単一のルーター・リンク広告で記述しなければならない。このためパケットがとても大きくなることがある。パケットの実際のフオーマットを図20に示す。これはリンク状態広告ヘッダの後に置かれる。

ルーター・リンク広告
図20 ルーター・リンク広告

 この広告では,フラグV,E,Bは,ルーターと実際のリンクについての追加情報を示す。ルーターがアクティブな仮想リンクの終点にある場合はVフラグが,ルーターが自律システム境界ルーターとして動作している場合はEフラグが,ルーターがエリア境界ルーターとして動作している場合はBフラグが,それぞれ設定される。
 16ビットのリンク数フィールドは,このルーターがサポートしているリンクの数を示すために使われるので,この広告の全体サイズを表すことになる。残りのフィールドは,ルーターのそれぞれのリンクを示す。
 8ビットのタイプ・フィールド,32ビットのリンクIDフィールド,および32ビットのリンク・データ・フィールドは,どれも関連をもっている。タイプ・フィールドは記述されるリンクのタイプを,リンクIDフィールドはリンクの接続先を示す。リンクIDフィールドの実効値は当然リンクのタイプに応じて変わるが,これ自体もリンク状態広告を作成する場合,それぞれのIDは同じになる。リンク・データも,やはり記述されるリンクのタイプによって異なる。表6にこれらのフィールドに置かれるそれぞれの値と,その相互関係を示す。

表6 リンクIDとLSAデータの相互運用
タイプ 説明 リンクID リンク・データ
1 他のルーターへのポイント・ツー・ポイント接続 隣接ルーターのルーターID インターフェースのMIBIfIndex値
2 通過ネットワークへの接続 指名ルーターへのIPアドレス ルーター・インターフェースのIPアドレス
3 スタブ・ネットワークへの接続 IPネットワーク/サブネット番号 ネットワークのIPサブネット・マスク
4 仮想リンク 隣接ルーターのルータ−ID ルーター・インターフェースのIPアドレス


 8ビットのサービス・タイプ数フィールドは,このリンクの広告に含まれるさまざまなTOSメトリックの数を示す。この数字にサービスタイプ0が含まれないのは,TOS-0専用ルーターとの互換性を保つため,どのリンクにもTOS-0に関連するメトリックは必要だからである。たとえば,リンク広告がサポートするのがTOS-0だけであれば,この値は0になる。
 サービス・タイプ0用メトリック・フィールドは,TOS-0を要求するパケットがある場合,または非0のTOSルートがどれも利用できない場合のルーティング用の16ビット・メトリックを提供する。このフィールドは必ず必要である。このリンクで非0のTOSがサポートされているときは,8ビットの非0のTOSフィールドと,16ビットの関連メトリックも置かれるだろう。また,残りのリンクも同じ方法で記述される。

■ネットワークリンク広告
 タイプ2のネットワークリンク広告゛15は,マルチアクセスネットワークについて指名ルータ −だけが作成するものです。このパケットに一覧表示されるのは,32ビットサブネットマスクと, そのネットワークに接続されているすべてのルーターのルーターIDです(指名ルーターそのもの, および完全な隣接関係にあるすべてのルーターが含まれるトこの方法によって,このパケット1 つで,このネットワークに接続されたすべてのルーターが,広告されます,このパケットのフォ −マットを図11.25に示します(ルーターリンク広告よりかなり簡単になる,リンク状態広告ヘッ ダは除いてある八 ■要約リンク広告  要約リンク広告にはLSAタイプ3と4の2種類の広告があります。タイプ3はエリア境界ルータ −が作成するもので,自律システム内の他のエリアにある宛先を広告するものです,IPネットワ ークに関係するタイプ3リンク状態広告は,ネットワークアドレスをリンク状態IDとして使いま す。タイプ4広告は自律システム境界ルーター(ASBR)からのもので,したがって他のASに関係 し,リンク状態IDとして広告元ルーターのルーターIDを使います。これ以外は,広告パケット のフォーマットは同じです。図11.26は,リンク状態広告ヘッダを除いたものです。  ネットワークサブネットマスクは,広告対象のネットワークのサブネットマスクです。これは ABRからのタイプ3のリンク状態広告については有効ですが,ASBRが作成するタイプ4のLSA では無意味です,したがって,ASBRの場合,このフィールドはすべて0に設定されます。  次に,パケットの残りの部分には8ビットのサービスタイプフィールドがあり,そのサービス タイプ用の12ビットメトリックがそれに続きます,ここで適用される規則は1つだけです。サー ビスタイプは昇順で表示し,TOS-0が必ず先頭になければならないということです。 ■AS外部リンク広告  2種類の広告がAS外部リンク広告として使われます。どちらも自律システム境Wルーター (ASBR)によって作成され,LSAタイプ5と7を使います。最初のタイプ5は,通常の場合で作成 され,ブレインエリア(Plain Area)を経由して他ASに接続されている場合です(プレインエリア とは,スタブエリアやNSSAではないものを指す八次のタイプ7が作成されるのは,ASBRが NSSAに接続されている場合です。  ASBRは,自律システムの外部にある宛先ごとに別なLSAを作成し,宛先ネットワークのネッ トワークアドレスをリンク状態IDとして使います。さらに,このタイプの広告はデフォルトルー ド16の記述に使うことができます,この場合,ヘッダ内のリンク状態IDと,L5Aのネットワー クサブネットマスクフィールドは,どちらも0.0.0.0に設定されます。  AS外部リンク状態広告フォーマットは,どちらのタイプでも同じものです(図11.27八ただし, 2つのタイプの処理方法といくつかのフィールドにはわずかな違いがあります, ・ 図11.13の説明のところで述べましたが,OSPFヘッダのオプションフィールドには,Nまた  はPというビットがあります。Helloバケヽソトでは,このビットはNと呼ばれ,NSSA内のルー  ターの能力を記述するために使われます。これによって,NSSA内のどのルーターもエリアの  設定と-致していることが保証されます。たとえば,このビットがオフ(0)に設定されている  と,ルーターはタイプ7のLSA(NSSA広告)の作成や受信は行いませんっつまりこのビットは,  これらのパケットのEビットと連携するように定義されていることになります。したがって,  これがオンに設定されている場合,Eビットをリセットして0にしなければなりません, ・ パケットがLSAタイプ7であれば,このビットはPビットと呼ばれます。このタイプのバケ  ットでは,これが設定されていると,NSSA境界ルーターがタイプ7のLSAをタイプ5(AS外部  リンク広告)に変換しなければならないことが示されます,これによって,タイプ7のLSAが広  告されるのは単一のNSSA内だけになり,バックボーンには流し込まれません,  ・ タイプ7のLSAは,NSSA内で作成され,その中で伝達されることもあります。ただし,ス  タブエリアと同じように,NSSAはタイプ5のLSAについては作成も受信も行いません。  ネットワークサブネットマスクフィールドには,それがデフォルトルートでない限り,宛先ネ ットワークのサブネットマスクが置かれます,また,どのルートにもいくつかのサービスタイプ が関連付けられることがあり,それがパケットの残りの部分に示されます。  それぞれのTOSについて,Eビットはメトリックのタイプを指定します。このビットがオン(1) であれば,このメトリックはタイプ2であるとみなされ,ルーティングテーブルに保存されてい るメトリックと同じであることになります,,-般に,このメトリックは他のプロトコルと関連付 けられます,Eビットがオフ(0)であれば,メトリックはタイプ1であるとされ,メトリックのサ イズがリンク状態のメトリックに相当します。つまり,タイプ1メトリックには,AS内の通過コ ストと外部コストが含まれるのです。  タイプ2メトリックの大きな利点の1つは,AS内の通過コスト,つまりASBRへの到達コスト が無視されることです,ただし,ASBRへの到達コストと宛先ネットワークヘの到達コストの合 計がよな判断基準となる場合は,タイプ1メトリックを使わなくてはなりません。  32ビットの転送先アドレスは,この宛先へのデータを転送する先のアドレスです。このアドレ スが0.0.0.0であればデフォルトルートが示され,データは広告元ルーターに転送されます(ASBR がAS外の配信を粗めすることになる長  32ビットの外部ルートタグは,OSPFでは実際には使われませんが,ASBR間の情報交換に利 用されることがあります。このフィールドの使用法については,RFC1583で定義されておらず, 特に定まったものはありません。  ここで例題のインターネットに戻ります。図11.22にリンク状態要求を示しましたが,その応 答としてルーター1と3がリンク状態更新情報を交換するのが,次に示すトレースです。この交 換が完了するとデータベースの同期がとれ,このときルーターは隣接関係にあるとみなされます。 最短パスツリー(Shortest Path Tree)の作成  隣接ルーターがもつデータベースの同明がとられ,ルーターとDRとの,場合によってはさら にBDRとの隣接関係が成立すると,新しいデータベースを使って,それぞれのルーターが最短バ スツリー(SFr : Shortest Path Tree)を作成します。作成されたツリーは,さらにルーターのル ーティングテーブル作成の基盤として使われます。いくつかのサービスタイプがサポートされて いる場合は,TOSごとにSPTの作成が必要なため,ルーターのオーバーヘッドが大きくなりま す。どのルーターもTOS-0だけはサポートしなければならないため,少なくともTOS-0用の SFrは必要です。  sFrを作成する場合,ルーターは自分を図の起点に置き,インターネット内のすべてのネット ワークとルーターヘのルートを描きます,こうしておけば,すべてのネットワークヘの最適ルー トが分かります,このプロセスを分かりやすく示したのが図11.29です。ここでは例題で紹介し たネットワークを使い,ルーター1が作成したsFrを表しています。ルーター3のWANインタフ ェースに割りリjてたメトリックが1501であることに注意してください(これは64kリンクとほぼ 同いノ兆際には,これらのリンクのもう 一端,つまりルーター4と5のインタフェースに割りgj てられたメトリックは1602ですが,リンクが無番号なのでこの図には示さず,1本の線だけにし てあります,リンクに番号があれば,リンクに接続されたそれぞれのインタフェースについて, そこまでのルートがツリーに含められます-これを行う場合は,注意しないと混乱を招くことか ありまずつこの場合実際には,sFrは図11.30のようになります,  sFrが完成すると,ルーティングテーブルを作成することができます(力然これには無番号リ ンクも含まれる八このテーブルは,インターネット内のすべてのネットワークヘのルートを,最 適なパスに基づいて示すものです。  sFrが完成すると,次はルーティングテーブルの作成です,ここでも例題としたネットワーク のルーター1を使います。次の図にルーティングテーブルを示します,横にアスタリスク(*)の 付いたものがありますが,これは優先ルートを示しています,これが大きな意味をもつのは,同  ・コストのルートが2本以ト存在する場合です,      08-00-87-05-68-66{X056866)      BR/410    9 Feb 1996 20235155      Destination Mask     Next Rop   lntf  Prot Pref Metric ?yp      192.168.1.0 255.255.255.0          1 Local  *      192.168.2.0 255.255.255.0          2 Local  *      192.168.3.0 255.255.255.0          3  Local  *      192.168.4.0 255.255.255.0          4  Loca1  *      192.168.5.0 255.255.255.0 192.168.4.2   4  08pf 1*   20      192.168.6.0 255.255.255.0 192.168.4.2   4  0spf 1*   20      192.168.7.0 255.255.255.0 192.168.4.2   4  0spf 1*   20      192.168.8.0 255.255.255.0 192.168.4.3   4  0gpf 1*  1521      192.168.9.0 255.255.255.0 192.168.4.3   4  0spf 1*  1521 エリアの便い方  すでに述べたように,OSPFでは,連続したいくつかのネットワークをまとめて,エリアと呼 ばれるものを作ることができますュエリアを構成するのはネットワークとそれを接続するルータ −で,ネットワーク内のホストもこれに含まれます.したがって,自律システム内のそれぞれの エリアでは独自のルーティングアルゴリズム゛17が使われ,その結果,エリア内のルーターは, データベースを通じて同じ見方でエリアのトポロジーをとらえることになります。このため,エ リアを使用する場合は,AS内にあるルーターがどれも同じデータベースをもつとはいえなくなり ます。実際,エリアのトポロジーはエリア外からは見えませんJd]様に,エリアの内部ルーター は,そのエリアの外のトポロジーについては何も知らないことになります。それでは,エリアを 使う利点はどこにあるのでしょうか?また,どういう場合にエリアが必要なのでしょうか?  エリアを利用する大きな利点は,ASをこのように分割することによって,ルーティングトラフ ィックの量を大きく減らせることにあります。また,具合の悪い情報やルーティング障害に対し て,防護の手段を設けることもできます。たとえば,インターネットの1つのエリアに致命的な 障害が発牛しても,なるべくAS全休に影響が及ばないようにすることができます。しかし,ど のような場合にエリアが必要かということに関しては,それほど明確な根拠はありません。原則 としては,たとえばASに30台以Lのルーターがある場合は,エリアの使用を考慮すべきです,。 これより少ないルーター数では改善効果が見られないというわけではありませんが,30台前後以 Lのルーター数ならばほぼ間違いなく効果があるという意味です,  エリアを相互接続するルーターには複数のデータベースがあります。これは,接続するエリア ごとに1つ用意されています。これらのルーターはエリア境界ルーター(ABR)と呼ばれ,1つのエ リアの情報を要約して,それを別なエリアに渡すようになっています。図11.32は,ASをどのよ うに分割すべきかという簡単な例を示したものです,ネットワークに割り当てられたIPアドレス は,この嶼全休で紹介している例と同じです(「1L4」の図n.10を参照してください八ただしこの 例では,ルーター1が使うインタフェースは,IF 1,2,および4の3つだけです。このモデルで はあまり関係がありませんが,OSPFの全休の動作に影響を与えるニとなく,インタフェースを 無効にすることができます。  それぞれのエリアは,エリアIDという32ビットの固有の識別子で区別されます。32ビットID が選ばれたのは偶然ではありません,実はこの背景には,サブネットを使ってインターネットを エリアに分割する場合,エリアIDでそのサブネットを表せるという発想があったのです。ただし 明確な規則というものはまったくなく,インターネット内で固有のものであれば,事実11どんな エリアIDでも使用できます。 4.1 バックボーンエリア  ASをエリアに分割する場合は,1つのエリアに特別な設定を行い,ルーティング情報とエリア 間トラフィックの配信を行わせなければなりません。このエリアがバックボーンと呼ばれるもの で,それを構成しているのは,他のどのエリアにも属さないすべてのネットワーク,それを接続 するルーター,これらのネットワーク上のホスト,および複数のエリアに接続されているルータ −であるエリア境界ルーター(ABR)です。したがって,すべてのエリア間データが通過するよう になっていますから,どのABRも当然バックボーンに接続されています。通常は気が付きません が,実は,エリアを設定していない場合,ネットワーク,ホスト,ルーターは,すべてこのバッ クボーンエリア内にあることになります。したがって,OSPFの設定とは関係なく必ずバックボ ーンがあり,すでに説明した他のエリアの特性をすべてもっていることになりまずつ  ABRは,接続されているそれぞれのエリアに1つずつ,OSPFアルゴリズムの複数のコピーを 実行します。また,バックボーンではないインタフェースは,すべてこのエリアのルーターから 情報を受信します。次に,バックボーンにつながるインタフェースで別なコピーが実行されます, ただしこのコピーは,他のエリアから得た情報をバックボーンに流し込み(Flooding)ません,こ れに代わって,バックボーンに接続しているインタフェースが要約リンク広告を送ります。[司じ ように,他の非バックボーンインタフェースも,接続先エリアにはバックボーン情報の流し込み (Flooding)を行わず,要約リンク広告を送り返します。この方法によって,ルーティングトラフ ィックの縮小と,ルーティング障害に対する一定の保護が実現されます, 6.2 仮想リンク  バックボーンエリアが他のエリアと異なるのは,このエリアが物理的に連続している必要がな いことです,つまり,バックボーンを2つの物理エリア内に置き,仮想リンクと呼ばれるもので 論理的にリンクさせることができるのです。  この機能が重要なのは,単なる地理的な制約によって,エリアをバックボーンに接続できない ことがあるからです。たとえば,図11.33のインターネットを見ると,どのエリアも接続形態が 複雑で,ト分に往なしたエリアとなることができます,ところが,インターネットの地理的配置 と利用可能なWANリンクから見て,エリア0.0.0.3をリモートにしなければならないことがあり ます,  この例では,ABRはすべて文字Aで示してあります。ここで分かるのは,バックボーンとエリ ア0.0.0.3の間に設定した仮想リンクによってバックボーンが連続することです(仮想リンクは濃 い影付きラインで示されているトこれによって,バックボーンに直接接続されたABRが,この 仮想リンクの遠端にあるABRに接続性を提供できるようになっています。このとき仮想リンク は,ポイントツーポイントリンクと同じように扱われます。  バックボーンを通じて流し込まれた(Flooding)エリア開ルートは,バックボーンに直接接続さ れているのと同様に,遠端のABRに送られます,,次にこのABRは,エリア0.0.0.3の内部で広告 されたルート情報を要約し,それをバックボーンに送り返します,仮想リンクはすべてABR間に 設定しなければなりませんが,通常これは手動で行われます,どのABRも,インタフェースのIP アドレスではなくルーターIDで識別されます,ABRには制限が1つあり,バックボーンに接続さ れているものを除いて,どれも最低1つの非バックボーンエリアに属していなければなりません, このエリアが仮想リンク通過エリアと呼ばれるものです,  もちろん例のような場合もあるのですが,これが仮想リンクの利用法としてもっとも一般的な ものではありません。すでに述べたように,エリア間トラフィックはすべてバックボーンエリア を通ることになっていますェしたがって,回復力を高めるために,分離バックボーンを使う方法 がよく行われます。図11.34を兄てください。  この例では,回復力をもたせるようにしてあるため,仮にWANリンクが1本故障したとして も,すべてのネットワークヘの接続が維持されるようになっています。ここで当然考えられるの ですが,上部のWANリンクをエリア0.0.0.1の一部にすると,ルーター7だけがABRになり,ル ーター6は内部ルーターになります。もちろん,同じ考え方で,リンクをエリア0.0.0.2の一部と し,ルーター6をABRにすることもできます。ただし,このどちらの場合でも,必要な回磁力は 得られません,  ルーター7がABRで,ト部WANリンクがエリア0.0.0.1の一部である場合,どういうことが起 こり得るか考えてみましょう。  ここで,ルーター3と4の問のWANリンクがダウンしたとします。残念ながらネットワーク8 には到達できなくなります、っエリア間トラフィックは,すべてバックボーンを通らなければなら ないからです,したがって,必要な回復力を維持する唯一の方法は,ルーター6と7をABRにし, その2台とルーター3の問に,図11.33のような仮想リンクを設定することです。  エリアをもつ複雑なOSPFインターネットを設計する場合,適切な水準の回復力を提供するよ うに注意を払う必要があります。OSPFはエリアの修復を行わず,1つのエリアが孤立しても,全 休のトポロジーを再構築しようとはしません。したがって,ルートがそのまま利用できるのは, インターネットの設計時に回復力がト分考慮されている場合だけです, 6.3 エリア内ルーティングとエリア間ルーティング  エリアが設定されている場合,送信元ステーションと宛先ステーションが同じエリアかどうか によって,AS内のルーティングは2つのレベルで行われます,どちらも同じエリアにあればエリ ア内ルーティングが使われ,そのエリア内だけで利用可能な情報が利用されます。外部エリアに 関する情報は必要とされません,  データをエリア間で配信する必要がある場合は,3段階の手順が使われます。データは3本の異 なるエリア間パスを通りますが,これらのパスは,要求されたTOSに応じてルーティングアルゴ リズムが選んだ最低コストのものです。これらのパスは次のものです。   送信元ホストからABRヘデータを運ぶもの,このパスは,送信元エリア内で最適な出目  (ABR)を選んでデータを運びます。   送信元エリアと宛先エリア間のバックボーンを通ってデータを運ぶもの。送信元エリアとバ  ックボーンを接続するABRから,バックボーンと宛先エリアを接続するABRまでのパスです。   データを宛先ホストに配信するもの。つまり,宛先ABRから宛先ホストまでのパスです,  たとえば,|ヌ111.32で説明したインターネットではバレーター2のSFrは,無茶弓リンクが使 われているものとして,図11.35に示すようになりますっ  これも図11.32に関連するものですが,図11.36のパケットトレースが示すのは,ルーター1と 3の隣接関係の構築開始と,交換される広沢のタイプです。このトレースでは,最初に動作して いるのはルーター3だけで,次にルーター1が起動するようになっています。ここでは,要約リ ンク広告はバックボーンの外部にあるネットワークに送られ,標準広告はバックボーンエリア自 身のために使われることが分かります。 自律システムの結合  自律システム境界ルーター(ASBR)は,他の自律システムにあるルーターとの結合に使われま す。したがってこれらのルーターは,OSPF以外に少なくとも1つ,他のルーティングプロトコル を実行します。他のプロトコルには,EGPやBGPなどの外部ゲートウェイプロトコル(EGPs)が 使われることがあります。あるいは,OSPFの考え方では,ASとは共通のルーティングポリシー を使うインターネットワークですから,RIPなどのIGPsも他のプロトコルになることができます。  ASBRは自律システム外部リンク広告をOSPF自律システム内に送りますが,この広告は外部 プロトコルから作られ,OSPF ASの外にあるネットワークヘのルートを記述するものです。ま た,AS外部LSAは,スタティックルートやデフォルトルートの記述にも利用できます。他のLSA と同じように,到達可能ネットワークのそれぞれに1つの広告が作成されます。ただし,他のLSA とは異なり,AS外部リンク状態広告は,エリアとは関係なく,スタブエリアを除くAS全休に流 し込み(Flooding)されます,AS外部リンク状態広告は,LSAとしてはただ1つ,送信足のエリア に限定されないものです。  AS外部LSAはスタブエリアには流し込み(Flooding)されませんから,ASBRをこの中に置くこ とはできません。すでに述べたように,これらの広告をこのエリアに流し込み(Flooding)しなけ れば,ルーターがもつデータベースのサイズとそれに必要なメモリは小さくなります.,このとき, スタブエリアを動作させるには,要約リンク広告を使い,ABRがスタブエリアにデフォルトルー トを広告しなければなりません。このデフォルトルートの広告は,次にこのエリア全休に流し込 み(Flooding)されますが,それ以上は広がりませんエスタブエリアに置かれたホストとルーター は,外部ネットワークにデータを送りたい場合,このデフォルトルートを使います,  準スタブエリアにはこの制限がありません,このエリアではタイプ7のLSAが使われ,それが NSSA境界ルーターでタイプ5のLSAに変換されます,したがって,タイプ7 LSAの作成をサポ ートするASBRをNSSAに置くことができます。  他のASへのルーティングは,エリア間のものと同じように多段階で処理されます。   送信元ネットワークからABRまでデータを届けてくれるエリア内ルー卜   バックボーン内をデータを通してくれる別のエリア内ルート。この部分は,送信元エリアと  バックボーンを接続するABRから,ASBRをもつエリアとバックボーンを接続するABRへのル  ートです。 ・ このAS内での最終エリア内ルートASBRまでデータを届けてくれる。 ・ 最後に,ASBRからのAS間ルート。これで終わりではないかもしれず,最終宛先に届くまで  にはさらに遠くのASを経由しなければならないかも知れません, まとめ  OSPFは,内部ゲートウェイプロトコル(IGPs)に関する最新の考え方を示すものです,たしか に複雑なところもありますが,リンクやルーターの状態が変更した後にトポロジーが安定するま でにかかる時間(収束時間)は,同じIGPsである古いRIPよりも大幅に短くなっています。  OSPFはリンク状態アルゴリズムを使うため,それぞれのルーターはエリア内の他のルーター とまったく同じデータベースを使って動作します。このデータベースにはとても簡潔な到達可能 性時報が収められ,すべてのルーターが一覧表示され,その状態とリンクに関連するコストが添 えられています、,さらに,マルチキャスト拡張機能を使うことによ肌OSPFではマルチキャス トグルーブ情報の伝達が可能になっています,このMOSPF(Multicast OSPF)は,第14章で説明 します,っ  OSPFは,現在では事実上の標準プロトコルになりつつあり,ルーティングに使われているの ですが,一般的にホストがOSPFを聴取できないという欠点をもっています。UN修覆匹離泪 ンは,RJPを使う場合と異なり接続しているネットワーク上に流れているルーティング情報を利 用することができず,このため動的にルーティングテーブルを維持することができません。これ を解決するために,RDP(Router DiscoveI7y Protocol)の追加によって,ICMPが拡張されていま す。第6歌で説明したこのプロトコルでは,ルーターが自分の存在をローカル接続ホストに広告 できますし,ホストがネットワークに問い合わせを行い,もっとも近いルーターの位置を確認す ることもできます。

トップページへ