このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
演習ファイルのダウンロード
ファイルは Packet tracer Version 8.2.1 で作成しています。古いバージョンの Packet Tracer では、ファイルを開くことができませんので、最新の Packet Tracer を準備してください。Tracer を準備してください。
ネットワークの構成を Packet Tracer で一から設定していくのは大変かと思います。「ダウンロード」から演習で使用するファイルのダウンロードができます。ファイルは、ウイルスバスターでウイルスチェックをしておりますが、ダウンロードは自己責任でお願いいたします。
ARPの動作
ここでは、宛先が同じネットワーク内の場合のARPの動作について確認していきます。
ネットワークは、下図のとおりです。

ARPとは
ARP(Address Resolution Protocol)は、コンピューターネットワークで使用されるプロトコルの一種です。ARPは、IPアドレスと物理的なネットワークアドレス(MACアドレス)を関連付けるために使用されます。
ネットワーク上のデバイスは、通信する際にIPアドレスを使用しますが、実際のデータ転送はMACアドレスを介して行われます。ARPは、特定のIPアドレスに対応するMACアドレスを解決するために使用されます。
例えば、コンピュータAがコンピュータBにデータを送信する場合、コンピュータAはBのIPアドレスを知っているが、実際の通信にはMACアドレスが必要です。このとき、コンピュータAはARPを使用して、ネットワーク上でコンピュータBのIPアドレスに対応するMACアドレスを問い合わせます。ARPリクエストがネットワーク内にブロードキャストされ、そのIPアドレスに対応するデバイスが自身のMACアドレスを返答することで、ARPは解決されます。
ARPテーブルと呼ばれる情報を各デバイスは保持しており、これはIPアドレスとMACアドレスの対応関係を保持します。通常、ARPテーブルは自動的に更新されますが、一部のネットワーク機器では手動で設定することもできます。
ARPはローカルネットワーク内で動作し、異なるネットワーク間で通信する際には他のプロトコル(例えば、ルーティングプロトコル)が関与します。ARPはネットワークの基本的な通信を支える重要なプロトコルです。
各PCのIPアドレスとMACアドレス
各PCのIPアドレスとMACアドレスは、下表のとおりです。
| デバイス | IPアドレス | MACアドレス |
| PC1 | 192.168.1.1/24 | 0000.1111.1111 |
| PC2 | 192.168.1.2/24 | 0000.2222.2222 |
| PC3 | 192.168.1.3/24 | 0000.3333.3333 |
| PC4 | 192.168.1.4/24 | 0000.4444.4444 |
現在のネットワークの状況
まだ、通信がまったく行われていないため、各PCのARPテーブルとスイッチのMACアドレステーブルは空の状態です。
一応、確認しておきます。
PC1のARPテーブル
・PC1のARPテーブル表示します。
PC1の「Comand Prompt」から「arp -a」コマンドを実行します。
C:>arp -a

MACアドレステーブルは空です。確認は省略しますが、他のPCのMACアドレステーブルも同様に空です。
スイッチのMACアドレステーブル
スイッチのMACアドレステーブルを確認します。
Switchで「show mac-address-table」コマンドを実行します。
●「show mac-address-table」 の出力
Switch#show mac-address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
MACアドレステーブルは空です。
ARPの動作確認
宛先が同じネットワーク内にある場合、宛先MACアドレスを「FFFF.FFFF.FFFF」のブロードキャストアドレスとするARPリクエストを送信して、宛先MACアドレスを学習するようになります。
このARPの動作を確認していきます。
シミュレーションモードに切り替えます。
・シミュレーションボタンをクリックします。

・「Show All/None」をクリックして、監視するプロトコルのチェックを、すべて外します。

・「Edit Filters」ボタンをクリックします。

「ARP」と「ICMP」にチェックを入れます。

・PC1からPC3へpingを実行します。
C:>ping 192.168.1.3

ICMPとARPの封筒が現れます。

①ARPリクエスト
イーサーネットでは、宛先と通信を行うには、送信元と宛先のIPアドレスとMACアドレスが必要です。
ARPリクエストの封筒を確認します。
・ICMPの封筒をクリックします。
・「Out Layers」を確認します。

PC1は、宛先IPアドレスは分かっています。
PC1はICMPエコー要求を送りたいところですが、PC3のMACアドレスが分かっていないのです。
このままでは、ICMPエコー要求をPC3へ送信することができません。
そこで、PC3のMACアドレスを調べるために、ARP要求を行います。
・「Play Controls」の「▶|」ボタンをクリックします。

時間が1ステップ進みます。
ARPリクエストの封筒を確認します。
・ARPの封筒をクリックします。

・「Out Layers」を確認します。
送信元MACアドレスが、PC1のMACアドレスである「0000.1111.1111」。
宛先MACアドレスが、ブロードキャストアドレスである「FFFF.FFFF.FFFF」となっています。

スイッチは、宛先がマルチキャスト、ブロードキャストのパケットを受信したポート以外のすべてのポートに対して転送するデバイスです。
宛先MACアドレスである「FFFF.FFFF.FFFF」はブロードキャストアドレスであるため、スイッチは受信したポート以外のすべてのポート対して、ブロードキャストを転送することになります。
SwitchのMACアドレステーブルを確認します。
このタイミングでSwitchは、PC1のMACアドレスを受信ポートのF0/1と紐づけて学習します。
Switchで「show mac-address-table」コマンドを実行します。
●「show mac-address-table」 の出力
Switch#show mac-address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0000.1111.1111 DYNAMIC Fa0/1
・「Play Controls」の「▶|」ボタンをクリックします。

時間が1ステップ進みます。
PC2とPC4は自分宛のパケットでないため、パケットを破棄します。

このタイミングでPC3は、PC1のMACアドレスを学習します。
PC3のARPテーブル
・PC3のARPテーブル表示します。
PC3の「Comand Prompt」から「arp -a」コマンドを実行します。
C:>arp -a

PC3は、PC1のMACアドレスを学習していることが確認できます。
②ARPリプライ
ARPリプライの封筒を確認します。
・ARPの封筒をクリックします。

・「Out Layers」を確認します。

送信元MACアドレスが、PC3のMACアドレス「0000.3333.3333」、送信元IPアドレスが、PC3のIPアドレス「192.168.1.3」となっています。
また、宛先MACアドレスが、PC1のMACアドレス「0000.1111.1111」、宛先IPアドレスがPC1のIPアドレス「192.168.1.1」となっています。
・「Play Controls」の「▶|」ボタンをクリックします。

時間が1ステップ進みます。

SwitchのMACアドレステーブルを確認します。
このタイミングでSwitchは、PC3のMACアドレスを受信ポートのF0/3と紐づけて学習します。
Switchで「show mac-address-table」コマンドを実行します。
●「show mac-address-table」 の出力
Switch#show mac-address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0000.1111.1111 DYNAMIC Fa0/1
1 0000.3333.3333 DYNAMIC Fa0/3
ARP応答はユニキャストで、宛先MACアドレスはPC1のMACアドレス「0000.1111.1111」です。
このMACアドレスは「0000.1111.1111」F0/1と紐づいています。Switchは、今度は、受信したポート以外のすべてのポートに転送せず、PC1の繋がっているF0/1からパケットを送信します
・「Play Controls」の「▶|」ボタンをクリックします。

PC1へARPリプライが届きます。

PC1のMACARPテーブルを確認します。
PC1のARPテーブル表示します。
・「Inspect」アイコンをクリックします。

PC1をクリックして「ARP Table」を選択します。

ARPテーブルが表示されます。

PC3のMACアドレス「0000.3333.3333」をPC1が学習していることが確認できます。
ICMPエコー要求の封筒を確認します。
・ICMPエコー要求の封筒をクリックします。

・「Outbound PDU Details」をクリックします。
PC1のICMPエコー要求パケットは、宛先MACアドレスが判明したため、これでやっと、送信できるようになります。

宛先MACアドレスにPC3のMACアドレス「0000.3333.3333」がセットされています。
また、ICMPのメッセージタイプが8であることから、このパケットがICMPエコー要求であることが分かります。
・「Play Controls」の「▶|」ボタンをクリックします。

ICMPエコー要求がPC3へ向かっていることが確認できます。

このICMPエコー要求は、ユニキャストであるため、SwitchでF0/3から送信されることになります。
ここまで、ARPの動作を確認してきました。宛先が同じネットワーク内にある場合、ブロードキャストであるARPリクエストを送信して、ARPリプライを受け取ることで宛先MACアドレスを学習します。
