OSPFの全体像
OSPF は、ルータ同士がリンク状態を交換し、各ルータが SPF 計算で最短経路を求めるリンクステート型 IGP。
OSPF は Open Shortest Path First の略で、主に同一組織や同一 AS 内のルーティングに使われる。RIP のように経路表そのものを定期的に丸ごと交換するのではなく、ネットワークのリンク状態を交換し、各ルータが自分で最短経路を計算する。
何のためにあるのか
Section titled “何のためにあるのか”OSPF は、内部ネットワークで動的に経路を学習するために使う。
主な目的は次のとおり。
- ルータ同士で経路情報を自動的に共有する
- 障害時に別経路へ切り替える
- 大きなネットワークをエリアで分割して管理する
- 手動の静的ルートを減らす
基本的な動き
Section titled “基本的な動き”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 2Area 0 はバックボーンエリアである。複数エリア構成では、基本的に各エリアは Area 0 を経由して接続される。
エリアを分ける主な理由は、LSDB の範囲を制限し、SPF 計算や LSA の拡散範囲を抑えるためである。
OSPF は cost を使って経路を選ぶ。基本的には、宛先までの累積 cost が小さい経路が優先される。
R1 -- cost 10 -- R2 -- cost 10 -- R4R1 -- cost 50 -- R3 -- cost 10 -- R4この場合、R1 から R4 へは累積 cost 20 の R2 経由が優先される。
よくある誤解
Section titled “よくある誤解”| 誤解 | 実際 |
|---|---|
| OSPF は経路表をそのまま交換する | OSPF は LSA を交換し、各ルータが SPF 計算する |
| Neighbor になれば必ず LSDB を完全同期する | ネットワークタイプや DR / BDR により隣接関係の作り方が変わる |
| Area 0 は任意でよい | 複数エリア構成では Area 0 がバックボーンになる |
| cost は帯域だけで完全に決まる | 実装や設定により参照帯域や手動 cost の影響を受ける |