インターネットのルーティングプロトコルであるOSPFについて、役割と特徴を説明します。
OSPF(Open Shortest Path First)はAS内で使用するインターネット標準のリンクステート型のルーティングプロトコルです。OSPFはルータが接続しているリンク情報を交換しドメイン内のツリーを作成することでルート情報を求めます。RIPなどのディスタンスベクター型のプロトコルと異なりルート情報をそのまま使わず、リンク情報から各ルータが計算によってルート情報を求める仕組みであるため正確でループの起こりにくいプロトコルです。半面、仕組みが複雑であるため直感的な理解の難しいプロトコルであるといえます。OSPFのバージョンはIPv6に対応したVersion3までが規定されていますが、ここではIPv4に対応した最新のVersion2(RFC2328)をベースに説明します。
分類はIGP
OSPFはAS内での使用が想定されたIGPです。
IP上で動作
OSPFはIPの上で直接動作します。RIPやBGPなどはUDPやTCPを介して動作しますが、OSPFではパケットの制御をプロトコル内で行います。プロトコル番号は89です。
IPv4をサポート
ここで説明するOSPF version 2(RFC2328)はIPv4に対応したプロトコルです。IPv6はOSPFv3でサポートしています。
CIDRに対応
CIDRに対応しているためクラスレスのアドレッシングをサポートします。
リンクステートプロトコル
各ルータのリンク情報を元にルート情報を計算によって求めるリンクステートプロトコルです。
メトリックはコスト
OSPFのメトリックはコストです。コストはインターフェースに付与する値でルート選択で使用されます。宛先までのトータルコストが最小のルートが優先されるルートです。
エリアを構成
OSPFはAS内で動作しますが、OSPFはASをいくつかのエリアに分割して管理することができます。OSPFを複数のエリアで構成する場合にはバックボーンエリアを中心としたスター型のトポロジーになります。
同期にユニキャストとマルチキャストを使用
ネイバーの発見やLSAのアップデートなどでユニキャストとマルチキャストを使用します。回線の種類や状況に応じて使い分けます。
インターネットにおけるOSPFの役割はルーティングテーブルを作成することでIPルーティングをサポートすることです。OSI参照モデルのネットワーク層に位置するIPはトランスポート層に対してネットワークサービスを提供していますが、そのサービスに依存するプログラム(TCPやUDPなど)はIPにルーティングの機能を期待してIPを利用します。そのためIPでは指定された宛先に対して正常にルーティングを行える機能や情報が整っていなければなりません。OSPFは自身がIPを使用して動作し、IPの正確なルート情報を求めてルーティングテーブルにインストールしルータが正常にルーティングが行えるようにすることで、上層に対するネットワークサービスのサポートをします。このページではOSPFはOSPF Version 2を説明していますが、OSPF Version 3も役割としては同じです。
OSPFの動作を簡単に説明します。
下図のようにOSPFの動作する各ルータはエリア内にあって、自分がどのネットワークに繋がっているかを表すリンク情報を交換しています。エリア内のすべてのルータのリンク情報を得ることができると計算によってルート情報を求めます。リンク情報はルータの状態や設定に少しでも変化が生じると作成し直されて再配布するので、常に正確なルート情報を持つことができます。もし複数のエリアがある場合にはそれぞれのエリア内でも同じことが行われます。
エリアは連続して配置することができ、下図のように複数のエリアで構成できます。このような場合はエリアの境界にあるルータがそれぞれのエリアのルート情報を交換します。これによって各エリアはすべてのエリアのルートを計算できるようになります。
OSPFネットワーク全体は一般的に1つのASとして管理されますが、OSPFとは異なるASとの接続にはネットワークの境界にあるルータが情報をやり取りします。これによってOSPFのすべてのルータが別のASのルートを計算できるようになります。
OSPFの基本仕様に関するドキュメントは以下の通りです。OSPFに付加、拡張された機能については「OSPFの拡張」のページで扱っています。
ドキュメント | 内容 | 説明 |
RFC2328 | OSPF Version 2 | OSPF Version 2の動作・仕様 |
RFC1850、RFC4750 | OSPF Version 2 MIB | OSPF Version 2のMIB |
OSPFに関係するRFCを年代と用途ごとにプロットしたものをまとめました。