ディスタンスベクタ型の経路学習
ディスタンスベクタ(Distance vector)型とは、距離(distance)と方向(vector)に基づいて最適なルートを選出してルーティングを行うプロトコルの総称です。
ディスタンスベクタ型のルーティングプロトコルには、RIPやIGRPがあります。
ディスタンスベクタ型のルーティングプロトコルの歴史は古く、特にRIPは、今のインターネットの前身であるARPANETの時代から存在しています。
古いからといって現在、ほとんど使われていないのでしょうか?
いいえ、そんなことはありません。
古いプロトコルであるにもかかわらず、現在でも小規模なネットワークでは、よく利用されています。特にRIPは仕組みが単純であるために、実装するのも、設定を行うのも容易であることが、その理由です。ということで、非常に古いルーティングプロトコルであるにもかかわらず、現在でも使用されています。
それでは、RIPを例にディスタンスベクタ型のルーティングプロトコルがどのようにルーティングを行うのかを説明していきます。
上で説明しているように、ディスタンスベクタ型のルーティングプロトコルは、
distance ・・・ 距離
vector ・・・ 方向
「距離」と「方向」を根拠にルーティングを行います。
それでは実際にどのような動作をするのかを見ていきましょう
ディスタンスベクタでは、各ルータが自分が学習した経路情報(ルーティングテーブル)の丸ごとを隣接ルータにアドバタイズ(送信)します。
このアドバタイズする情報の中にそのネットワークに到達するための距離と方向が含まれています。

アドバタイズを受け取ったルータは、自分がまだ、学習していないネットワークへの経路情報があった場合、自分のルーティングテーブルにその経路情報を追加します。
複数のアドバタイズを受け取り、同じネットワークへの経路情報を複数、取得した場合は、どうなるのでしょうか?

例えば、Router_Aは、Router_B と Router_C から、「192.168.3.0/24」の経路を受け取ることになります。

Router_Aは、Router_B(192.168.2.2)から学習した経路のメトリックの方が小さいので、Router_B から学習した経路をベストパスに決定しルーティングテーブルに載せます。
この動作は、ネットワーク上の全てのルータで行われ、最終的に全てのルータが同じルーティングテーブルを持つようになります。この状態を、コンバージェンス(収束)と言います。
収束していなければ、整合性が保てずルーティングループなどの問題が発生します。
これが、ディスタンスベクタ型のルーティングプロトコルの動作の流れになります。とても単純なアルゴリズムで動作しています。