OSPF

OSPF状態遷移およびOSPFパケットの種類

OSPFパケットフォーマット

OSPFパケットはIPプロトコル番号 89 にて構成されています。
ブロードキャスト環境(イーサネットなど)では下記のマルチキャストアドレスを宛先アドレスとして利用します。

  • 224.0.0.5
    OSPFが実行している全てのルータ宛てへの送信時に利用
  • 224.0.0.6
    OSPFのDR/BDRが実行しているルータ宛てへの送信時に利用

OSPFのヘッダーが下記になります。

上記OSPFヘッダーがあり、さらに5種類のOSPFデータ(下記はHelloのパケット構造)を使ってルータ間でOSPFの情報を交換します。

パケットキャプチャーしたOSPFパケットを下記に保存していますので、Wiresharkでパケットの情報確認するのにどうぞ。

OSPFパケットの種類

OSPFには下記5種類のパケットで構成されています。

タイプパケット名パケットの種類
1Helloネイバールータの発見と生存確認を行う
2DBD自身のLSDBに含まれているLSAのリスト一覧。ネイバールータとこのDBDを交換し合うことにより、自身に不足しているLSAが何なのかを認識することができる。
3LSR自身のLSDBに不足しているLSAがあった場合、ネイバールータにその特定のLSAを要求するために使用される。
4LSULSRによりネイバーから要求されたLSAを送信するために使用。
5LSAckLSUを受信したことを通知するための確認応答として送信。

OSPF状態遷移(OSPFネイバー確立まで)

Down State

ネイバー確立の初期停止状態、OSPF Type1 Helloパケット(224.0.0.5)宛てに送信されて隣接ルータに到達する。

Init State

ルータが近隣ルータから HELLO パケットを受信したが、HELLO パケットに受信側ルータの RouterID が含まれていないことを示しています。 ルータがネイバーから HELLO パケットを受信するときは、有効な HELLO パケットを受信したことの確認応答として、HELLO パケットに送信側のルータの ID をリストして送信します。

2-Way State

ルータ間で双方向での通信が確立した状態。ネイバールータの存在を認識して上図でのneighborが含まれている状態である。マルチアクセスネットワークの場合はこのStateで「DR」「BDR」などが選出される。(詳細はDRの選定について)

Exstart State

隣接関係を形成するときの最初の状態です。
OSPF Type2 DBDパケットを相互に交換して、マスターとスレーブの選定、および隣接関係形成のための初期シーケンス番号の選択に使用されます。

Exchange State

Exchange 状態では、OSPF Type2 DBDパケットを交換し。LSAヘッダーだけが含まれ、リンク ステート データベース全体の内容が記述されています。 各 DBD パケットにはシーケンス番号があり、そのシーケンス番号を増分できるのは、スレーブによって明示的に確認されているマスターだけです。 上図のパケット交換で、R1にはLSA(1.1.1.1)、R2には(2.2.2.2),(3.3.3.3)の情報を持っていることを交換出来ます。

Loading State

Loading Stateでは、受信したDBDと自身のLSDBを比較し、不足分のLSAについてOSPF Type3 LSRパケットを利用して自信に不足しているLSA情報を要求します。
要求されたルータLSAをOSPF Type4 LSUパケットに格納してLSAを送信します。上図ではR1は、(LSA 1.1.1.1(R1)、R2は(LSA 2.2.2.2(R2), 3.3.3.3(R3))の交換が行われている。

Full State

完全状態。DBDの受信を確認するとOSPF Type5 LSAckを受信確認を送信します。互いにLSAckを送信することで隣接ルータと完全にLSDBを同期できた状態でになります。これにより同期プロセスが完了。

スポンサーリンク

パケットキャプチャーファイル

上記の実際のパケットのやり取りのファイルです。参考にどうぞ。

参考サイト

スポンサーリンク

OSPF 関連記事一覧

OSPFプロトコル解説記事

OSPF設定例記事

OSPF RFC

OSPF関連図書

私が所持しているOSPF本の紹介です。ただし絶版になっている本も紹介していますがご容赦ください。

著:ジョン・T. モイ, 監修:泰弘, 小原, 原著:Moy,John T., 翻訳:トップスタジオ

他ネットワークプロトコル解説記事

-OSPF
-,