17. IPv6
17.7 IPv6 マルチキャストパケットの転送の設定
MLDv1、MLDv2、MLD プロキシの機能を提供します。MLDv1 と MLDv2 については、ホスト側とルーター側の双方に 対応し、インタフェースごとにホストとルーターの機能を使い分けることができます。MLDv1 は RFC2710、MLDv2 は draft-vida-mld-v2-07.txt に対応します。MLD プロキシは、下流のインタフェースに存在するリスナーの情報を、上流のイ ンタフェースに中継する機能であり、draft-ietf-magma-igmp-proxy-04.txt に基づいて実装しています。
マルチキャストは、マルチキャストのルーティングに対応した特別な網で実現されます。マルチキャスト網を構成するルー ターは、特定の端末が送信するマルチキャストパケットを複製して、複数の端末に配送します。マルチキャストパケットを 送信する端末をソース (source) と呼び、それを受信する端末をリスナー (listener) と呼びます。以下の説明では、マルチ キャストパケットを単にパケットと書きます。
ソースが送信するパケットは原則としてすべてのリスナーに届きます。しかし、リスナーによって受信するパケットを変え たければ、リスナーをグループに分けることができます。同じグループに属する端末は同じパケットを受信し、 異なるグ ループに属する端末は異なるパケットを受信します。それぞれのグループには識別子として マルチキャストアドレスが割り 当てられます。
パケットの IP ヘッダの終点アドレスには、グループに対応するマルチキャストアドレスが格納されます。網内のルーター は、このマルチキャストアドレスを見て、パケットの転送先のグループを確認します。網内のルーターはグループごとに編 成された経路表を持っているので、その経路表にしたがってパケットを配布します。経路表は、通常、PIM-SM、PIM-DM、
DVMRP などのルーティングプロトコルによって自動的に生成されます。
MLD(Multicast Listener Discovery) の目的は、端末がマルチキャスト網に対して、端末が参加するグループを通知する ことです。
網内のルーターは端末に対してクエリー (Query) というメッセージを送信します。クエリーを受信した端末は、ルーター に対してレポート (Report) というメッセージを返信します。レポートの中には、端末が参加するグループのマルチキャスト アドレスを格納します。レポートを受信したルーターはその情報をルーティングに反映します。
MLDv2 では、受信するパケットのソースを制限することができますが、この機能を実現するためにフィルタモード (Filter Mode) と ソースリスト (Source List) を使用します。フィルタモードには 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 側に転送しま す。
17.7.1 MLD の動作の設定
[ 書式 ] ipv6 interface mld type[option ... ] ipv6 pp mld type[option ... ] ipv6 tunnel mld type[option ... ] no ipv6 interface mld [type [option ... ]]
no ipv6 pp mld [type [option ... ]]
no ipv6 tunnel mld [type [option ... ]]
[ 設定値 ] ○interface... LAN インタフェース名
○type... MLD の動作方式
●off... MLD は動作しない
●router... MLD ルーターとして動作する
●host... MLD ホストとして動作する
○option... オプション
●version=version... MLD のバージョン
■1...MLDv1
■2...MLDv2
■1,2...MLDv1 と MLDv2 の両方に対応する。(MLDv1 互換モード )
● syslog=switch... 詳細な情報を syslog に出力するか否か
■on...表示する
■ off...表示しない
●robust-variable=VALUE ( 1 .. 10)
■MLD で規定される Robust Variable の値を設定する。
[ 説明 ] インタフェースの MLD の動作を設定する。
[ 初期値 ] type=off version= 1,2 syslog= off robust-variable= 2
156 17.IPv6
17.7.2 MLD の静的な設定を登録するコマンド
[ 書式 ] ipv6 interface mld static group [filter_modesource ...]
ipv6 pp mld static group [filter_modesource ...]
ipv6 tunnel mld static group [filter_modesource ...]
no ipv6 interface mld static [group [filter_modesource ...]]
no ipv6 pp mld static [group [filter_modesource ...]]
no ipv6 tunnel mld static [group [filter_modesource ...]]
[ 設定値 ] ○interface... LAN インタフェース名
○group... グループのマルチキャストアドレス
○filter_mode... フィルタモード
●include... MLD の "INCLUDE" モード
●exclude... MLD の "EXCLUDE" モード
○source... マルチキャストパケットの送信元のアドレス
[ 説明 ] 指定したグループについて、常にリスナーが存在するものとみなす。
このコマンドは、MLD をサポートするリスナーがいないときに設定する。
filter_modeと sourceは、マルチキャストパケットの送信元を限定するものである。 filter_modeとして includeを指定したときには、 sourceとして受信したい送信元を列挙する。 filter_modeとして excludeを指 定したときには、 sourceとして受信したくない送信元を列挙する。
[ ノート ] このコマンドで設定されたリスナーは、 ipv6 interface mldコマンドで hostを設定したインタフェース で通知される。もし、このインタフェースが MLDv1 を使う場合には、 filter_modeや sourceの値は無視 される。
17.7.3 IPv6 マルチキャストの転送モードの設定
[ 書式 ] ipv6 multicast routing process mode no ipv6 multicast routing process
[ 設定値 ] ○mode
●fast... ファストパスで処理する
●normal... ノーマルパスで処理する
[ 説明 ] IPv6 マルチキャストの転送モードを設定する。
[ ノート ] パケットの受信インタフェースと送信インタフェースが、LAN インタフェースか PPPoE インタフェー
スのいずれかであれば、ファストパスで処理することができる。そうでなければ、このコマンドの設定に 関係なく、ノーマルパスとなる。
[ 初期値 ] fast