「MACアドレスの裏側」を知る:世界に一つだけの名札と、その場で書いた「仮名札」の使い分け
ネットワークエンジニアの皆さん、こんにちは。日々の運用や検証、お疲れ様です。
LANケーブルを挿せば当たり前のように繋がるインターネット。その裏側では、何十億もの機器が「MACアドレス」という、世界で唯一の「名前(住所のようなもの)」を使って通信を行っています。
でも、ふと疑問に思いませんか?
「なんでメーカーは、出荷する全ての製品に被らない番号を付けられるの?」
「もし、仮想的なサーバーや、特殊な環境で『自分専用のルール』でアドレスを使いたい時はどうすればいいの?」
今日は、MACアドレスの知られざる「身分証の秘密」について、郵便配達に例えて紐解いていきましょう。
—
1. 郵便配達で例える「グローバル」と「ローカル」
まず、MACアドレスの基本構造を思い出してください。MACアドレスは「48ビット」の数字ですが、これを「前半(24ビット)」と「後半(24ビット)」に分けるのがポイントです。
- 前半(OUI):メーカーごとに割り当てられた「苗字」のようなもの。(例:Apple、Cisco、Intelなど)
- 後半:メーカーが製品ごとに連番で付ける「名前」のようなもの。
この組み合わせで、世界で二つとない「唯一無二の名前」が作られます。これをグローバル管理アドレス(GAA)と呼びます。
郵便配達の例え:
- グローバル管理アドレス:国から発行された「住民票」です。どこへ行ってもあなたの身分を証明できます。
- ローカル管理アドレス(LAA):これは「社内バッジ」です。会社の入り口や特定のプロジェクト内だけで有効な、「その場で手書きした名札」のようなものですね。
—
2. 秘密のスイッチ「U/Lビット」の正体
MACアドレスの「前半の24ビット」、そのさらに一番最初の「8ビット目」に、U/Lビット(Universal/Localビット)という非常に重要なスイッチが隠されています。
このビットが「0」か「1」かで、ネットワーク機器はこう判断します。
- U/Lビット = 0 :「これは世界標準のグローバルなアドレスだよ!」(Universal)
- U/Lビット = 1 :「これはこのネットワーク管理者が勝手に決めたローカルなアドレスだよ!」(Local)
たった1ビットのスイッチですが、これが0から1に切り替わるだけで、機器の扱いはガラリと変わります。
—
3. なぜ「ローカル管理アドレス(LAA)」を使うのか?
「わざわざ自分でMACアドレスを決めるなんて面倒くさい!」と思いますよね。でも、現場ではこれが非常に役立つケースがあるんです。
- 仮想化技術(VMwareやDocker):
一台の物理サーバーの中に、何十もの仮想サーバーが動いています。それぞれの仮想サーバーに「物理的なNIC」は存在しませんが、MACアドレスが必要です。そこで、LAAを使って「このVMのためのアドレス」を自由に生成します。
- 高可用性(HA)構成:
ロードバランサーやファイアウォールが故障した時、予備機に切り替わりますよね。その際、MACアドレスまで変わってしまうと、ネットワーク上のスイッチがパニック(再学習)を起こしてしまいます。そこで、「仮想MACアドレス」をLAAとして定義し、常に一定のアドレスで通信を維持するのです。
—
4. 実践:LAAを設定してみよう(Linux環境)
実際にLinuxサーバーでMACアドレスを書き換えるのは、実は簡単です。もちろん、テスト環境で試してくださいね。
# 1. 現在のMACアドレスを確認
ip link show eth0
# 2. 一度インターフェースを停止
sudo ip link set dev eth0 down
# 3. LAA(ローカル管理アドレス)を設定
# U/Lビットを立てるために、先頭を「02」から始めます(例: 02:00:00:12:34:56)
sudo ip link set dev eth0 address 02:00:00:12:34:56
# 4. インターフェースを再起動
sudo ip link set dev eth0 up
# 5. 反映されているか確認
ip link show eth0
*※ポイント:MACアドレスの左端が 02 になっていますよね。これはバイナリで表現すると、末尾のビットが「1」になっている証拠(Universal/LocalビットのON)なんです!*
—
最後に:ネットワークを「支配」するということ
MACアドレスを自由に操るLAAという概念は、ネットワークを「固定されたインフラ」から「ソフトウェアで自在に形を変えられる柔軟なインフラ」へと進化させる鍵でした。
教科書には「LAAはローカルで使え」としか書いてありませんが、その背景には「通信を止めないための工夫」や「仮想化技術の魔法」が詰まっています。
皆さんが明日、パケットキャプチャでMACアドレスの先頭が 02 や 06 になっているのを見かけたら、「おっ、こいつは現場で頑張っているローカル管理アドレスだな!」とニヤリとしていただければ幸いです。
これからも、パケットの向こう側に広がるエンジニアの世界を、一緒に深掘りしていきましょうね!
コメント