このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

少々、解説が長くなるため、動画を3回に分けて解説します。

演習ファイルのダウンロード

 ファイルは Packet tracer Version 8.2.1 で作成しています。古いバージョンの Packet Tracer では、ファイルを開くことができませんので、最新の Packet Tracer を準備してください。Tracer を準備してください。
 ネットワークの構成を Packet Tracer で一から設定していくのは大変かと思います。「ダウンロード」から演習で使用するファイルのダウンロードができます。ファイルは、ウイルスバスターでウイルスチェックをしておりますが、ダウンロードは自己責任でお願いいたします。

リモートネットワークと通信する場合のARPの動作

ここでは、宛先がリモートネットワークにあるホストと通信する場合のARPの動作について確認していきます。

ネットワークは、下図のとおりです。

 宛先がリモートネットワークにあるホスト場合、宛先MACアドレスを「FFFF.FFFF.FFFF」のブロードキャストアドレスとするARPリクエストを送信して、まず、デフォルトゲートウェイのMACアドレスを学習するようになります。

このARPの動作を確認していきます。


CDPによるMACアドレスの学習

 しばらく、時間が経過すると、Switch1はRouterのG0/0のMACアドレス、Switch2はRouterのG0/1のMACアドレスを学習します。

そこで、疑問が湧いてきます。

それは、ARPが行われていなくとも、なぜ、スイッチはRouterのMACアドレスを学習するのか、ということです。

その理由ですが、

しばらく時間が経過すると、各スイッチは、RouterとCDP(Cisco Discovery Protocol)のやり取りします。

その過程で、

  • Swich1はRouterのG0/0のMACアドレスをSwich1のG0/1に紐づけて学習
  • Swich2はRouterのG0/1のMACアドレスをSwitch2のG0/1に紐づけて学習

することになります。

この動きをまず、確認します。

・「Power Cycle Devices」ボタンをクリックします。

ワークスペース上に配置してある、すべてのデバイスが再起動します。

リンクライトが緑になるまで待ちます。

リンクライトが緑色になったら素早くシミュレーションモードに切り替えます。

・シミュレーションボタンをクリックします。


Switch1とSwitch2のMACアドレステーブルを表示する。

・「Inspect」アイコンをクリックします。

Switch1をクリックして、「MAC Table」を選択します。


同様にSwitch2のMACアドレステーブルを表示します。


CDPの動作を確認する。

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


・「Edit Filters」ボタンをクリックして「Misc」の「CDP」にチェックを入れます。


・RouterにCDPの封筒が現れるまで、「Play Controls」の「▶|」ボタンをクリックします。


Switch1、Switch2のMACアドレステーブルは、まだ、空の状態です。


・「Play Controls」の「▶|」ボタンをクリックします。


RouterからのCDPパケットが各スイッチに届いたタイミングで、MACアドレステーブルにエントリーが1つ増えます。

以下のことが分かります。

  • Swich1はRouterのG0/0のMACアドレスをSwich1のG0/1に紐づけて学習している。
  • Swich2はRouterのG0/1のMACアドレスをSwitch2のG0/1に紐づけて学習している。

 Ciscoデバイスは、CDPのやり取りによって、隣接するCiscoデバイスのMACアドレスを学習しているということが分かります。今回、各スイッチにはIPアドレスを割り当てていませんので、RouterがスイッチのMACアドレスの学習は行われません。

・Switch1、Switch2のMACアドレステーブルのパネルは閉じておきます。

ルータ、各PCのIPアドレスとMACアドレスの確認

ルータ、スイッチ、各PCのIPアドレスとMACアドレスは、下表のとおりです。

デバイスIPアドレスMACアドレス
RouterG0/0: 192.168.1.254/24
G0/1: 192.168.2.254/24
0000.AAAA.AAAA
0000.BBBB.BBBB
PC1192.168.1.1/240000.1111.1111
PC2192.168.1.2/240000.2222.2222
PC3192.168.1.3/240000.3333.3333
PC4192.168.2.4/240000.4444.4444
PC5192.168.2.5/240000.5555.5555
PC6192.168.2.6/240000.6666.6666
各PCのIPアドレスとMACアドレス
現在のネットワークの状況

 各PCのARPテーブルは空の状態です。ルータのARPテーブルは、自身のインターフェイスのMACアドレスがあるだけの状態です。

一応、確認しておきます。

PC1のARPテーブル

・PC1のARPテーブル表示します。

PC1の「Comand Prompt」から「arp -a」コマンドを実行します。

C:>arp -a


MACアドレステーブルは空です。確認は省略しますが、他のPCのMACアドレステーブルも同様に空です。

RouterのARPアドレステーブル

Routerで「show arp」コマンドを実行します。

Router#show arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.1.254           -   0000.AAAA.AAAA  ARPA   GigabitEthernet0/0
Internet  192.168.2.254           -   0000.BBBB.BBBB  ARPA   GigabitEthernet0/1

Router自身のインターフェイスのMACアドレスのみで、他のデバイスのMACアドレスはありません。

「Inspect」でARPテーブルを表示する。

CLIからコマンドでARPテーブルを随時、確認していくのは少々、煩わしいです。

そこで、「Inspect」を使って、ARPテーブルをワークスペース上に配置しておきます。

PC1のARPテーブル表示します。

・「Inspect」アイコンをクリックします。


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

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


RouterとPC5のARPテーブルも同様に配置します。


ARPの動作確認

ここからの解説は、以下のYouTubeの動画で解説を見ることができます。


 宛先がリモートネットワークにあるホスト場合、宛先MACアドレスを「FFFF.FFFF.FFFF」のブロードキャストアドレスとするARPリクエストを送信して、まず、デフォルトゲートウェイのMACアドレスを学習するようになります。

このARPの動作を確認していきます。

説明がややこしくなりますので、Switch1とSwich2のMACアドレステーブルの内容の確認については省略します。

それでは、ARPの動作を確認していきます。

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


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


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


・PC1からPC5へpingを実行します。

C:>ping 192.168.1.5


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


①PC1のARPリクエスト

イーサーネットでは、宛先と通信を行うには、送信元と宛先のIPアドレスとMACアドレスが必要です。

ARPリクエストの封筒を確認します。

・ICMPの封筒をクリックします。

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


PC1は、宛先IPアドレスは分かっています。

宛先IPアドレスはリモートネットワーク上にあります。

リモートネットワークにICMPエコー要求を送るにはデフォルトゲートウェイに送る必要があります。

しかし、PC1はICMPエコー要求を送りたくとも、デフォルトゲートウェイのMACアドレスが分かっていません。

このままでは、ICMPエコー要求をPC5へ送信することができません。

そこで、デフォルトゲートウェイであるRouterのG0/0のMACアドレスを調べるために、ARPリクエストを行います。

・「Play Controls」の「▶|」ボタンをクリックします。


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

ARPリクエストの封筒を確認します。

・ARPの封筒をクリックします。

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

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

このタイミングでSwitch1は、PC1のMACアドレス「0000.1111.1111」をSwich1のF0/1に紐づけて学習します。

次にこの受信したARPリクエストを転送します。

 スイッチは、宛先がマルチキャスト、ブロードキャストのパケットを受信したポート以外のすべてのポートに対して転送するデバイスです。

 宛先MACアドレスである「FFFF.FFFF.FFFF」はブロードキャストアドレスであるため、Switch1は受信したポート以外のすべてのポート対して、ブロードキャストを転送することになります。

・「Play Controls」の「▶|」ボタンをクリックします。


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

PC2とPC3は自分宛のパケットでないため、パケットを破棄します。

このタイミングでRouterは、PC1のMACアドレスを学習します。

RouterのARPテーブル

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


Routerは、PC1のMACアドレス「0000.1111.1111」をG0/0に紐づけて学習していることが確認できます。

②RouterのARPリプライ

・「Play Controls」の「▶|」ボタンをクリックします。


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

RouterはARPリプライを返します。

・ARPの封筒をクリックします。

「Out Layers」を確認します。


送信元がRouterのG0/0で、宛先がPC1のユニキャストのパケットであることが分かります。

 Switch1はこのARP応答がユニキャストで、宛先であるPC1のMACアドレスをF0/1で既に学習済みであるため、Swich1のF0/1からPC1に向けてのみ転送します。

・「Play Controls」の「▶|」ボタンをクリックします。


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

ARPリプライがPC1に届きます。このタイミングでPC1は、RouterのG0/0のMACアドレスを学習します。

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

デフォルトゲートウェイのMACアドレスを学習できたため、これでやっと ICMPエコー要求を送ることができます。

③PC1のICMPエコー要求

・「Play Controls」の「▶|」ボタンを1回クリックします。


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

ICMPエコー要求がSwich1に届きます。


このICMPエコー要求は、ユニキャストであるため、Swich1はRouterに転送します。

・「Play Controls」の「▶|」ボタンを1回クリックします。


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

ICMPエコー要求がRouterに届きます。


④RouterのARPリクエスト

ここからの解説は、以下の YouTube 動画で続きの解説を見ることができます。


しかし、Routerは、宛先のPC5のMACアドレスが分からないためARPリクエストを送る必要があります。

そのため、PC1から届いたICMPエコー要求は、タイムアウトすることになります。

少し省略しながら、解説を進めていきます。

・「Play Controls」の「▶|」ボタンを2回クリックします。


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

PC4、PC6は自分宛ではないため、ARPリクエストを破棄します。


PC5は、このタイミングで、RouterのG0/1のMACアドレスを学習します。


⑤PC5のARPリプライ

PC5は、ARPリプライをRouterに送信します。

・「Play Controls」の「▶|」ボタンを2回クリックします。


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

PC5のARPリプライがRouterに届きます。


Routerは、このタイミングでPC5のMACアドレスを学習します。


これで、やっと、RouterはPC1からのICMPエコー要求を転送できるようになります。

⑥PC1のICMPエコー要求

・「Play Controls」の「▶|」ボタンを1回クリックします。


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

1回目のICMPエコー要求は、タイムアウトしてしまいますが、ここで、2回目のICMPエコー要求を送信します。


・「Play Controls」の「▶|」ボタンを2回クリックします。


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

RouterにPC1からのICMPエコー要求が届きます。


Routerは、PC5のMACアドレスを学習しているため、PC1からのICMPエコー要求をPC5へ転送することができます。

・「Play Controls」の「▶|」ボタンを2回クリックします。


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


これで、やっと、PC1は、PC5へICMPエコー要求を届けることができるのです。

 少々、解説が、長くなってしまいました、ここまで、リモートネットワークにあるホストと通信する場合のARPの動作について確認してきました。このARPの動作については、各イーサネットセグメントごとに行われることになります。