コンテンツにスキップ

OSPFの全体像

OSPF は、ルータ同士がリンク状態を交換し、各ルータが SPF 計算で最短経路を求めるリンクステート型 IGP。

OSPF は Open Shortest Path First の略で、主に同一組織や同一 AS 内のルーティングに使われる。RIP のように経路表そのものを定期的に丸ごと交換するのではなく、ネットワークのリンク状態を交換し、各ルータが自分で最短経路を計算する。


OSPF は、内部ネットワークで動的に経路を学習するために使う。

主な目的は次のとおり。

  • ルータ同士で経路情報を自動的に共有する
  • 障害時に別経路へ切り替える
  • 大きなネットワークをエリアで分割して管理する
  • 手動の静的ルートを減らす

1. Helloパケットで隣接ルータを発見する
2. 条件が合えばネイバーになる
3. 必要に応じて隣接関係を形成する
4. LSAを交換する
5. LSDBを同期する
6. SPF計算で最短経路を求める
7. 結果をルーティングテーブルへ入れる

OSPF では、各ルータが同じエリア内のトポロジ情報を持つ。その情報をもとに、自分を起点として最短経路ツリーを計算する。


用語 意味
Neighbor Hello により認識した隣接ルータ
Adjacency LSA を交換するために形成した関係
LSA リンク状態を表す情報
LSDB LSA を集めたリンクステートデータベース
SPF LSDB をもとに最短経路を計算する処理
Area OSPF のトポロジ情報を分割する単位
Area 0 バックボーンエリア
ABR 複数エリアに接続するルータ
ASBR 外部経路を OSPF に再配送するルータ

OSPF はエリアによってネットワークを分割できる。

Area 1
↓
ABR
↓
Area 0
↓
ABR
↓
Area 2

Area 0 はバックボーンエリアである。複数エリア構成では、基本的に各エリアは Area 0 を経由して接続される。

エリアを分ける主な理由は、LSDB の範囲を制限し、SPF 計算や LSA の拡散範囲を抑えるためである。


OSPF は cost を使って経路を選ぶ。基本的には、宛先までの累積 cost が小さい経路が優先される。

R1 -- cost 10 -- R2 -- cost 10 -- R4
R1 -- cost 50 -- R3 -- cost 10 -- R4

この場合、R1 から R4 へは累積 cost 20 の R2 経由が優先される。


誤解 実際
OSPF は経路表をそのまま交換する OSPF は LSA を交換し、各ルータが SPF 計算する
Neighbor になれば必ず LSDB を完全同期する ネットワークタイプや DR / BDR により隣接関係の作り方が変わる
Area 0 は任意でよい 複数エリア構成では Area 0 がバックボーンになる
cost は帯域だけで完全に決まる 実装や設定により参照帯域や手動 cost の影響を受ける