1999/06/21

ネットワーク(10)


Dynamic Routing Protocol

routing daemon --- 隣接した router から受けとった経路情報を使って routing table を変更(経路を動的に追加・削除)する。

the Internet は「ネットワーク」のネットワークであり、 各「ネットワーク」は Automomous System (自律システム) である。


RIP

RIP (Routing Information Protocol) --- p.145 Fig.10.2

RIP は UDP (520番port)で運ばれる (IP Header 20 byte, UDP Header 8byteがRIPパケットの前につく)。 1つのRIPに25経路まで含めることができる(4+20*25=504byte < 512byte)。 これ以上の経路を送る場合は、複数個の RIP を流すことになる。

[RIP format]
                     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)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Command     |     version   |              0                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+
|    Address Family  (2)        |              0                |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |
|                    32bit IP Address                           |   |routing
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |infor-
|                             0                                 |   |mation
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |(20byte)
|                             0                                 |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |
|                       metric  (1-16)                          |   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+
                            ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+
|                                                               |   |routing
|             Routing Information (x24 Max)                     |   |infor-
|                                                               |   |mation
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+(20byte)
  Command = 1(request), 2(reply), 3(unused), 4(unused), 5(poll), 6(poll entry)
  version = 1 or 2  (通常1)
  Address Family: IP Address は2
  Metric:  1-15はホップ数。16は∞の意味。
[routedの動作]
  1. 初期化 --- 稼働中の各lネットワーク・インターフェイスに対して、 「完全なルーティング・テーブル情報を求める要求パケット (Command=1, Address Family=0, Metric=16)」を送り出す。
  2. 要求を受信した場合 --- 「完全なルーティング・テーブル情報を求める 要求パケット」を受信した場合は、ルーティング・テーブル全体を送り返す。 それ以外では、要求の各エントリに対してmetricの値を設定して返す(経路が ない場合は16に設定)。
  3. 応答を受信した場合 --- 応答にしたがって、routing table を更新する。
  4. 通常の更新 --- 30秒毎に送られてくる(Ethernet上では broadcastされる)経路情報をもとに routing table を更新する。 3分以上(30秒×6回)情報を受けとれなかった経路は削除の印をつけられ、 その60秒後に実際に削除される。
  5. ある経路へのmetricが変更した場合の更新 --- 変更した経路に関するエントリ だけを送る。

Metric (= Hop Count)

直接接続されたネットワーク・インターフェイスのホップ・カウントは1
 p.148 Fig 10.4
     ---------+------------------ N1
              |
              R1
              |
          ----+-----------+------------ N2
                          |
                          R2
                          |
                     -----+----------------- N3

  1. R1 は経路情報をbroadcastする。
  2. R2 は経路情報をbroadcastする。
  3. 隣接するrouterから受けとった経路へのHop Countを +1 して、 自分の routing table を変更する(Hop Countの最大値は15)。

RIPの問題点