ARP要求・ARP応答(その1)

ここでは、ARP要求・ARP応答の動作について解説していきます。

下図を見て下さい。コンピュータAからコンピュータEへ通信する場合の動作について解説します。

コンピュータA、コンピュータEのIPアドレスは次のようになっています。

  • コンピュータAのIPアドレス・・・192.168.1.1/24
  • コンピュータEのIPアドレス・・・192.168.1.5/24

コンピュータAは、コンピュータEと同じネットワークに所属するかどうかを調べます。

 コンピュータAが所属するネットワークは、自分のIPアドレスと自分に設定されたサブネットマスクから論理積を求めることで知ることができます。

    192.168.  1.  1 ←コンピュータAのIPアドレス
AND 255.255.255.  0 ←コンピュータAに設定されたサブネットマスク
--------------------
    192.168.  1.  0

 コンピュータEが所属するネットワークは、コンピュータEのIPアドレスと自分に設定されたサブネットマスクから論理積を求めることで知ることができます。

    192.168.  1.  5 ←コンピュータEのIPアドレス
AND 255.255.255.  0 ←コンピュータAに設定されたサブネットマスク
--------------------
    192.168.  1.  0

すると、コンピュータA、コンピュータEが共に「192.168.1.0」に所属することが分かります。

次にコンピュータAは、自分のARPテーブルを調べます。

ARPテーブルとは、宛先IPアドレスとMACアドレスとの対応表です。

各コンピュータは、下のようなARPテーブルを持っています。

※この例は、コンピュータAが構築するARPテーブル

IPアドレスMACアドレス
192.168.1.200:17:42:5B:33:02
192.168.1.300:17:42:5B:33:03
192.168.1.400:17:42:5B:33:04
192.168.1.500:17:42:5B:33:05

上のようなARPテーブルは、宛先の端末と通信する度に、学習して構築し更新していきます。

 既に、宛先IPアドレス「192.168.1.5」のMACアドレスを学習していれば、コンピュータAは、ARPテーブルにあるMACアドレス「00:17:42:5B:33:05」を使用して、パケットをコンピュータE宛に送信します。

 ここでは、まだコンピュータEのMACアドレスを学習していなかったとして、話を続けていきます。

 コンピュータEのMACアドレスを自分のARPテーブルの中に見つけることができない場合、コンピュータEのMACアドレスを調べるためにブロードキャストを送信します。

そのブロードキャストがARP要求なのです。

 自分のARPテーブル内に宛先IPアドレスに対応するMACアドレスを見つけられない場合、コンピュータEのMACアドレスを調べるために、ARP要求を行います。

 コンピュータAは、宛先MACアドレスを「FF:FF:FF:FF:FF:FF」、目標IPアドレスを「192.168.1.5」としたブロードキャストをネットワーク内に流します。

 ネットワーク層のIPアドレスのブロードキャストアドレスは、「255.255.255.255」などがありますが、データリンク層のMACアドレスのブロードキャストアドレスには、「FF:FF:FF:FF:FF:FF」を使用します。

「FF:FF:FF:FF:FF:FF」は、データリンク層における全ての端末宛という意味になります。

コンピュータAは、下のようなARP要求パケットをネットワーク内に流します。

宛先MACアドレス   ・・・ FF:FF:FF:FF:FF:FF ←ブロードキャストアドレス
送信元MACアドレス  ・・・ 00:17:42:5B:33:01 ←コンピュータAのMACアドレス
目標IPアドレス    ・・・ 192.168.1.5

実際のARP要求パケットの中身は、こちら「ARP要求・ARP応答の中身」を参考にして下さい。

 そうすると、「192.168.1.0」ネットワーク内の全ての端末がこのARP要求(ブロードキャスト)を受け取ることになります。

ルータでは

 ルータは、特にブロードキャストのリレーをする設定を行っていなければ、デフォルトでブロードキャストアドレスをブロックします。

その結果、「192.168.2.0」ネットワークへは、このARP要求は流れないことになります。

そうすることで、不要なパケットを他のネットワークへ流出しないようにしています。

コンピュータB~コンピュータDでは

 このブロードキャストは、コンピュータB、コンピュータC、コンピュータDにとって、データリンク層レベルでは、自分宛なのでネットワーク層に渡しますが、ネットワーク層レベルで自分宛でないことが分かるので破棄します。

コンピュータEでは

 コンピュータEでは、このARP要求は、データリンク層レベルで自分宛なので上位層であるネットワーク層に渡します。そして、自分宛であることが分かるので、返事する用意を始めます。この返事のことをARP応答と言います。

続きは、次の「ARP要求・ARP応答(その2)」で解説します。

関連コンテンツ