初心者向けARP解説:仕組みをCiscoルータでわかりやすく解説

LAN内で2台のコンピュータが通信する場合、IPパケットは送信元と宛先のMACアドレスを持つイーサネットフレームにカプセル化されます。

しかし、送信側のデバイスはどのようにして宛先のMACアドレスを知るのでしょうか? そこで重要なのが、ARP (Address Resolution Protocol)です。

本記事では、ARPの基本的な仕組みをCiscoルータを使って詳しく説明します。。

 以下の記事を先に読んでいただくことをお勧めします。

スポンサーリンク

IPアドレスとMACアドレスの関係

IPアドレスはネットワーク上で通信を行うための論理アドレスであり、OSI参照モデルの第3層(ネットワーク層)で使用されます。一方、MACアドレスはデバイスに固有の物理アドレスで、OSI参照モデルの第2層(データリンク層)で使用されます。両者の違いや役割については、事前に理解しておくとARPの仕組みがよりわかりやすくなります。

スポンサーリンク

R1とR2のARPテーブルの確認

まず、R1とR2のARPテーブルの内容を見てみましょう。

R1# show ip arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.12.1            -   0000.0000.1111  ARPA   FastEthernet0/0.12

R2# show ip arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.12.2            -   0000.0000.2222  ARPA   FastEthernet0/0.12

ここでは、R1はIPアドレス192.168.12.1とMACアドレス0000.0000.1111を、R2は192.168.12.2と0000.0000.2222を持っています。

スポンサーリンク

R1からR2へのPing送信

では、R1(192.168.12.1)からR2(192.168.12.2)にPingを送信してみます。

R1# ping 192.168.12.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/22/40 ms

Pingの結果から、5回のリクエストのうち最初の1回が失敗し、残りの4回は成功しています。この現象はARPが関係しています。

このIPパケットの送信元IPアドレスは192.168.12.1で、宛先IPアドレスは192.168.12.2です。このIPパケットに送信元MACアドレスと宛先MACアドレスを含む イーサネットフレームへカプセル化して送信されます。

 R1のARPテーブルを確認します。

R1# show ip arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.12.1            -   0000.0000.1111  ARPA   FastEthernet0/0.12
Internet  192.168.12.2            0   0000.0000.2222  ARPA   FastEthernet0/0.12

192.168.12.2  のMACアドレスが0000.0000.2222と学習しています。

そして、送信元MACアドレス0000.0000.1111と宛先MACアドレス0000.0000.2222 イーサネットフレームにカプセル化して送信されます。 では、R1はR2のMACアドレスをどのようにして知るのでしょうか。ここで、ARP(Address Resolution Protocol アドレス解決プロトコル)が使用されます。

ARPリクエスト

 R1はR2のMACアドレスが何であるかはわからないので、R1はARPリクエストを送信します。

 ARPリクエストの中身は「192.168.12.2を持っているのは誰で、MACアドレスは何ですか?」とブロードキャストMACアドレス宛(ff:ff:ff:ff:ff:ff)に送信します。ブロードキャストMACアドレス宛に送信されるため、スイッチはこのフレームをフラッディングします。

ARPリプライ

R2はARPリクエストを受信し、「私が192.168.12.2のIPアドレスを持っています」と応答します。このARPリプライは、R1のMACアドレス宛に送信され、R2のMACアドレス (0000.0000.2222) がデータ部分に含まれています。

初回のPingリクエストが失敗する理由

R1からR2への最初のPingリクエストが失敗するのは、R1がまだR2のMACアドレスを学習していないからです。ARPリクエストとリプライが完了するまでに時間がかかるため、最初のPingがタイムアウトすることがあります。これがPingの結果における最初の失敗の原因です。

R1# ping 192.168.12.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/22/40 ms

 5回のリクエストのうち、最初のリクエストの応答がありません。

パケットキャプチャを見ると、次のような順序で通信が行われていることがわかります。

  • R1がARPリクエストを送信
  • R2がARPリプライを返送
  • ARPテーブルが更新され、R1がR2のMACアドレスを学習
  • その後のPingリクエストが正常に送信され、応答が得られる
スポンサーリンク

まとめ

ARPは、IPアドレスからMACアドレスを解決するための重要なプロトコルです。ARPの動作をCiscoルータで観察することで、ネットワーク内でのアドレス解決の仕組みをより深く理解できます。

コメント