ARPとは「
ARPとRARP/MACアドレス」で述べたように、IPアドレスからMACアドレスを導き出すために使われるプロトコルのことです。ARPは通信効率を高めるためにコンピュータが一度取得したMACアドレスはARPキャッシュテーブルと呼ばれるイーサネット通信のために用いられるIPアドレスとMACアドレスの対照表に特殊なメモリ領域として格納されるようになっています。通常、ARPキャッシュの格納時間は最大20分間と規定されており、Windows系OSにおいては実質2分程度で、システムの実装によって多少の差異があります。ARPキャッシュテーブルは多くの場合、OSが管理しているため、クライアントが実際に設定することはありませんが、OSの設定ミスやその他の理由で正常にイーサネット通信が行えないことがあります。その際には、arpコマンドを使うことによって、ARPテーブルの設定に問題がないかを確認することができるようになっています。また、手動によってARPの登録や削除といった管理を行うことができるようになっています。それでは、実際にコマンドプロンプトを起動して以下のように入力してください。
|
arp -a |
|
C:\>arp
-a
Interface: 192.168.0.2 on Interface 0x1000002
Internet Address Physical Address Type
192.168.0.1 00-10-38-0c-2a-95dynamic
192.168.0.3 00-80-4c-55-21-2d dynamic
192.168.0.4 00-90-cc-08-21-6b dynamic |
コマンドを実行しても、「No ARP Entries Found」としか表示されなかった場合は、隣接するコンピュータ、もしくはルータなどに「
Pingコマンド」を実行してから再度、「ARPコマンド」を入力してください。上記の例では「192.168.0.2」のコンピュータが「ARPコマンド」を実行し、「192.168.0.1」と「192.168.0.3」「192.168.0.4」のIPアドレスとMACアドレスの対応表が導きだされました。
なお、Windowsでは、「Type」には「dynamic」と「static」の2種類があります。「static」については以下に詳しく後述します。
Type |
説明 |
dynamic
|
通常のキャッシュ・エントリーを表しています。このエントリーが一定期間、再利用されない場合は、テーブルから自動削除されるようになっています。
|
static
|
キャッシュとは異なり、一定期間再利用されなくても削除されることのない永続的エントリーを表しています。キャッシュ・エントリーは、OSがARPによって取得して格納したエントリーですが、staticはユーザーが明示的に「arp
-s」コマンド(ARPの追加)を実行して追加したエントリーに限られます。
|
|
■スタティック登録
ARPは通常はほとんど意識する必要のないプロトコルですが、OSの設定ミスやその他もろもろのミスがないかどうかを確認する際には非常にその効果を発揮します。例えば、TCP/IPを固定設定(静的に対応付け)する場合に、間違えてLAN内にある特定のコンピュータと重複するIPアアドレスを指定してしまった場合、以下の図のように「今構成された静的IPアドレスは、既にネットワーク上で使われています。別のIPアドレスに構成し直してください」といったダイアログボックスが表示されます。
このダイアログボックスが出た場合、LAN内にあるコンピュータの台数が少なければ比較的、容易に問題を解決することができますが、数十台、数百台レベルのコンピュータが存在する場合には、この画面で表示された情報だけでは手がかりが少なすぎて捜索が難航してしまいます。また、このままIPアドレスが重複したまま使用していると同じIPアドレスを持つ2台のコンピュータの内、どちらかのコンピュータが接続を確立することができなくなるという事態が発生します。このような場合、通常はその重複したIPアドレスを持つコンピュータを探し出すか、もしくはそのコンピュータのIPアドレスを暫定的に変更するといった対策をとることもあります。
◎IPアドレスの重複によるトラブル例
しかし、このようなトラブルが発生した場合に、arpコマンドを使って回避することができるようになります。例えば、上記の図の例ではサーバーがコンピュータAと通信を取りたいが、コンピュータAとBとでIPアドレスが重複してしまい、意図せずしてコンピュータBと通信を確立することになってしまったケースです。このような場合はARPコマンドを使ってコンピュータBに関するARPキャッシュの情報を削除し、コンピュータAについてのARPキャッシュ(MACアドレス情報)を正しく登録しなおせばよいことになります。以下にはこの際に使用するコマンド事例を紹介します。
①MACアドレスの取得
実際にコンピュータBのARPキャッシュの削除ををする前に、「
IPCONFIGコマンド」コマンドを使用してコンピュータAのMACアドレスの情報を取得しておく必要があります。このとき、仮に取得したMACアドレスを「11-22-33-aa-bb-cc」とします。そのあとで、サーバー上で「arp
-a」コマンドを使って、コンピュータBのMACアドレス情報を確認します。
②ARPテーブルの削除
次に、サーバー上でARPコマンド(arp -d 192.168.0.2)を実行して、現在、誤って登録されているコンピュータBのARPキャッシュを削除します。その際には以下のコマンドを入力します。そのあとで、コンピュータBに関するARPキャッシュが正常に削除されたかどうかを確認するために「arp
-a」を実行します。
|
arp -d [目的のIPアドレス] |
|
③ARPの追加(スタティック登録)
サーバー上で、ARPコマンド(arp -s 192.168.0.2 11-22-33-aa-bb-cc)を実行して、ARPエントリとして正しいIPアドレスとMACアドレスの対応付け情報を手動で登録(スタティック登録)します。その際には以下のコマンドを入力します。
|
arp -s [目的のIPアドレス]
[MACアドレス] |
|
C:\>arp
-s 192.168.0.2 11-22-33-aa-bb-cc |
④確認作業
そのあとでコンピュータAに関するARPキャッシュが正しく登録されたかどうかを確認するために「arp -a」を実行します。コンピュータAはIPアドレスが「192.168.0.2」、MACアドレスが「11-22-33-aa-bb-cc」でスタティック登録されたことが確認できます。
C:\>arp
-a
Interface: 192.168.0.1 on Interface 0x1000002
Internet Address Physical Address Type
192.168.0.2 11-22-33-aa-bb-cc static
192.168.0.3 00-10-38-0c-2a-95 dynamic |
以上のようにARPコマンドの基本的な使用方法ついてざっと解説しましたが、これらのことは実際に自分のコンピュータで実践した方がわかりやすいと思いますので是非、一度試してみてください。なお、スタティック登録されたものは、他のARPエントリ(Typeが「dynamic」の場合)のように一定時間が経過したら自動的に削除されというものではなく、コンピュータの電源を切るまでは永続的にシステムに保持される仕様になっています。そのため、スタティック登録をしておけば、万が一IPアドレスが重複してしまった場合でも特定のコンピュータと暫定的に通信を確立することができるようになるのです。ARPコマンドにはその他にも多彩なオプションコマンドが付属していますので興味がある方は各自で勉強してみると良いでしょう。