1.

MAC アドレスの構造 OUI と 48bit | ネットワーク入門

編集
この記事の要点
  • MAC アドレスは NIC (ネットワークカード) に割り当てられる 48bit (6 バイト) の識別子で、データリンク層 (L2) で使われる
  • 前半 24bit は OUI (Organizationally Unique Identifier) でベンダ (製造元) を識別、後半 24bit は各ベンダが NIC ごとに割り振る固有番号
  • 先頭バイトの最下位 2 ビットに意味があり、I/G ビットはユニキャスト/マルチキャスト、U/L ビットはユニバーサル/ローカル管理アドレスを区別する
  • 表記は AA:BB:CC:DD:EE:FF のように 16 進 2 桁を区切る形式が一般的。全ビット 1 (FF:FF:FF:FF:FF:FF) はブロードキャスト
  • 同一 LAN 内では IP と MAC の対応を ARP で解決して通信する

概要

MAC アドレス (Media Access Control address) は、ネットワークインターフェース (NIC) を一意に識別するためのハードウェア寄りの識別子です。OSI 参照モデルのデータリンク層 (L2) で使われ、同一ネットワークセグメント内でフレームを「どの機器宛に送るか」を決めるのに用いられます。IP アドレスが論理的・経路に応じて変わりうるのに対し、MAC アドレスは原則として NIC に固定的に焼き込まれています。親項目の MACアドレス、および IP との対応を扱う ARP も併せて参照してください。

仕組み

標準的な MAC アドレス (EUI-48) は 48 ビット (6 バイト) で構成され、大きく前半と後半に分かれます。

  • 前半 24bit = OUI (Organizationally Unique Identifier): ベンダ (NIC の製造元) を識別する番号で、IEEE が各メーカーに割り当てる。先頭 3 バイトを見ればおおよその製造元が分かる。
  • 後半 24bit = NIC 固有番号: 各ベンダが自社の OUI の範囲内で、個々の NIC に重複しないよう割り振るシリアル部分。

さらに、先頭バイトの下位 2 ビットには特別な意味があります。

  • I/G ビット (最下位ビット): 0 ならユニキャスト (個別の 1 台宛)、1 ならマルチキャスト/ブロードキャスト (グループ宛)。全ビットが 1 の FF:FF:FF:FF:FF:FF はブロードキャストで、セグメント内全機器が受信する。
  • U/L ビット (下位から 2 番目): 0 ならユニバーサル管理アドレス (IEEE が保証するグローバル一意)、1 ならローカル管理アドレス (管理者が任意に設定したもの、後述の MAC ランダム化もこれ)。

表記は 16 進 2 桁を 6 個並べ、コロンまたはハイフンで区切る AA:BB:CC:DD:EE:FF 形式が一般的です。一部の機器 (Cisco など) では aabb.ccdd.eeff のようにピリオド区切り 4 桁の表記も使われます。

実用例

自機の MAC アドレスとその構造は、各 OS のコマンドで確認できます。先頭 3 バイト (OUI) を OUI データベースで引けばベンダが分かります。

# 【Linux】各 IF の MAC を一覧 (link/ether の行)
ip link show
# 例) link/ether 52:54:00:12:34:56  ... 先頭 52:54:00 が OUI

# 簡潔表示
ip -br link

# 【Windows】物理アドレス欄が MAC
ipconfig /all
getmac /v

# 【macOS】en0 の ether 行
ifconfig en0 | grep ether

# ARP テーブルで LAN 内の IP↔MAC 対応を見る
ip neigh show
# 例) 192.168.1.1 dev eth0 lladdr 00:1a:2b:3c:4d:5e REACHABLE

先頭バイトを 2 進数に直して下位 2 ビットを見れば、そのアドレスがユニキャストか・ユニバーサルかローカルかを判別できます。たとえば 02:... で始まるアドレスは U/L ビットが 1 のローカル管理アドレスで、仮想マシンやランダム化で生成されたものが多いです。

主な用途

  • L2 フレームの宛先指定: 同一セグメント内の通信は MAC アドレス宛にフレームを送る。
  • 機器の識別: スイッチは MAC アドレステーブルで「どのポートの先にどの MAC があるか」を学習する。
  • ベンダ特定: OUI から NIC の製造元を推定し、機器の棚卸しやトラブル調査に使う。
  • アクセス制御: 無線 LAN の MAC フィルタリングなど、補助的な識別子として使う。

ビット構造の比較

部分ビット数意味割り当て主体
OUI前半 24bitベンダ識別子IEEE
NIC 固有部後半 24bit個体シリアル各ベンダ
I/G ビット先頭バイトの最下位0=ユニキャスト / 1=マルチキャスト規格
U/L ビット先頭バイトの下位 2 番目0=ユニバーサル / 1=ローカル管理規格

注意点

  • グローバル一意は前提に過ぎない: ユニバーサルアドレスは重複しない設計だが、ソフトウェアで変更 (詐称) できるため「絶対に一意」とは言い切れない。
  • セグメントを越えない: MAC アドレスはルータを越えると書き換わる (各ホップで次の機器の MAC になる)。エンドツーエンドで一定なのは IP の方。
  • 02 始まりはローカル: 仮想 NIC やコンテナの MAC はローカル管理アドレスのことが多く、OUI からベンダを引いても意味がない。
  • EUI-48 と EUI-64: IPv6 のインターフェース ID 生成では 48bit MAC を 64bit に拡張する EUI-64 が使われることがある。

関連リンク

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. MACアドレスの構造
  2. MACアドレスフィルタリング
  3. MACアドレスの確認・変更方法

最近更新/作成されたページ