3 Minutes NetWorking
No.31

3Minutes NetWorking

第31回レイヤ3 ルーティング

■ ルーティング

インター博士

さて、ネット君。
ルータはネットワークを繋ぐデバイスだな。

ネット助手

博士、出だしが前回と同じです。

インター博士

ぬ。

ネット助手

ちなみに章タイトルも同じです。
ネタぎれですか?

インター博士

やかましい
そんな瑣末な事はどうでもいい。ルータの話だ。

ネット助手

ネットワークとネットワークの最適ルートを選択して、繋げてくれるデバイスがルータでしたね。

インター博士

うむ。
前回では、ルーティングテーブルという宛先ネットワークまでの経路表を各ルータが持っているという話をしたな。

ネット助手

はい。

インター博士

さて、質問だ。
ルータはどうやって最適なルートを見つけるのだ?

ネット助手

え?

インター博士

例えば、またまた登場の以下の図だ。

ルーティングテーブル・例
宛先ネットワーク次のルータ距離ポート
192.168.1.0210.81.36.131番ポート
91.0.0.0210.81.36.161番ポート
172.36.0.0130.82.10.122番ポート
221.194.38.0なし03番ポート

[Figure28-05:ルーティングテーブル]

インター博士

192.168.1.0ネットワークへの最適なルートは、1番ポートから送信して、210.81.36.1のルータを経由すると、ルーティングテーブルにある。
では、どうやってそれを知ったのだ?

ネット助手

え〜〜〜〜。

インター博士

うん?

ネット助手

小人さんが…

インター博士

…ふむ。
小人さんがどうした?

ネット助手

ルータの中の小人さんが、パケットの宛先を見て判断する…、なんちて。

インター博士

ほほぅ。
ということはアレだな。小人さんがとあるポートから入ってきたパケットの宛先を見て、
「このパケットはどこどこ宛だから、こっちだな」と考えるわけだな。

ネット助手

え、えぇ。
そうなりますかね。

インター博士

でもって、パケットを出口のポートに運ぶわけだ。えっちらおっちらと。
ハイ・ホー、ハイ・ホー。仕事が好き〜

ネット助手

あっはっはっは。
そりゃいいですね。その姿が目に浮かぶようですよ。

インター博士

(ギロリ)

ネット助手

…ごめんなさい。

インター博士

うむ。
ともかくだ、ルータは最適なルートを見つけるために、他ネットワークへのルートを知る必要がある

ネット助手

はい。

インター博士

さらに、知ったルートの中から、最適なものを選んでルーティングテーブルを作成するという事をルータは行うわけだ。

ネット助手

なるほど。

インター博士

どうやってルートを知るかというと、方法は2種類ある。
静的ルーティング動的ルーティングだ。

ネット助手

静的と動的ですか。

■ 静的ルーティング

インター博士

うむ。
「静的」というのは前に出てきたな。

ネット助手

IPアドレスの振り分けのところですね。
静的な割り振りと、動的な割り振り。

インター博士

そうだったな。
では、静的と動的のIPアドレスの割り振りとはどういうことだった?

ネット助手

え〜。
静的は、管理者によって割り振られたアドレスを手動で入力し。
動的は、DHCPによって自動的に割り振られます。

インター博士

うむ。
それと同様だ。静的ルーティングは管理者が手動でルートを入力する

ネット助手

管理者が、手動で、ルートを、入力。

インター博士

そうだ。
「このネットワークへは、このルートを使いなさい」とな。

ネット助手

ルータにですか?

インター博士

もちろん、ルータにだ。
このルートは、即ルーティングテーブルに反映される

ネット助手

反映される?

インター博士

つまり、手動で入力されたルートは、最も優先されるルートということだ。
それは動的ルーティングで決定されるルートよりも優先され、必ずルーティングテーブルにある、という意味だ。

ネット助手

ははぁ。

インター博士

基本的には、次に説明する動的ルーティングの方が使い勝手がよい。
これはIPアドレスの割り振りが、静的よりもDHCPの方を使うことが多いのと同じだ。

ネット助手

DHCPの方が、管理がしやすく、自動で決定されるからDHCPの方が使いやすいんですよね。

インター博士

まぁそうだ。
ただし、場合によっては、静的ルーティングが役に立つ。
例えば下の図のような場合だ。

静的ルーティングの例

[Figure31-01:静的ルーティングの例]

インター博士

ルータAが210.100.10.0ネットワークへのルートを知りたいと思っている場合だ。
210.100.10.0ネットワークは、他ネットワークへの出入り口が1つ、つまりルータBしかない。

ネット助手

袋小路なんですね。

インター博士

うむ。210.100.10.0へのルートは1つしかないわけだ。
よって、ルータAに対しこのルートは変更されようがないので、手動で入力する

ネット助手

変更されようがない?

インター博士

そうだ。迂回路がない、ということだな。
迂回路がないということは、そのルートしか使えないから、手動で決定してもかまわない、ということなのだよ。

ネット助手

迂回路があった場合は?

インター博士

迂回路がある場合は、動的ルーティングを使うのが一般的だな。

ネット助手

なるほど。

■ デフォルトルート

インター博士

もう1つ、静的に決定されるルートとしては、デフォルトルートがある。

ネット助手

前回でてきました、宛先ネットワーク0.0.0.0って奴ですよね。
ルーティングテーブルの他の行に当てはまらない時使用するという。

インター博士

うむ、その通りだ。

ネット助手

やりぃ。

インター博士

特に、以下のようなネットワークの場合。

デフォルトルート

[Figure31-02:デフォルトルート]

インター博士

ルータB、C、Dは、インターネットへパケットを転送したい場合、ルータAに送り、ルータAがルータZに送ることによって、インターネットへと接続される。

ネット助手

そうなりますね。

インター博士

つまり、組織X内部のネットワーク以外のネットワークはすべてインターネットに存在する、と考えてもいい。

ネット助手

そう、なるかな?

インター博士

そう考えるのだよ。よって内部ネットワーク宛以外は、インターネットへ送ってしまうようにする。
つまり、ルータB、C、DははルータAに。ルータAはルータZに送るようにルートを設定する。

ネット助手

ははぁ。

インター博士

インターネット上のすべてのネットワークへのルートをルータA〜Dが持っていてもしょうがないだろう?
結局は、ルータA経由でルータZへのルートを使う形になるのだから。

ネット助手

そうですね。
世界中のネットワークどこへ届けるにしたって、ルータZは絶対に通るわけですから。

インター博士

そうだ。なので、内部以外のネットワークはすべてルータZへ送るようにする。
あとはルータZが、もしくはインターネット上のその他のルータがルートを設定して、宛先まで届けてくれるからな。

ネット助手

なんか、他力本願ですね。

インター博士

まあ、そうだな。
簡単に言えば、知らない宛先は知ってそうなルータへ送るというルートが、デフォルトルート、ということになるな。

ネット助手

なるほど。

■ 動的ルーティング

インター博士

さて、静的ルーティングは大きな欠点を持っている。

ネット助手

大きな欠点?

インター博士

先ほどちらっと話したが、迂回路の問題だ。
つまり、以下のような場合。

[Figure31-03:静的ルーティングと迂回路]

インター博士

手動で入力したルートが使えなくなってしまうことが起こりえる。

ネット助手

なるほど。
でもこの場合なら、上のルートを使えばいいじゃないですか。

インター博士

うむ。確かにその通りだ。
だが、その場合、管理者が手動で書き換える必要があるな。

ネット助手

そうですね。

インター博士

ちょっとそれは面倒だろう。
いつ起こるかわからない障害のため、管理者をルータの前に張りつかせておく必要があるんだぞ。

ネット助手

なんか、プールの監視員みたいですね。

インター博士

うむ。
しかしルータの設定を変更できる技術を持った管理者を、そんな仕事に常時置いておくのはあまりにも非効率だ。よって、自動化する

ネット助手

自動化?
ということは、ルータが障害を見つけて、勝手にルートを変更するようにですか?

インター博士

その通りだ。それが動的ルーティングだ。

[Figure31-04:動的ルーティング]

インター博士

このように、ルータ同士が情報を交換し合うのだ。
それにより、障害があった場合でもそれを自動的に切り離すことが可能になる。

ネット助手

なるほど。便利なものですね。

インター博士

つまりルータは情報を交換し合い、ルートを知る
そのルートの中から最適なものを選び、ルーティングテーブルを作成する。これが動的ルーティングだ。

ネット助手

障害があった場合は、それは最適なルートではないので、新たな最適ルートにルーティングテーブルを書き換えるんですね。

インター博士

そうだ。

ネット助手

はは〜。こりゃすごいや。

■ 動的ルーティングの弱点

インター博士

ただし、弱点も持つ。
1つ目は、ルータ同士が情報を交換し合うということは、データを送りあうということだ。

ネット助手

そりゃそうですよね。

インター博士

つまり、その分の帯域幅を使用するということだ。
データ転送に使われる帯域幅が減ってしまうということだな。

ネット助手

む〜。それは駄目なんじゃないんですか?

インター博士

うむ。正直あまり良くはない。特に低速な回線を使用している場合には、注意が必要だ。
だが、障害によってデータ転送が不可になるよりは、こちらの方がまだましなのだよ。

ネット助手

そりゃそうですね。
帯域幅を消費するからといっても、通常のデータ転送ができなくなるわけじゃないですよね。

インター博士

うむ。
さらに、2つ目の弱点として、交換し合った情報から、最適ルートを計算する必要があるという点だ。

ネット助手

ルートを考えなきゃ駄目ってことですか。

インター博士

そうだ、その分のルータの処理能力が必要だ。
能力の低いルータだと、ルート計算に処理能力がとられて、パケットの転送の処理が遅れてしまうことがある。

ネット助手

それも全然良くない事じゃないんですか?

インター博士

そうだ。
そして、最後にして最大の弱点は、すべてのルータが同一のルート情報を持つ必要があるという点だ。

ネット助手

すべてのルータが同一のルート情報を持つ必要がある?

インター博士

うむ。
例えば以下のような状態だ。

[Figure31-05:コンバージェンスが必要な理由]

ネット助手

あらら、ルータAはせっかく障害を切り離したのに。

インター博士

1台でも、その情報が伝わっていなかった場合、結局無意味になってしまう。

ネット助手

なるほど。
だから、すべてのルータが同一のルート情報を持つ必要があるってことなんですね。

インター博士

そうだ。
すべてのルータが同一のルート情報を持っている状態の事をコンバージェンスというが、ネットワークはコンバージェンスになっている必要がある

ネット助手

こんばーじぇんす。
なんか色々面倒ですねぇ。

インター博士

確かに色々と面倒な部分が多い。
だが、自動で障害を切り離せるというのはそれだけ重要なのだよ。

ネット助手

確かにそうかも。
障害を切り離せなかったら、パケットが届かないんですものねぇ。

インター博士

うむ。
この動的ルーティングは、ルーティングプロトコルというプロトコルにより、実現される。

ネット助手

るーてぃんぐぷろとこる?

インター博士

ルータ同士の情報の交換の方法や、最適ルートの決定法などを定めたプロトコルだ。

ネット助手

ははぁ。

インター博士

というわけで、次回はこのルーティングプロトコルについて話すぞ。

ネット助手

いぇっさー。
3分間ネットワーキングでした〜♪

ハイ・ホー…
[Heigh-Ho]
ウォルト・ディズニー「白雪姫」で、7人の小人が歌う挿入歌。
最も優先されるルート
ルートにはどのようにして決定されたルートか、により優先順位が存在します。
Cisco製ルータの場合、管理距離[administrative distance]が小さいものが優先される仕組みになっています。
例えば、静的ルートは1、OSPFは110、RIPは120になっています(デフォルト時)
袋小路
このように、他ネットワークへの出入り口が1つしかないネットワークのことを、スタブ・ネットワーク[stub network]と呼ぶ。
コンバージェンス
[convergence]
すべてのルータが同一のルート情報を持っている状態。もしくはそのための速度や能力のことを指す。
「収束」「集中」の意。
ルーティングプロトコル
[routing protocol]
ネット助手ネット君の今日のポイント
  • ルーティングテーブルを作るため、ルータは他ネットワークへのルートを知る必要がある。
  • 知る方法は、静的ルーティングと動的ルーティングがある。
  • 静的ルーティングは管理者が手動で入力する。
    • 静的ルートは最優先される。
    • デフォルトルートも静的ルートである。
  • 動的ルーティングは自動でルート情報を交換しあう。
    • 交換し合った情報から最適なルートを選択する。
    • 障害が起きても切り離すことが可能である。
    • 帯域幅や処理能力を必要とする。
    • コンバージェンスである必要がある。
    • ルーティングプロトコルで実現される。

3 Minutes NetWorking No.31

管理人:aji-ssz(at)selene.is.dream.jp