OSPFってどんなの?

OSPFの概要

OSPFはIETF(Internet Engineering Task Force)標準のリンクステート型ルーティングプロトコルです。OSPFはRIPなどのディスタンスベクタ型ルーティングプロトコルのさまざまな制限をなくし、より大規模なネットワークで効率のよいルーティングを行うために開発されています。

今回は、OSPFの概要とその特徴についてご紹介します。

※ディスタンスベクタ型、リンクステート型ルーティングプロトコルについて
「ルーティングプロトコルの分類その2」

OSPFの歴史

OSPFは1980年代のなかばから、RIPに取って代わるルーティングプロトコルとして開発が進められました。

RIPでは、次のようないくつかの制限がありました。

  • ホップ数の制限
  • コンバージェンス時間が長い
  • 定期的なブロードキャストでネットワークに負荷を与える
  • ルーティングループ発生の可能性

OSPFでは、こういったRIPのさまざまな制限をなくし、より大規模なネットワークにおいて効率よくルーティングすることを目的としています。

1987年にIETFによって、OSPFの標準化が開始され1989年にRFC1131としてOSPFv1が公開されています。OSPFv1をさらに発展させて、1991年にOSPFv2が標準化されています。OSPFv2は以降もさまざまな機能が盛り込まれ、1998年にRFC2328が公開されています。これ以降もMPLS(Multi Protocol Label Switching)との相互作用やIPv6への対応など、さまざまな拡張が行われていく予定です。

v1、v2の2つのバージョンがありますが、一般にOSPFといえば、OSPFv2を指していると考えてください。

OSPFの特徴

OSPFの特徴は次のようになります。

  • IGPs
  • リンクステート型ルーティングプロトコル
  • 効率よいルーティングのための「エリア」の概念
  • クラスレスルーティングプロトコル
  • ルーティングテーブルのコンバージェンス時間が短い
  • ループが発生する可能性が極めて小さい
  • メトリックとして「コスト」を採用
  • コンバージェンス時は、Helloプロトコルによる定期的なキープアライブ
  • ネットワークの変更があったときだけルーティング情報を送信
  • マルチキャストによる通信
  • 認証機能のサポート
  • CPU、メモリの使用率が高い
  • きちんとしたアドレス設計が必要

OSPFは、RIPやIGRPと同じくAS内部のルーティングを対象としたIGPsの一種です。ただし、RIPやIGRPよりも大規模なネットワークを主な対象としています。

※IGPって何?って方はこちらをご覧ください↓
「ルーティングプロトコルの分類」

ルーティングアルゴリズムは、リンクステート型です。リンクステート型では、ルーティングテーブルではなく、各ルータのインタフェースの情報(リンクステート情報)を交換します。リンクステート情報は「LSA(Link State Advertisement)」とも呼ばれ、ルータが持つインタフェースの種類、そのインタフェースのIPアドレス、インタフェースのコスト、接続されているネットワークのタイプなどが含まれます。LSAから、ネットワーク全体の地図を表すリンクステートデータベースを作成し、SPF(Shortest Path Fast)アルゴリズムから各ルータを起点とした最短パスツリーを計算してルーティングテーブルを作成します。

リンクステートデータベースは、すべてのルータで共通です。ですから、非常に大規模なネットワークでは、交換されるリンクステート情報の数が非常に多くなり、それにともなってリンクステートデータベースサイズが巨大になります。その結果、ルータのCPUサイクルやメモリを消費することになるので、好ましくありません。
このようなことを解消するために、OSPFでは「エリア」という概念を取り入れて、大規模ネットワークでより効率よくルーティングできるように考えられています。

また、LSAの中にはサブネットマスクも含まれているのでクラスレスルーティングプロトコルです。そのため、RIPやIGRPといったクラスフルルーティングプロトコルではサポートできなかったVLSMや不連続サブネットをサポートすることが可能です。

すべてのルータが共通のネットワークの地図、つまりリンクステートデータベースを持っていることによって、何か変更が起こったときでもすぐに各ルータが変更を認識することができます。したがって、ディスタンスベクタ型ルーティングプロトコルよりもはるかに高速にコンバージェンスさせることが可能です。

コンバージェンスが高速であるために、RIPなどでみられたような間違った情報によってルーティングループが発生する可能性はほとんどありません。各OSPFルータは、ネットワーク全体の地図を持っているということも、ループが発生する可能性が極めて小さくなることにつながります。

※RIPでルーティングループが発生する例はこちら↓
「ルーティングループ」

OSPFの経路選択の基準としてメトリックは、コストを採用しています。コストはネットワーク管理者が設定することができるのですが、シスコルータの実装ではインタフェースの帯域幅から自動的に計算されます。多くの他のベンダもシスコルータの帯域幅を反映したコスト計算を採用しています。帯域幅が大きいほどコストの値が小さくなるので、OSPFが選択する経路は標準では、帯域幅が最も大きい経路となります。

OSPFルータ同士の情報交換は、変更があったときのみ送信します。それ以外は、定期的にHelloプロトコルと呼ばれるプロトコルによって、他のルータが正常に動作しているかどうかを確認するキープアライブを行っています。そのため、ネットワークが安定している場合には、OSPFは非常に「静かな」ルーティングプロトコルであるといえます。

また、OSPFルータ同士のやり取りはブロードキャストではなく、マルチキャストで行われるので、ネットワーク上のほかのコンピュータやOSPFを有効にしていないルータなどに余計な負荷をかけることもありません。

セキュリティを向上させるために、OSPFでは認証機能のサポートも行っています。認証はクリアテキストの方式と、MD5によるハッシュ値での認証の2通りあります。

以上のように、OSPFを利用することによるさまざまなメリットがあります。しかし、デメリットももちろんあります。

OSPFでのSPF計算は非常にルータのCPUに負荷をかけます。また、大規模なネットワークではリンクステートデータベースが多くのメモリを消費することになります。したがって、RIPよりもより高性能なルータが必要です。

また、安定したネットワークにするためには、あらかじめきちんと階層型のネットワーク構成をとり、エリア設計を検討することがとても重要です。階層型ネットワーク構成をとることによって、適切な経路集約を行うことができるようになります。その結果、ルータがやり取りするLSAが少なくなり、ルーティングテーブルサイズも小さくなります。もし、ネットワーク構成があまり考えられていないと、SPF計算が頻発したり、リンクステートデータベースが巨大になってしまったりします。

このような設計と構築の難しさもOSPFのデメリットと考えられるかもしれません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA