OSPF(Open Shortest Path First) は、リンクステート型ルーティングプロトコルの代表格で、
LAN・WANを含む中〜大規模ネットワークで使われるIGP(Interior Gateway Protocol)です。
Contents
基本動作
1. Helloパケットで隣接ルータを発見
- 各OSPFルータは、インターフェイスごとにHelloパケットを定期的に送信します。
- Helloパケットの中には以下の情報が含まれます:
- ルータID
- Hello/Deadタイマー
- ネットワークマスク
- 認証情報
- Area ID など
➡ これらの条件が一致した隣のルータ同士が、Neighbor(隣接関係)を形成します。
2. 隣接関係の確立
- Helloのやり取りが成功すると、ルータ同士はネイバー関係を確立します。
- OSPFのネイバー状態までは、以下のように進みます。
| 状態 | 内容 |
|---|---|
| Down | まだHelloを受け取っていない |
| Init | 相手のHelloを受け取った |
| 2-Way | 双方向通信が確認された(DR選出完了) |
| ExStart | LSA交換の準備 |
| Exchange | LSAヘッダを交換 |
| Loading | LSAの内容を要求・受信 |
| Full | 同期完了(隣接確立) |
3. DR/BDRの選出
- セグメント上に複数ルータがある場合、通信量を減らすために次を選出します:
| 役割 | 説明 |
|---|---|
| DR(Designated Router) | ネットワーク内の代表。LSAを中継する中心。 |
| BDR(Backup DR) | DRが落ちたときの予備。 |
選出基準は:
- OSPFプライオリティ(
ip ospf priority)が高いルータ - 同じならRouter IDが大きい方
4. LSA交換➡LSDB構築➡ネットワーク全体図の作成
- 隣接ルータは、お互いのリンク情報を LSA(Link State Advertisement) として交換します。
- LSAを全ルータにフラッディング(洪水のように配布)し、
結果として各ルータは同じネットワークマップ(LSDB)を保持します。
5. SPFツリーの作成➡ルーティングテーブルへの登録
- 各ルータはLSDBをもとに、SPF計算(Dijkstra(ダイクストラ)アルゴリズム)を実行し、SPFツリー(最短経路ツリー) を作成します。
- 宛先までの最短経路を、ルーティングテーブル(RIB)に登録します。
6. 経路変更時の再計算(高速収束)
- リンク障害や新規ルータの追加が発生したとき:
- 障害を検出したルータがLSAを再送信
- 各ルータが新しいLSDBを構築
- 再びSPF計算を実施
➡ このため、OSPFは高速に経路を再計算(収束)できます。
まとめ
| 項目 | 内容 |
|---|---|
| 種類 | リンクステート型IGP |
| 経路情報単位 | LSA(Link State Advertisement) |
| 経路計算 | SPF(Dijkstra)アルゴリズム |
| 経路選択基準 | コスト(帯域幅に基づく) |
| 優れた点 | 高速収束・ループ防止・スケーラブル |
| 注意点 | メモリ・CPU負荷が高い/設計要素が多い(エリア設計など) |