このページで解説している内容は、以下の 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アドレス
PC1192.168.1.1/240000.1111.1111
PC2192.168.1.2/240000.2222.2222
PC3192.168.1.3/240000.3333.3333
PC4192.168.1.4/240000.4444.4444
各PCのIPアドレスとMACアドレス
現在のネットワークの状況

まだ、通信がまったく行われていないため、各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アドレスを学習します。