■ ルーティング
さて、ネット君。
ルータはネットワークを繋ぐデバイスだな。
博士、出だしが前回と同じです。
ぬ。
ちなみに章タイトルも同じです。
ネタぎれですか?
やかましい。
そんな瑣末な事はどうでもいい。ルータの話だ。
ネットワークとネットワークの最適ルートを選択して、繋げてくれるデバイスがルータでしたね。
うむ。
前回では、ルーティングテーブルという宛先ネットワークまでの経路表を各ルータが持っているという話をしたな。
はい。
さて、質問だ。
ルータはどうやって最適なルートを見つけるのだ?
え?
例えば、またまた登場の以下の図だ。
宛先ネットワーク | 次のルータ | 距離 | ポート |
---|---|---|---|
192.168.1.0 | 210.81.36.1 | 3 | 1番ポート |
91.0.0.0 | 210.81.36.1 | 6 | 1番ポート |
172.36.0.0 | 130.82.10.1 | 2 | 2番ポート |
221.194.38.0 | なし | 0 | 3番ポート |
[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]
- ネット君の今日のポイント
-
- ルーティングテーブルを作るため、ルータは他ネットワークへのルートを知る必要がある。
- 知る方法は、静的ルーティングと動的ルーティングがある。
- 静的ルーティングは管理者が手動で入力する。
- 静的ルートは最優先される。
- デフォルトルートも静的ルートである。
- 動的ルーティングは自動でルート情報を交換しあう。
- 交換し合った情報から最適なルートを選択する。
- 障害が起きても切り離すことが可能である。
- 帯域幅や処理能力を必要とする。
- コンバージェンスである必要がある。
- ルーティングプロトコルで実現される。