ネットワーク通信の基礎である ARP(Address Resolution Protocol) は、 IPアドレスからMACアドレスを解決するための重要な仕組みです。 通信が届かない・疎通が取れないといったトラブルの多くは、このARPが関係していることがあります。 本記事では、ARPの動作原理と、トラブル時の確認・解決方法をわかりやすく解説します。
目次
1. ARPとは?
ARP(Address Resolution Protocol)は、IPアドレスから対応するMACアドレスを取得するプロトコルです。 LAN内では通信の最終的な宛先はMACアドレスで指定されるため、 IPパケットを送信する前に、宛先のMACアドレスを知る必要があります。
イメージ図
[PC1]192.168.1.10 ──> [PC2]192.168.1.20
1. PC1は「192.168.1.20」のMACアドレスを知らない
2. PC1がブロードキャストで「192.168.1.20は誰?」と問い合わせ(ARP要求)
3. PC2が「私です」と応答し、自身のMACアドレスを返す(ARP応答)
4. PC1はARPテーブルに情報をキャッシュして通信を開始
2. ARPの仕組み(通信の流れ)
- ARPリクエスト:送信元が「このIPアドレスを持っているのは誰?」とブロードキャスト送信
- ARPリプライ:該当する端末が「私のMACアドレスは○○です」とユニキャストで応答
- キャッシュ登録:送信元はARPテーブルに結果を一定期間保持
ARPパケットの例(Wireshark表示)
Frame 1: 60 bytes on wire (480 bits)
Ethernet II, Src: 00:11:22:33:44:55, Dst: ff:ff:ff:ff:ff:ff
Address Resolution Protocol (request)
Sender IP address: 192.168.1.10
Target IP address: 192.168.1.20
3. ARPテーブルの確認方法
Windowsの場合
arp -a
出力例:
Interface: 192.168.1.10 --- 0x6
Internet Address Physical Address Type
192.168.1.1 00-11-22-33-44-55 dynamic
192.168.1.20 aa-bb-cc-dd-ee-ff dynamic
Linuxの場合
ip neigh show
出力例:
192.168.1.1 dev eth0 lladdr 00:11:22:33:44:55 REACHABLE
192.168.1.20 dev eth0 lladdr aa:bb:cc:dd:ee:ff STALE
| 状態 | 意味 |
|---|---|
| REACHABLE | 正常に通信可能 |
| STALE | 一定時間通信なし(再確認が必要) |
| FAILED | 応答がない(ARP解決失敗) |
4. よくあるARPトラブルと原因
| 原因 | 現象 | 確認ポイント |
|---|---|---|
| ARPキャッシュの不整合 | 宛先IPに対するMACが誤って登録され通信できない | arp -a で異常なMACがないか確認 |
| ARP応答がブロックされている | ファイアウォール設定やVLAN誤設定で応答が届かない | 同一セグメントでpingやtcpdump確認 |
| スイッチのセキュリティ設定(Port Security) | MAC制限によりARP応答が破棄される | スイッチ側ログ確認・Port Security設定確認 |
| グラチュイタスARP未送信 | IP変更後も古いMACがキャッシュされ続ける | 再起動またはarp -dでキャッシュ削除 |
5. トラブル診断の手順(具体例)
ステップ1:ARPテーブルの確認
arp -a
# または
ip neigh show
→ 該当IPが表示されない場合:ARP解決ができていない → 表示されるがMACが正しくない場合:キャッシュ不整合を疑う
ステップ2:ARP要求が送信されているか確認
tcpdump -n -i eth0 arp
→ ARPリクエストが出ていない → 送信元のスタック異常 → ARPリプライが返っていない → 宛先の応答不具合 or 通信経路の問題
ステップ3:ARPキャッシュのクリア
# Windows
arp -d *
# Linux
ip neigh flush all
→ キャッシュ削除後、再通信して再学習されるか確認します。
6. 対応表(原因と対処の対応関係)
| 原因 | 対処方法 |
|---|---|
| ARPキャッシュが壊れている | arp -d または ip neigh flush all でクリア |
| ARP応答が届かない | ファイアウォールやスイッチ設定を確認・VLANタグ設定見直し |
| 誤ったMACが登録されている | ARPテーブル削除後、通信再試行して正しいMACを再学習させる |
| IP変更後の古い情報が残る | 再起動またはグラチュイタスARP送信で更新 |
7. まとめ
- ARPはIPアドレスからMACアドレスを求める仕組み
- LAN内通信では欠かせない基本プロトコル
- 通信不可トラブル時はARPテーブルとパケットキャプチャで原因を切り分ける
- キャッシュクリア・VLAN設定確認が効果的な対処法
ARPはネットワークの中でも非常に基本的でありながら、トラブルの根本原因になりやすい領域です。 ARPの動作を理解しておくことで、疎通不良や接続障害の調査効率が大幅に向上します。
