ARPとは
通信を行うためには、MACアドレスとIPアドレスの双方が必須です。MACアドレスはベンダーが機器を製造した時点で付けられるものであるのに対して、IPアドレスは機器購入後に割り当てるものです。要するに、MACアドレスとIPアドレスの間には絶対的な相関関係はないということです。 したがって、実際の通信を行う前にこの2つのアドレスを紐づける必要があります。そこで行われるやりとりが「ARP」です。 そのARPの動作を、ここで確認しておきましょう。
基本的なARPの動作
ARPではARPリクエストとARPリプライという2種類のパケットのやりとりが行われています。ARPリクエストはブロードキャスト、ARPリプライはユニキャストで行われます。この一連の動作によりIPアドレスからMACアドレスを解決しています。
(i)同一ネットワーク上に宛先がある場合
同一ネットワーク上に宛先がある場合、ブロードキャスト通信であるARPリクエストは、通信を行いたい端末に到達することが可能です。ARPリクエストを受け取った端末は、送信元端末にARPリプライをユニキャスト通信で返します。
(ii)異なるネットワーク上に宛先がある場合
異なるネットワーク上に宛先がある場合、ブロードキャストドメインが分割されていますので、ARPリクエストは宛先まで到達することができません。そこで、デフォルトゲートウェイとなるルータのインターフェースに通信を行うことになります。
ARPリクエストのブロードキャスト通信を受け取ったルータは、自身のインターフェースに割り当てられているMACアドレスをARPリプライとして返答します。
デフォルトゲートウェイと通信が可能になった端末Aは、実際に送りたい通信をデフォルトゲートウェイへ送信します。
端末Aからの通信を受け取ったルータは、自身の持っているルーティングテーブルを参照します。宛先である端末BのMACアドレスが分からないため、今度はルータが宛先ネットワークへとARPリクエストをブロードキャストします。
ARPリクエストを受け取った端末Bは、ARPリプライをルータに返します。
ルータはARPテーブルを所持していて、自身が受け取ったパケット情報を元にIPアドレスとMACアドレスの対応をエントリーとして保持します。
このようにして、端末同士は相手のMACアドレスを知らずとも各機器がルータとの通信を確立することで通信が可能となります。
それでは、これを踏まえて次の問題を考えてみましょう。