MACアドレスとは

イーサネットは、同じネットワーク内のイーサネットインタフェース間でデータを転送するためのプロトコルです。そのためには、イーサネットのインタフェースを特定できなければいけません。イーサネットインタフェースを特定するためのアドレスがMACアドレスです。

48ビットのMACアドレスによって、イーサネットのインタフェースを特定できるようにしています。MACアドレスの48ビットのうち、先頭24ビットはOUI(Organizationally Unique Identifier)、そのあとの24ビットがシリアル番号という構成です。OUIはイーサネットインタフェースを製造しているベンダ(メーカ)の識別コードです。OUIは、以下のURLにまとめられています。

http://standards.ieee.org/develop/regauth/oui/oui.txt

シリアル番号は、各ベンダが割り当てています。MACアドレスはイーサネットインタフェースにあらかじめ割り当てられていて、基本的に変更できないアドレスで「物理アドレス」や「ハードウェアアドレス」と呼ぶこともあります。

イーサネットインタフェースによっては、MACアドレスを変更できるものもあります。

MACアドレスは、イーサネットヘッダの宛先/送信元MACアドレスとして指定されます。これにより、イーサネットフレームがどこからどこ宛てなのかがわかります。

MACアドレスの表記

MACアドレスの表記は、16進数で行います。16進数なので「0」~「9」および「A」~「F」の組み合わせです。表記のパターンには、いろいろあるので少し紛らわしくなってしまうことに注意してください。MACアドレスの表記パターンをまとめると、以下のようになります。

  • 1バイトずつ16進数に変換して「:」で区切る
  • 1バイトずつ16進数に変換して「-」で区切る
  • 2バイトずつ16進数に変換して「.」で区切る
図 MACアドレス

Ciscoの機器は2バイトずつ「.」で区切ってMACアドレスを表記することが多いです。

イーサネットでは、データを転送したいイーサネットインタフェースをMACアドレスによって識別しているということをしっかりと押さえておきましょう。また、MACアドレスはPCのイーサネットインタフェースだけではなく、レイヤ2スイッチなどのネットワーク機器のイーサネットインタフェースにもあります。つまり、すべてのイーサネットインタフェースにはMACアドレスが割り当てられています。

図 イーサネットインタフェースにはMACアドレスがある
図ではMACアドレスの表記を簡略化しています。
無線LAN(Wi-fi)のインタフェースにもMACアドレスがあります。

なお、PCのMACアドレスを確認したい場合は、Windows OSであればコマンドプロンプトから「ipconfig /all」のコマンドを入力します。ipconfig /allコマンドの「物理アドレス」がMACアドレスです。

図 Windows OSでのMACアドレスの確認

特別な用途のMACアドレス(ブロードキャスト/マルチキャスト)

MACアドレスにはイーサネットインタフェースに割り当てられている以外に、特別な用途で利用するMACアドレスもあります。特別な用途のMACアドレスとして次の2つあります。

  • ブロードキャストのMACアドレス
  • マルチキャストのMACアドレス
ブロードキャストおよびマルチキャストMACアドレスは、イーサネットヘッダの送信元MACアドレスとなることはありません。

ブロードキャストのMACアドレス

ブロードキャストのMACアドレスとは、同じネットワーク上のすべてのイーサネットインタフェースに対してデータ(イーサネットフレーム)の送信を行いたいときに利用するMACアドレスです。48ビットすべて「1」で、16進数表記では「FF-FF-FF-FF-FF-FF」です。ブロードキャストMACアドレスを宛先MACアドレスとすると、そのデータ(イーサネットフレーム)は同じネットワーク上のすべてのイーサネットインタフェースで受信されるようになります。

図 ブロードキャストのMACアドレス

ブロードキャストのMACアドレスを宛先MACアドレスに指定してデータを送信すると、データは適宜コピーされて同じネットワーク上全体に転送されて、そのネットワーク上のすべてのホストのイーサネットインタフェースで受信し、さらに上位のプロトコルの処理を行います。図ではクラウドで表現していますが、実際にはレイヤ2スイッチが転送します。レイヤ2スイッチのフラッディングと呼ばれる転送の動作でデータをコピーして同一ネットワーク全体へと転送します。

マルチキャストのMACアドレス

マルチキャストのMACアドレスは、同一ネットワーク内の特定のグループ宛てにイーサネットフレームを送信したいときに利用するMACアドレスです。MACアドレスの最初の1バイト目の最下位ビットをI/G(Individual / Group)ビットと呼び、I/Gビット「1」のMACアドレスがマルチキャストのMACアドレスです。

図 マルチキャストのMACアドレス

マルチキャストの特定のグループとは、いろいろなケースがあります。マルチキャストのグループの具体的な例として、以下が挙げられます。

  • 同じアプリケーションが動作しているホストのグループ
  • 同じルーティングプロトコルが動作しているルータのグループ

マルチキャストのMACアドレスが宛先MACアドレスに指定されたイーサネットフレームは、同じネットワーク内全体に転送されます。ただし、イーサネットフレームを受信するのは、マルチキャストのグループに所属しているイーサネットインタフェースだけです。マルチキャストグループに参加していないと、転送されてきたマルチキャストのイーサネットフレームを破棄して、上位のプロトコルの処理を行いません。

図 マルチキャストの転送の概要

I/Gビットが1になっているのがマルチキャストMACアドレスなので、マルチキャストのMACアドレスは、とてもたくさん存在しています。そのうち、IPv4のマルチキャストアドレスに対応するマルチキャストのMACアドレスとして、以下の範囲が予約されています。

IPv4マルチキャストアドレスに対応するマルチキャストMACアドレス

01-00-5E-00-00-00 ~ 01-00-5E-7F-FF-FF

下位の23ビット分は、IPv4マルチキャストの下位23ビットをそのまま対応付けるようにしています。IPv4のマルチキャストアドレスのグループに参加したイーサネットインタフェースは、対応するマルチキャストMACアドレスが宛先となっているイーサネットフレームを受信できるようになります。

ブロードキャストとマルチキャストについて勘違いしがちです。ブロードキャストはマルチキャストの一部です。ブロードキャスト=「同じネットワーク上に接続されている」というマルチキャストグループ宛ての通信です。
IPv6マルチキャストアドレスに対応するマルチキャストMACアドレスは、33-33-00-00-00-00~33-33-FF-FF-FF-FFです。