メインコンテンツまでスキップ

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 アドレス
  • ネイバー優先度
  • 指定ルーターとバックアップ指定ルーター
  • リンクステート要求リスト
  • データベース要約リスト
  • リンクステート再送リスト

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)

データ構造主な用途更新タイミング
グローバルパラメータルーター基本設定設定変更時
エリア構造エリア設定と LSDBLSA 更新時
インターフェース構造インターフェース状態とネイバー管理Hello プロトコル
ネイバー構造隣接関係維持状態機械遷移
LSDBトポロジ情報保存LSA フラッディング
ルーティングテーブル転送決定SPF 計算

メモリとパフォーマンスの考慮事項 (Memory and Performance)

メモリ使用量の推定

基本式

  • LSDB サイズ ≈ (ルーター数 × Router-LSA) + (ネットワーク数 × Network-LSA) + (エリア間ルート × Summary-LSA)
  • ネイバー構造 ≈ インターフェース数 × 平均ネイバー数
  • ルーティングテーブル ≈ すべての到達可能ネットワーク数

最適化の推奨事項

  1. エリア分割:各エリアのサイズを制限
  2. ルート集約:LSA 数を削減
  3. スタブエリア:外部ルート情報を削減
  4. インターフェース調整:タイマーパラメータを調整

技術要点まとめ (Technical Summary)

データ構造設計原則

  1. 階層的組織化

    • グローバル → エリア → インターフェース → ネイバー
    • 管理と障害分離を容易に
  2. 状態機械駆動

    • インターフェース状態機械
    • ネイバー状態機械
    • 明確な状態遷移
  3. 分散データベース

    • 各ルーターが完全な LSDB を維持
    • フラッディングにより同期を保持
    • ルーティングの一貫性を確保

参考資料 (References)


注意 (Note):本章は概要を提供します。詳細なデータ構造の定義と操作は後続の章で詳しく説明されます。