MAC アドレスと ARP - LAN 内通信の仕組み

入門 | 10分 で読める | 2026.05.02

公式ドキュメント

この記事の要点

MAC アドレスはネットワークカード固有の 48 ビット物理アドレス
ARP(Address Resolution Protocol)は IP アドレスから MAC アドレスを解決するプロトコル
• LAN 内通信では最終的に MAC アドレスが宛先になる

MAC アドレスとは

MAC アドレス(Media Access Control Address)は、ネットワークインターフェースカード(NIC)に割り当てられた固有の物理アドレスです。**48 ビット(6 バイト)**の長さで、通常は 16 進数で表記されます。

IP アドレスとの違い: IP アドレスは論理的なアドレスで変更可能ですが、MAC アドレスはハードウェアに紐づく物理的なアドレスで、基本的に変更できません(ソフトウェアで偽装は可能)。

MAC アドレスの表記例

# コロン区切り(Linux, macOS)
00:1A:2B:3C:4D:5E

# ハイフン区切り(Windows)
00-1A-2B-3C-4D-5E

# ドット区切り(Cisco)
001A.2B3C.4D5E

MAC アドレスの構造

MAC アドレスは 48 ビット(6 バイト)で、前半 24 ビットと後半 24 ビットに分かれます。

部分ビット数名称内容
前半 24 ビット24 bitOUI(Organizationally Unique Identifier)ベンダー(製造元)ID
後半 24 ビット24 bitNIC Specificベンダーが割り当てる個別 ID
00:1A:2B:3C:4D:5E
└─┬──┘ └─┬──┘
  OUI    個別ID
(ベンダー) (製造元が管理)

OUI(ベンダー ID)の例

OUIベンダー
00:1A:11Google
00:50:56VMware
00:0C:29VMware
B8:27:EBRaspberry Pi Foundation
DC:A6:32Raspberry Pi Trading
00:1B:63Apple
00:D0:2DCisco
# macOS/Linux で自分の MAC アドレスを確認
ip link show
# または
ifconfig

# Windows で確認
ipconfig /all

ポイント: MAC アドレスの前半 3 バイトを見れば、どのメーカーの機器かがわかります。セキュリティ診断やネットワーク調査で有用です。

特殊な MAC アドレス

MAC アドレス意味
FF:FF:FF:FF:FF:FFブロードキャストアドレス(LAN 内全員に送信)
01:00:5E:xx:xx:xxIPv4 マルチキャスト
33:33:xx:xx:xx:xxIPv6 マルチキャスト
02:xx:xx:xx:xx:xxローカル管理アドレス(仮想 NIC など)

なぜ IP と MAC の両方が必要か

ネットワーク通信には IP アドレスと MAC アドレスの両方が必要です。それぞれ役割が異なります。

アドレス役割変更可能性
IP アドレスL3(ネットワーク層)グローバルな宛先指定、ルーティング◎(DHCP で頻繁に変わる)
MAC アドレスL2(データリンク層)LAN 内での直接配送✕(ハードウェアに固定)
# 通信の流れ
アプリケーション: "example.com にアクセスしたい"
    ↓
DNS: "example.com = 93.184.216.34"
    ↓
IP 層: "93.184.216.34 に送る。まずゲートウェイに転送"
    ↓
ARP: "ゲートウェイ 192.168.1.1 の MAC アドレスは?"
    ↓
MAC 層: "aa:bb:cc:dd:ee:ff に物理的に送信"

ポイント: IP アドレスは「どこに届けるか」、MAC アドレスは「次の中継点はどこか」を示します。郵便に例えると、IP は最終目的地の住所、MAC は配達ルート上の次の郵便局です。

ARP(Address Resolution Protocol)とは

ARPは、IP アドレスから MAC アドレスを解決するためのプロトコルです。LAN 内で通信する際、最終的には MAC アドレスが必要なため、ARP で IP→MAC の変換を行います。

ARP の基本動作

1. ホスト A: "192.168.1.10 の MAC アドレスを教えて!"(ARP Request)
   → ブロードキャスト(LAN 内全員に送信)

2. ホスト B(192.168.1.10): "私の MAC は aa:bb:cc:dd:ee:ff です"(ARP Reply)
   → ユニキャスト(A だけに返信)

3. ホスト A: ARP テーブルに記録
   192.168.1.10 → aa:bb:cc:dd:ee:ff

ARP メッセージの種類

メッセージ種類送信方法目的
ARP Requestブロードキャスト(FF:FF:FF:FF:FF:FF)特定 IP の MAC アドレスを問い合わせ
ARP Replyユニキャスト(特定の MAC)自分の MAC アドレスを通知
Gratuitous ARPブロードキャスト自発的に自分の IP/MAC を通知(IP 重複検出、キャッシュ更新)
ARP ProbeブロードキャストIP アドレスが既に使われているか確認

ARP パケットの構造

ARP Request:
- Hardware Type: Ethernet (1)
- Protocol Type: IPv4 (0x0800)
- Sender MAC: 11:22:33:44:55:66
- Sender IP: 192.168.1.5
- Target MAC: 00:00:00:00:00:00(不明なので空)
- Target IP: 192.168.1.10

ARP Reply:
- Hardware Type: Ethernet (1)
- Protocol Type: IPv4 (0x0800)
- Sender MAC: aa:bb:cc:dd:ee:ff
- Sender IP: 192.168.1.10
- Target MAC: 11:22:33:44:55:66
- Target IP: 192.168.1.5

ARP テーブル

ARP で解決した IP→MAC の対応はARP テーブル(ARP キャッシュ) に保存され、一定時間再利用されます。

# macOS/Linux で ARP テーブルを表示
arp -a

# Windows で表示
arp -a

# 出力例
? (192.168.1.1) at aa:bb:cc:dd:ee:ff on en0 ifscope [ethernet]
? (192.168.1.10) at 11:22:33:44:55:66 on en0 ifscope [ethernet]

ARP テーブルのエントリ寿命

OSデフォルト TTL
Linux60 秒(到達可能)、300 秒(到達不可)
Windows120 秒(動的エントリ)
macOS1200 秒(20 分)
# Linux で ARP キャッシュをクリア
sudo ip -s -s neigh flush all

# Windows で ARP キャッシュをクリア
arp -d

# macOS で ARP キャッシュをクリア
sudo arp -d -a

実践メモ: ネットワークトラブル時、古い ARP キャッシュが原因でつながらないことがあります。arp -d でキャッシュをクリアすると解決する場合があります。

ARP の動作例

同じ LAN 内の 192.168.1.5 から 192.168.1.10 に通信する場合:

ステップ 1: ARP テーブルを確認

# ホスト A(192.168.1.5)が ARP テーブルを確認
arp -a
# 192.168.1.10 のエントリがない → ARP Request が必要

ステップ 2: ARP Request をブロードキャスト

送信元 MAC: 11:22:33:44:55:66
送信先 MAC: FF:FF:FF:FF:FF:FF(ブロードキャスト)

ARP Request:
"Who has 192.168.1.10? Tell 192.168.1.5"

ステップ 3: ARP Reply を受信

送信元 MAC: aa:bb:cc:dd:ee:ff
送信先 MAC: 11:22:33:44:55:66(ユニキャスト)

ARP Reply:
"192.168.1.10 is at aa:bb:cc:dd:ee:ff"

ステップ 4: ARP テーブルに記録

arp -a
# ? (192.168.1.10) at aa:bb:cc:dd:ee:ff on en0 ifscope [ethernet]

ステップ 5: データ送信

送信元 IP: 192.168.1.5
送信先 IP: 192.168.1.10
送信元 MAC: 11:22:33:44:55:66
送信先 MAC: aa:bb:cc:dd:ee:ff ← ARP で解決した MAC アドレス

ポイント: ARP は LAN 内のみで動作します。ルーター越えの通信では、ARP は次のホップ(ゲートウェイ)の MAC アドレスを解決します。

ゲートウェイ経由の通信

LAN 外(インターネット)への通信では、宛先 IP はインターネット上のサーバーですが、MAC アドレスはデフォルトゲートウェイ(ルーター)の MAC になります。

# 192.168.1.5 から 8.8.8.8(Google DNS)に通信
送信元 IP: 192.168.1.5
送信先 IP: 8.8.8.8
送信元 MAC: 11:22:33:44:55:66
送信先 MAC: aa:bb:cc:dd:ee:ff ← ゲートウェイ(192.168.1.1)の MAC

ルーターが受け取った後、次のホップに転送する際に MAC アドレスを書き換える
ホップ送信元 IP送信先 IP送信元 MAC送信先 MAC
ホスト → ルーター192.168.1.58.8.8.811:22:33:44:55:66aa:bb:cc:dd:ee:ff(ルーター)
ルーター → ISP192.168.1.58.8.8.8(ルーターの WAN 側 MAC)(ISP ルーターの MAC)

ポイント: IP アドレスは始点から終点まで変わりませんが、MAC アドレスはホップごとに書き換えられます。これが L3(IP)と L2(MAC)の役割の違いです。

ARP スプーフィング(ARP Poisoning)

ARP には認証がないため、悪意のある者が偽の ARP Reply を送信して、通信を盗聴・改ざんできる脆弱性があります。

攻撃の流れ

1. 攻撃者が偽の ARP Reply をブロードキャスト
   "192.168.1.1(ゲートウェイ)の MAC は xx:xx:xx:xx:xx:xx(攻撃者の MAC)です"

2. 被害者のホストが ARP テーブルを更新
   192.168.1.1 → xx:xx:xx:xx:xx:xx(攻撃者)

3. 被害者がゲートウェイに送るパケットが攻撃者に届く

4. 攻撃者がパケットを盗聴・改ざん後、本物のゲートウェイに転送(中間者攻撃)

対策

対策内容
静的 ARP エントリ重要なホストの ARP を固定登録(手動管理が必要)
Dynamic ARP Inspection(DAI)スイッチが ARP パケットを検証(DHCP Snooping と併用)
ネットワーク監視ARP テーブルの異常な変更を検知
暗号化通信HTTPS など暗号化で盗聴されても内容を守る
# 静的 ARP エントリの設定(Linux)
sudo arp -s 192.168.1.1 aa:bb:cc:dd:ee:ff

# 静的 ARP エントリの設定(Windows)
arp -s 192.168.1.1 aa-bb-cc-dd-ee-ff

注意: ARP スプーフィングは同一 LAN 内でのみ可能ですが、カフェや公衆 Wi-Fi では攻撃者が同じネットワークにいる可能性があります。重要な通信は必ず HTTPS/VPN を使いましょう。

Gratuitous ARP(GARP)

Gratuitous ARPは、誰も聞いていないのに自発的に送る ARP です。

用途

用途説明
IP アドレス重複検出起動時に GARP を送り、既に使われている IP がないか確認
ARP キャッシュ更新MAC アドレスが変わったとき(HA フェイルオーバーなど)、他のホストに通知
ネットワーク機器の学習スイッチに自分の MAC アドレスを学習させる
GARP の例:
Sender IP: 192.168.1.10
Target IP: 192.168.1.10(自分自身)
→ "192.168.1.10 は aa:bb:cc:dd:ee:ff です"と全員に通知

実践メモ: 仮想 IP(VIP)を使う HA 構成では、フェイルオーバー時に新しいサーバーが GARP を送り、VIP が自分に切り替わったことを全員に通知します。

まとめ

MAC アドレスと ARP は、LAN 内通信の基盤です。

項目内容
MAC アドレス48 ビットの物理アドレス、前半 24 ビットがベンダー ID
ARPIP アドレスから MAC アドレスを解決するプロトコル
ARP テーブルIP→MAC の対応を一定時間キャッシュ
ARP スプーフィング偽の ARP Reply で通信を盗聴する攻撃(対策: DAI、HTTPS)

IP アドレスが「どこに届けるか」を示すのに対し、MAC アドレスは「次のホップはどこか」を示します。ARP によってこの2つが結びつき、LAN 内通信が成立します。

参考リソース

この技術を体系的に学びたいですか?

未来学では東証プライム上場企業のITエンジニアが24時間サポート。月額24,800円から、退会金0円のオンラインIT塾です。

メールで無料相談する
← 一覧に戻る