とても良い質問です。MACアドレスもIPv4と同じように限りあるリソースですが、その設計と割り当て方式によって、一意性の確保と枯渇の回避が意図されています。以下に、順を追って詳しく説明します。
✅ MACアドレスとは
MACアドレス(Media Access Control アドレス)は、ネットワークインターフェースカード(NIC)などのハードウェアに割り当てられる一意の識別子です。
長さ:48ビット(6バイト)
表記:例)00:1A:2B:3C:4D:5E
✅ MACアドレスの構造(48ビット)
| 24ビット | 24ビット ||------------|----------------|| OUI | デバイス固有番号 |
| 部分 | 説明 |
|---|
| OUI(Organizationally Unique Identifier) | IEEEが各メーカーに割り当てる固有ID(24ビット) |
| NIC固有番号 | 各メーカーがOUIの下で一意に割り当てる24ビットの番号 |
✅ 一意性はどう保たれているのか?
● 原理
IEEEがOUIを発行(製造者ごとに1つ以上)
製造者が自社のOUI範囲内でユニークな番号を自動生成
→ 合計で 2^48 = 約281兆個 の一意なMACアドレスが存在可能
✅ MACアドレスが枯渇しにくい理由
| 原因 | 内容 |
|---|
| アドレス空間が巨大 | 48ビット=約281兆アドレス(IPv4の43億より圧倒的に多い) |
| 製品が寿命で消える | ハードウェアに埋め込まれるため、古いNICは物理的に消滅していく |
| グローバルで使われないことも多い | ローカル環境でしか使われないため、衝突が検出されにくい(かつ少数) |
✅ 枯渇や衝突のリスクはあるか?
◉ 現実的な問題としては「枯渇」より「管理ミスや偽装」が重要です:
| 問題 | 説明 |
|---|
| MACアドレスの偽装 | ソフトウェアでMACを書き換えることが可能(セキュリティ問題) |
| 仮想化で同一MACが重複 | 仮想マシンやDockerなどで手動設定した場合に衝突することがある |
| ベンダー側の不備 | ごく稀に、製造過程で一意性を守らない機器がある(粗悪品など) |
✅ 将来的な対応(64ビットMAC)
実は、**MACアドレスの64ビット版(EUI-64)**も定義されています:
これは「将来の拡張」や「自動割当」のためで、枯渇リスクをさらに低減できます。
✅ まとめ
| 項目 | 内容 |
|---|
| 一意性の確保方法 | IEEEがOUIを発行し、メーカーが自社内で管理して重複を防ぐ |
| 枯渇の可能性 | 現実的には極めて低い(281兆通りあり、古い機器は消える) |
| 枯渇より重要な問題 | MACアドレスの偽装、仮想化環境での衝突、製造ミス |
| 将来的な拡張 | EUI-64(IPv6と連携する64ビットMAC形式)も存在する |
この記事へのコメント