OSPFパケット【OSPF Packet】

広告

広告

OSPFパケット

最終更新
2006-11-26T00:36:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/ospf_pct.html#what

OSPFでは様々なパケットを用いますが、それら毎にパケットの形式が全く違うことはあまり好ましくありません。そのため、OSPFでは各パケットで共通して用いるヘッダフォーマットを用意しています。

OSPFヘッダフォーマット

OSPFヘッダフォーマット

バージョンフィールド
OSPFのバージョンを表します。現在一般的に用いられているOSPFのバージョンは2です。
タイプフィールド
パケットタイプを表す値を表します。パケットタイプとその値については、OSPFパケットの種類と役割をご覧下さい。
パケット長フィールド
OSPFヘッダを含むパケット長をオクテッと単位で表します。
ルータIDフィールド
OSPFパケットを送信したルータのルータIDを表します。
エリアIDフィールド
OSPFパケットを送信したルータが属するエリアを表します。マルチエリアに分割された際にエリアを識別するための識別子として用いられます。
チェックサムフィールド
パケット全体の内容をチェックして、伝送過程でのパケットの損傷の有無を調べます。これにはTCP/IPでの標準的な方法が用いられています。チェックサム計算の対象はOSPFヘッダを含むOSPFパケット全体ですが、認証フィールドの64bitは計算対象に含まれません。
認証タイプフィールド
OSPFエリアごとに設定された認証タイプを表します。
認証フィールド
認証情報がこのフィールドに入れられます。認証タイプが0の場合はこのフィールドの値は受信側によって無視されます。認証タイプが1の場合は平文のパスワード、認証タイプが2の場合はMD5で暗号化されたパスワードが入れられます。

Helloパケット

最終更新
2006-11-26T14:26:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/ospf_pct.html#hello

Helloパケットは、双方向状態の確立及び維持のために送信され、又マルチアクセスネットワークでは指名ルータ及びバックアップ指名ルータの選出に用いられます。OSPFルータは起動時にHelloパケットを送信することによって、自身の存在を周りに知らせます。

OSPFHelloパケットフォーマット

サブネットワークマスクフィールド
送出インターフェイスのサブネットワークマスクを表します。
Helloインターバルフィールド
ルータがHelloパケットを送信する周期を秒単位で表します。この周期は、同一ネットワークに接続する全てのルータ間で統一されなければなりません。ちなみにCiscoルータでのデフォルト値は、LAN及びポイントツーポイントネットワークで10秒、NBMAで30秒とされています。
オプションフィールド
送出するルータで使えるオプション、もしくは使おうとしているオプション(Capability)を指定します。これにより、ルータに対して付加的な能力のネゴシエーションを可能とします。オプションフィールドは、Helloパケット、DBDパケット、LSAで共通に用いられ、下図フォーマットを採ります。
優先度フィールド
送信元ルータが持つプライオリティ値を表します。このフィールドが指名ルータ及びバックアップ指名ルータを選出する際の判断基準となります。
ルータDeadインターバルフィールド
ある一定期間Helloパケットを受信しなかった場合、その送信元である隣接ルータはダウンしたものとみなされ、その期間を表します。この周期は、同一ネットワークに接続する全てのルータ間で統一されなければならず、隣接ルータ間で一致していない場合にはルートフラッピングの原因となります。Ciscoルータでのデフォルト値は、Helloインターバルの4倍に設定されています。
指名ルータフィールド
送出するインターフェイスが所属するネットワークの指名ルータと認識しているルータの(そのネットワークに接続するインターフェイスの)IPアドレスを表します。
バックアップ指名ルータフィールド
送出するインターフェイスが所属するネットワークのバックアップ指名ルータと認識しているルータの(そのネットワークに接続するインターフェイスの)IPアドレスを表します。
隣接ルータフィールド
Helloパケットを送信するルータは、自身が知っているルータを全てリスト化します。ルータは、隣接ルータから受信したHelloパケットの隣接フィールドリストの中に自身を発見した場合、その隣接ルータと双方向状態が確立されているものとみなします。

オプションフィールドフォーマット

OSPFオプションフィールドフォーマット

DCビット
Demand Circuitに対応しているかどうかを表すビットです。Demand Circuitとは、ISDNやX.25のように接続時間やトラフィック量などによって料金が変わるネットワークセグメントを表します。
EAビット
External-Attributel-LSA(タイプ8)に対応しているかどうかを表すビットです。一般的には未だ用いられていません。
N/Pビット
このビットは、HelloパケットとNSSA-External-LSA(タイプ7)のみで利用され、Helloパケットで用いられる場合はNビット、NSSA-External-LSAで用いられる場合はPビットと呼ばれます。Nビットは、NSSA-External-LSAをサポートしているかどうかを表します。このビットがお互いにマッチしなければ、双方向状態となることはできません。もしNビットに1がセットされているのであれば、Eビットは0でなければなりません。また、PビットはNSSA-External-LSAヘッダのみで用いられ、1をセットすることによりNSSAのエリア境界ルータに対してNSSA-External-LSAをAS-External-LSAに変換するよう促します。
MCビット
IPマルチキャストパケットが、Muliticast Extentions to OSPF(MSOPF)の定義に従って転送されるかどうかを表すビットです。
Eビット
自律システム外部経路の流され方を表すビットです。発信元ルータがAS-External-LSAパケットを受け入れることができるのであれば、Eビットがセットされます。つまり、全てのAS-External-LSA及びバックボーンエリアあるいは非スタブエリアから発信されるLSAのEビットは1がセットされ、スタブエリアから発信されるLSAのEビットは0がセットされます。

DBDパケット

最終更新
2006-11-26T14:41:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/ospf_pct.html#dbd

DBD【DataBase Description】パケットは、リンクステートデータベースの内容を記述したパケットで、隣接関係を初期化する段階で交換されます。

OSPF DBDパケットフォーマット

インターフェイスMTUフィールド
特定のネットワークタイプで送信できるデータのMTUを表します。ここで指定されたサイズを超えるパケットはフラグメント化されます。
フラグフィールド
フラグフィールドのフォーマットは下図の通りです。
データベース記述シーケンス番号フィールド
DBDパケットの交換順序を表します。この番号は、DBDパケットの転送が完了するまで、パケットが送信されるたびに増加されます。初期値はマスタによって定義されています。
LSAヘッダ
リンクステートデータベース内のLSAエントリの要約が入れられます。

フラグフィールドフォーマット

OSPFフラグフィールドフォーマット

Iビット
Initビットの略。このビットがセットされていると、そのパケットがDBDパケットの最初のパケットであることを表します。
Mビット
Moreビットの略。このビットがセットされていると、後続のDBDパケットがまだ残っていることを表します。
MSビット
Master/Slaveビットの略。このDBDパケットの送信元ルータの役割がマスタ(1)なのかスレーブ(0)なのかを表します。

LSRパケット

最終更新
2006-11-26T19:25:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/ospf_pct.html#lsr

最新情報が相手側にあると判った場合、LSR【Link State Request】パケットを送信して最新情報を要求します。LSRパケットを受信したルータはLSUパケットを送信して要求に応えることとなります。

OSPF LSRパケットフォーマット

LSUパケット

最終更新
2006-11-26T19:30:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/ospf_pct.html#lsu

LSU【Link State Update】パケットは、ルーティング情報を直接運ぶパケットです。

OSPF LSUパケットフォーマット

アドバタイズ数フィールド
LSUパケットに含まれるLSAの数を表します。

LSAckパケット

最終更新
2006-11-26T19:36:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/ospf_pct.html#lsack

LSAck【Link State Acknowledgement】パケットは、LSAを受信した際の応答確認のために使われます。1つのLSAckパケットで複数のLSA受信確認を行うことができ、OSPFヘッダの後にいくつかのLSAヘッダが続きます。

OSPF LSAckパケットフォーマット

補足事項

最終更新
2006-11-25T13:21:00+09:00
この記事のURI参照
https://www.7key.jp/nw/routing/r_protocol/ospf_pct.html#supplement

広告

当ページ作成にあたり、参考にさせてもらったリソース

Copyright (C) 2006 七鍵 key@do.ai 初版:2006年11月26日 最終更新:2007年01月08日