1999/06/14

ネットワーク(9)


IP Routing (経路制御)


Routing Table

routing table の検索手順
  1. ホスト・アドレスを検索
  2. ネットワーク・アドレスを検索
  3. デフォルト・エントリを検索する。
routing tableの例(教科書 p.127)
 srv4% netstat -rn
Routing tables
Destination	Gateway		Flags	Refcnt	Use	Interface
140.252.13.65	140.252.13.35	UGH	0	0	emd0
127.0.0.1	127.0.0.1	UH	1	0	lo0
default		140.252.13.33	UG	0	0	emd0
140.252.13.32	140.252.13.34	U	4	25043	emd0

(srv4は 140.252.13.32/26 のネットワークに接続されている。)

動作例

Routing Tableの初期化

Routing Table は route コマンドで設定できる。
 route
    % route  OPERATION  DESTINATION  GATEWAY  METRIC
    % route add default sun 1
    % route add slip bsdi 1


routing tableの例2(教科書 p.131)
 sun% netstat -rn
Routing tables
Destination	Gateway		Flags	Refcnt	Use	Interface
140.252.13.65	140.252.13.35	UGH	0	171	le0
127.0.0.1	127.0.0.1	UH	1	766	lo0
140.252.1.183	140.252.1.29	UH	0	0	sl0
default		140.252.13.183	UG	1	2955	sl0
140.252.13.32	140.252.13.33	U	8	99551	le0

slipインターフェイスの状態(教科書 p.131)
 sun% ifconfig sl0
sl0: flags=1051
	inet 140.252.1.29 --> 140.252.1.183 netmask ffffff00


ICMP Host Unreachable

経路がない場合 新しいBSDの実装では ICMP Host Unreachable Error Message だけを返す (昔は Host Unreachable か Network Unreachable を区別していた)。


ICMP Redirect

ルータは、他のルータに送られるべきIPパケットが自分に送られて きた場合は、送信元に ICMP Redirect Error Message を送る。 送信元ホストは ICMP Redirect Error Message を受けとると、 routing tableを更新する。

routing tableの例(教科書 p.136)

 solaris% netstat -rn
Routing tables
Destination	Gateway		Flags	Refcnt	Use	Interface
127.0.0.1	127.0.0.1	UH	0	848	lo0
140.252.1.0	140.252.1.32	U	3	15042	le0
224.0.0.0	140.252.1.32	U	3	0	le0
default		140.252.1.4	UG	0	5747

 solaris% ping -sv bsdi した後のrouting table
140.252.13.35	140.252.1.183	UGHD	0	2

140.252.1.4 から Redirect Message を受けとり、bsdi への経路が追加される。

[ICMP Redirect]
                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 (32bits width)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type       |     Code      |        Checksum               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 IP Address of Router                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|       IP Header +  First 8byte data of IP Datagram            |
                  ...
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    Type = 5
    Code = 0: ネットワークへのリダイレクト
           1: ホストへのリダイレクト
           2: type of service と ネットワークへのリダイレクト
           3: type of service と ホストへのリダイレクト

ICMP Router Discovery

ICMP Router Discovery Message
[ICMP Router Request]
                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 (32bits width)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type       |     Code      |        Checksum               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Unused (must be 0)Router                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    Type = 10, Code=0
[ICMP Router Broadcast]
                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 (32bits width)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type       |     Code      |        Checksum               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Num of Addr  |Addr Entry Size|        Time To Live           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Router Address                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Priority Level                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                         ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Router Address                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Priority Level                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    Type = 5, Code=0,1,2,3