マルチキャストなアドレス

MACアドレスをどうすれば?

マルチキャストでは、複数のあて先に対して同じデータを効率よく送ることができるという話でした。そのとき、複数のあて先をクラスDアドレス(マルチキャストIPアドレス)でグループ化することができます。でも、マルチキャストのパケットをイーサネットで送るとき、

「あて先MACアドレスをどうすればいいの?」

という疑問が出てきました。これは、マルチキャストIPアドレスに対応付けられる「マルチキャストMACアドレス」があるということでしたね?

今回は、マルチキャストなアドレスとして、マルチキャストIPアドレスとマルチキャストMACアドレスについて見ていきましょう。

どんなMACアドレスがマルチキャストMACアドレスなんだろう?

まず通常のネットワークインタフェースカードに焼き付けられているMACアドレスの構造について復習です。MACアドレスは6バイトの大きさを持ち先頭の3バイトがベンダID、残りの3バイトがシリアル番号となります。ベンダIDは、どこのベンダが作ったのかということを示す識別番号で、IEEEが管理しています。シリアル番号はネットワークインタフェースカードごとの製造番号で各ベンダが管理をするという形です。



先頭3バイトのベンダIDの中なんですが、実はこの中にマルチキャストMACアドレスであることを示す特殊なビットがあります。先頭の1バイト目の最下位ビットをI/G(Individual/Group)ビットと呼んでいます。このビットが1であるアドレスは、「グループ」つまりマルチキャストMACアドレスということを示しています。



ブロードキャストMACアドレス(FF-FF-FF-FF-FF-FF)は48ビットがすべてビット1になっています。ということは、I/Gビットも1ですね。ブロードキャストMACアドレスはマルチキャストMACアドレスの特殊な形だと捉えることもできます。

マルチキャストIPアドレスとの対応付け

I/Gビットが1になっているアドレスはたくさん考えられます。その中で特に、マルチキャストIPアドレスに対応付けるためのアドレスをIEEEが決めています。
IEEEでは、次の25ビットで開始するMACアドレスをマルチキャストIPアドレスに対応するマルチキャストMACアドレスと決めています。

0000 00001 0000 0000 1001 1110 0

16進数にすると、「01-00-5E」と続いて、そのあとの1ビットが0です。ここまでが決まっています。残り23ビットあるわけですが、この23ビットはマルチキャストIPアドレスの下から23ビットをそのまま持ってくればOKです。たとえば、マルチキャストIPアドレス「224.10.10.10」に対応するマルチキャストMACアドレスは、「01-00-5E-0A-0A-0A」となります。




※図はクリックすると拡大します

ただし、この対応付けは注意しなくてはいけないことがあります。それは、マルチキャストIPアドレスの5ビット分を無視することになるので、1対1の対応付けにならないということです。
例として、「224.10.10.10」と「224.138.10.10」に対応するマルチキャストMACアドレスを考えてみましょう。どちらも同じマルチキャストMACアドレス「01-00-5E-0A-0A-0A」になってしまいました。これは、5ビット目から9ビット目までがMACアドレスに対応に使われていないためです。最大で2^5で32個のマルチキャストIPアドレスが1つのマルチキャストMACアドレスに対応付けられることになります。

ですから、マルチキャストIPアドレスでグループ化するときには、なるべくこの5ビットの部分を使わないようなアドレスを設定する方がいいでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA