OSPFとは何者なのか

に公開

はじめに

ルーティングプロトコルは一つに限らず様々な種類が存在します。
ルーティングの学習を進めていく中で、どんどん新しいプロトコルが登場してくるため、頭の中がこんがらがってきているように感じます...
ということで、今回は十分理解できていないように感じたOSPFについて書いてみることにしました。

OSPFとは

OSPF(Open Shortest Path First)は、ルーターが自分のルーティングテーブルを隣接ルーターに定期的に送信し、その情報をもとに最適で最速な経路を決定するプロトコルです。
大量のルーティング情報を効率的に処理し、ネットワークの動的な変更に迅速に対応できるという点から、大規模なネットワーク環境時に利用されます。

RIPとOSPFってどう違うの?

私が現在記事を書いている理由にも当てはまりますが、2つのルーティングプロトコルの違いがイマイチ分からないと思いました。とりあえずこの2つを整理しましょう。

項目 OSPF RIP
プロトコルの種類 リンクステート型 ディスタンスベクタ型
最大ホップ数 制限なし 最大15(16は不可)
更新タイミング 状態変化時のみ 30秒ごと
認証機能 あり あり
トラフィック 少ない 多い
規模 大規模ネットワーク 小規模ネットワーク

大まかにテーブルで違いを表してみました。
それぞれの項目について以下に説明してきます。

プロトコルの種類

リンクステート型 (RIP)

「自分から見た目的地までの距離(ホップ数)」と「その方向(経由するルーター)」だけを、定期的に隣のルーターに伝える方式です。自分ではネットワークの全体構造の情報を持っていないため、情報はルーター同士伝言ゲームのように伝えられていきます。

ディスタンスベクタ型 (OSPF)

自分(ルーター)と繋がっているルーターやネットワークの構成を全ルーターに知らせる方式です。
各ルーターはネットワークの全体構造の情報を持ち、それをもとに自分自身で最短経路を計算します。

最大ホップ数

そもそも最大ホップ数というのはどういう意味でしょうか?

ホップ数

ネットワーク上で通信をしたい相手に到達するまでに経由する機器(ルーターなど)の数のことです。
RIPは最大ホップ数が15に制限されています。要するに、16ホップ以上になると「到達不可能」と判断され、経路から除外されてしまうということです。
OSPFは最大ホップ数に制限がないです。もちろん無限につなげると処理が追いつかなくなってしまいますが、ある程度の数は対応できるということになります。

更新タイミング

RIP

RIPは30秒ごとに必ず情報を送ります。
定期的に情報を送るため、変化があっても次の30秒が来るまで反映されないです。

OSPF

OSPFはネットワーク上で何か変化があった時に、その変化に反応して更新します。
ルータが故障したり新しいルータが追加されたりすると、情報を送信し更新します。

トラフィックとネットワーク規模について

RIP

RIPは、30秒ごとにルーティング情報を送信します。たとえネットワークに変化がなくても、必ず定期的に送るため、無駄な通信(トラフィック)が発生しやすいです。
また、ルータ間で送り合う情報は「ホップ数だけ」のシンプルなものなので、小規模なネットワークに向いています。
一方で、ネットワークが大きくなると、ホップ数の制限(最大15)がネックになり、大規模ネットワークには不向きです。

OSPF

OSPFは、ネットワークに変化があったときだけ必要な情報を送信します。そのため、無駄な通信は少なく効率的です。
また、ネットワーク全体の構造を把握してルートを計算するので、大規模なネットワークでも安定して運用できます。
通信量は一度に多くなることもありますが、トラフィックの効率性や正確性が重視される大規模環境に適しています。

このように情報を共有するという点ではどちらも同じですが、実はお互いにかなり違う能力を持ったプロトコルです。

最後に

今回はOSPFとRIPの違いを比較しながら、OSPFの特徴を中心に整理してみました。
OSPFは、ネットワークの変化にすばやく対応できる仕組みを持ち、大規模ネットワーク環境でも安定した運用が可能なルーティングプロトコルです。

一方で、RIPのようなプロトコルも小規模なネットワークでは今でも活躍しています。
ネットワークの規模や目的に応じて、どのプロトコルを選択するのが最適かを考えることが大切だと感じました。

Discussion