23.7 IPv6 マルチキャストパケットの転送の設定

MLDv1、MLDv2、MLD プロキシの機能を提供します。MLDv1 と MLDv2 については、ホスト側とルーター側の双方に対応し、インタフェースごとにホストとルーターの機能を使い分けることができます。MLDv1 は RFC2710、MLDv2 は draft-vida-mldv2-07.txt に対応します。MLD プロキシは、下流のインタフェースに存在するリスナーの情報を、上流のインタフェースに中継する機能であり、draft-ietf-magma-igmp-proxy-04.txt に基づいて実装しています。


特定の端末が送信するマルチキャストパケットを複製して、複数の端末に配送します。マルチキャストパケットを送信する端末をソース (source) と呼び、それを受信する端末をリスナー(listener) と呼びます。以下の説明では、マルチキャストパケットを単にパケットと書きます。
ソースが送信するパケットは原則としてすべてのリスナーに届きます。しかし、リスナーによって受信するパケットを変えたければ、リスナーをグループに分けることができます。同じグループに属する端末は同じパケットを受信し、異なるグループに属する端末は異なるパケットを受信します。それぞれのグループには識別子としてマルチキャストアドレスが割り当てられます。
パケットの IP ヘッダの終点アドレスには、グループに対応するマルチキャストアドレスが格納されます。網内のルーターは、このマルチキャストアドレスを見て、パケットの転送先のグループを確認します。網内のルーターはグループごとに編成された経路表を持っているので、その経路表にしたがってパケットを配布します。経路表は、通常、PIM-SM、PIM-DM、DVMRP などのルーティングプロトコルによって自動的に生成されます。


MLD(MulticastListenerDiscovery) の目的は、端末がマルチキャスト網に対して、端末が参加するグループを通知することです。
網内のルーターは端末に対してクエリー(Query) というメッセージを送信します。クエリーを受信した端末は、ルーターに対してレポート (Report) というメッセージを返信します。レポートの中には、端末が参加するグループのマルチキャストアドレスを格納します。レポートを受信したルーターはその情報をルーティングに反映します。
MLDv2 では、受信するパケットのソースを制限することができますが、この機能を実現するためにフィルタモード (FilterMode) とソースリスト (SourceList) を使用します。フィルタモードには INCLUDE と EXCLUDE があり、INCLUDE では許可するソースを列挙し、EXCLUDE では許可しないソースを列挙します。

例えば、次の場合には、2001:x:x:x::1 と 2001:x:x:x::2 をソースとするパケットだけが転送の対象になります。
  • フィルタモード : INCLUDE
  • ソースリスト : { 2001:x:x:x::1, 2001:x:x:x::2 }

MLD のメッセージは原則としてルーターを超えることができません。そこで、端末とマルチキャスト網の間にルーターが介在する場合には、ルーターが MLD プロキシの機能を持つ必要があります。MLD プロキシの機能を持つルーターは、LAN 側に対してクエリを送信し、LAN 側からレポートを受信します。また、そのレポートに含まれる情報を WAN 側に転送します。