コンフィグレーションガイド Vol.2


9.2.1 MACアドレスの学習

IGMP snoopingが設定されたVLANでIGMPメッセージを受信することによってマルチキャストMACアドレスをダイナミックに学習します。学習したマルチキャストMACアドレスはMACアドレステーブルに登録します。

〈この項の構成〉

(1) エントリの登録

次に示すIGMPメッセージを受信すると,メッセージに含まれるグループアドレスからマルチキャストMACアドレスを学習し,受信したポートにだけマルチキャストグループ宛てのトラフィックを中継するエントリを作成します。以降,これらのメッセージをIGMP Report(参加要求)メッセージと呼びます。

IPv4マルチキャストパケットの宛先MACアドレスはIPv4アドレスの下位23ビットをMACアドレスにコピーして生成します。そのため,下位23ビットが同じIPv4アドレスはMACアドレスが重複します。例えば,224.10.10.10と225.10.10.10はどちらもマルチキャストMACアドレスは0100.5E0A.0A0Aとなります。これらのアドレスについては,レイヤ2中継で同一MACアドレス宛てのパケットとして取り扱います。IPv4マルチキャストアドレスとMACアドレスの対応を次の図に示します。

図9‒3 IPv4マルチキャストアドレスとMACアドレスの対応

[図データ]

(2) IGMPv2メッセージ受信によるエントリの削除

IGMPv2 Leaveメッセージを受信すると,受信したポートだけエントリから削除し,このポートへのマルチキャストトラフィックの中継を停止します。VLAN内のすべてのポートにグループメンバが存在しなくなった時点で,エントリを削除します。

(a) IGMPクエリア機能設定時の動作

本装置は,IGMPv2 Leaveメッセージを受信したポートからGroup-Specific Queryメッセージを1秒間隔で2回送信します。応答がない場合にエントリからこのポートだけを削除します。

(b) IGMP即時離脱機能設定時の動作

本装置は,IGMPv2 Leaveメッセージを受信したポートをエントリからすぐに削除します。IGMPクエリア機能を設定していても,Group-Specific Queryメッセージは送信しません。

(3) IGMPv3メッセージ受信によるエントリの削除

IGMPv3 Report(離脱要求)メッセージを受信すると,受信したポートだけエントリから削除し,このポートへのマルチキャストトラフィックの中継を停止します。VLAN内のすべてのポートにグループメンバが存在しなくなった時点で,エントリを削除します。

(a) IGMPクエリア機能設定時の動作

本装置は,IGMPv3 Report(離脱要求)メッセージを受信したポートからGroup-Specific Queryメッセージを1秒間隔で2回送信します。応答がない場合にエントリからこのポートだけを削除します。

ただし,受信したIGMPv3 Report(離脱要求)メッセージのマルチキャストアドレスレコードタイプがBLOCK_OLD_SOURCESの場合,これらの削除処理が実行されるのは,該当するVLANにIPv4マルチキャストを使用していないときだけです。

(b) IGMP即時離脱機能設定時の動作

本装置は,マルチキャストアドレスレコードタイプがCHANGE_TO_INCLUDE_MODEのIGMPv3 Report(離脱要求)メッセージを受信したポートをエントリからすぐに削除します。

IGMPクエリア機能を設定していても,Group-Specific Queryメッセージは送信しません。

(4) エントリのエージング

IGMP Report(参加要求)メッセージを受信してから一定時間経過すると,マルチキャストルータは直接接続するインタフェース上にグループメンバが存在するかを確認するため,定期的にIGMP Queryメッセージを送信します。本装置はルータからのIGMP Queryメッセージを受信した場合,VLAN内の全ポートに中継します。IGMP Queryメッセージへの応答であるIGMP Report(参加要求)メッセージを受信しない場合,エントリからこのポートだけを削除します。すべてのポートから応答がない場合は,エントリ自体を削除します。

本装置では,ポートへの中継を停止するタイムアウト時間は260秒(コンフィグレーションコマンドip igmp query-intervalのデフォルト値から算出)であり,この間にIGMP Report(参加要求)メッセージを受信しない場合,該当するポートへの中継を停止します。

次の場合,タイムアウト時間は動的に設定します。

また,次の場合,タイムアウト時間はデフォルト値での運用となります。

注 タイムアウト時間は,Query Interval(QQICフィールドの値)×2+Query Response Intervalで算出します。