ルーティングの 基礎

ルーティングの基礎
第5章
パケットはこうやって届けられる
第
5
章
ルーティングの
基礎
前章までで見てきたスイッチは、データリンク層で動作する。それに対してルータは、ネ
ットワーク層で動作する。ルータは、ネットワーク層のプロトコルであるIPの機能である
「ルーティング」
を実現する、インターネットの要ともいうべきネットワーク機器である。
ルーティングとは
インターネットは、大小さまざまな
ネットワークの集合体である。これら
どのルータ(経路)を通るかを決める
のがルーティングである。
大小のネットワークを相互に接続して
ルータがルーティングを行なうため
いるのが「ルータ」と呼ばれるネット
には、パケットの転送先を決めるデー
ワーク機器だ。
タベースである「ルーティングテーブ
ルータの役割は、ずばり「異なるネ
ル(経路表)」が必要になる。各ルー
ットワーク宛のパケットを転送するこ
タは、ルーティングテーブルの情報を
と」である。また、こうしたパケット
もとにパケットをバケツリレー方式で
を転送する機能は「ルーティング(経
転送を繰り返すことによってルーティ
路制御)」と呼ばれる。ルーティング
ングを行なう。ルーティングテーブル
とは、パケットを正しい宛先まで届け
には、パケットの転送先を決める複数
るために、最適な経路を選択する機能
の情報注1 が保存されている。主なもの
である。多くの場合、パケットは複数
として「宛先」「中継先」「(中継する
のルータを経由して宛先のIPアドレス
際にパケットを送出する)ポート番号」
を元に相手先まで届けられる。この際、
がある。
注1■複数の情報
ルーティングテーブルに含まれる宛先や中継先の情報の組み合わせは
「ルーティングエントリ」
と呼ばれる。ルータは、パケ
ットを受信するたびにルーティングテーブルに保存されたルーティングエントリの情報を照合してパケットを転送している。
43
第
2
部
レ
イ
ヤ
3
ス
イ
ッ
チ
完
全
理
解
第5章
ルーティングの基礎
ルータがパケットを
処理する流れ
それでは実際にルータがパケットを
転送する動作の流れを見ていこう。図
5-1は、ルータがさまざまな宛先を持
らし合わせると、パケットを2番ポー
トに転送すればよいことがわかる。
また、この図のルータにとっては、
つパケットを処理する流れだ。ここで
社内のWebサーバとファイルサーバの
は例として、1番ポートに接続された
「宛先がわかっている」状態だ。よっ
コンピュータで、インターネット上の
て、ファイルサーバ宛のパケットはネ
Webページと社内LANのWebページを
ットワークAが接続された2番ポート
見ながら、LAN内のファイルサーバに
へ、社内Webサーバ宛のパケットはネ
保存された画像ファイルをダウンロー
ットワークBが接続された3番ポートに
ドしている状況を示している。
何ら問題なく転送できる。しかし、イ
まず最初に、ルータAの1番ポートに
ンターネット上のWebサーバ宛のパケ
はこれら3つの宛先IPアドレスが含ま
ット(図の青いパケット)の宛先情報
れたパケットが到着する。ルータには、
は、ルーティングテーブルには登録さ
各ポートの宛先ネットワークの情報が
れていない。
含まれたルーティングテーブルが保存
されている。
そこで登場するのが「デフォルトル
ート」と呼ばれる宛先だ。デフォルト
パケットを受け取ったルータは、次
ルートの基本となる考え方は「知らな
に各パケットの宛先IPアドレスを1つ
い宛先のパケットは他のルータに任せ
ずつ調べて、それぞれルーティングテ
る注2 」というものだ。到着したパケッ
ーブルの情報と照らし合わせる。たと
トの宛先IPアドレスが、ルーティング
えば、図中の緑のパケットはネットワ
テーブルに含まれているどの宛先とも
ークAのファイルサーバ宛である。こ
合致しない場合は、デフォルトルート
れをルーティングテーブルの情報と照
(不明な宛先)として設定されている
注2■知らない宛先のパケットは他のルータに任せる
いずれのルータにとっても宛先が不明だった場合、そのままではパケットがインターネット上を永遠に流れ続けるこ
とになる。そこでIPヘッダには「TTL(Time To Live)」という情報が含まれている。TTLはパケットの寿命(中
継可能回数)を表わすものである。パケットがルータを通るたびに、TTLの値が1つずつ減っていき、ゼロになった
時点でパケットは破棄される。
44
ルーティングの基礎
STEP
1
第5章
ルータにパケットが届く
ルータにはパケットの中継先の情報を参照するための
「ルーティングテーブル」が設定されている
第
2
部
ルーティングテーブル
宛先
ネットワークA
ネットワークB
不明な宛先
パケットが届いたぞ!
ルーティングテーブルの
情報を見てみよう
ポート番号
2
3
4
中継先
自分自身
ルータB
ルータC
1
2
3
レ
イ
ヤ
3
ス
イ
ッ
チ
完
全
理
解
Webサーバ
4
ルータA
ルータC
インターネット
社内Web
サーバ
ルータB
ネットワークB
ファイル
サーバ
ネットワークA
STEP
2
STEP
パケットの宛先を確認
適切なポートにパケットを転送
3
ルータに届いたパケットは、その宛先情報が調べられ、
ルーティングテーブルと比較される
宛先を確認したら、パケットを適切なポートに中継する。
中継先がわからない場合は他のルータ(デフォルトルート)に任せる
それぞれの宛先へ
パケットを転送しよう
宛先:ネットワークAの
ファイルサーバ
宛先:ネットワークBの
社内Webサーバ
ルーティングテーブル
宛先:インターネットの
Webサーバ
Webサーバ
…
…
…
…
…
…
不明な宛先(イン
ターネット宛)は
他のルータ(ルー
タC)に任せよう
…
…
…
Web
サーバ
ルーティングテーブル
…
…
…
…
…
…
…
…
…
1
2
3
4
1
2
3
4
ルータC
パケットの宛先を
確認しよう
ルータC
インターネット
インターネット
社内Web
サーバ
社内Web
サーバ
ルータB
ファイル
サーバ
こっちで宛 先を
探しておくよ(デ
フォルトルート)
ルータB
ネットワークB
ネットワークA
ファイル
サーバ
ネットワークB
ネットワークA
図5-1●ルータが宛先を確認してパケットを転送する流れ
45
第5章
ルーティングの基礎
ルータにパケットが転送される。デフ
ば再度、そのルータに設定されている
ォルトルートとして指定されたルータ
デフォルトルートにパケットの転送を
(図中のルータC)は、その宛先IPアド
行なうことになる。
レスを自身のルーティングテーブルの
こうした動作を繰り返すことで経路
情報と照らし合わせる。ルーティング
を知っているルータにたどり着き、最
テーブルに宛先情報があれば該当する
終的な宛先へパケットが転送されるこ
ポートからパケットを転送し、なけれ
とになる。
デフォルトルート以外の経路
先にデフォルトルートについて説明
ているルーティングテーブルだ。冒頭
したが、ルーティングではこれ以外に
で、ルーティングテーブルはルータに
2つのルートがある 。それが特定のホ
搭載されていると説明した。しかし、
ストを表わす「ホストルート」と、特
実はルーティングテーブルはIPで通信
定のネットワーク全体を表わす「ネッ
を行なうすべてのホストに搭載されて
トワークルート」だ。ルーティングテ
いる。Windowsの場合は「route print」
ーブルに含まれる経路情報は、デフォ
コマンド注4 を利用することでルーティ
ルトルートとあわせたこれら3つのど
ングテーブルを表示できる。
注3
れかにあてはまる。
それでは、リスト5-1を見てみよう。
ここでは、実際のルーティングテー
先ほどルーティングテーブルには「宛
ブルの例を見ながら説明しよう。リス
先」「中継先」「ポート番号」の情報が
ト5-1は、Windowsマシンに搭載され
含まれると説明したが、実際のルーテ
注3■2つのルートがある
デフォルトルートに加えて、ホストルートとネットワークルートがあると説明したが、大半のルータではネットワー
クルートとデフォルトルートの2つが保存されている。ルーティングテーブルの宛先をホスト単位で記録すると、情
報量が膨大な数になってしまうからだ。
注4■route printコマンド
Windows系OSには、ルーティングテーブルを表示させるために、本文で説明した「route print」以外にもコマ
ンドが用意されている。それが、TCP/IP関連のさまざまなステータスを表示する「netstat」コマンドである。同
コマンドに「-r」オプションを付けることで、自マシンのルーティングテーブルを表示できる。
46
ルーティングの基礎
第5章
リスト5-1●Windowsマシンに搭載されたルーティングテーブルの例
C:¥>route print
第
2
部
Active Routes:
Network Destination
Netmask
Gateway
Interface
Metric
1
0.0.0.0
0.0.0.0
192.168.1.1
192.168.1.10
127.0.0.0
255.0.0.0
127.0.0.1
127.0.0.1
1
192.168.1.0
255.255.255.0
192.168.1.10
192.168.1.10
1 ……②
192.168.1.10
255.255.255.255
127.0.0.1
127.0.0.1
1 ……①
192.168.1.255
255.255.255.255
192.168.1.10
192.168.1.10
1
224.0.0.0
224.0.0.0
192.168.1.10
192.168.1.10
1
255.255.255.255
255.255.255.255
192.168.1.10
192.168.1.10
1
Default Gateway:
192.168.1.1 ……③
レ
イ
ヤ
3
ス
イ
ッ
チ
完
全
理
解
Network Destination=宛先
Netmask=ネットマスク
Gateway=ゲートウェイ
Interface=インターフェイス
Metric=メトリック(距離)
ィングテーブルに含まれる情報は、リ
こうしたルーティングテーブルの中
スト5-1のようにもう少し細かい。宛
で、Netmaskが「255.255.255.255」に
先は「Network Destination(宛先のIP
なっている項目が、特定のホストを表
アドレス)
」と「Netmask(サブネット
わすホストルートになる。リスト5-1
マスク)
」と呼ばれる2つの情報によっ
内の①の場合であれば、192.168.1.10
て表わされる。また「Gateway」がパ
という特定のホストを表わすIPアドレ
ケットの中継先、「Interface」がパケ
ス宛のパケットは、127.0.0.1のループ
ットを送出するルータの物理ポートを
バックアドレス注5 宛に転送されるとい
表わす。ただし、実際にはポートでは
うことだ。また、Netmaskが0.0.0.0以
なく、リスト5-1のようにポートに割
外の項目(たとえばリスト5 - 1 の②)
り振られたIPアドレスが保存されてい
が、特定のネットワークを表わすネッ
るのがわかる。なお「Metric」は「距
トワークルートになる。また、デフォ
離」を表わす項目だが、この詳細につ
ルトゲートウェイは、リスト5-1の③
いては次章で説明する。
で設定されている192.168.1.1となる。
注5■ループバックアドレス
「自分自身」を表わす特別なIPアドレス。「127.0.0.1」というIPアドレスがループバックアドレスとして予約され
ている。ループバックアドレスは、T C P / I P が組み込まれたホストには必ず割り当てられており、ホスト名は
「localhost」となる。Windows系OSであれば、試しにDNSサーバの情報を確認する「nslookup」コマンドを利
用してみよう。
「nslookup 127.0.0.1」の結果は「Name:localhost」と表示されるはずだ。
47
第5章
ルーティングの基礎
パケットが宛先に届くまでの流れ
次に、ルーティングテーブルを使っ
各ルータに設定されたルーティングテ
て実際にパケットがネットワーク間を
ーブルは図5-2のとおりだ。
転送されていく流れを見ていこう。図
まず、ホストAから送信されたパケ
5-2は、2台のルータで接続された3つ
ットは、デフォルトゲートウェイとし
のネットワークである。ここで、ネッ
て設定されているルータAに届く。届
トワークAのホストAが、ネットワー
いたパケットの宛先IPアドレスは、ル
クCのサーバB(172.16.10.200)と通
ータAのルーティングテーブルにある
信するとしよう。ホストAは、自身の
「172.16.10.0/24」の項目と一致する。
ネットワーク(192.168.10.0/24)以外
この中継先のIPアドレスが、ルータB
の宛先のパケットは、すべてデフォル
が持つ「10.20.30.2」(図中のC)であ
トゲートウェイ(ルータA)に送ると
ることから、インターフェイスBから
いう設定になっているとする。また、
パケットを送出する。
1. ネットワークCのサーバB宛てに
パケットを送信
ネットワークA
192.168.10.0/24
192.168.10.1
ルータAのルーティングテーブル
A
ルータA
10.20.30.1
ネットワークB
10.20.30.0/24
ネットワークC
172.16.10.0/24
宛先
192.168.10.0/24
10.20.30.0/24
172.16.10.0/24
インターフェイス
A
B
B
2. サーバBはネットワークCにいるので、
C
ルータBへパケットを転送
ルータB
D
サーバB
172.16.10.200
3. サーバBはルータBと同じネットワークCに
いるので、パケットをサーバBに転送
ルータBのルーティングテーブル
宛先
172.16.10.0/24
10.20.30.0/24
192.168.10.0/24
図5-2●ルーティングテーブルでパケットが転送される流れ
48
中継先
Connected
Connected
10.20.30.2
B
10.20.30.2
172.16.10.1
ホストA
192.168.10.100
中継先
Connected
Connected
10.20.30.1
インターフェイス
D
C
C
第5章
ルーティングの基礎
ルータAからパケットが届けられた
トに直接接続されたネットワークであ
ルータBも、ルータAと同様にパケッ
ることを意味している。よって、中継
トの宛先IPアドレスを確認する。ルー
先のインターフェイスであるポートD
172.16.10.0/24の宛先は「Connected」
第
からパケットが送出される。これで、 2
サーバBにパケットが到着することに 部
となっている。これは、ルータのポー
なる。
タB のルーティングテーブルでは、
ルーティングテーブルの管理
このようにパケットは、ルータに保
ークでは、ルーティングテーブルの情
存されたルーティングテーブルの情報
報をいかに正しく管理するかというこ
によって、その行き先が左右される。
とが重要になる。
万が一、ルーティングテーブルの情報
ルーティングテーブルの管理方法は
が間違っていれば、パケットが正しい
大きく2つある(図5-3)。スタティッ
宛先に転送されない。つまりネットワ
クルーティングとダイナミックルーテ
スタティックルーティング
ダイナミックルーティング
管理者が手動でルーティングテーブルの
情報を設定する方法
専用の「ルーティングプロトコル」を使って
ルーティングテーブルを自動的に設定
宛先
192.168.10.0/24
192.168.20.0/24
192.168.30.0/24
192.168……
中継先
ルータA
ルータB
ルータC
ルータ……
宛先
192.168.10.0/24
192.168.20.0/24
中継先
ルータA
ルータB
ルータBの情報を追加
2
ルーティングプロトコル
ルータA
1
2
ネットワークA
192.168.10.0/24
宛先を
設定しよう
1
ルータAの情報を追加
ネットワークB
192.168.20.0/24
宛先
192.168.10.0/24
192.168.20.0/24
ルータB
中継先
ルータA
ルータB
図5-3●ルーティングテーブルの設定方法は2種類
49
レ
イ
ヤ
3
ス
イ
ッ
チ
完
全
理
解
第5章
ルーティングの基礎
ィングだ。
上の企業内ネットワークなどで利用さ
スタティックルーティングとは、管
れているのがダイナミックルーティン
理者がルーティングテーブルを手作業
グである。ダイナミックルーティング
で設定するという方法だ。ルータのコ
とは、専用の「ルーティングプロトコ
マンドやWebブラウザベースのツール
ル」によって経路情報を収集し、ルー
(ベンダーによって異なる)を利用し
ティングテーブルを自動的に作成する
て、管理者が手動で経路情報を設定す
というものだ。
る。スタティックルーティングのメリ
ダイナミックルーティングのメリッ
ットは、後述するダイナミックルーテ
トは、先のスタティックルーティング
ィングのように、情報交換のためのル
ではカバーしきれないような大規模ネ
ータのCPU処理やトラフィックが発生
ットワークにも対応できる点だ。また、
しないという点にある。
ネットワーク構成に変化が起こって
一方、デメリットとしては、経路情
も、ルーティングプロトコルによって
報の数に比例して管理の手間が膨大に
ルーティングテーブルの情報を自動的
なることが挙げられる。管理者が手動
に変更できる。もちろん、障害が発生
で設定するためには、すべてのネット
した場合でも、迂回路があれば自動的
ワーク構成を把握しておかなければな
にそちらの経路が選択されるようにル
らない。よってスタティックルーティ
ーティングテーブルを更新可能だ。
ングは、一般にルータが2∼3台程度の
しかし、経路情報を自動的に交換す
小規模なネットワークで利用されるこ
るためのデータをやり取りするため
とが多い。また、間違った経路情報が
に、ネットワークやルータのCPUに負
設定されても管理者のミスがカバーさ
荷がかかるというデメリットもある。
れず、その情報にもとづいてルーティ
また、管理者が利用するルーティング
ングが行なわれてしまう。さらに経路
プロトコルの仕組みをよく理解してい
上で障害が発生しても、管理者が作業
ない場合、誤った経路情報が流されて
をしない限りルーティングテーブルが
他のネットワークに悪影響を与えてし
更新されないので、そのままでは通信
まう可能性もある。ダイナミックルー
が途絶えてしまう。
ティングについては、次章でさらに詳
こうしたスタティックルーティング
の問題を解消するため、一定の規模以
50
しく解説するので、そちらを参照して
ほしい。
ルーティングの基礎
第5章
RIP、OSPF、BGP4
第
6
章
ダイナミック
ルーティング
第
2
部
多くのルータが設置されている企業内ネットワークでは、管理者が手作業で経路情
報を管理するのは現実的な話ではない。つまり、こうした環境においてはルーテ
ィングテーブルを自動的に管理できるダイナミックルーティングを利用するのが一般
的だ。ここでは、ルーティングプロトコルを使って、ルータが経路情報を自動収集す
る流れを見ていこう。
経路選択の仕組み
前章で解説したとおり、ダイナミッ
メトリックとは、ルーティングを行
クルーティングは「ルーティングプロ
なう際の宛先ネットワークまでの「距
トコルを使って経路情報を収集し、複
離」を表わす値である。ルーティング
数の経路があった場合は最適な経路を
プロトコルは、情報の宛先までに複数
自動的に決める」というルータの機能
の経路がある場合に一定のアルゴリズ
である。
ムにもとづいて最適な経路を割り出
ダイナミックルーティングによりル
す。この際、どちらの経路が最適なの
ーティングテーブルが作成されるまで
かを判断するための指針として、メト
の仕組みを理解するには、もう1つ知
リックの値が参照される。「メトリッ
っておかなければいけない重要なこと
クの値が小さい(距離が短い)」経路
がある。それが、前章のリスト5-1で
が、最適な経路として選択されるとい
ルーティングテーブルを参照した際に
うものである。そして、ルーティング
触れた「メトリック(Metric)
」と呼ば
プロトコルに応じて使われるメトリッ
れる項目である。
クも異なっている。
51
レ
イ
ヤ
3
ス
イ
ッ
チ
完
全
理
解