ディスタンスベクタ型の経路学習

 ディスタンスベクタ(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 から学習した経路をベストパスに決定しルーティングテーブルに載せます。

 この動作は、ネットワーク上の全てのルータで行われ、最終的に全てのルータが同じルーティングテーブルを持つようになります。この状態を、コンバージェンス(収束)と言います。

収束していなければ、整合性が保てずルーティングループなどの問題が発生します。

 これが、ディスタンスベクタ型のルーティングプロトコルの動作の流れになります。とても単純なアルゴリズムで動作しています。

チャンネルの紹介