Web教材一覧ネットワーク

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

学習のポイント

ルータはOSI参照モデルのネットワーク層,TCP/IPのIP層に対応した機器であり,相手のホストへの経路を選択する機能を持ちます。その最適化を図るのが経路制御(ルーティング)です。ここでは,経路を選択する動作と経路制御をどのようによって実現するのかを理解します。

キーワード

経路制御(ルーティング),MACアドレス,ARP,IPアドレス,ルーティングテーブル(経路制御表),スタティックルーティング(静的経路制御),ダイナミックルーティング(動的経路制御),ルーティングプロトコル,IGP,RIP,RIP2,距離ベクトル,経路距離,ホップ数,OSPF,リンク状態,メトリック,エリア,BGP,AS,IX


同一ネットワーク内での接続

MACアドレス(Media Access Control address)

現在広く用いられているLANのプロトコルはイーサネット(Ethernet)です。パソコンをイーサーネットに接続するには,ネットワークインタフェースカードが必要ですが,ネットワークインタフェースカードには,MACアドレスが付けられています。

MACアドレスのフォーマット

MACは,48ビット(6オクテット=6バイト)からなり,前半の24ビット(厳密には,先頭の3ビット目からの22ビット)がベンダ識別子(カード登録業者の番号でIEEEから与えられる),後半の24ビットはベンダがつける製品番号で,世界中で一意になります。
 LAN内(正確には同一サブネットワーク内)では,MACアドレスを指定することにより,相手のホストと接続することができます。

ARP(Address Resolution Protocol)

ところが,インターネットでは相手のホストをIPアドレスで指定していますので,IPアドレスをMACアドレスに変換する必要があります。最も単純には,その対応表を個々のパソコンあるいは制御用のサーバに作成しておけばよいのですが,それでは新しいパソコンを接続するたびに対応表を書換えなければなりません。

ARPでは,知りたいIPアドレスを含んだARP要求パケットという電文をLAN内の全ホストにブロードキャストします。各ホストはそれを受けて自分のIPアドレスであれば,自分のMACアドレスをARP応答パケットで返信します。それにより,互いに通信ができるようになります。なお,MACアドレスからIPアドレスを知るには,RARP(Reverse ARP)を用います。

LAN内での経路制御

他ネットワーク間での接続にはルータが用いられます。ルータはIPアドレスを見て相手のホストを探し接続するのですが,それには,そのIPアドレスを持つホストを含むネットワークのルータを探して,ルータ同士を接続する必要があります。

単純には,すべてのネットワークIPアドレスとそのルータのIPアドレスの一覧表を持てばよいのですが,世界中には膨大なネットワークがあるので,そのようなことは不可能です。
 IPアドレスを割り振った順序を逆に,プロバイダ→指定事業者→JPNIC→APNIC→ICANNと遡っていけば,必ず相手のネットワークへ到達することができますが,毎回そうしたのでは,上位の機関への通信が殺到してしまいます。

そこで,ルータによく接続する相手,最近接続した相手については対応表(ルーティングテーブル,経路制御表)を作成しておき,それに合致したものはそれを利用し,そのリストにない場合には上位のルータに接続する(デフォルトルートという)ようにしています。
 すなわち,ルータが自分が知らない相手の場合には,他のルータに聞き,そのルータも知らなければさらに他のルータに聞くというような「たらいまわし」あるいは「バケツリレー」をしながら目的の相手を見つけるのです。これは迂遠なように見えますが,一部のルータや回線が故障していても,他の経路を迂回することにより,相手と接続できる確率が高くなります。インターネットはこの方法により信頼性を高めているのです。

具体的な例

ホストAのIPアドレスは 10.1.1.20 で,ネットワーク 10.1.1.0/24 に属しています。このネットワークのルータ1は 10.1.1.1 です。ホストAのルーティングテーブルは,次のようになっています。

  ホストAのルーティングテーブル
  ネットワーク 接続ルータ
  10.1.1.0/24  10.1.1.20      ア 自分のネットワークと自分のアドレス
  0.0.0.0/0   10.1.1.1 (ルータ1)イ デフォルトルート
以下の図解 (拡大図)

送信先がホストB 10.1.1.30 (同一ネットワーク内)のとき

自分のルーティングテーブルのアから,ホストBは同一ネットワークにあることがわかるので,ARPによりホストBのMACアドレスを得て,直接送ります。

送信先がホストC 10.1.2.15 (隣のネットワークのとき)

ホストAのルーティングテーブルには対象のネットワークがないので 0.0.0.0/0 のデフォルトルートによりルータ1に送ります。ルータは2つのネットワークに接続しているので,ネットワーク1側のIPアドレスとネットワーク2側のIPアドレスを持っています。ルータ1のルーティングテーブルは,次のようになっています。

  ルータ1のルーティングテーブル
  ネットワーク 接続ルータ
  10.1.1.0/24  10.1.1.1  ア ネットワーク1側
  10.1.2.0/24  10.1.2.1  イ ネットワーク2側
  10.1.3.0/24  10.1.2.2  ウ ルータ2
  0.0.0.0/0    10.1.2.3  エ デフォルトルート(ルータ3)

ルータ1は,ホストAからの電文の送信先IPアドレス 10.1.2.15 とルータ1のルーテイングテーブルのイにより,ホストCがルータ1が属しているネットワーク2の中のホストであることを知り,ARPなどを用いて,ホストCへ送ります。

送信先がホストD 10.1.3.15 (複雑な経路)のとき

ホストAではデフォルトルートなのでルータ1へ行き,ルータ1ではウによりルータ2へ行きます。ルータ2のルーティングテーブルは次のようになっています。

 ルータ2のルーティングテーブル
  ネットワーク 接続ルータ
  10.1.2.0/24  10.1.2.2  ア ネットワーク2側
  10.1.3.0/24  10.1.3.1  イ ネットワーク3側
  10.1.1.0/24  10.1.2.1  ウ ルータ1
  0.0.0.0/0    10.1.3.4  エ デフォルトルート(ルータ4)

ルータ2は,そのルーティングテーブルのイにより,ホストDが自分の属するネットワーク3の中にあることを知ります。このようにして,いくつかのルータを経由してホストDに送ることができるのです。

(注)ルーティングの種類

上述のようにデフォルトルートを設定する制御方式をルーズルーティングといいます。それに対してルーティングテーブルにない場合はキャンセルする方式をストリクトルーティングといいます。

バケツリレーではなく、送信元(ソース)で送信先までの中継ルータを指定する方式があり、それをソースルーティングといいます。中継ルータの故障で接続できなくなる確率が高くなりますが、盗聴される危険性が排除されます。さらに、送信先までの全経路を指定するストリクト・ソース・ルーティング、途中までを指定するルーズ・ソース・ルーティングに区分されます。

ルーティングプロトコル

上記のように,LANやインターネットではルーティングテーブルが重要です。それに誤りがあると,通信ができなくなります。ルーティングテーブルの作成方法には,スタティックルーティングとダイナミックルーティングがあります。
 スタティックルーティング(静的経路制御)では,手作業でルーティングテーブルを作成します。ネットワークの規模が大きくなると作業が困難になりますし,更新があったり,経路でのルータにトラブルがあったりすると,その対応が不十分になる危険があります。

ダイナミックルーティング(動的経路制御)は,ルータが自動的に情報を収集して,ルーティングテーブルを更新する方法です。次のようなルーティングプロトコルによるツールが利用されます。

 区分(対象)   プロトコル 下位  アルゴリズム
 IGP(LAN)  RIP  UDP 距離ベクトル(ホップ回数),クラスレス非対応
           RIP2 UDP 距離ベクトル(ホップ回数)
           OSPF IP  リンク状態(ループ検出),メトリック,エリア
 EGP(外部接続) BGP  TCP 経路ベクトル(ループ検出)

ルーティングプロトコルには,主として企業内LANを対象にするIGP(Interior Gateway Protocol)と,主にインターネットを対象にするEGP(Exterior Gateway Protocol)に区分できます。そして,IGPには基本的なものにRIP/RIP2,現在広く用いられるようになったOSPFがあり,EGPの代表的なものにBGPがあります。

RIP(Routing Information Protocol)

目的のIPアドレスに到着するまでのルータ経由回数をホップ回数といいますが,それを距離といいます。また,ルーティングテーブルでの「次のルータのIPアドレス」のことを方向といいます。そして,距離と方向を合わせて距離ベクトルといいます。RIPでは,距離が最小となる距離ベクトルを求めて,ルーティングテーブルを作成する方法です。

RIPの概念図

各ルータ定期的(30秒ごと)に経路情報をブロードキャストします。この経路情報が180秒(すなわち5回分)到着しなかったら,そのルータからの経路は接続が切れたものとして,ルーティングテーブルに通信不能のフラグをつけます。
 RIPは,その情報により,各ネットワークに達するまでのルータを経由する回数(ホップ)を計算します。

ネットワーク1
ルータAからネットワーク1へは,ルータAを通るだけ(ホップ数は①)ですので,ルーティングテーブルでは,ネットワーク1への方向は,ルータAのネットワーク1側のIPアドレス 10.1.1.1 となります。
ネットワーク2
同様にネットワーク2への方向は,ルータAのネットワーク2側のIPアドレス 10.1.2.1 になります。
ネットワーク3
ネットワーク3へは,ルータA→ルータBの経路(ホップ数②)とルータA→ルータC→ルータDの経路(ホップ数②)の2つがありますが,そのうち,ホップ数の小さいルータA→ルータBの経路を採用して,ネットワーク3への方向は,ルータAから見えるルータBのIPアドレス 10.1.2.2 であるとします。
ネットワーク4
練習問題とします。

RIP2はRIPに次のような改良をしたものです。

経路故障での対応

下図で,ルータAはルータBに経路情報を通知し,ルータBはルータAとルータCに,ルータAからの情報に距離を1加えた情報を通知します。

RIPが正常のとき

ところが,ネットワーク1とルータAの間が,何らかの原因で切断されたとします。ルータAはルータBに経路情報を流しませんが,ルータBは過去の情報をルータAに通知します。すると,ルータAはルータB経由で距離2でネットワーク1に接続できると思い,ルータAからネットワーク1へは距離3で接続できるとの経路情報を流します。それを受けてルータBは,距離を4とした情報を・・・というように,無限カウントに陥ってしまいます。

無限カウントの図

無限カウントになるのを防ぐために,次のような対策がとられています。

OSPF(Open Shortest Path First)

リンクとメトリック

上記のような無限カウントの対策をしても,次の赤線のようなループがあるときは,対処が困難になります。それに対処するには,ルータの接続関係をリンク状態といいますが,リンク状態を分析してループの検出する必要があります。

単純なループであれば,ブリッジやルータに装備されているスパニングツリー機能で対処できますが,ここではもっと複雑なループを対象とします。また,経路制御の観点からの考察にします。

ループが存在する場合の図

定時間間隔(10秒どと)にHELLOパケットを送信します。これが来なくなれば切断されたと判断します。切断あるいは回復になると,リンク状態更新パケットを送信して,他のルータに状態の変化を伝えます。

OSPFでは,リンク状態(トポロジー)を経路情報として交換します。それにより,どのネットワークとどのルータと接続しているかを,バケツリレーで各ルータに通知されます。また,経路距離をホップ数だけでなく,各リンクにメトリックという重み付けをして,そのメトリックが最小になるように経路を選択します。その最適化のアルゴリズムにより,ループの検出を行い,それによる無限ループを防ぐことができるのです。

エリア分割

リンク状態のデータを解析するための計算は複雑なので,ネットワークの規模が大きくなると,負荷が大きくなってしまいます。それを低減するために,OSPFではエリアという概念を取り入れます。ネットワーク同士やホスト同士をまとめてエリアとすることにより,ネットワーク全体を階層構造化し,そのエリアでの最適化を図ります。それをリンクステートアルゴリズムといいます。

経路MTU探索

MTU(Maximum Transmission Unit)とは,データリンクで送信できるパケットの最大長です。イーサーネットでは1,500オクテット,FDDIでは4,352オクテットというように,データリンクの種類によってMTUが異なるので,経路によってはルータがMTU分割をします。経路MTU探索では,その負荷を回避するために,宛先までの経路でMTUが最大な経路を探します。最初のデータの分割禁止フラグをオンにして送信すると,途中のルータで分割が必要になるとICMPの到達不可能メッセージにより,そのルータでのMTUが戻されます。その値を参照して最適経路を見出すのです。

インターネットでの経路制御

ここまではルータ間がLAN接続している場合でした。社内LANならば大規模とはいっても,たいしたことはありませんが,インターネットでは,ネットワーク数もルータの数も無限に近いのです。インターネットへの接続では,通常はISPを介した接続になります。社内ネットワークをまとめたルータとISPのルータを,公衆回線や専用回線で接続するだけのことですが,ISP以降はどのようになっているのでしょうか。

インターネットの構成

企業のLANや家庭のパソコンからプロバイダを通してインターネットへつながる仕組み,インターネットがネットワークのネットワークである仕組みを簡単に説明します。

インターネットの構成図

企業や個人がインターネットを利用するには,ISP(Internet Service Provider:プロバイダ)と契約します。ISPは,多数のアクセスポイントといくつかのNOC(Network Operation Center)を持っています。利用者のLANのルータやモデムは,なんらかの通信回線により,近くのアクセスポイントに接続しています。

アクセスポイントは,単純にいえば専用線,ダイアルアップ,ブロードバンドなどに対応したルータです。そこに到着した電文は,高速回線でNOCに集められます。NOCも単純にはルータですので,アクセスポイントとNOCは同じようなものだといえます。小さなISPは,大きなISPと契約しており,そこのNOCと接続しています。そのようにして,AS(Autonomous System)という地域的にまとまったネットワークが構成されます。

ASを代表するNOCは,他のASを代表するNOCと接続しています。そのとき,個々のAS間で個別に接続する形態もありますが,多数のASとの接続を容易にするために,IX(Inernet eXchange)という設備を中心にして接続しています。このようなAS間を結ぶ通信回線のことをバックボーン回線と呼ばれ,数十Gbpsの超高速回線が用いられます(NOC間の通信回線も含めてバックボーン回線ということもあります)。また,ASやIXを通して海外と接続されています。このような構成により,ネットワークのネットワークであるインターネットが構成されているのです。

BGP(Border Gateway Protocol)

IGPではIPのサブネットワークを対象にしますが,EGPではインターネット全体を対象にする必要があります。とはいえ,インターネット全体を対象とするのは事実上不可能です。それでIGPではISPや地域ネットワークなど,ある範囲をAS(Autonomous System)という単位でまとめてAS番号をつけています。
 BGPでは,相手のASに通信が到達するまでに通過するAS番号をすべて収集してASリストを作り,その経路が最小のものを採用します。これを経路ベクトルといいますが,それによって経路を選択するのです。


理解度チェック

第1問

  1. MACアドレスもIPアドレスもネットワーク層に属する。
    × MACアドレスはデータリンク層
  2. ARPとは,通信相手のIPアドレスからMACアドレスを特定する。
  3. ARPの通信形態は,問合せも応答もマルチキャストで行う。
  4. ルータは,IPアドレスにより,どのルータに中継すればよいかのルーティングテーブルを持っている。それにないIPアドレスへの経路選択はできない。
    × デフォルトルートがある
  5. RIPはクラスレスに対応していないが,OSPFは対応している。
  6. OSPFは,経路中にループがあるのを発見して対処する機能を持つが,これは同一データリンク内だけである。
    × スパニングツリーの説明
  7. RIPやOSPFはIGPのプロトコルである。
  8. OSPFでは,エリアの概念により,ある規模のネットワークを一つのグループとして位置づける。
  9. OSPFでの分析により,最適経路としてホップ数が大きい経路が選択されることもある。
  10. AS間での接続は,かならずIXを経由する必要がある。
    × 直接にNOC間で接続することもある。

本シリーズの目次へ