5. Protocol Data Structures (プロトコルデータ構造)
本章では、OSPF プロトコルが使用する主要なデータ構造を簡単に紹介します。詳細は後続の章で展開します。
章の概要 (Chapter Overview)
OSPF プロトコルは、ネットワークトポロジとルーティング情報を維持するために複数の重要なデータ構造に依存しています。これらには以下が含まれます:
- グローバルパラメータ
- エリアデータ構造
- インターフェースデータ構造
- ネイバーデータ構造
- リンクステートデータベース
主要なデータ構造 (Main Data Structures)
1. グローバルパラメータ (Global Parameters)
ルーターレベルパラメータ
- Router ID:32 ビットの一意識別子
- エリアリスト:ルーターが参加するすべてのエリア
- AS 境界ルーターフラグ:ASBR かどうか
- 外部ルート情報:他のプロトコルからのルート
2. エリアデータ構造 (Area Data Structure)
各エリアが維持
- Area ID:エリア識別子
- エリア認証:認証タイプと鍵
- リンクステートデータベース:そのエリアのすべての LSA
- アドレス範囲:エリアのネットワークアドレス範囲
- エリアタイプ:標準エリア、スタブエリア、または NSSA
3. インターフェースデータ構造 (Interface Data Structure)
各インターフェースが維持
- インターフェースタイプ:ポイントツーポイント、ブロードキャスト、NBMA など
- インターフェース状態:Down、Loopback、Waiting、DR、Backup、DROther
- IP アドレスとマスク
- Area ID:インターフェースが属するエリア
- Hello 間隔と Dead 間隔
- ルーター優先度:DR 選出に使用
- ネイバーリスト:このインターフェース上のネイバー
4. ネイバーデータ構造 (Neighbor Data Structure)
各ネイバーが維持
- ネイバー ID:ネイバーの Router ID
- ネイバー状態:Down、Init、2-Way、ExStart、Exchange、Loading、Full
- ネイバー IP アドレス
- ネイバー優先度
- 指定ルーターとバックアップ指定ルーター
- リンクステート要求リスト
- データベース要約リスト
- リンクステート再送リスト
5. リンクステートデータベース (Link State Database)
LSDB 構造
- タイプ別に整理:Router-LSA、Network-LSA、Summary-LSA、AS-external-LSA
- エリアごとに分離:各エリアには独立した LSDB
- LSA ヘッダー情報:LS Age、LS Type、Link State ID、Advertising Router、LS Sequence Number
データ構造の関係 (Data Structure Relationships)
階層構造
ルーター (Router)
├── エリア 1 (Area 1)
│ ├── リンクステートデータベース (LSDB)
│ └── インターフェースリスト
│ └── ネイバーリスト
├── エリア 2 (Area 2)
│ ├── LSDB
│ └── インターフェースリスト
└── ルーティングテーブル (Routing Table)
主要データ構造の用途 (Data Structure Purposes)
| データ構造 | 主な用途 | 更新タイミング |
|---|---|---|
| グローバルパラメータ | ルーター基本設定 | 設定変更時 |
| エリア構造 | エリア設定と LSDB | LSA 更新時 |
| インターフェース構造 | インターフェース状態とネイバー管理 | Hello プロトコル |
| ネイバー構造 | 隣接関係維持 | 状態機械遷移 |
| LSDB | トポロジ情報保存 | LSA フラッディング |
| ルーティングテーブル | 転送決定 | SPF 計算 |
メモリとパフォーマンスの考慮事項 (Memory and Performance)
メモリ使用量の推定
基本式
- LSDB サイズ ≈ (ルーター数 × Router-LSA) + (ネットワーク数 × Network-LSA) + (エリア間ルート × Summary-LSA)
- ネイバー構造 ≈ インターフェース数 × 平均ネイバー数
- ルーティングテーブル ≈ すべての到達可能ネットワーク数
最適化の推奨事項
- エリア分割:各エリアのサイズを制限
- ルート集約:LSA 数を削減
- スタブエリア:外部ルート情報を削減
- インターフェース調整:タイマーパラメータを調整
技術要点まとめ (Technical Summary)
データ構造設計原則
-
階層的組織化
- グローバル → エリア → インターフェース → ネイバー
- 管理と障害分離を容易に
-
状態機械駆動
- インターフェース状態機械
- ネイバー状態機械
- 明確な状態遷移
-
分散データベース
- 各ルーターが完全な LSDB を維持
- フラッディングにより同期を保持
- ルーティングの一貫性を確保
参考資料 (References)
- 完全な原文:RFC 2328 Section 5
注意 (Note):本章は概要を提供します。詳細なデータ構造の定義と操作は後続の章で詳しく説明されます。