前述の例2で、ノードCはノードDが同一サブネット上に「ない」ことがわかるので、ノードDに直接パケットを送信しようとしても到達できないことになります。
では、この場合どこへ送ればよいのでしょうか?そもそも、ネットワークを分けるにはどうすればよいのでしょうか?
ネットワークを分けるためには「ルータ」という装置を利用します(*1)。ルータは、物理的には2つ以上のネットワーク・インターフェース(イーサネットの場合ならLANボード)を持つPCと思えば間違いありません。各々のLANボードは、それぞれ異なったネットワーク・アドレスを持つLANに接続されます(*2)。
(*2)…実際には、イーサネットと回線のように、異なったメディアを変換する機能を兼ねたものが多いです。イーサネット同士を接続するものは特別にIPルータと呼ばれ、なぜか値段も高くなります。
ここで、ネットワーク1とネットワーク2は、同じクラスAに属しているとします。ネットワーク1に属するノードCが、ネットワーク2に属するノードDにパケットを送信したい時、ノードCはルータに対してパケットを送信することにより、ノードDへの送信を依頼しなければなりません。
ここで、
という情報を得るためのテーブルが各ノードのメモリ中にあり、これを経路制御(ルーティング)テーブルと呼びます。
ルーティング・テーブルに経路情報を追加/削除したり、設定されている経路情報を表示したりするためには、route コマンドを使います。たとえば、ネットワーク 1.2.0.0 へのパケットは 192.168.0.1 というIPアドレスを持つルータに送る(中継を依頼する)ように設定するためには、以下のようにします。
例3)Windows 95/NT の場合
例4)Linux の場合
また、設定されている経路情報を表示するには、以下のようにします。
例5)Windows 95/NT のルーティング・テーブル
この意味は以下のようになります。
最後のルールのように、マッチするエントリがない場合のデフォルトの経路のことをデフォルト・ルートと呼び、デフォルト・ルートの場合の送信依頼対象ルータのことをデフォルト・ゲートウェイと呼んでいます。実は、ゲートウェイ(ここでは他のLAN/WANと結ぶためのルータ)が1つのネットワーク内に1つしかなければ、このデフォルト・ゲートウェイさえ設定しておけば、すべての通信が行えます。デフォルト・ゲートウェイは、Windows 95/NT の場合、「コントロール・パネル」の「ネットワーク」で設定できます。
例6)Linux のルーティング・テーブル
(*1)…ルータを含め、異なったネットワークやプロトコル同士を結合するための装置やソフトウェアのことを、一般的にはゲートウェイと呼んでいます。
異なったネットワークにあるノード
に対してパケットを送信したい場合、
誰に(どのIPアドレスを持つノードに)
中継を依頼すればよいのか?
C:\>route add 1.2.0.0 mask 255.255.0.0 192.168.0.1
server2:~# route add -net 1.2.0.0 netmask 255.255.0.0 gw 192.168.0.1
C:\>route print
Active Routes:
Network Address
Netmask
Gateway Address
Interface
Metric
0.0.0.0
0.0.0.0
192.168.0.254
192.168.0.15
1
127.0.0.0
255.0.0.0
127.0.0.1
127.0.0.1
1
192.168.0.0
255.255.255.0
192.168.0.15
192.168.0.15
1
192.168.0.15
255.255.255.255
127.0.0.1
127.0.0.1
1
192.168.0.255
255.255.255.255
192.168.0.15
192.168.0.15
1
224.0.0.0
224.0.0.0
192.168.0.15
192.168.0.15
1
255.255.255.255
255.255.255.255
192.168.0.15
192.168.0.15
1
ns:~# route -n
Kernel routing table
Destination
Gateway
Genmask
Flags
MSS(*3)
Window
Use
Iface
192.168.4.1 192.168.0.250 255.255.255.255 UGH 1500 0 3 eth0
192.168.4.2 192.168.0.250 255.255.255.255 UGH 1500 0 1 eth0
192.168.4.3 192.168.0.250 255.255.255.255 UGH 1500 0 3 eth0
210.161.96.64 * 255.255.255.240 U 1500 0 1 eth1
192.168.0.0 * 255.255.255.0 U 1500 0 1 eth0
192.168.4.0 192.168.0.251 255.255.255.0 UG 1500 0 15 eth0
192.168.3.0 192.168.0.251 255.255.255.0 UG 1500 0 0 eth0
127.0.0.0 * 255.0.0.0 U 3584 0 355 lo
default 210.161.96.65 * UG 1500 0 2 eth1