はじめに
OSPFとはOpen Shortest Path Firstの略で、RIPに代わるルーティングプロトコルとしてITの現場ではよく見かけます。
本記事は、「OSPFはリンクステート方式でネットワークの帯域等も考慮して経路を選定できる」といった肝の知識に加えて、パケット構造からOSPFの特徴を補足説明してみました。
OSPFのパケット構造は?
パケットの共通ヘッダは以下となります。
Version | Type | Packet length | Router ID | Area ID | Checksum | Autype | Authentication |
このそれぞれを見ていけば、OSPFの特徴が補足的につかめます。
Version
ここにはOSPFのバージョン番号が格納されます。IPv4で利用されるのは2ですが、この領域はあまり気にする必要はなさそうです。
Type
ここにはOSPFのパケットの種類が格納されます。
全部で「5種類」あり、一定間隔で稼働していることを伝達するHelloパケット、自分が持っている情報を交換するDatabase Descriptionパケット、自分に不足している情報を要求するLink State Requestパケット、要求に対して答えるLink State Updateパケット、受信できたことを送信元に伝えるLink State Acknowledgmentパケットで全てです。
Packet length
文字通りパケットの長さが格納されています。この領域もあまり気にする必要はないです。
RouterID
32bitの識別子で、重複させないように設定する必要があります。
IPアドレスが重複していないという前提に立ってIPアドレスをそのまま割り当てたりしますが、ネットワークインターフェースが落ちてしまうと変更してしまうので手動で設定する場合もあります。
AreaID
これもまた32bitの識別子です。
自由に設定できますが、バックボーンエリアは「0.0.0.0」と決まっています。
ちなみに非バックボーンエリアは必ずバックボーンエリアに接続する必要があるという構造も、覚えておきたいです。
Checksum
OSPFはIPプロトコル上で動作しますが、パケットの中にチェックサムが含まれています。ただし、Authenticationはチェックサムの演算対象外です。
AuType
ここではパケットの認証の可否を決める情報が格納されます。
認証しない、平文で認証、MD5で認証、の3パターンがあります。RIPではRIP2で初めて認証が採用されましたが、OSPFでは初めから認証が設計されています。
Authentication
認証する場合の情報で、ここだけで8オクテット分あります。
終わりに
OSPFの共通パケットは、RouterIDとAreaIDという一意の情報と、パケットの種類であるType、認証に関するAutypeとAuthentication、そしてVersionとChecksumがおまけでついてくる、このイメージで覚えればパケット構造を空で書くこともできそうです。
ネットワーク系の知識を整理するにあたって、パケット構造を書けるか否かは理解度を測る指標になりえます。
この機会に、OSPFのパケットヘッダを覚えておくと、どこかで役立つやもしれません。
以上、ご参考になれば幸いです。