OSPF
OSPF とは
OSPF は、Interior Gateway Protocol(IGP)として分類され、IP パケットヘッダーにある宛先 IP アドレスのみに基づいて IP パケットをルーティングする。 また、動的ルーティングプロトコルであり、AS 内のトポロジーの変化(ルーターインターフェイスの障害など)をすばやく検出し、ループのない新しいルートを計算する。
OSPF はリンクステートルーティングプロトコルであり、各ルーターは AS のトポロジを説明するデータベースを持ち、リンク状態データベースと呼ばれるデータベースを保持している。 すべてのルーターは、まったく同 じアルゴリズム(ダイクストラ法)を並行して実行する。
宛先への等コストルートが複数存在する場合、トラフィックはそれらの間で均等に分散され、Equal-cost multipath という。
AS のリンク状態データベースは、有向グラフで記述する。ルーターとネットワークをグラフで表している。頂点はルータを表し、グラフの辺(エッジ)は、物理的なポイントツーポイントネットワークを介して接続されている 2 つのルーターが接続していることを意味する。頂点から辺が出ていることは、ルーターがネットワーク上にインターフェイスを持っていることを意味する。
ネットワークは、2 種類のネットワークが存在する。
- トランジットネットワーク
- ローカルで発信されたものでもローカルで送信されたものでもないデータトラフィックを伝送できるネットワークであり、入力エッジと出力エッジの両方を持つグラフ頂点で表す。
- スタブネットワーク
- 頂点には入力エッジのみ
OSPF では、隣接するネットワークとホストのコレクションをグループ化でき、グループは、含まれているネットワークのいずれか 1 つへのインターフェースを持つルーターと合わせて、エリア
と呼ばれる。各エリアには独自のリンクステートデータベースと対応するグラフが存在する。複数のエリアに接続されているルーターは、エリア境界ルーター
と呼ばれる。
特定のエリアの内部にあるルーターは、エリア内のトポロジの詳細を知っているが、外部にある、詳細なトポロジについては何も知らない。AS 全体を単一のリンクステートドメインとして扱う場合と比較して、プロトコルはルーティングトラフィックを大幅に削減できる。
AS でのルーティングは、パケットの送信元と宛先が同じエリア(エリア内ルーティング)にあるか、異なるエリア(エリア間ルーティング)にあるかに応じて行われる。エリア内ルーティングでは、パケットはエリア内で取得された情報のみに基づいてルーティングされ、エリア外から取得した経路情報は使用できない。これにより、エリア内ルーティングが不正なルーティング情報の挿入から保護される。
OSPF バックボーンは特別な OSPF エリア 0 であり、常にすべてのエリア境界ルーターが含まれている。バックボーンは、非バックボーンエリア間でルーティング情報を配信する役割を果たすため、バックボーンは全てのエリアと隣接している必要がある。ただし、物理的に隣接している必要はない。
2 つの非バックボーンエリア間でパケットをルーティングする場合、バックボーンが使用される。パケットが移動するパスは、3 つの連続した部分に分割でき、
- 送信元からエリア境界ルーターへのエリア内パス
- 送信元と宛先エリア間のバックボーンパス
- 宛先の別のエリア内パス
エリア間ルーティングは、AS 上でバックボーンをハブとして、非バックボーンエリアのそれぞれをスポークとしたスター構成と考えることもできる。
AS が OSPF エリアに分割されると、ルーターは機能に従ってさらに次の 4 つに分割される。
- 内部ルーター
- 同じエリアに属する直接接続されたルータ
- エリア境界ルーター
- 複数のエリアに接続するルーター。接続されたエリアのトポロジー情報を凝縮して、バックボーンに送信する。
- バックボーンルーター
- バックボーンエリアへのインターフェイスを持つルーター。複数のエリアにインターフェースするすべてのルーターが含まれる。
- AS 境界ルーター
- 他の AS に属するルーターとルーティング情報を交換するルーター。AS 全体で AS 外部ルーティング情報を送信する。
エリア間ルーティング
エリア外の宛先にルーティングできるようにするために、エリア境界ルーターは追加のルーティング情報をエリアに追加する。この追加情報には AS のトポロジの残りの部分を要約したものとなっている。 各エリア境界ルーターは、バックボーンエリアに接続されている。接続されている非バックボーンエリアのトポロジーを要約して、バックボーンエリアに伝達する。すなわち、他のすべてのエリア境界ルーターに送信される。 エリア境界ルーターは、バックボーンエリアに関する完全なトポロジ情報と、他の各エリア境界ルーターからのエリア情報の要約を取得し、すべてのエリアへのパスを計算できる。次に、ルーターはこれらのパスを接続されたエリアに伝達す る。これにより、エリアの内部ルーターは、エリア間宛先にトラフィックを転送するときに最適な出口ルーターを選択できる。
エリア 1 とバックボーンエリアとの境界に存在する紫色の矢印だと、バックボーンエリアの情報とエリア 2,3,4 の経路情報が集約され、エリア 1 に配信される。そのため、エリア 1 では全てのエリアの経路情報がわかるので、自ルータを起点に最適な経路を計算することができる。
AS 外部ルーティング
AS 境界ルーターは他の AS の経路情報を持ち、これを自エリアに配信する。この情報は逐次配信する。例外的にスタブエリアには配信されない。
スタブエリアとはバックボーンエリアにしか隣接せず、バックボーンエリアと隣接しているエリア境界ルータ 1 台しかエリア境界ルータが存在していないエリアのことを指す。
スタブエリアから別のエリアと通信する際には必ず固定のエリア境界ルータを通るため、他の経路情報は必要とせずエリア境界ルータをデフォルトルート(0.0.0.0/0
)として経路情報を学習させ、リンクステート情報量を削減し、データベースへのデータ量を減らすことができる。