マルチキャスト

【図解】初心者にも分かるマルチキャストの仕組み~UDPの理由、メリット・デメリット、マルチキャストアドレス一覧~

マルチキャストとは

マルチキャストとは、1 つの送信元から、複数の宛先へ、同じデータを送る通信のことです。

送信元 (Source と言います)から送出したパケットは、ルータやスイッチで複製され、やがて受信端末 (Receiver と言います)たちに届きます。

マルチキャストの主な利用シーンは、リアルタイム映像配信PC への OS イメージ配信などです。

以下にリアルタイム映像配信の例のイメージを示します。

マルチキャストパケットにおいて、送信元 IP アドレスは、通常の IP アドレスを使いますが、宛先 IP アドレスとしては、クラスDの『224.0.0.0〜239.255.255.255』のレンジが使われます。

ただし、受信端末 (Receiver) 側では OS 等に設定する IP アドレスを変える必要はありません

その代わり、OS ではなく映像受信ソフト等のアプリケーションがマルチキャストアドレスを管理します。

つまり、OS で管理するユニキャスト用の IP とは別に、マルチキャストを受信したいアプリケーションが個別にマルチキャストアドレスを持ちます。1 つのアプリで複数のマルチキャストアドレスに参加することも可能です。

受信端末 (Receiver) は、そのマルチキャストアドレスの受信を IGMPというプロトコルで、同セグメントのルータに要求し、そのルータはPIM等のマルチキャストルーティングプロトコルで他のルータと情報を交換し、どこにマルチキャスト通信を届ければよいかを知ることができます。

一方、送信元 (Source) からマルチキャストパケットを受信すると、やはり PIM 等のマルチキャストルーティングプロトコルが動作し、受信端末へ向けてのルートを確保するようになります

マルチキャストは1対複数通信を想定しているため、トランスポート層として 1 対 1 を想定している TCP を使うことはできません。

マルチキャストの場合、トランスポート層を使う場合は UDP を使います。

一般的に使われるマルチキャストの種類には、Ethernet の L2 マルチキャストIP の L3 マルチキャストがありますが、以降、単に『マルチキャスト』と呼ぶ場合は L3 マルチキャストを指すこととします

マルチキャストのメリット・デメリット

マルチキャストを利用することで、以下のメリットがあります。

  • 1 つのパケットで複数の端末へ通信できるため、送信元の負荷が軽く、さらに回線効率が良い。例えば宛先として 100 台が対象なら、ユニキャストの場合は 100 必要なところ、マルチキャストであれば 1 パケットでよい。
  • 宛先のアドレス管理が楽。例えば先の例で、受信端末を他のセグメントに持って行った場合、ユニキャストであれば IP カメラ側も宛先 IP アドレスを変更しなければならないが、マルチキャストであれば特に設定変更は必要ない。

逆に以下のデメリットがあります。

  • ユニキャストと比べてマルチキャストルーティングは実装されることが少なく、学習の機会も少ないため、理論や設計・設定が複雑だと誤解されやすい。ゆえにさらに実装されることが少なくなる。
  • TCP には使えない (基本的に片方向通信でしか使えない)。※ただし、上位プロトコルで受信有無を確認し、受信していない場合はユニキャストで要求する、といった実装の工夫は可能 (例えば OSPF の LSACK がそうなっている)

L2マルチキャスト

L2マルチキャストは主に管理系プロトコルで使われます (例えば STP や LLDP 等)。

これらのプロトコルはそれぞれ独自の L2 マルチキャスト MAC アドレスを持っています。

代表的なものを以下の表に示します。

MAC address規格備考
01:00:0c:cc:cc:ccCDP/VTP
01:00:0c:cc:cc:cdPVSTPPer VLAN
01:80:c2:00:00:00IEEE802.1DSTP/RSTP/MSTP
01:80:c2:00:00:01IEEE802.3Xフロー制御(PAUSE)
01:80:c2:00:00:02IEEE802.3ahSlow Protocol(LACP/EFM OAM)
01:80:c2:00:00:03IEEE802.1xEAP
01:80:c2:00:00:0ELLDP
01:80:c2:00:00:10-(All Switch) すべてのスイッチ
01:80:c2:00:00:14IS-IS Level1
01:80:c2:00:00:15IS-IS Level2
01:80:c2:00:00:30

01:80:c2:00:00:3F
IEEE802.1agCFM(L2ping/L2traceroute)
01:00:5E:XX:XX:XXIPv4下23bit(詳細は次章)
33:33:XX:XX:XX:XXIPv6下32bit

L2 マルチキャストにはルーティング機能はないため、L2 ブロードキャストと比べて到達可能範囲は変わりません。このケースにおいて、L2 ブロードキャストと異なる点は何でしょうか。

それは受信側の負荷です。

L2 ブロードキャスト MAC アドレスは、全端末がフレームの中身を理解しなければならないため、全端末で NIC から CPU へ情報が渡されます。その内容が自分と関係なければその内容を破棄します。

一方、L2 マルチキャスト MAC アドレスは、受信端末はその MAC アドレスだけで自分が受信すべきかどうかを判断し、必要であれば CPU に渡します。

L2マルチキャストとL3マルチキャストの関係

L3 マルチキャストを Ethernet で運ぶ場合、L2 マルチキャスト MAC アドレスは、最初の 24 bit は『01005e』となり、その次の 1 bit は『0』になる、というのが規格で決まっています。

残りの 23 bit は、L3 マルチキャスト IP アドレスの下 23 bit です。

こうすることで、受信端末は、MAC アドレスだけを見て、かなりの確率で不要なマルチキャストアドレスを見抜くことができ、CPU 負荷を抑えることができます。

たまたま重複すると、不要なマルチキャストを CPU 処理させてしまうことはありますが、この部分は仕方のないものとして諦めます。

マルチキャストアドレスのレンジと用途

マルチキャストアドレスはアドレス帯によって用途が違います。

具体的には以下のようになっています。

レンジ用途備考
224.0.0.0~224.0.0.255リンクローカルマルチキャストルーティングしない
224.0.1.0~231.255.255.255グローバルインターネット上でマルチキャストルーティングする
232.0.0.0~232.255.255.255SSMソース指定のマルチキャスト
233.0.0.0~233.255.255.255GLOPAS番号を保持した組織固有のアドレス
234.0.0.0~238.255.255.255グローバルインターネット上でマルチキャストルーティングする
239.0.0.0~239.255.255.255プライベートプライベートNW上でマルチキャストルーティングする

224.0.0.0~224.0.0.255 (リンクローカル)

RIP/OSPF/EIGRP 等で利用される、宛先が224.0.0.0〜224.0.0.255のマルチキャストアドレスは、基本的には TTL=1 で動作する、送信元 IP と宛先 IP が同セグメント内でのマルチキャスト通信に限られます。(例外的に、VRRPやHSRP、GLBP は同セグメント内のみの通信であることが前提ですが、TTL は 255 であること、と定められています)

代表的な予約されたリンクローカルアドレスを以下の表に示します。

224.0.0.1全ホスト(ルータ含む)
224.0.0.2全ルータ(PIMv1やIGMPv1/v2、HSRPv1もこのアドレスを利用)
224.0.0.4全DVMRPルータ
224.0.0.5全OSPFルータ
224.0.0.6OSPF DR/BDRルータ
224.0.0.9RIPv2
224.0.0.10EIGRP
224.0.0.13PIMv2
224.0.0.18VRRP
224.0.0.22IGMPv3
224.0.0.102HSRPv2 / GLBP
224.0.0.251multicast DNS
224.0.0.252Link-Local Multicast Name Resolution

224.0.1.0~231.255.255.255 / 234.0.0.0~238.255.255.255 (グローバル)

一般用途のマルチキャストアドレスです。これも一部予約アドレスがあります。

224.0.1.1NTP multicast
224.0.1.39Auto-RP-Announce
224.0.1.40Auto-RP-Discovery

232.0.0.0~232.255.255.255 (SSM)

Source Specific Multicast の略で、ソース (送信元) があらかじめ決められていなければならないマルチキャストアドレスです。

クライアント側では IGMPv3 による要求が必要です。(ただし、ソース指定せず、他のグローバルマルチキャストアドレスと同じ使い方もできます)

233.0.0.0~233.255.255.255 (GLOP)

AS 番号 (16bit: 0~65535) を保持する組織が自由に使えるマルチキャストアドレスです。

第 2 ,第 3 オクテットの 16 bit が、AS 番号になります。

例えばAS 番号 10000 を持つ組織は、10000 = [39*256 + 16] なので233.39.16.0~233.39.16.255のアドレスが自由に使えます。

239.0.0.0~239.255.255.255 (プライベート)

社内 NW などのプライベート NW 内で利用されるマルチキャストアドレスです。

代表的な予約アドレスとしてUPnP (Unisersal Plug and Play: 239.255.255.250) があります。

コメント

タイトルとURLをコピーしました