
経路選択はシンプルな方がいいに決まっている!?ディスタンスベクタ型ルーティング
「止まる駅が少ない方が短い経路に決まっている…よね!?」
はい、こんにちは!松井真也です。シリーズ「基礎から分かる!ルーティング大全」第7回でございます。
前回は、「ルーティングプロトコル」について全体像をつかみました。特にAS(自律システム)とは何かということ、またIGP(AS内のルーティング)とEGP(AS間のルーティング)によって大きく2つに分類できることを知りました。
さて、今回から、経路選択方法の2つの考え方(アルゴリズム)について知ることにしましょう!
このアルゴリズムは、各ルーティングプロトコルのサブセット(構成要素)にあたります。これがなかなか難しいので、各ルーティングプロトコルの解説の前に、一度アルゴリズムを先に整理しておこうという趣旨でございます。
では、いってみましょう!

データはどの経路をたどるべきなのか?
まずは、ルーティングアルゴリズムの重要用語を押さえます。
ルータは、いくつかある経路の中から一つ選択してデータを送出します。でも、どの経路が最適と言えるのでしょうか?
そうですね。最も「距離」が短い経路ですね!場合により、別の要素も経路決定に影響しますが、何はともあれ「最短距離」でデータを送りたいですよね!データを遠回りな経路で送ったらネットワーク資源の無駄ですから。
でも、ルーティングにおける「距離」って何でしょう?「近くにいるルータさんと物理的に何メートル離れているか」は問題ではありません。物理的な距離ではなく、それとは別のどんな量的指標で最短の「距離」を評価するか?が問題です。
この指標のことを「メトリック」といいます。ここまでOKですね!

アルゴリズムは大きく2つある
では、ルーティングアルゴリズムにはどんなものがあるでしょうか?
次の2つを押さえましょう。
ディスタンスベクタ型(distance-vector)
リンクステート型(link state)
本当はパスベクタ型がありますが、こちらは通信事業者などが大規模ネットワークで使うものですから、今は棚上げします。
上記の2つに集中しましょう!
ディスタンスベクタ型
では、ディスタンスベクタ型ルーティングについて見ていきましょう。
このアルゴリズムは、ディスタンス(距離)ベクタ(方向)の名前のとおり、「距離」と「方向」にしか関心がありません。
ディスタンスベクトルにおいて「距離」を表すメトリックは、「ホップ数」すなわち「通過するルータの数」です。ルータを一つ通過すれば、それが1ホップです。「ホップ数が一番少ない経路こそ最短距離だ!」とみなして、そちらのベクタ(方向)にデータを送るわけです。分かりやすいですね!
では、ベクタ(方向)って何なの?という気がしますが、自分(ルータ)が直接つながっているお隣のルータのことです。「ネクストホップ」といいます。
このアルゴリズムでは、隣接しているルータ間でルーティング情報を交換し合います。その情報に基づいてルーティングテーブルを更新して、最短のホップ数で宛先に到達できるルートを決定できるようになります。いたってシンプルですな。

ここでポイントとなるのは、各ルータが管理する経路情報は「主観的」ということです。なんのこっちゃ。
というのは、各ルータが、宛先のネットワークへのホップ数とネクストホップの情報を自分専用に管理しているんです。あくまで管理するのは、「俺専用」の「俺から見た」情報です。これも大事なので知っておきましょう。
ディスタンスベクタは、実装が比較的容易で、必要な情報が少ないことが目メリットです。
しかし、欠点としては、経路情報の更新に時間がかかることや、ルーティングループが発生しやすい点が挙げられます。そして何より、ホップ数以外の要素を無視するので、ホップ数以外の要素で伝送速度に影響が出てしまうネットワークでは最適な経路が選べないということです。
それはちょっと困りますね…。
はい、本日はここまで!本日は、ルーティングアルゴリズムのうち、ディスタンスベクタ型について、紹介しました。説明したりない点が多々あるのですが、それは、ディスタンスベクタ型の代表的プロトコル「RIP」のところで後日説明します。
次回は、リンクステート型アルゴリズムについてお話しします。
では!