next up previous contents
Next: 3.2 ルーティングとネットマスク Up: 3. ルーティング Previous: 3. ルーティング

3.1 経路制御が必要な理由

ホスト間の通信において、パケットを正しいネットワークに送出し、それが 中継されるための制御、つまりは通信相手までの経路が選択され、最終的にパケット が到着するためのメカニズムを経路制御と呼びます(実際にパケットを経路に 従って送ることはパケット転送と言います)。 経路制御(routing)が必要な理由は TCP/IPの構造に根ざしています。ここでは簡単にその理由についてスケッチを して見ます。まず、ホスト同士がTCP/IPを用いて通信する場合には、相互の ホスト間のネットワークへの接続状態に応じて、同一ネットに属する場合と、 属さない場合によって違いが生じます。以下それぞれの場合について簡単に 説明します。

同じネットワークセグメントに属する場合

同じクラス、又は同じサブネットに属すると IP アドレスから判断出来る場合、 発信側はネットワークに ブロードキャストを流し、必要とする IP に対応する 受信側の イーサネット・アドレスを聞きます。 受信側は同じセグメント に属するのですから、そのブロードキャストを受け取ることが出来、受け取ると発信側 に対して自分の MAC アドレスを報告します(このプロトコルを ARP と言います)。 送信側はこれをテーブルに覚えておいて、次からの転送に使用します(一定期間 以上経つと捨てます)。この テーブルは、/usr/sbin/arp コマンドによって参照することができます(arp -a を 使います)。 以上のようにして、発信側は受信宛へのパケットを送信する事ができる訳です。

一方、ARP の逆に、イーサネット・アドレスから IP アドレスを参照するプロトコル を RARP と言いますが、これは既に述べたように通信そのものには使われません。

違うネットワークセグメントに属する場合

違うセグメント同士のマシン間の通信では、どういう経路を通るかという情報が必要 です。この経路情報の事をルーティング情報と言い、この情報に基づいて経路選択を する事をルーティングと言います。ルーティングには、あらかじめマシンの設定 ファイルに経路情報を設定する静的ルーティングと、動的にルーティングの情報を流す 方法などがあります。いずれの場合でも、相手先の MAC アドレスは取得出来ないので、 代わりにその経路を知っているルータ(ルーティングが出来る機器の事をルータと 言います。従って、専用機器である場合もありますし、通常のワークステーションで ある場合もあります。)を経路情報から取り出し、 そのMAC アドレスに向かってパケットを流します。 パケットを受け取ったルータは自身の持つ経路情報に従って、更に次のルータへ パケットを送り出したり、受信先がルータから直接到達可能な場合は直接受信先へと パケットを送ります。ここで重要な事は、幾つかのルータを経ないと到達できないよ うな場合でも発信先はその経路全てをあらかじめ知っている必要はない点です。 それぞれのルータは、自身が直接到達出来るネットワークへのルーティング情報を 持っていれば良いだけなのです。 勿論、こうした TCP/IP でのルーティングは最短経路を通る 事は保証されていません。また、復路において同じ経路を通るとも限りません。 (もっと極論するならば、相手に届くか否かは送り出してみなければ分かりません。)



Noriyo Kanayama