MACアドレスはネットワークに欠かせない識別情報の1つだ。IPアドレスに比べてあまり知られていないが、通信を裏方で支える重要な要素である。昨今は、iPhoneなどでMACアドレスの「ランダム化」がデフォルトになり、それに伴ってトラブルが発生する懸念があるなど、ネットワーク管理者が知っておくべき新しいトピックもある。改めてMACアドレスについて理解し、謎に思っている部分や疑問点をなくしておこう。

Q:MACアドレスって何?

 「MACアドレス」はイーサネット(有線LAN)やWi-Fi(無線LAN)で通信の宛先を指定するためのアドレスです。パソコンやスマートフォンのほか、ルーターやLANスイッチなどのネットワーク機器にはMACアドレスが割り当てられています。LAN内で通信する際、このMACアドレスを手掛かりにデータを届けます。まさに“住所”の役割を果たしています。

 ネットワークのアドレスというと、「IPアドレス」を思い浮かべる人が多いかもしれません。MACアドレスとIPアドレスのどちらも、ネットワークの“住所”という意味では共通しています。IPアドレスはインターネットという広大なネットワークで“住所”の役割を担っています。一方、MACアドレスは比較的狭いネットワーク、もっと言うと、伝送メディア(LANケーブルや無線など)で直接つながる範囲で使われるものです。

 MACアドレスとIPアドレスのどちらが重要なのかは一概に言えません。どちらか一方がないと、インターネットにデータを届けられません。つまり、MACアドレスとIPアドレスは補完し合っている関係といえます。どのように補完し合っているのかは、別の回で解説します。

MACアドレスとIPアドレスの利用イメージ
MACアドレスとIPアドレスの利用イメージ
[画像のクリックで拡大表示]

Q:MACアドレスはどんな形式なの?

 MACアドレスは48個のビット列です。2進数の0および1が48個並んだ数字ということになります。通常は人が分かりやすいように、48個のビット列を8個(通信分野ではオクテットと呼びます)ずつ6つに分けて、16進数で表記します。

 例えば「010100100011101000111110011100101100100110111100」という2進数は、16進数に直すと「52:3A:3E:72:C9:BC」となります。なお16進数表記のMACアドレスは2オクテットごとに区切るのに、コロンのほかハイフンを使う場合があります。

MACアドレスの構造。機器に割り当てる固有のMACアドレスの場合を示した
MACアドレスの構造。機器に割り当てる固有のMACアドレスの場合を示した
[画像のクリックで拡大表示]

 MACアドレスはフラットに0と1が並んでいるわけではありません。ある構造を持っています。まず通信の方法や利用範囲を規定する「I/Gビット」と「G/Lビット」があります。これは受信側で最初に読み込むビットと、2番目に読み込むビットに当たります。

 なぜこんな面倒な言い方をするのかというと、イーサネット独特の仕様のためなのです。イーサネットでは受信側でデータ(フレームと呼びます)を受け取るときオクテット単位で取り込み、その最下位ビットから読み込んでいくという仕組みになっています。

 I/Gビットは通信方法を決めるビットです。「I」は「Individual」、「G」は「Group」を意味しています。この値が「0」だと、通信相手が1台のみの個別端末ということを表します。この通信方法は「ユニキャスト」と呼ばれます。通常の通信にはこれが使われます。一方、この値が「1」の場合、複数の通信相手へ同時にデータを送ります。この方法には、特定のグループ向けにデータを送る「マルチキャスト」と、LAN内の全端末にデータを送る「ブロードキャスト」の2種類があります。

 G/Lビットは利用範囲を決めるビットです。「G」は「Global」、「L」は「Local」を意味しています。「0」の場合は世界中で使えるユニークなアドレス、「1」の場合は閉じたローカルネットワークだけで使うアドレスということになっています。機器固有のMACアドレスは「0」と決まっています。「1」は実験などの用途を想定しており、ほとんど使われていませんでした。ところが、最近のiOSなどでG/Lビットを「1」としたMACアドレスが使われるケースが出てきました。

 MACアドレスの構造でもう1つ大きなポイントは、前半と後半に分けられることです。ユニキャストに使われるMACアドレスの場合、前半24ビットは「OUI(Organizationally Unique Identifier)」と呼ばれ、機器のベンダーごとに固有の値が割り当てられます。後半24ビットは、各ベンダーが自社製品に割り当てます。こうすることでアドレスの重複を避けられます。

 マルチキャストの場合、前半部分は用途(プロトコル)ごとに決められています。例えば、「IPマルチキャスト」というプロトコルの場合、MACアドレスの前半部分は「01:00:5E」と定義されています。後半部分はIPアドレスの一部をマッピングする形となります。またブロードキャスト用のMACアドレスは全ビットが「1」、16進数だと「FF:FF:FF:FF:FF:FF」と決められています。

 ここまでの説明で、MACアドレスは決められたものしか使わないように思ったかもしれませんが、実はOSが生成したり、ユーザーや管理者が変更したりできます。例えばWindowsでは、プロパティやレジストリを変えることでMACアドレスを変更できます。その機器に割り当てられたMACアドレス自体は変わりませんが、実際に通信で使うMACアドレスは別のものになります。

 また最近のiOSやAndroid、Windowsではプライバシー強化の観点から、機器に割り当てられたMACアドレスとは別に、ランダムに生成したMACアドレスを通信に利用する機能が搭載されています。これについては別の回で詳しく説明します。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。