ここまで,ARPの役割と動作を見てきた。最後のLesson4では,実際のネットワークにおいて,ARPがどのように使われているのかを見ていこう。

ルーターを越える場合どうなる?

 IPアドレス192.168.1.1のパソコンが,ルーターを越えた先にある192.168.2.100のマシンと通信するケースを例にしよう(図4)。

図4●あて先マシンがルーターより先にあるとき
図4●あて先マシンがルーターより先にあるとき
ルーターを経由してデータを送るので,ARPでルーターのMACアドレスを調べる。ルーターはデータを受け取ると,ARPを使ってあて先マシンのMACアドレスを調べ,そこあてにデータを送る。  [画像のクリックで拡大表示]

 あて先までの経路を考えるのはIPの役割だ。そこでまずパソコン内のIPが,1 9 2.1 6 8.2.1 0 0のマシンがARPの届く範囲にいるかを調べる。ARPが届く範囲は,パソコンのIP設定を見ればわかる。ここでは,IPアドレスが192.168.1.1で,サブネット・マスクが255.255.255.0となっているので,ARPが届く範囲は192.168.1.1~255のアドレスだとわかる。つまり,あて先マシンにはARPは届かない。この場合は,ルーターに仲介役になってもらうことになる(同(1))。

 そこでパソコンは,ルーターにMACフレームを送ることを考える。ARPを使い,ルーターのMACアドレスを調べて結果をARPキャッシュに保存する。ルーターあてにARPを出すからにはルーターのIPアドレスがわかってないといけないが,この心配は無用。ルーターのIPアドレスは,IP設定の「デフォルト・ゲートウエイ」として設定されている。

 無事,データを経由させる先(ルーター)のMACアドレスがわかった。イーサネットは,ルーターのMACアドレスをあて先とするMACフレームを送り出す(同(2))。

ルーターの動作もパソコンと同じ

 MACフレームはルーターまで届いた。ここが中間地点だ。

 データを受け取ったルーターはまず,あて先マシンがARPの届く範囲にいるか調べる。ルーターは,ルーティング・テーブルと呼ばれる経路表を持っており,ARPの届く範囲を「サブネット」という単位で管理している。例えば, 「192.168.2.0~255の範囲がLANポートの2番につながっている」などといった情報である。この場合MACフレームは,今度はルーター経由ではなく,あて先のマシンに直接送ればいいとわかる(同(3))。

 そうとわかれば,ルーターは192.168.2.100のマシンにMACフレームを送り出したい。しかし,このマシンのMACアドレスがわからない。そこでルーターもARPを使う。ARPで192.168.2.100というIPアドレスを持ったマシンのMACアドレスを調べるわけである。あて先IPアドレスに対応したMACアドレスをARPで調べ,調べたMACアドレスあてにフレームを送る。ルーターもパソコンとまったく同じことを実行するわけだ。

 こうして最終的に,1 9 2.1 6 8.2.100のマシンにデータが届く(同(4))。なお,ルーターもARPキャッシュを持っており,調べた結果をARPキャッシュに保存しておく。

次回以降はキャッシュを利用

 以降のMACフレームの通信は,ARPキャッシュに情報が残っている間は,その情報を使って進められる(同(5))。Lesson3で学んだように,ARP要求はブロードキャストである。ブロードキャストがひんぱんに発生すると,ブロードキャスト・フレームだけでLANがいっぱいになってしまう。ARPキャッシュを使ってこうしたトラブルを防ぐわけだ。

 以上が,ルーター越えの通信の流れである。ARPの届く範囲を判断し,ARPを使ってMACアドレスを調べ,調べたあて先にMACフレームを送る――。この繰り返しでデータを目的地に届けているのだ。