距離ベクトル型とリンクステート型のルーティングプロトコルの違い:RIPとOSPFで経路の求め方・収束・規模を比較

ルーティングプロトコルは、ルータどうしが経路の情報を交換して、経路表を自動で作るためのしくみです。組織の中で使うもの(IGP)には、大きく2つの考え方があります。距離ベクトル型では、各ルータが隣のルータから「どの宛先まで、どれだけの距離か」を聞き、隣までの距離を足して経路を選びます。代表例のRIPは、通過するルータの数(ホップ数)を距離にします。リンクステート型では、各ルータが自分のリンクの状態を広告してネットワークの地図(トポロジ)を共有し、それぞれがダイクストラ法で最短経路を計算します。代表例のOSPFは、リンクごとに決めたコストの合計で経路を選びます。距離ベクトル型はしくみが単純で設定も簡単ですが、障害の後に経路が落ち着く(収束する)のが遅く、大きなネットワークには向きません。リンクステート型は計算とメモリの負担が大きいものの、変化に素早く追従し、大きなネットワークにも使えます。

項目距離ベクトル型(RIPなど)リンクステート型(OSPFなど)
ルータが知っている情報隣のルータから聞いた、宛先ごとの距離と次の転送先だけ。ネットワーク全体の構成は知らない同じエリアのすべてのルータとリンク、そのコスト。エリアの中の全ルータが同じ地図(リンクステートデータベース)をもつ
経路の計算隣から聞いた距離に隣までの距離を足し、最も小さいものを選ぶ(ベルマン-フォード法の考え方)地図をもとに、自分を起点としてダイクストラ法で最短経路の木を計算する
メトリック(経路の良さを表す値)RIPはホップ数。15までで、16は「届かない」の意味OSPFはリンクごとのコストの合計。コストは管理者が設定でき、帯域幅をもとに決めるのが一般的
更新の送り方RIPは経路表の内容を一定の間隔(RFC 2453では30秒)で隣に送る。変化があればすぐにも送る(トリガードアップデート)変化があったときに、リンクの状態(LSA)をエリア全体に広める(フラッディング)。ふだんはHelloで隣の生存を確かめ、LSAは長い間隔(30分)で送り直すだけ
収束の速さとループ遅い。障害の後、距離が少しずつ増えていく無限カウントが起こりうる。スプリットホライズンなどで抑える速い。変化が伝わると各ルータがすぐに計算し直す。全員が同じ地図から計算するので、ループができにくい
ネットワークの規模小さなネットワーク向け。RIPは16ホップ以上離れた宛先を扱えない大きなネットワークにも使える。エリアに分け、バックボーンエリア(エリア0)を中心に階層化する
必要な資源と設定CPUとメモリの負担は小さい。設定も簡単地図の保持と最短経路の計算に、CPUとメモリを多く使う。エリアの設計など、設定も複雑
代表例RIP(RIPv1、RIPv2、IPv6用のRIPng)OSPF(IPv4用のOSPFv2、IPv6用のOSPFv3)、IS-IS

数値は代表的な目安で、世代や製品によって異なります。

どんなときに使うか

距離ベクトル型(RIPなど)
ルータの数が少なく、構成もほとんど変わらない小さなネットワークで、設定の簡単さを優先するとき。収束の遅さとホップ数の上限があるので、大きなネットワークや冗長な構成には向きません。
リンクステート型(OSPFなど)
企業やデータセンターなど、ルータの数が多く冗長な経路をもつネットワークの中で、障害のときに素早く経路を切り替えたいとき。規模が大きいときは、エリアに分けて計算と情報の量を抑えます。

よくある質問

無限カウント(カウント・トゥ・インフィニティ)とは何ですか?

距離ベクトル型で、ある宛先に届かなくなったときに、隣り合うルータが互いに古い情報を教え合い、距離を1ずつ増やしながら、経路がなかなか消えない現象です。その間、その宛先へのパケットはルータの間を行き来します。RIPでは16を「届かない」と決めて上限を設けています。さらに、経路を教わった相手にはその経路を返さないスプリットホライズン、教わった相手には距離16(届かない)として返すポイズンリバース、変化をすぐに送るトリガードアップデートで、起こりにくくしています。

OSPFのコストはどう決まりますか?

RFC 2328では、インターフェースごとのコストは管理者が決める値とされています。多くの機器は、参照帯域幅をリンクの帯域幅で割った値を既定のコストにします。参照帯域幅が100 Mbpsのままだと、100 Mbps以上のリンクのコストがすべて1になり、速いリンクを区別できないので、すべてのルータで参照帯域幅を大きな値にそろえて設定します。

BGPはどちらの型ですか?

BGPは、通ってきたASの並び(AS_PATH)を経路に付けて隣に伝える、パスベクトル型と呼ばれる方式です。隣から聞いた情報で経路を選ぶ点は距離ベクトル型に似ていますが、距離ではなく経路の道筋そのものを伝えるので、自分のAS番号を含む経路を捨てることでループを防げます。BGPは組織の間(AS間)で使い、組織の中ではOSPFなどを使います。

RIPとOSPFの両方から同じ宛先の経路を学んだら、どちらを使いますか?

ホップ数とコストのようにメトリックの意味が違うので、そのままでは比べられません。同じ宛先・同じプレフィックス長の経路なら、情報源ごとの優先度であるアドミニストレーティブディスタンスの小さい方を経路表に入れます。値は機器のメーカーによって違いますが、例えばOSPFを110、RIPを120とする機器では、OSPFの経路が選ばれます。

理解度チェック

リンクステート型のルーティングプロトコルの説明として正しいものはどれか。

  1. A各ルータが、隣のルータから受け取った宛先と距離(ホップ数など)の情報だけをもとに、自分の経路表を作る
  2. B各ルータが、自分につながるリンクの状態を広めてネットワーク全体の構成(トポロジ)を共有し、それぞれがダイクストラ法で最短経路を計算する
  3. C管理者が各ルータに経路を手で設定し、ルータどうしは経路の情報を交換しない
答えと解説を見る

正解:B. 各ルータが、自分につながるリンクの状態を広めてネットワーク全体の構成(トポロジ)を共有し、それぞれがダイクストラ法で最短経路を計算する

リンクステート型(OSPFやIS-ISなど)では、各ルータが自分のリンクの状態(つながっている相手とコスト)を広告し、同じ範囲のすべてのルータが同じ地図をもちます。各ルータはこの地図から、自分を起点にダイクストラ法で最短経路の木を計算します。距離ベクトル型(RIPなど)は、隣から聞いた「どの宛先まで距離いくつか」に自分からの距離を足して経路を選ぶので、しくみは単純ですが、ネットワーク全体の構成は分からず、障害の後に経路が落ち着くまで時間がかかることがあります。リンクステート型は、計算とメモリの負担は大きいものの、変化に素早く追従できます。

OSPFで、ルータR1からR4の先にあるネットワークへの経路が3つある。経路Aは R1–R5 が10 Gbps、R5–R4 が1 Gbpsのリンク、経路Bは R1–R4 を直接つなぐ100 Mbpsのリンク、経路Cは R1–R2、R2–R3、R3–R4 がすべて1 Gbpsのリンクである。各リンクのコストを「参照帯域幅10 Gbps ÷ リンクの帯域幅」とし、R4から先のコストはどの経路でも同じとする。R1が選ぶ経路はどれか。

  1. A経路A
  2. B経路B
  3. C経路C
答えと解説を見る

正解:A. 経路A

コストは、10 Gbpsのリンクが 10 ÷ 10 = 1、1 Gbpsが 10 ÷ 1 = 10、100 Mbpsが 10 ÷ 0.1 = 100 です。経路Aは 1 + 10 = 11、経路Bは100、経路Cは 10 × 3 = 30 なので、コストの合計が最も小さい経路Aが選ばれます。参照帯域幅を、多くの機器で既定値とされてきた100 Mbpsのままにすると、100 Mbps以上のリンクのコストはすべて1になり、経路Aが2、経路Bが1、経路Cが3となって、最も遅い経路Bが選ばれてしまいます。そのため、高速なリンクを使うネットワークでは、すべてのルータの参照帯域幅を大きな値にそろえて設定します。

あるルータは、同じ宛先 192.168.50.0/24 への経路を、OSPFとRIPの両方から学んだ。このルータでは、経路の情報源ごとの優先度を表すアドミニストレーティブディスタンス(値が小さいほど優先)が、OSPFは110、RIPは120である。経路表に入る経路として正しいものはどれか。

  1. A両方の経路を経路表に入れ、パケットごとに交互に使う
  2. BRIPの経路だけを入れる
  3. COSPFの経路だけを入れる
答えと解説を見る

正解:C. OSPFの経路だけを入れる

OSPFのコストとRIPのホップ数のように、ルーティングプロトコルによって経路の良さを表す値(メトリック)の意味が違うので、そのままでは比べられません。そこで、同じ宛先・同じプレフィックス長の経路が複数の情報源から得られたときは、情報源ごとの信頼の度合いであるアドミニストレーティブディスタンスの小さい方を採用します。ここではOSPFの110がRIPの120より小さいので、OSPFの経路が経路表に入ります。直接つながっているネットワークは0、静的経路は1のように、人が設定したものほど小さい値にするのが一般的ですが、呼び方や既定値は機器のメーカーによって違います。

  1. インターネットで、プロバイダなどの組織が管理するネットワークの単位(AS、自律システム)の間で経路の情報をやり取りし、通ってきたASの並び(AS_PATH)などの属性と、組織ごとの方針(ポリシー)に基づいて経路を選ぶプロトコルはどれか。
  2. 動的ルーティングの説明として正しいものはどれか。

ネットワークの設計と運用の練習問題へ

関連する用語の解説

ルーティング(経路制御)
IPのネットワークで、パケットを宛先まで届けるために、どの経路で送るかを決めること。各ルータは経路表(ルーティングテーブル)をもち、宛先IPアドレスに最も長く一致する経路(最長一致)を選んで次のルータに渡す。経路表は、人が設定する静的ルーティングか、OSPF、RIP、BGPなどのルーティングプロトコルで自動的に作る動的ルーティングで作る。
ルータ
異なるネットワークの間でパケットを中継する、ネットワーク層(第3層)の機器。受け取ったパケットの宛先IPアドレスを経路表(ルーティングテーブル)と照らし合わせ、次に渡すルータ(ネクストホップ)と出口のインターフェースを決めて送り出す。家庭用のルータは、NAPTやDHCPサーバ、ファイアウォールの機能もまとめてもつ。
OSPF
Open Shortest Path Firstの略。組織の中で使うリンクステート型のルーティングプロトコル。各ルータが自分のリンクの状態を広めてネットワークの構成を共有し、ダイクストラ法で、コストの合計が最も小さい経路を計算する。コストは一般にリンクの帯域から決め、ネットワークを複数のエリアに分けて、規模の大きなネットワークにも対応できる。
BGP
Border Gateway Protocolの略。インターネットで、AS(自律システム。プロバイダなどの組織が管理するネットワークの単位)の間で経路の情報を交換するルーティングプロトコル。経路に付いた、通ってきたASの並び(AS_PATH)などの属性と、組織ごとの方針(ポリシー)に基づいて経路を選ぶ。ルータどうしはTCPの179番ポートで接続して情報をやり取りする。
ダイクストラ法
辺の重みが0以上のグラフで、1つの出発点から各頂点への最短経路を求めるアルゴリズム。距離が確定していない頂点のうち最も近いものを確定し、その隣の頂点の距離を更新することを繰り返す。負の重みの辺があると正しく求められない。
アドミニストレーティブディスタンス
同じ宛先・同じプレフィックス長の経路を、静的経路やOSPF、RIPなど複数の情報源から得たときに、どれを経路表に入れるかを決めるための、情報源ごとの優先度の値。値が小さいほど優先される。プレフィックス長が違う経路どうしの選択には使われず、そちらはロンゲストマッチで決まる。呼び方や既定値は、機器のメーカーによって異なる。

関連する比較