IPv6でのマルチキャスト
マルチキャストは1つのデータを複数の受信者のグループに効率よく転送するためのものです。IPv4でもマルチキャストは存在していてよく利用されていますが、IPv6ではマルチキャストの利用が拡大しています。
IPv4のときのように、ルーティングプロトコルのパケットはマルチキャストで転送されます。また、IPv4のブロードキャストはマルチキャストに含まれるようになりました。さらに、IPv6でプラグアンドプレイを実現するためのNDPや重複アドレスの検出、IPv4でのARPの代替機能として、マルチキャストはIPv6ネットワークで重要な役割を果たしています。
※マルチキャストのメリットやユニキャスト、ブロードキャストとの比較については、過去の
◆マルチキャストってなに? 概要編
◆マルチキャストってなに? ユニキャストの場合
◆マルチキャストってなに? ブロードキャストの場合
◆マルチキャストってなに? マルチキャストの場合
をご覧ください。
IPv6マルチキャストアドレス
IPv4マルチキャストアドレスは、クラスDのIPアドレスでした。IPv6でもマルチキャストアドレスとして利用するアドレスレンジが決められています。IPv6マルチキャストアドレスは上位8ビットが「1111 1111」であるアドレスです。これを16進数の表記で考えると、
IPv6マルチキャストアドレス = FF00::/8
です。
この図にあるように、先行する8ビットの「1」に続く、残りの8ビットにフラグとスコープという意味を持たせています。
フラグは、マルチキャストアドレスのタイプを表しています。フラグの値とマルチキャストアドレスのタイプは、次のようになります。
| ビット表記 | 16進表記 | マルチキャストアドレスのタイプ |
| 0000 | 0 | 永続マルチキャストアドレス |
| 0001 | 1 | 一時マルチキャストアドレス |
スコープは、マルチキャスパケットの到達する範囲を示すもので、次のように なります。
| ビット表記 | 16進表記 | スコープのタイプ |
| 0001 | 1 | インタフェースローカルスコープ |
| 0010 | 2 | リンクローカルスコープ |
| 0011 | 3 | サブネットローカルスコープ |
| 0100 | 4 | 管理者ローカルスコープ |
| 0101 | 5 | サイトローカルスコープ |
| 1000 | 8 | 組織スコープスコープ |
| 1110 | E | グローバルスコープ |
こうしたフラグとスコープによって、IPv6マルチキャストアドレスの性質やそのマルチキャストアドレスを指定したパケットが到達する範囲をあらかじめ決めることができます。
たとえば、FF02::/16というマルチキャストアドレスは、永続的に割り当てられていて、パケットはある1つのサブネット上のみで転送されます。FF15::/16というマルチキャストアドレスは、一時的に割り当てられて、あるサイトの中でのみ有効であることがわかります。
予約済みのIPv6マルチキャストアドレス
IPv6マルチキャストアドレスは、すでにIANAが予約しているものがあります。以下に主なものをあげておきます。
全ノードマルチキャストアドレス
FF01::1
FF02::1
全ルータマルチキャストアドレス
FF01::2
FF02::2
FF05::2
要請ノードマルチキャストアドレス
FF02:0:0:0:0:1:FF00:0000~
FF02:0:0:0:0:1:FFFF:FFFF
全ノードマルチキャストアドレスは、すべてのIPv6ホストを意味するマルチキャストアドレスです。IPv6ホストは必ず全ノードマルチキャストアドレスに参加しなければなりません。全ルータマルチキャストアドレスは、IPv6ルータが必ず参加しなければならないアドレスです。
要請ノードマルチキャストアドレスは、インタフェースに割り当てられたユニキャストアドレス、エニーキャストアドレスから計算されます。これは、アドレス解決やアドレス重複の検出などに利用する重要なマルチキャストアドレスです。
他にもスコープを固定していない予約済みのIPv6マルチキャストが存在します。
レイヤ2アドレスとのマッピング
IPv6はレイヤ3のプロトコルで、実際にネットワーク上に送信するためには、レイヤ2ヘッダをさらに付加する必要があります。PPPやHDLCといったポイントツーポイントの場合は、特に問題ありません。ですが、イーサネットやフレームリレー、ATMなどのマルチアクセスネットワークでは、レイヤ3のIPv6マルチキャストアドレスに応じたレイヤ2アドレスのマッピングを行う必要があります。
フレームリレー、ATMはVC(Virtual Circuit)を構成します。基本的にVCはポイントツーポイント接続です。フレームリレーやATMはマルチアクセスネットワークといっても、仮想的なポイントツーポイントのVCを複数束ねているだけです。
フレームリレーではDLCIによって、ATMではVPI/VCIによってVCを識別します。これらは、いわばレイヤ2アドレスです。そして、ユニキャストのレイヤ3アドレスとDLCIやVPI/VCIといったVCを識別する情報のマッピングによって、適切なレイヤ2ヘッダを構成することができます。
ブロードキャスト、マルチキャストアドレスを持つパケットを転送するときは、特定のVCを利用するように設定できます。たとえば、Ciscoルータの場合、特定のフレームリレーVCにブロードキャスト、マルチキャストアドレスのパケットを転送するときには、
(config-if)#frame-relay map [protocol] [layer3address] [dlci] broadcast
というように、[broadcast]のオプションを設定します。
イーサネットでは、VCという考え方はありません。純粋にマルチアクセスの接続を行うことができます。ユニキャストの通信の場合、ARPによってレイヤ3アドレスとレイヤ2アドレス、つまりMACアドレスのマッピングを行い、イーサネットヘッダを作成して、データを転送することができます。ブロードキャストの場合は、MACアドレスは48ビットオール「1」で指定すればいいです。
ですが、マルチキャストの場合はそうはいきません。特別なマルチキャストグループを表すMACアドレスを指定する必要があります。IPv4マルチキャストアドレスの場合は、「マルチキャストなアドレス」にあるようにIPv4マルチキャストアドレスに対応したマルチキャストのMACアドレスが決められています。
IPv6マルチキャストアドレス用に、新たに「33:33」という16ビットで始まるMACアドレスが予約されています。残りの32ビットは、IPv6アドレスの下位32ビットをそのままコピーすることになります。
つまり、
IPv6マルチキャスト:FF02::1
MACアドレス :33:33:00:00:00:1
といった対応になります。







