OSPF エリア

OSPFで使用するエリアについて説明します。

■エリアの考え方とルール

OSPFでは管理対象のネットワークを複数のサブドメインに分割して管理することができます。この小分けにされた論理的な範囲がエリアで、OSPFではエリア単位で様々な機能を実行します。

エリアの役割

OSPFの作成するエリアの主な役割はネットワークの区分です。管理対象のネットワークを領域に分けることでネットワークの分散化と共通化を図ることができます。これによってOSPFの機能をエリア毎に限定して適用できるようになります。またエリアには計算範囲を絞りルータの負荷を減らすという役割もあります。各エリアの中ではルータ間で同期が行われてすべてのルータが同じLSDBを持ち、そして各ルータが同じLSDBを使用してルート計算を行いますが、OSPFネットワークをエリアを用いて対象範囲を小さくすることで各ルータの持つLSDBを小さくでき計算の量も減らすことができます。

エリアの範囲

エリアはルータが32bitのエリアIDをインターフェースに付与することによって作成します。ルータ間を結ぶ回線は1つのエリアに属するため回線を共有する相手のルータも必然的にインターフェースに同じエリアIDを設定することになります。つまりエリアの範囲は回線単位で決まっていくということになります。

ルータ上に複数のインターフェースがあり、ルータが付与するエリアIDが同じ場合はエリアが連続することになり、異なる場合はそこにエリアの境界が出来上がることになります。

エリアの構成と種類

OSPFのネットワークデザインでは1つのエリアだけで構成するシングルエリアと複数のエリアで構成するマルチエリアを選択することができます。

1つのエリアだけを使用する(シングルエリア)

OSPFネットワークをエリアに分ける必要がない場合はネットワーク全体が1つのエリアでできたシングルエリアとなります。この構成ではエリアの概念は存在していますが、適用範囲がネットワーク全体であるためエリア間の相互関係について気を配る必要がなくエリアIDも何を使用しても問題ありません。しかし逆にエリア分けのメリットを享受できないことがデメリットとなります。例えばすべてのルータが同じデータベース(LSDB)を持つことになるためネットワークの規模やルータの性能によってはルータに負荷がかかることになります。そのため後からの拡張を考えバックボーンをどこに置くかを検討しておくことが重要となります。

シングルエリアの構成は以下のような特徴を持ちます。

全てのルータが同じエリアIDを持つ

AS内のすべてのルータが同じエリアに属するため、すべてのルータのインターフェースが同じエリアIDになります。

全てのルータが異なるルータIDを持つ

AS内のすべてのルータを識別する必要があるので、すべてのルータで一意なルータIDを設定します。

すべてのルータが同じLSDBを持つ

エリア内のルータが同期によってLSAの交換を行うため、すべてのルータが同じLSDBを持つことになります。

内部ルータとASBRが存在できる

このエリア内に存在できるのは内部ルータとASBRだけです。ASBRは外部ネットワークと接続している場合にのみ存在します。

エリア内の変更がすべてのルータに伝搬する

インターフェースのアップ・ダウンなどでネットワークの情報に変化があるとLSAのUpdateという形ですべてのルータに対して情報が伝搬します。LSAによって伝わった変化は即座に反映されルート計算が実施されます。

ルート集約が行えない

OSPFのルート集約はエリア間でしか行えないためルート集約機能の設定は可能ですが、意味を持ちません。

複数のエリアを使用する(マルチエリア)

OSPFネットワークを1つのエリアで賄うことが難しい場合は複数のエリアでできたマルチエリアで構成することができます。マルチエリアは2つ以上のエリアからなり、1つのバックボーンエリアと1つ以上の非バックボーンエリアから構成されます。バックボーンエリアは他のすべてのエリアに接続するネットワークの中心に位置するエリアです。非バックボーンエリアは原則的にバックボーンエリアだけに接続するエリアで他のエリアとの通信をバックボーンエリアに依存します。バックボーンエリアを含めた各エリアはシングルエリアと同じ特徴を持ちます。OSPFネットワークをマルチエリア構成にすると同じ規模のネットワークをシングルエリアで構成するよりエリア単位のデータベースが小さくなり再計算の頻度も少なくなるため、各ルータの負荷を減らすことができるというメリットがあります。

マルチエリアの構成は以下のような特徴を持ちます。

すべてのエリアで異なるエリアIDを使用する

各エリアにはエリアIDを一意に設定します。バックボーンエリアはエリアIDとして0(0.0.0.0)が決められています。

全てのルータが異なるルータIDを持つ

シングルエリア構成と同じでマルチエリア構成でもAS内のすべてのルータで一意なルータIDを設定します。

エリアはバックボーンエリアと非バックボーンエリアで構成する

1つのバックボーンエリアと1つ以上の非バックボーンエリアから構成します。すべての非バックボーンエリアはバックボーンエリアに接続していなければなりません。

バックボーンエリアは分割できない

マルチエリアの場合、バックボーンエリアはOSPFの中心にいなければならないため分けることはできません。直接接続できない場合にはバーチャルリンクを使用します。

非バックボーンエリアはスタブエリアにできる

非バックボーンエリアはAS外ルートを受け取らない選択をすることができます。AS外ルートを受け取らない選択をしたエリアは「スタブエリア」という別名を持つことになります。スタブエリアにはAS外ルートが存在できなくなるので必然的にASBRを設置することができなくなります。

エリア間はディスタンスベクターの関係になる

OSPFはエリア内においてリンクステート特有のルート計算を行いますが、エリア間ではABRによるルート情報の再作成が行われるため、情報がディスタンスベクター型特有の「噂話」に変化します。噂話(Summary-LSA)は発信源のルータしかその信ぴょう性を保証できないため、エリア間接続は原則バックボーンエリアとの接続に限定します。

存在できるルータ

各エリアはシングル構成のネットワークと同じ特徴を持ちますので、内部ルータとASBRが存在できます。それに加えてエリアをつなぐ役割のABRが必ず存在します。ただし、上で説明したようにスタブエリアではASBRが存在できません。また、1つでもバックボーンエリアに属するインターフェースを持つルータはバックボーンルータという別名も持つことになります。

エリア間でルート集約が行える

エリア内ではルート集約を行えませんが、エリア間ではルート集約を行えます。

バックボーンエリアと非バックボーンエリアの特徴をまとめると下表の様になります。

エリア 特徴
バックボーンエリア
(Backbone area)
1つだけ存在できるエリアID 0.0.0.0のエリア
非バックボーンエリアと接続する
すべての種類のルータが存在できる
スタブエリアにはできない
分割できない
トランジットエリアにはできない
非バックボーンエリア
(non-backbone area)
複数存在できすべてのエリアがバックボーンエリアに接続する
トランジットエリアにできる
AS外ルートを扱わない選択ができる(スタブエリア)
すべての種類のルータが存在できるが、スタブエリアになるとASBRが存在できない。

マルチエリアの一般的な分類

RFCにおけるエリアの分類は上表のとおりでいたってシンプルですが、一般的に下表のような分類がよく行われます。これらは非バックボーンエリアの解釈を別のRFCやメーカー独自で拡張し分類したものです。

エリア 特徴
バックボーンエリア 上で説明したバックボーンエリアと同じ
ノーマルエリア 上で説明したスタブエリアではない非バックボーンエリアと同じ。RFCではこのエリアに対する名前がないため一般的に「ノーマルエリア」や「プレーンエリア」などを使用する。このサイトでは必要な場合はノーマルエリアを使用
スタブエリア 上の非バックボーンエリアで説明したスタブエリア
完全スタブエリア メーカーの独自拡張。AS外ルートに加えてエリア間ルートも受け取らないエリア
NSSA RFC1587、RFC3101による拡張。スタブエリアにASBRを設置できる。「OSPFの拡張」のページ(RFC3101)を参照
NSSA完全スタブエリア RFC3101による拡張。LS Type 5のAS外ルートに加えてエリア間ルートも受け取らないエリア。「OSPFの拡張」のページ(RFC3101)を参照

■エリアの機能

上で説明したようにエリアはルータを目的に応じてまとめるのが主な役割ですが、その他にも様々な機能を持っています。とはいえエリアはルータが作成する論理的な範囲であるため実際にはABRがエリア単位で行う機能ということになります。

ルート集約

OSPFではエリアの境界でルート集約を行います。OSPFはリンク情報から計算によってルート情報を得るため、エリア内の各ルータではエリア集約が行えません。代わりにエリア間ではディスタンスベクター的な情報の受け渡しになるためABRに集約を行う範囲を指定することで集約を行うことができます。下図はエリア1のサブネットを1つのルートに集約して配布している様子です。エリア1内では個別に扱うしかないサブネットを1つのルートにまとめてエリア0に配布することで情報を削減できます。ルート集約の情報はエリアが管理するもの(下図の場合の集約情報はエリア1が持つ)ですが設定自体はABRに行うため複数のABRが存在する場合はすべてのABRで同じ設定を行います。ただし、エリア0の集約したルートをトランジットエリアに配布することはできません。

LSDB(LS Type 1-4)

各ルータはLSAを作成してエリア内で同期を行います。各ルータは自分が作成したLSAと同期で取得したLSAをエリア単位で格納します。エリアでは同期したLSAを元にしてルート計算を行いその過程でShortest-path treeを作成します。各エリアが持つのはLS Type 1-4(Router-LSA、Network-LSA、Summary-LSA、ASBR-Summary-LSA)のLSAです。LS Type 5のAS-external-LSAはOSPF全体で共通であるためプロトコルデータ構造で管理されます。下図は各エリアが保存するLSDBを表しています。R1ではそれぞれのエリアでLS Type1-4のLSAが個別に管理されます。LS Type 5のLSAだけはOSPFが管理しています。このすべてのLSAを合わせてLSDBとなり、各エリアで持つLSAとLS Type 5のLSAを合わせたものをそれぞれのエリアのLSDB(Area LSDB)と呼びます。

Shortest-path treeの作成

Shortest-path treeはLSAを元にルート計算を行い、ルータ間の接続関係を明らかにした情報です。Shortest-path treeはエリア毎に異なりここに各ネットワーク(ルータ、IPサブネット、エリア間ルート、AS外ルート)を当てはめてルート情報を作成します。各エリアで作成したルート情報はルーティングテーブルに登録されます。ルーティングテーブルに登録する際にはエリアによる優先順位によってルート情報の取捨選択が行われます。下図はエリアのLSDB(Area LSDB)からShortest-path treeを作成しているところを表しています。厳密にはLSDB内のRouter-LSAとNetwork-LSAから作成したツリーがShortest-path treeとなり、残りのSummary-LSAなどはリーフとしてルート計算に使用されます。

バーチャルリンクの提供

エリア内に論理的なエリア0の回線であるバーチャルリンクを通すことができます。下図はR1とR2の間にバーチャルリンクを設定した様子を表しています。バーチャルリンクが横断するエリアはトランジットエリアという役割を持つことになりバーチャルリンクで搬送するパケットを転送します。ただしスタブエリアではこの機能を提供できません。

バーチャルリンクの考え方

バーチャルリンクはOSPFの作成する仮想的な回線です。バーチャルリンクはエリアの構成に大きく影響するためここで説明します。

上で説明したように非バックボーンエリアは必ずバックボーンエリアに接続しなければなりません。しかし、もしエリア0に接続するのが難しい場合はバーチャルリンクを使用して仮想的に接続することができます。下図はバーチャルリンクを使用した接続です。R1とR2の間にバーチャルリンクを設定してエリア2をエリア1経由でエリア0に接続しています。この時エリア1は仮想的に情報を運ぶためのトランジットエリアという役割を持つことになります。

バーチャルリンクの特徴

・ABR間で設定する

・バーチャルリンクはエリア0になる

・バックボーンエリアをトランジットエリアにできない

・スタブエリアをトランジットエリアにできない

バーチャルリンクはエリア0の回線であることに注意が必要です。例えば下図の上のようにR1とR2の間にバーチャルリンクを設定すると、下図の下のようにこれまでエリア1だけに属していたR2にエリア0が作成されます。これによってR2は2つのエリアに属するABRとして動作することになります。

上図の論理的な関係は下図のようになります。バーチャルリンクは仮想的な回線ですが、その効果はエリア0に設定した物理的な回線で接続した場合と同じように考えなくてはなりません。

R2がABRとして動作するということは、下図のようにR2に新たなエリアを追加しても正常に動作することになります。

この場合の論理的な関係は下図のようになります。R2はバーチャルリンクを通じてエリア2をエリア0に接続する役割を担っています。

AS外ルートを扱うかどうか(スタブエリア)

前でも説明したように非バックボーンエリアはAS外ルートを扱うことができるエリアかどうかを選択することができます。AS外ルートを扱わないエリアは他のエリアに頼らなければAS外に出ることができないため「残り」という扱いの「スタブ」エリアになります。下図はASBRが作成したAS-external-LSAをAS内に配布している様子です。エリア1はAS外のルートを扱うことができるためAS-external-LSAがR1から配布されますが、エリア2はAS外のルートを扱うことができないためAS-external-LSAがR2から配布されません。代わりにデフォルトのルートを表すSummary-LSAをスタブエリア内に配布できます。その際に使用するデフォルトコストを指定しておく必要があります。AS外ルートを扱わない場合は作成も行えないことになるためこのエリアにはASBRが設置できないということになります。バックボーンエリアはスタブエリアとして設定できません。またスタブエリアを介したバーチャルリンクは構成できません。

インターフェースの管理

エリアの設定はインターフェース毎に行います。そのためエリアはどのインターフェースが含まれているかを管理します。下図はエリアが管理するインターフェースの紐づけを表しています。R1には2つのインターフェースがあり両方ともエリア1に属するため、エリア1はIF1とIF2に紐づけた情報を管理しています。R2も2つのインターフェースを持ちますが、それぞれ属するエリアが異なるためそれぞれのエリアが属するインターフェースだけを紐づけています。なお回線は1つのエリアだけに属するため回線を共有する各ルータはインターフェースに対して同じエリアID(下図の場合R1のIF1とR2のIF2は同じエリアID)を付与しなければなりません。

■補足

エリアデータ構造(The Area Data Structure)

このページで使用しているエリアデータ構造の各要素の正確な表現は下表のとおりです。表は「OSPFネットワークの構造」の補足で用いたものと同じです。

” * “がついているものは設定可能なパラメータです。

パラメータ、要素 意味
Area ID* エリアを識別する32ビットの番号
List of area address ranges* エリア境界でルート情報の集約に使用可能なアドレス範囲情報。 IP addressとmaskのセットと、Statusからなる。StatusにはAdvertiseもしくはDoNotAdvertiseが入りエリア内で使うかどうかを示す
Associated router interfaces エリアに接続するインターフェース情報
List of router-LSAs エリア内の各ルータによって生成されるLSA(LS Type 1)
List of network-LSAs エリア内のブロードキャスト回線などで作成されるLSA(LS Type 2)
List of summary-LSAs ABRで作成されるLSA(LS Type 3, 4)
Shortest-path tree LSAを元に作成したルート情報を求めるためのツリー情報
TransitCapability トランジットエリアとしての機能の可否を示す情報
ExternalRoutingCapability* LS Type 4, 5のLSAを扱うかどうかの情報(スタブエリアとなるかどうか)
StubDefaultCost* ABRがスタブエリアに対して適用する既定のコスト