マルチキャストルーティングの機能説明
マルチキャストルーティングは、ネットワーク内にマルチキャストパケットをルーティングする機能です。マルチキャストルーティングプロトコルのPIM、およびマルチキャストグループ管理プロトコルのIGMPとMLDを使用することで、複数のサブネットで構成されるネットワーク内でマルチキャストパケットをルーティングできます。
セカンダリーIPアドレスではPIMおよびIGMPは動作しません。
マルチキャストルーティング
マルチキャストルーティングの有効化
装置のマルチキャストルーティングを有効にするには、IPv4の場合はip multicast-routingコマンド、IPv6の場合はipv6 multicast-routingコマンドを使用します。
マルチキャストルーティングは、デフォルト設定で無効です。マルチキャストルーティングが無効な場合、PIMが有効でも装置はマルチキャストパケットをルーティングしません。
PIMは、複数のサブネットで構成されたネットワークでマルチキャストパケットをルーティングするためのディストリビューションツリーを作成し、管理するプロトコルです。
PIMには、スパースモード(以後、PIM-SM)とSSMモード(以後、PIM-SSM)があります。
装置単体でマルチキャストルーティングを行う場合も、PIMの設定が必要です。
- PIM-SM
送信元が1台の場合、PIM-SMは送信元からレシーバー/リスナーまでのディストリビューションツリーを構成します。
ディストリビューションツリー
送信元からレシーバー/リスナーまでのディストリビューションツリーを送信元ツリーと呼びます。他の送信元が構成したディストリビューションツリーを共有するツリーを共有ツリーと呼びます。複数の送信元が存在する場合は、送信元ツリーと共有ツリーを組み合わせてディストリビューションツリーを構成できます。
共有ツリーには、中心となる装置が必要です。中心となる装置をランデブーポイント(以後、RP)と呼びます。送信元からRPまでが送信元ツリー、RPからマルチキャストグループまでが共有ツリーとなります。
共有ツリーとRP
- PIM-SSM
PIM-SSMは、送信元からマルチキャストグループまでの送信元ツリーを作成します。
PIM-SMとPIM-SSMは、デフォルト設定で無効です。
PIM-SMを有効にするには、IPv4の場合はip pim sparse-modeコマンド、IPv6の場合はipv6 pim sparse-modeコマンドを使用します。
PIM-SSMを有効にするには、IPv4の場合はip pim ssmコマンド、IPv6の場合はipv6 pim ssmコマンドを使用します。
装置として、PIMネイバーが確立できる最大VLANインターフェース数は100個です。ただし、併用する機能や環境により最大数に満たない場合があります。
ip pim ssmコマンドでdefaultパラメーターを指定した場合、マルチキャストグループは232.0.0.0/8となります。ipv6 pim ssmコマンドでdefaultパラメーターを指定した場合、マルチキャストグループはff3x::/32となります。マルチキャストグループを変更する場合は、使用したいマルチキャストグループをアクセスリストで定義し、各コマンドでオプションのrangeパラメーターでアクセスリストを指定してください。
IGMPとMLDは、マルチキャストのレシーバー/リスナーが参加するマルチキャストグループを管理するプロトコルです。IPv4の場合はIGMP、IPv6の場合はMLDを使用します。
IGMPとMLDは、デフォルト設定で無効です。IGMPを有効にするには、ip igmp enableコマンドを使用します。MLDを有効にするには、ipv6 mld enableコマンドを使用します。
スタティックマルチキャストルートの作成
PIMがネットワークに到達するためのリバースパス転送(以後、RPF)インターフェースを決定するために、スタティックマルチキャストルートを作成し、RPFアドレスを設定します。
デフォルト設定では、スタティックマルチキャストルートは作成されていません。スタティックマルチキャストルートを作成するには、IPv4の場合はip mrouteコマンド、IPv6の場合はipv6 mrouteコマンドを使用します。
RPの設定
PIM-SMによって作成されるディストリビューションツリーの中心となる装置が、RPです。
マルチキャストパケットのレシーバー/リスナーが接続されている装置の情報は、RPに登録されます。マルチキャストの送信元は、RPにマルチキャストパケットを送信します。RPがマルチキャストパケットを中継することで、レシーバー/リスナーにマルチキャストパケットが送信されます。
装置をRPにするには、IPv4の場合はip pim rp-candidateコマンド、IPv6の場合はipv6 pim bsr candidate rpコマンドを使用し、装置をRP候補に設定します。RP候補に設定された装置は、ブートストラップルーター(以後、BSR)にRP候補であることをアドバタイズします。BSRは、ディストリビューションツリーの状況に応じて、RP候補の装置の中からRPを決定します。
また、マルチキャストグループに対するスタティックなRPを定義することもできます。マルチキャストグループに対するスタティックなRPを定義するには、IPv4の場合はip pim rp-addressコマンド、IPv6の場合はipv6 pim rp-addressコマンドを使用します。
装置単体でマルチキャストルーティングを行う場合も、RPの設定が必要です。
埋め込みランデブーポイント(Embedded RP)
IPv6では、RPのアドレスをIPv6マルチキャストグループアドレス内にエンコードした埋め込みランデブーポイント(以後、Embedded RP)をデフォルトで設定しています。Embedded RPにより、スケーラブルなドメイン間マルチキャストが容易に展開可能となり、ドメイン内のマルチキャスト構成も簡素化されます。
Embedded RPが無効な状態から有効にするには、ipv6 pim rp embeddedコマンドを使用します。
BSRの設定
BSRの役割は、RPとマルチキャストグループ間のマッピングの自動化です。
BSRは、RP候補の情報を収集し、ネットワーク内のルーターにアドバタイズします。RPの情報を受信したルーターは、RPのIPアドレスを学習し、最適なRPを決定します。これにより、RPの情報はネットワーク内に周知され、RPとマルチキャストグループがマッピングされます。
BSRによるRP情報のアドバタイズ
装置をBSRにするには、IPv4の場合はip pim bsr-candidateコマンド、IPv6の場合はipv6 pim bsr candidate bsrコマンドを使用し、装置をBSR候補に設定します。
装置は、ネットワーク内にBSR候補であることをアドバタイズし、優先度の値が大きい装置がBSRになります。優先度の値が同じBSR候補がある場合、IPv4/IPv6アドレスの大きい装置がBSRになります。
代表ルーター(DR)の設定
PIM-SMを有効にした装置がネットワーク内に複数存在する場合、マルチキャストパケットを中継する際に重複して転送しないよう、中継の役割を担う代表ルーター(以後、DR)を選出します。
DRは、設定された優先度の値で決定します。優先度の値が大きい装置がDRになります。装置のDRの優先度を設定するには、IPv4の場合はip pim dr-priorityコマンド、IPv6の場合はipv6 pim dr-priorityコマンドを使用します。
優先度の値が同じ装置がある場合、IPv4/IPv6アドレスが最も大きな装置がDRになります。
DRの選出と動作
なお、PIM Helloメッセージで優先度をアドバタイズしていない装置が存在する場合、その装置に最も高い優先度が設定され、DRに選出されます。PIM Helloメッセージで優先度をアドバタイズしない装置が複数存在する場合、IPv4/IPv6アドレスが最も大きな装置がDRになります。
PIM Helloメッセージは、PIMネイバーを検索するために装置が送信するメッセージです。
ラストホップルーターが使用するディストリビューションツリーの選択
装置がラストホップルーターの場合、トラフィックのグループごとに最初のパケットが到達した後に装置が使用するツリーを選択できます。デフォルト設定では、共有ツリーを使用しています。使用するツリーを送信元ツリーに変更する場合は、パラメーター0を指定して、IPv4の場合はip pim spt-thresholdコマンド、IPv6の場合はipv6 pim spt-thresholdコマンドを使用します。
ラストホップルーターが使用するディストリビューションツリーの選択
パッシブモードの設定
パッシブモードを設定したインターフェースでは、PIMの制御パケットを送受信しません。PIMネイバーがPIMに参加することを防ぎます。
パッシブモードは、デフォルト設定では無効です。パッシブモードを有効にするには、IPv4ではip pim passiveコマンド、IPv6ではipv6 pim passiveコマンドを使用します。
IGMPによるマルチキャストグループ管理
IGMPには3種類のバージョン(v1、v2、v3)があります。バージョンによって挙動が異なる場合、説明内でバージョンを表記しています。
マルチキャストグループへ参加するホストは、マルチキャスト用のアプリケーションでマルチキャストグループへの参加を表明するJoinメッセージを装置に送信します。装置は、ホストの存在を確認するためにIGMPクエリーを送信します。ホストはIGMPクエリーを受信すると、IGMPレポートを装置へ返信します。これにより、装置はホスト存在を確認し、ホストはレシーバーとしてマルチキャストグループに参加します。
IGMPによるマルチキャストグループへの参加
IGMPv1では、装置が送信するIGMPクエリーに返信がない場合、レシーバーはマルチキャストグループから脱退したと判断されます。
IGMPv2とIGMPv3では、レシーバーがマルチキャストグループから脱退するときは、装置に脱退メッセージを送信します。脱退メッセージを受信した装置は、レシーバーの存在を確認するクエリーのほかに、マルチキャストグループ固有またはマルチキャストグループ送信元固有のクエリーを送信します。これに返信がなかった場合、レシーバーは削除されます。
IGMPv1では、マルチキャストグループ内のすべてのレシーバーからIGMPクエリーに返信がない場合、マルチキャストグループは削除されます。
IGMPv2とIGMPv3では、ip igmp last-member-query-intervalコマンドで指定した送信間隔内に、マルチキャストグループ固有またはマルチキャストグループ送信元固有のクエリーにレシーバーから返信がなかった場合、装置は次のマルチキャストグループ固有またはマルチキャストグループ送信元固有のクエリーを送信します。
MLDによるマルチキャストグループ管理
装置は、リスナーの存在を確認するためにMLDクエリーを送信します。リスナーはMLDクエリーを受信すると、MLDレポートを装置へ返信します。これにより、装置はリスナーの存在を確認し、リスナーはマルチキャストグループに参加します。装置は、マルチキャストグループ宛てにマルチキャストパケットを送信します。
MLDによるマルチキャストグループへの参加
リスナーがマルチキャストグループから脱退するときは、装置に脱退メッセージを送信します。脱退メッセージを受信した装置は、リスナーの存在を確認するクエリーのほかに、マルチキャストグループ固有またはマルチキャストグループ送信元固有のクエリーを送信します。これに返信がなかった場合、レシーバーは削除されます。
マルチキャストグループ内にリスナーが残っているかどうかを確認するために、グループ固有またはグループ送信元固有のクエリーの送信数を設定しています。設定された数のクエリーが送信されてもMLDレポートの返信がなかった場合、マルチキャストグループにリスナーが存在しないと判断し、マルチキャストグループが削除されます。
スタティックマルチキャストグループの作成
ホストがIGMPに対応していない場合のために、スタティックなマルチキャストグループを作成できます。
スタティックマルチキャストグループは、デフォルトでは設定されていません。スタティックマルチキャストグループを作成するには、ip igmp static-groupコマンドを使用します。
IGMPホストに対するSSMマッピングの有効化
設定済みのPIM-SSM範囲内のマルチキャストグループに所属するIGMPv1またはIGMPv2のレシーバーに対してSSMマッピングを有効化します。SSMマッピングは、装置が受信したIGMPv1またはIGMPv2レシーバーのIGMPレポートだけに適用されます。
SSMマッピングは、デフォルト設定では無効です。SSMマッピングを有効にするには、ip igmp ssm-map enableコマンドを使用します。
IGMPホストに対するスタティックSSMマッピングエントリーの作成
IGMPv1またはIGMPv2のレシーバーに対して、スタティックSSMマッピングエントリーを作成できます。
PIM-SSMが有効な場合、IGMPv3レシーバーでは、ラストホップルーターがSSMの範囲内にある(S, G)INCLUDEモード要求をIGMPv3レシーバーから受信すると、チャネル(S, G)に対する送信元ベースのツリーの確立を開始します。
IGMPv1またはIGMPv2では、(*, G)要求だけを送信する場合があり、SSMマッピングでは、マルチキャストグループ要求がSSM範囲内であれば、装置はスタティックSSMマッピングエントリーで定義したマルチキャストグループアドレスから送信元アドレスへのマッピング要求に基づき、(*, G)要求を(S, G)要求にマップできます。
(S, G)とは、ディストリビューションツリーの送信元ツリーのことです。SはSourceの略で、送信元のIPアドレスを示します。GはGroupの略で、マルチキャストグループアドレスを示します。
(*, G)とは、ディストリビューションツリーの共有ツリーのことです。*は複数の送信元によって共有されていることを示します。Gは(S, G)のGと同じくGroupの略で、マルチキャストグループアドレスを示します。
スタティックSSMマッピングは、デフォルト設定では作成されていません。スタティックSSMマッピングエントリーを作成するには、ip igmp ssm-map staticコマンドを使用します。
ダイナミックマルチキャストグループリストの削除
IGMPでダイナミックに登録したマルチキャストグループの情報を削除するには、clear ip igmp groupsコマンドを使用します。MLDでダイナミックに登録したマルチキャストグループ情報を削除するには、clear ipv6 mld groupsコマンドを使用します。
IGMPバージョンの変更
インターフェースでのIGMPバージョンを変更できます。IGMPバージョンは、デフォルト設定ではv3です。IGMPバージョンを変更するには、ip igmp versionコマンドを使用します。
MLDバージョンの変更
インターフェースでのMLDバージョンを変更できます。MLDバージョンは、デフォルト設定ではv2です。MLDバージョンを変更するには、ipv6 mld versionコマンドを使用します。
統計情報のクリア
IPv4の場合、マルチキャストプロトコルパケットの統計情報をクリアできます。統計情報をクリアするには、clear ip multicast-statisticsコマンドを使用します。