ネットワーク通信の基礎である 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の動作を理解しておくことで、疎通不良や接続障害の調査効率が大幅に向上します。