距離ベクトル型

読み:きょりべくとるがた / 英語表記:distance-vector routing

ルーティングプロトコルの方式の1つ。隣接するルータと、宛先ごとの距離(メトリック)と方向(次に送る相手)の情報を交換し、経路を決める。RIPが代表。

イマシルちゃんの解説

距離ベクトル型は、「伝言ゲーム」みたいな道案内なんだ。

お隣のルータから「駅まであと3つだよ」って聞いたら、
自分は「お隣を通れば、駅まで4つだね」って覚える。
そして今度は、自分のお隣に「駅まであと4つだよ」って伝えるんだ。

地図を持たなくていいからシンプルだけど、伝言だから、間違った情報が伝わり続けちゃうこともあるんだよ。

より深い解説

定義

距離ベクトル型ルーティングプロトコルは、各ルータが、宛先ネットワークごとの「距離(メトリック)」と「方向(ネクストホップ)」の組、すなわち距離ベクトルを経路表として持ち、それを隣接ルータとだけ交換して経路を決める方式である。経路の計算はベルマンフォード法の考え方に基づく。

経路の決め方

ルータは、隣接ルータから受け取った経路について、次のように判断する。

その宛先までの距離 = 隣接ルータが通知した距離 + 隣接ルータまでの距離

計算した距離が、今持っている経路より短ければ、経路表を書き換える。RIPでは、隣接ルータまでの距離は常に1(1ホップ)である。

代表的なプロトコル

プロトコル特徴
RIP(RIPv1、RIPv2、RIPng)ホップ数をメトリックにする
IGRP、EIGRPシスコ社の独自プロトコル。帯域や遅延を組み合わせたメトリックを使う(EIGRPは拡張型)

BGPは、距離ベクトル型を発展させ、通ってきたASの並び(AS_PATH)も伝えるパスベクトル型である。

問題点:無限カウント

距離ベクトル型の各ルータは、ネットワーク全体の形を知らず、隣から聞いた話だけを信じる。そのため、経路が切れたときに、次のような現象が起こりうる。

  1. ルータAの先のネットワークNが切れる
  2. ルータBが、以前Aから聞いた「Nまで1」をもとに、Aに「Nまで2」と通知する
  3. Aは、Bを通ればNに届くと勘違いし、「Nまで3」として経路表に入れる
  4. この誤った情報のやり取りが続き、距離が少しずつ増えていく

これを無限カウント(Count to Infinity)という。RIPでは、ホップ数16を「到達不能」とすることで、最終的にこのループを止める。

対策

仕組み内容
スプリットホライズンある隣接ルータから学んだ経路は、その隣接ルータには通知しない
ポイズンリバース学んだ経路を、学んだ相手には「到達不能」として通知する
トリガードアップデート経路が変わったら、定期更新を待たずにすぐ通知する
ホールドダウンタイマ到達不能になった経路について、一定時間は新しい情報を信用しない

リンクステート型との比較

距離ベクトル型リンクステート型
交換する相手隣接ルータだけエリア内の全ルータ
交換する情報経路表(距離ベクトル)リンクの状態(LSA)
全体の地図持たない持つ(LSDB)
計算の負荷小さい大きい
収束遅い速い
向いている規模小規模中~大規模

距離ベクトル型は「全体を知らなくても動く」ことが長所であり、同時に「全体を知らないから誤りに気づけない」ことが短所である。

実際の試験ではここに出る!

この用語が出てくる記事

↑