マルチキャストアドレス(IPアドレス)

 マルチキャストアドレスは、クラスAからクラスCまでのいずれのアドレスクラスにも該当しない特殊なクラスです。特定のグループに対してのみ、データを転送するための専用のアドレスです。このアドレスは、宛先アドレスとしてのみ使用されます。送信元アドレスは、常にユニキャストが使用されます。

 マルチキャストアドレスは、最初の4ビットが識別のために、「1110」とすることが決められていて、ホストアドレス部分はありません。「1110」から後の28ビットは、マルチキャストのグループを識別するマルチキャストグループIDとして使用されます。

 マルチキャストアドレスは、「1110」から始まるため「224.0.0.0 ~ 239.255.255.255」を使用することになります。 マルチキャスト通信は、音声や映像データの一斉放送するマルチメディアアプリケーションなどで使用されます。また、ルーティングプロトコルがお互いに経路情報を交換する際にも使用されます。

 マルチキャストアドレスの割り当ては、IANAによって管理されています。主なWell-Knownマルチキャストアドレスには、以下のものがあります。

マルチキャストアドレス対象
224.0.0.1サブネット上の全てのホスト
224.0.0.2サブネット上の全てのルータ
224.0.0.4全てのDBMRPルータ
224.0.0.5全てのOSPFルータ
224.0.0.6全てのOSPFルータ DR
224.0.0.9全てのRIPv2ルータ
224.0.0.10全てのEIGRPルータ
224.0.0.13全てのPIMルータ
224.0.1.1NTP
マルチキャストアドレス

マルチキャスト(MACアドレス)

MACアドレスには、次のルールがあります。

  • 48bitのコードからなる。
  • OUIにより、ベンダーを識別。
  • ベンダーが出荷時に書き込み、原則としてユーザーは操作しない。
  • 原則として同じMACアドレスの機器は、存在しない。
  • 48bitを8bitずつ、「:」で6つのブロックに区切り、16進数で表現する。例えば「00:00:0C:A6:38:D8」

※「-」や「.」で区切る場合もあります。

 オクテット内のビットで、最上位ビットは、MSB(Most Significant Bit、最下位ビットは、LSB(Least Significant Bit)と呼ばれ、第1オクテットのI/Gビット、U/Lビットは、特別な意味を持つビットとして規格化されています。I/Gビットは、「Individual/Group」と呼ばれています。

 先頭の第1オクテットの最下位ビットにあるI/Gビットが、「1」であるアドレスがマルチキャストMACアドレスとなります。

 ブロードキャストMACアドレスは、「FF:FF:FF:FF:FF:FF」と48ビットの全てのビットが「1になっており、I/Gビットが、「1」となるため、マルチキャストMACアドレスの特殊な形態であると考えることができます。

 IEEEでは、マルチキャストIPアドレスに対応するマルチキャストMACアドレスを次の25ビットで、開始するように定めています。

 0000 0001 0000 0000 1001 1110 0

 16進数で、「01:00:5E」と25ビット目が「0」で、その後の残りの23ビットが、マリティキャストIPアドレスの下位から23ビットからマッピングすることになっています。

例えば、マルチキャストIPアドレス「224.0.0.5」に対応するマルチキャストIPアドレスは、下図のように対応付けます。

マルチキャストIPアドレス「224.0.0.5」に対応するマルチキャストIPアドレスは、「01:00:5E:00:00:05」となります。

 ここで、注意しておくことがあります。「1110」と下位からの23ビットの間の5ビット(上図で、ベージュ色の部分のビット)が無視されてしまうということです。

 マルチキャストIPアドレスは「1110」で始まります。これは、無視されても固定されていることなので、問題ありませんがベージュ色の部分が無視されることによって、マルチキャストIPアドレスとマルチキャストMACアドレスの対応が、1対1の対応付けにならなくなってしまいます。

 例えば、「224.0.0.5」と「224.128.0.5」に対応するマルチキャストMACアドレスは、同じマルチキャストIPアドレスの「01:00:5E:00:00:05」となります。

 5ビット無視されることになるので、25=32個のマルチキャストIPアドレスが、同じマルチキャストMACアドレスに対応付けられることとなります。

マルチキャストMACアドレスは、重複が発生するので、アプリケーション側で調整が必要となります。