【問題集】ルーティング

ルーターでは、経路制御(ルーティング)を行っています。「宛先IPアドレス」に対して最適な経路を「ルーティングテーブル(経路制御表)」から探して、「ネクストホップ(次の行き先)」を決めています。ルーティングにはスタティックルーティングとダイナミックルーティングがあります。質問などありましたら、お気軽にどうぞ。

経路制御(ルーティング)とは

  • ルータはネットワーク層のPDUであるIPパケットのヘッダ部に埋め込まれた宛先IP(アドレス)を、自身のルーティングテーブルと照らし合わせて、最適なインターフェースから送出する。
  • ルータはネットワークの変化に柔軟かつ遅延なく対応する必要がある。ルータのルーティングテーブル等の経路情報は管理者が隅々まで把握しているわけではない。
  • ルータのルーティングテーブル等の経路情報は、ルータ同士で情報交換をしていて、ある程度自動的に経路が作成される。コレを動的ルーティング(ダイナミックルーティング)ともいう。一方、管理者が隅々まで管理するスタティックルーティングもある。

動的(ダイナミック)ルーティング

  • IGP(Interior Gateway Protocol)は、地域やISP等の団体で管理している範囲内でルーティングテーブルを作成する。地域やISP等の団体が運用する範囲を自律システム(AS:Autonomous System)という。
  • EGP(Exterior Gateway Protocol)は、多数のAS間に対してルーティングテーブルを作成する。

経路制御アルゴリズム

距離ベクトル型(Distance Vector)

  • 距離(メトリック)と方向によってルートを作成する。
  • 隣接ルーターと情報交換を何度も繰り返し、情報が広がっていく方法をとっている。
  • 他のアルゴリズムと比べると、処理が簡単で、ルーターが高性能でなくとも良く、設定も簡単。
  • ネットワークの構造が複雑になると、経路の情報交換が安定する(コンバージェンス)までに時間がかかる。
  • 経路にループが発生しやすくなる。
  • 代表的なものにはRIPや(Cisco社独自の)EIGRP(IGRP)がある。
  •   

リンク状態型(Link State)

  • ルーターがネットワーク全体の接続状態を理解して、ルートを作成する。すべてのルーターが同じ情報を持つことになる。
  • 経路の情報交換が安定する(コンバージェンス)までの時間が短く出来る。
  • 処理が複雑で、CPUやメモリ等のリソースを多く消費する。
  • 代表的なものにはOSPFがある。

RIP(Routing Information Protocol)

  • サブネットマスクに対応したversion 2の方が使われるようになった。
  • 距離(メトリック)の単位はホップ数である。ホップ数とは通過するルーターの数のこと。RIPではできるだけ少ない数のルーターを通過して、宛先IPアドレスに到達するようにルートが作成される。
  • 経路情報が送信されるのは、30秒周期。
  • 6回(180秒)待っても経路情報が送られてこない場合は、接続が切れたと判断する。

例)経路情報作成の概要

RIPの経路情報作成の例
RouterAが知っている情報に注目して考える
0秒後 RouterA  の情報
30秒後 RouterA、RouterB  の情報
60秒後 RouterA、RouterB、RouterC、RouterE  の情報
90秒後 RouterA、RouterB、RouterC、RouterD、RouterE、RouterF の情報
120秒後 RouterA、RouterB、RouterC、RouterD、RouterE、RouterF の情報
150秒後 RouterA、RouterB、RouterC、RouterD、RouterE、RouterF の情報
180秒後 RouterA、RouterB、RouterC、RouterD、RouterE、RouterF の情報

この例の場合90秒後で全ての情報を交換しきっており、それ以上ルーティング情報は変化しない、この状態をコンバージェンス(収束)という

ループの対策

  • 経路が切断された際、過去に伝えた情報を逆に教えられてしまう状態を無限カウントと呼ぶが、それの対策としてホップ数16以上を通信不能としている。
  • 経路情報を受信したインターフェースからは同じ情報を送り出さない。その機能をスプリットホライズンという。
  • 経路が切れたとき、その情報を流さないのではなく、ホップ数を16として流すことによって通信不能と伝える方法をポイズンリバースという。
  • 経路に変化が生じたとき、30秒待たずに直ぐに伝える方法をトリガーアップデートという。
  • これらの機能が実装されているRIPでもルーティングループが発生してしまったり、コンバージェンスまでに時間がかかることがある。

例)RIPでの経路情報作成のやり取り

例)RIPの経路情報作成の詳細

1.RIP開始時

RouterA
宛先インターフェースネクストホップホップ数
10.0.0.0/8E0直接接続0
172.16.0.0/16S0直接接続0
表1-A
RouterB
宛先インターフェースネクストホップホップ数
172.16.0.0/16S0直接接続0
192.168.1.0/24E0直接接続0
表1-B

2.RIP開始後 初回送信(B→A)

RouterBは、ホップ数に1プラスした下記の情報をRouterAに送る
宛先インターフェースネクストホップホップ数
172.16.0.0/16S0 よりRouterB より1
192.168.1.0/24S0 よりRouterB より1
表2-BA
RouterAでは、受け取った情報(表2-BA)と自分のルーティングテーブル(表1-A)を比較し、
同じ宛先が存在した場合はホップ数の小さいほうを採用し、
同じ宛先がなかった場合はそのルートをルーティングテーブルに作成する。
宛先インターフェースネクストホップホップ数
10.0.0.0/8E0直接接続0
172.16.0.0/16S0直接接続0
192.168.1.0/24S0172.16.3.21
表2-A

3.次に 送信(A→B)

RouterAは、ホップ数に1プラスした下記の情報をRouterBに送る
宛先インターフェースネクストホップホップ数
10.0.0.0/8S0 よりRouterA より1
172.16.0.0/16S0 よりRouterA より1
192.168.1.0/24S0 よりRouterA より2
表3-AB
RouterBでは、受け取った情報(表3-AB)と自分のルーティングテーブル(表1-B)を比較し、
同じ宛先が存在した場合はホップ数の小さいほうを採用し、
同じ宛先がなかった場合はそのルートをルーティングテーブルに作成する。
宛先インターフェースネクストホップホップ数
172.16.0.0/16S0直接接続0
192.168.1.0/24E0直接接続0
10.0.0.0/8S0172.16.3.11
表3-B

4.ここまで来て(RIP開始から50秒後頃)

宛先インターフェースネクストホップホップ数
10.0.0.0/8E0直接接続0
172.16.0.0/16S0直接接続0
192.168.1.0/24S0172.16.3.21
表4-A(表2-A と同じ)
宛先インターフェースネクストホップホップ数
172.16.0.0/16S0直接接続0
192.168.1.0/24E0直接接続0
10.0.0.0/8E0172.16.3.11
表4-B(表3-B と同じ)

5.ルータ起動から60秒後頃

RouterBは、ホップ数に1プラスした下記の情報をRouterAに送る
宛先インターフェースネクストホップホップ数
172.16.0.0/16S0 よりRouterB より1
192.168.1.0/24S0 よりRouterB より1
10.0.0.0/8S0 よりRouterB より2
表5-BA

RouterAは 情報(表5-BA)を受け取るが、現在自分の持っているルーティングテーブル(表4-A)と比較し受け取った情報は全てホップ数が大きいため何も変わらない

この状態になればコンバージェンスである

「4.ここまで来て(RIP開始から50秒後頃)」でコンバージェンスし、ずっとそのままである。