UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Cisco - IPv6のマルチキャストルーティング




■IPv6マルチキャストルーティング

IPv4でもIPv6でもマルチキャストの基本的な概念に大きな違いはありません。但しIPv6ではマルチキャストルータ-ホスト間でMLDと呼ばれるプロトコルが利用されます。このMLDがICMPv6を利用します。

マルチキャストを構成するためには複数のプロトコルが動作します。それらがどういった箇所で使われるのか整理したのが下記です。最初にあげられるIPv4との大きな違いはPIM-DMがIPv6ではサポートされていません。




■MLDv1

MLDv1はIPv4のIGMPv2に該当します。以下の3種類のメッセージが定義されておりICMPv6が利用されます。

・Multicast listener query ICMPタイプ130

このメッセージはルータがリスナーに対して受信を希望するマルチキャストグループが存在するかどうかを問い合わせるために使用されます。リスナーを探す方法は2種類あり、general query と address specific queryです。general query は"FF02::1"に送信することでリンクローカルスコープ内に存在するリスナーを検出することが可能です。address specific queryはマルチキャストアドレスをセットしqueryをリンク上に送信することで特定のマルチキャストアドレスに対するリスナーを検出できます。

・Multicast listener report ICMPタイプ131

このメッセージはリスナーがマルチキャストの受信を希望するとき希望するマルチキャストグループをルータに通知します。クエリの応答にも利用されます。

・Multicast listener done ICMPタイプ132

このメッセージはリスナーがマルチキャストの受信が不要になったときに送信されます。リンクローカルスコープのFF02::2宛てに送信されます。


■MLDv2

MLDv2はIPv4のIGMPv3に相当します。MLDv1にPIM-SSMに対応するための機能拡張を施したのがMLDv2です。MLDv2はMLDv1と互換性があります。このため現在ではMLDv2が主流となっています。MLDv2には以下の2種類のメッセージが定義されています。


・Multicast listener query ICMPタイプ130

このメッセージはMLDv1のときと同様の役割です。

・Multicast listener report ICMPタイプ143

これもMLDv1のときと同様の役割と同じです。追加された機能として特定の送信元アドレスから送信されたパケットのみ ( または特定の送信元アドレスを除くアドレスから送信されたパケットのみ ) を選択して受信することができるようになりました。PIM-SSMの実行時にはこの機能が利用されます。またMLDv2ではMLDv1のMulticast listener doneが廃止されdoneが提供していた機能はこのreportが包括します。

■IPv6マルチキャストアドレス

IPv6におけるマルチキャストのアドレスプレフィックスは以下のようになります。

FF00::/8

マルチキャストアドレスの中にはスコープフィールドという領域があります。



このスコープフィールドの4bitを操作することで同一拠点内への一斉同報や特定セグメント内での映像配信といったように配信範囲の制御を簡単に行うことができます。一般的によく使われる5つのスコープを以下に示します。

名称 送信先  例 
リンクローカルスコープ
( ブロードキャストの代替 ) 
FF02::101  同一セグメント上で稼働している全てのノードに送信します。 
サイトローカルスコープ  FF05::101  同一拠点内で稼働しているノードに送信します。 
組織ローカルスコープ  FF08::101  同一組織内で稼働しているノードに送信します。 
グローバルスコープ  FF0E:101  インターネット上で稼働している全てのノードに送信します。 

IPv4にもスコープの概念は存在しますのでIPv4との比較を以下にまとめます。

マルチキャストグループ IPv4  IPv6 
リンクローカルスコープ   
同一リンク上の全ノード  224.0.0.1  FF02::1 
同一リンク上の全ルータ  224.0.0.2  FF02::2 
同一リンク上の全OSPFルータ  224.0.0.5  FF02::5 
同一リンク上の全OSPF DR  224.0.0.6  FF02::6 
RIP  224.0.0.9  FF02::9 
EIGRP  224.0.0.10  FF02::A 
DHCPサーバ/リレーエージェント  224.0.0.12  FF02::1:2 
PIM  224.0.0.13  FF02::D 
サイトローカルスコープ   
サイト内の全ルータ  FF05::2 
サイト内の全DHCPサーバ  FF05::1:3 
組織ローカルスコープ   
組織内でマルチキャストを使用するノード  239.192.0.0  FF08:: 
グローバルスコープ  
インターネット上でマルチキャストを使用するノード  224.0.1.0~
238.255.255.255 
FF0E:: 

■IPv6マルチキャストの設定

IPv6マルチキャストではPIM-DMがサポートされません。デフォルトではPIM-SMが有効となりますのでPIMの有効化とRPの指定が必須となります。IPv6マルチキャストルーティングを有効にするには以下のコマンドを実施します。

ipv6 multicast-routing

IPv4ではインターフェイスごとにPIMを有効にする必要がありましたが、IPv6では上記コマンドを実施すると全インターフェイスで自動で有効となります。

# show ipv6 pim interface
Interface          PIM  Nbr   Hello  DR
                        Count Intvl  Prior

VoIP-Null0         off  0     30     1
    Address: ::
    DR     : not elected
FastEthernet0/0    on   0     30     1
    Address: FE80::1
    DR     : this system
FastEthernet0/1    on   1     30     1
    Address: FE80::1
    DR     : FE80::2
Tunnel0            off  0     30     1
    Address: FE80::C601:11FF:FEA4:0
    DR     : not elected

特定のインターフェイスで無効にしたい場合は以下のコマンドを実施します。

interface FastEthernet0/0
 no ipv6 pim

RPを指定する場合は以下のコマンドを実施します。

ipv6 pim rp-address 2001:DB8:0:1::1

また、マルチキャストルーティングを有効とするとTunnelインターフェイスが自動で作成されます。これはIPv6のマルチキャスト送信元がRPにRegisterメッセージを送信する際に使用されます。

# show ipv6 pim tunnel
Tunnel0*
  Type  : PIM Encap
  RP    : Embedded RP Tunnel
  Source: 2001:DB8:0:1::1
Tunnel1*
  Type  : PIM Encap
  RP    : 2001:DB8:0:1::1*
  Source: 2001:DB8:0:1::1
Tunnel2*
  Type  : PIM Decap
  RP    : 2001:DB8:0:1::1*
  Source:  -

IPv6のマルチキャストルーティングテーブルを表示するには以下のコマンドを実行します。

# show ipv6 mroute




 
 関連記事
 IPv6の概要
 IPv6の挙動
 IPv6の基本設定
 IPv6のルーティング ( OSPFv3 )の設定
 IPv6のルーティング ( EIGRPv6 )の設定
 IPv6のルーティング ( MP-BGP )の設定
  IPv6のマルチキャストルーティングの設定
 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.