第24回:離れたネットワークにデータを届ける【ルーティング・TTL・ヘッダチェックサム・ネクストホップ】

<<第23回:電波は使い回している【実効速度・スループット・チャネル・衝突(コリジョン)・CSMA/CA・WPA2】

この記事のポイント

  • ルータはデータの宛先がどのネットワークに接続されているかを判断して、次のデータへ転送する
  • ルータが転送するデータはIPパケット

離れたネットワークにデータを届ける

ルーティングとは

異なるネットワークヘデータを運ぶには?

イーサネットや無線LANなどでは、同じネットワーク内の転送ができますが、異なるネットワーク宛てのデータは、ネットワークを相互接続しているルータで転送します。

ルータは、データの宛先がどのネットワークに接続されているかを判断して、つながっているネットワークのルータへと転送しますルーティング)。このルーティングをどんどん繰り返すことで、データの送信元から宛先まで、たとえ遠く離れたネットワークであっても送り届けられるのです。

ルーティングの概要

ルーティングの概要

運ぶデータはIPパケット

ルータが転送する対象のデータはIPパケットです。IPパケットはTCP/IPの階層ではインターネット層に位置します。ルーティングの動作はインターネット層の階層で行うことになります。

ルータがIPパケットを転送するときには、IPヘッダ内の宛先IPアドレスをチェックします。IPヘッダのTTLヘッダチェックサムのみ変更されますが、それ以外の部分は変更せずに転送していきます。(※1)

しかし、イーサネットヘッダなどのネットワークインタフェース層のプロトコルのヘッダは、ルータが転送するときにまったく新しいヘッダに付け替えられます。イーサネットヘッダなどのネットワークインタフェース層のヘッダは、つながっているネットワークにある別のルータまで送るためのものだからです。

ルータにとってのデータ

ルータにとってのデータ

(※1)NATのアドレス変換が行われるときはIPアドレスも変更されます。

ルータでネットワークにつなぐのに必要なアドレス設定


次の項目のポイント

  • ルータでネットワーク同士を相互接続する
  • ネットワークを接続するためには、ルータのインタフェースにIPアドレスを設定する

ネットワークの接続とは

IPアドレスを設定してネットワークをつなぐ

「ネットワークに接続するということはIPアドレスを設定する」ということです。ルータで複数のネットワークを接続するときも、IPアドレスの設定をすることになります。

ルータでネットワークを相互接続するには、ルータのインタフェースの物理的な配線に加えて、IPアドレスを設定する必要があります。一例をあげてみましょう。まずはルータのインタフェース1の物理的な配線を行ってそのインタフェースを有効にします。次にIPアドレス192.168.1.254/24を設定すると、ルータのインタフェース1は192.168.1.0/24 のネットワークに接続できます。ルータには複数のインタフェースが備わっているので、物理的な配線とIPアドレスの設定をそれぞれ行う必要があるのです。

ルータでのネットワークの相互接続の例

下の図のR1には3つのインタフェースがあります。インタフェース1の物理的な配線を行ってIPアドレス192.168.1.254/24を設定すると、ルータ1のインタフェース1はネットワーク1の192.168.1.0/24に接続します。同様にインタフェース2とインタフェース3にもIPアドレスを設定することで、R1はネットワーク1、ネットワーク2、ネットワーク3と相互接続します。

ルータでのネットワークの相互接続

ルータでのネットワークの相互接続

ネットワーク3にはR1だけではなくR2も接続されています。R2の3つのインタフェースにもR1と同様に物理的な配線をしてIPアドレスを設定することで、R2はネットワーク3、ネットワーク4、ネットワーク5を相互接続します。

こうして相互接続されたネットワーク間で、ルータはデータ(IPパケット)の転送を行うのです。

データの転送先を決める


次の項目のポイント

  • ルーティング対象のIPパケットは次のようなアドレスのパケット
  • 宛先レイヤ2アドレス:ルータ、宛先IPアドレス:ルータ以外
  • 宛先IPアドレスからルーティングテーブルのルート情報を検索する

データ転送先の決定

ルータのデータ転送の流れ

ルータのデータ(IPパケット)の転送の流れをイーサネットで接続しているシンプルなネットワーク構成で、詳細に見ていきます。

ルーティング対象のパケット受信、ルーティングテーブルの検索

ルーティング対象のパケット受信、ルーティングテーブルの検索

1. ルーティング対象のIPパケットを受信する

ルータがルーティングする対象のIPパケットは、次のようなアドレス情報のパケットです。

  • 宛先レイヤ2アドレス(MACアドレス):ルータ
  • 宛先IPアドレス:ルータのIPアドレス以外

ホスト1からホスト2宛てのIPパケットは、まず、R1へ転送されます。そのときのアドレス情報は、次のようになっています。

  • 宛先MACアドレス:R11 送信元MACアドレス:H1
  • 宛先IPアドレス:192.168.2.100 送信元IPアドレス:192.168.1.100
2. ルート情報を検索して、転送先を決定

次に、宛先IPアドレスからルーティングテーブル上のルート情報を検索して、転送先を決定します。R1は宛先IPアドレスに一致するルーティングテーブルのルート情報を検索します。宛先IPアドレス192.168.2.100に一致するルート情報は192.168.2.0/24です。そのため、転送先のネクストホップ(次に転送するルータ)は192.168.0.2、すなわちR2であることがわかります。

次項で、レイヤ2ヘッダを書き換えてIPパケットを転送していく流れを説明します。

次のルータへデータを転送する


次の項目のポイント

  • ネクストホップに転送するために新しいヘッダを付加する
  • イーサネットの場合は、ARPを自動的に行いネクストホップのMACアドレスを求める

次のルータへのデータ転送

レイヤ2ヘッダを書き換えてIPパケットを転送

前項まででルートの検索が終わり、ネクストホップへ実際にデータを転送します。

下の図のR1は、ルーティングテーブルのルート情報から受信したIPパケットを192.168.0.2(R2)へ転送します。R1とR2はイーサネットで接続しているというネットワーク構成です。R2に転送するために、イーサネットヘッダを付加します。そのためには、R2 のMACアドレスが必要です。

レイヤ2ヘッダを書き換えてR2へ転送

レイヤ2ヘッダを書き換えてR2へ転送

MACアドレスを求めるためにARPを行います。ARPはIPアドレスからMACアドレスを求めるプロトコルです。ルーティングテーブルの一致するルート情報のネクストホップからR2のIPアドレスは192.168.0.2です。R1は192.168.0.2のMACアドレスを求めるために自動的にARPを行います。

そして、ARPで宛先MACアドレスR21がわかれば、新しいイーサネットヘッダに書き換えてIPパケットをインタフェース2から転送します。レイヤ2ヘッダであるイーサネットヘッダはまったく新しくなります。また、FCSも新しく付加されます。

しかし、IPヘッダのIPアドレスはまったく変わりません。なお、IPアドレスは変わらないものの、IPヘッダのTTLを-1して、それにともなってヘッダチェックサムの再計算を行います。

R1から転送されたデータはR2へと届き、続いてR2 でのルーティングの処理を行うことになります。

もし、ルータでNATによるIPアドレスの変換を行うときにはIPアドレスが書き換えられます。単純なルーティングを行うときには、IPアドレスは変わりません。

>>第25回:最終的な宛先を確かめる【ルーティングテーブル・ルート情報・経路情報・ネットワークアドレス/サブネットマスク・ネクストホップアドレス】

TOP