IPv6マルチキャストはL2機能でも、ある程度の制御ができます。MLDはマルチキャストグループへの参加を表明するプロトコルですが、MLDをL2スイッチが覗き見をする事によって、様々な制御を実施する事ができます。
概要
IPv6 MLDとは、IPv4 IGMPに相当するプロトコルです。MLD snoopingとは、MLDを覗き見する事によって、マルチキャストパケットを不要なポートのみに転送する技術です。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
Switch(config)# ipv6 mld snooping Switch(config)# ipv6 mld snooping vlan <id> Switch(config)# ipv6 mld snooping vlan <id> static <ipv6_addr> interface <interface> Switch(config)# ipv6 mld snooping vlan <id> mrouter interface <interface> Switch(config)# ipv6 mld snooping robustness-variable <value> Switch(config)# ipv6 mld snooping vlan <id> robustness-variable <value> Switch(config)# ipv6 mld snooping last-listener-query-count <count> Switch(config)# ipv6 mld snooping vlan <id> last-listener-query-count <count> Switch(config)# ipv6 mld snooping last-listener-query-interval <interval> Switch(config)# ipv6 mld snooping vlan <id> last-listener-query-interval <interval> Switch(config)# ipv6 mld snooping vlan <id> immediate-leave
構成図
以下の環境で行います。
Multicast Source f0/0 +--------+::1 f0/1+------+ | R1 +----------+ | +--------+ | | Multicast Reciever f0/0 | | +--------+::3 f0/3| | | R3 +----------+ SW1 | +--------+ | | Multicast Reciever f0/0 | | +--------+::5 f0/5 | | | R5 +----------+ | +--------+ +------+ FEC0::100:0/125
[R1] ipv6 unicast-routing ipv6 multicast-routing ! interface FastEthernet0/0 ipv6 address FEC0::100:1/125 ipv6 address FE80::1 link-local [R3] ipv6 unicast-routing ! interface FastEthernet0/0 ipv6 address FEC0::100:3/125 ipv6 address FE80::3 link-local ipv6 mld join-group FF12::35 [R5] ipv6 unicast-routing ! interface FastEthernet0/0 ipv6 address FEC0::100:5/125 ipv6 address FE80::5 link-local ipv6 mld join-group FF12::35 [SW1] sdm prefer dual-ipv4-and-ipv6 default
設定全文は下記ファイルです。詳細設定は下記を参照ください。
仕様説明
MLD snooping
以下のコマンドでMLD snoopingを有効化する事ができます。IPv4 IGMP snoopingはデフォルトで有効であるのに対し、IPv6 MLD snoopingはデフォルトで無効である事に注意して下さい。
コマンドライン体系がやや複雑なのですが、全体に対する有効化コマンドとVLAN単位の有効化コマンドの両方を入力しないとMLD snoopingが有効にならない事に注意が必要です。
Switch(config)# ipv6 mld snooping Switch(config)# ipv6 mld snooping vlan <id>
static forwarding
MLDをサポートしないMulticast Clientの場合は、以下のようなstaticエントリを定義する事でマルチキャストパケットを転送する事ができます。
Switch(config)# ipv6 mld snooping vlan <id> static <ipv6_addr> interface <interface>
マルチキャストルータがMLDをサポートしない場合は、以下のようなstaticエントリを定義します。
Switch(config)# ipv6 mld snooping vlan <id> mrouter interface <interface>
MLD tuning
multicast memberから離脱する条件を以下のようなコマンドでチューニングする事ができます。具体的には、タイムアウトやリトライ回数を定義できます。
Switch(config)# ipv6 mld snooping robustness-variable <value> Switch(config)# ipv6 mld snooping vlan <id> robustness-variable <value> Switch(config)# ipv6 mld snooping last-listener-query-count <count> Switch(config)# ipv6 mld snooping vlan <id> last-listener-query-count <count> Switch(config)# ipv6 mld snooping last-listener-query-interval <interval> Switch(config)# ipv6 mld snooping vlan <id> last-listener-query-interval <interval>
MLD immediate leave
IPv4と同様に、以下のコマンドでimmediate leaveを定義する事ができます。
Switch(config)# ipv6 mld snooping vlan <id> immediate-leave
MLD snooping
設定投入
以下のコマンドを投入し、vlan 100のMLD snoopingを有効にします。
[SW1] ipv6 mld snooping ipv6 mld snooping vlan 100
動作確認
showコマンドにより設定を確認します。
[SW1] SW1#show ipv6 mld snooping Global MLD Snooping configuration: ------------------------------------------- MLD snooping : Enabled MLDv2 snooping (minimal) : Enabled Listener message suppression : Enabled TCN solicit query : Disabled TCN flood query count : 2 Robustness variable : 2 Last listener query count : 2 Last listener query interval : 1000 Vlan 1: -------- MLD snooping : Enabled MLD immediate leave : Disabled Robustness variable : 2 Last listener query count : 2 Last listener query interval : 1000 Vlan 100: -------- MLD snooping : Enabled MLD immediate leave : Disabled Robustness variable : 2 Last listener query count : 2 Last listener query interval : 1000 SW1#
static forwarding
設定投入
以下のコマンドを投入し、multicast clientおよびmulticast routerをstaticに定義します。
[SW1] ipv6 mld snooping vlan 100 mrouter interface FastEthernet 0/1 ipv6 mld snooping vlan 100 static FF12::3 interface Fa0/5
動作確認
以下showコマンドにより、SW1に接続されたmulticast router一覧を表示させます。Fa0/1がstaticに定義されたmulticast routerである事が分かります。
[SW1] SW1#show ipv6 mld snooping mrouter vlan 100 Vlan ports ---- ----- 100 Fa0/1(static) SW1#
以下showコマンドにより、staticに定義したmulticast clientを確認します。
[SW1] SW1#show ipv6 mld snooping address user Vlan Group Type Version Port List ----------------------------------------------------------------------- 100 FF12::3 user Fa0/1, Fa0/5 SW1#[/code]
MLD tuning
設定投入
通常はMLD queryに対して2回応答がなかった場合にmulticastの転送ポートから除外されますが、3回応答がなかった場合にmulticastの転送ポートから除外されるよう変更します。
[SW1] ipv6 mld snooping robustness-variable 3
動作確認
showコマンドにより設定を確認します。
[SW1] SW1#show ipv6 mld snooping querier vlan 100 IP address : FE80::1 MLD version : v2 Port : Fa0/1 Max response time : 10s Query interval : 125s Robustness variable : 2 SW1#show ipv6 mld snooping vlan 100 Global MLD Snooping configuration: ------------------------------------------- MLD snooping : Enabled MLDv2 snooping (minimal) : Enabled Listener message suppression : Enabled TCN solicit query : Disabled TCN flood query count : 2 Robustness variable : 3 Last listener query count : 2 Last listener query interval : 1000 Vlan 100: -------- MLD snooping : Enabled MLD immediate leave : Disabled Robustness variable : 3 Last listener query count : 2 Last listener query interval : 1000 SW1#
MLD immediate leave
設定投入
vlan 100に対してimmediate-leaveを有効にします。
[SW1] ipv6 mld snooping vlan 100 immediate-leave
動作確認
以下showコマンドにより設定を確認します。
[SW1] SW1#show ipv6 mld snooping vlan 100 Global MLD Snooping configuration: ------------------------------------------- MLD snooping : Enabled MLDv2 snooping (minimal) : Enabled Listener message suppression : Enabled TCN solicit query : Disabled TCN flood query count : 2 Robustness variable : 3 Last listener query count : 2 Last listener query interval : 1000 Vlan 100: -------- MLD snooping : Enabled MLD immediate leave : Enabled Robustness variable : 3 Last listener query count : 2 Last listener query interval : 1000 SW1#