IPv4で利用するOSPFv2で利用されるパケットの種類の紹介および、各OSPFパケットのヘッダーのフォーマットを紹介します。
OSPFv2 パケット利用アドレスおよびプロトコル番号
OSPFv2パケットはTCPやUDPは利用しません。IPv4のヘッダー内のProtocolは「89」が入っています。
宛先のアドレスは、Unicastもしくは、マルチキャストアドレスを利用します。
- Unicast
- 224.0.0.5 (AllSPFRouters)
OSPFが実行しているすべてのルータ宛への送信時に利用するアドレス。 - 224.0.0.6 (AllDRouters)
OSPFのDR/BDR宛への送信時に利用するアドレス。
OSPFv2 パケットの種類
Type | パケット名 | 概要 |
---|---|---|
1 | Hello | ネイバールータの発見と生存確認を行う |
2 | DBD (Database description ) | 自身のLSDBに含まれているLSAのリスト一覧。ネイバールータとこのDBDを交換し合うことにより、自身に不足しているLSAが何なのかを認識することができる。 |
3 | LSR (Link state request) | 自身のLSDBに不足しているLSAがあった場合、ネイバールータにその特定のLSAを要求するために使用される。 |
4 | LSU (Link state update) | LSRによりネイバーから要求されたLSAを送信するために使用。 |
5 | LSAck (Link state ack) | LSUを受信したことを通知するための確認応答として送信。 |
OSPFv2 パケットヘッダー フォーマット
OSPFv2 各種パケットのヘッダーが下記フォーマットになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Version # | Type | Packet length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Area ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | AuType | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Authentication | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Authentication | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
Version #
OSPFのバージョン情報があります。今回紹介するのはIPv4のOSPFv2になるので、2が格納されています。
IPv6は、OSPFv3になるので、3が入ります。
Type
OSPFパケットの種類上記に紹介したパケットの種類の番号、1(Hello),2(DBD),3(LSR),4(LSU),5(LSAck)が格納されます。
Packet length
OSPFパケット全体の長さをByteで格納されています。このOSPFパケット長には、OSPFヘッダーも含めた値になります。
Router ID
OSPFパケットを送信するルータIDを格納します。
ルータIDに関しては下記のページに詳細を記載しています。
Area ID
OSPFがパケットを送信するインターフェイスのエリアIDが格納されています。0.0.0.0 はバックボーンエリアとなります。
Checksum
認証フィールドを除くOSPFパケット全体のChecksumが格納されています。ただし、暗号認証の場合は計算しない。
AuType
OSPFの認証方式が格納されます。
AuType | 認証タイプ |
---|---|
0 | 認証なし (Null authentication) |
1 | クリアテキスト (Simple password) ※認証情報がパケット内に記載されるため、パケットキャプチャすると認証が破られます。 |
2 | MD5ハッシュ (Cryptographic authentication) |
Authentication
前項のAuTypeによって格納される情報が異なります。
AuType=0の場合は送信時には何を入れても問題ありません。受信時にはこのフィールドは無視されます。
AuType=1の場合は、認証設定したテキストがそのまま格納されます。
AuType=2の場合は下記フォーマットでMD5認証情報が格納されます。さらにCryptographic data がパケットに追加されます。
1 2 3 4 5 6 7 |
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 | Key ID | Auth Data Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Cryptographic sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
key ID Authentication
認証アルゴリズムとハッシュを生成する、秘密鍵が格納されます。
Auth Data Len (Authentication)
OSPFパケットに付与されるMessage Digestの長さが張ります。MD5の場合は16が入ります。
Cryptographic sequence number (Authentication)
リプレイ攻撃を防ぐための暗号のシーケンス番号
Cryptographic data
前項の Auth Data Len と指定したサイズの MD5 keyが追加されます。
スポンサーリンク
OSPF 関連記事一覧
OSPFプロトコル解説記事
- OSPFとは
- OSPF Router-ID
- OSPF パケットの種類およびパケットヘッダーフォーマット
- OSPF状態遷移およびOSPFパケットの種類
- OSPF Optionsフィールド
- OSPF DR/BDR
- ネットワークタイプ
- LSAの概要 LSAヘッダー
- エリア
- エリア スタブエリア / トータリースタブエリア
- エリア NSSAエリア / トータリーNSSAエリア
- OSPF 経路集約
OSPF設定例記事
- 基本設定
Cisco IOS Cisco IOS-XR Cisco NX-OS Juniper JUNOS VyOS1.3 - コスト設定
Cisco IOS Cisco IOS-XR Cisco NX-OS Juniper JUNOS - プライオリティ
Cisco IOS Cisco IOS-XR NX-OS Juniper JUNOS - MD5認証
Cisco IOS Cisco IOS-XR Cisco NX-OS Juniper JUNOS - NetworkType ( Broadcast / Point-to-Point )
Cisco IOS Cisco IOS-XR Cisco NX-OS Juniper JUNOS - スタブエリア
Cisco IOS Cisco IOS-XR Cisco NX-OS - トータリースタブエリア
Cisco IOS Cisco IOS-XR Ciso NX-OS - NSSA
Cisco IOS Cisco IOS-XR Cisco NX-OS - トータリNSSA
Cisco IOS Cisco IOS-XR Cisco NX-OS - 経路集約
Cisco IOS Cisco IOS-XR Cisco NX-OS
OSPF RFC
- RFC2328 OSPF Version 2
- RFC3101 The OSPF Not-So-Stubby Area (NSSA) Option
- RFC3883 Detecting Inactive Neighbors over OSPF Demand Circuits (DC)
OSPF関連図書
私が所持しているOSPF本の紹介です。ただし絶版になっている本も紹介していますがご容赦ください。