IPマルチキャスト / PIM
マルチキャスト経路制御プロトコルPIM(Protocol Independent Multicast)のSparseモード(PIM-SM)について解説します。PIM-SM
PIM-SM(PIM Sparse Mode)は、PIM-DMと異なり、明示的に要求を出したネットワークにだけトラフィックを届けるSparseモードのマルチキャスト経路制御プロトコルです。このプロトコルは、グループのメンバーがネットワーク上に広くまばらに分散しているような環境で最適な動作をするよう設計されています。グループへの参加を表明していないルーターにトラフィックが配送されることは原則としてありません。これを実現するため、グループのトラフィックをとりまとめるランデブーポイント(RP)というルーターを用意し、RPを起点とする共有ツリーを作成してトラフィックを配送します。PIM-SMでは、次の役割を持つルーターが必要です。
DR(Designated Router:代表ルーター:各サブネットに1台)
各サブネットにおいて、実際にマルチキャストパケットの転送を担当するルーター。PIM-SMでは、マルチキャストクライアントが存在するIPサブネットごとにDRが必要です。サブネット内に複数のPIMルーターが存在する場合、インターフェースに設定されたDR優先度の値がもっとも大きなルーターがDRとなります。DR優先度が同じときは、IPアドレスの大きなルーターがDRになります。同一サブネット上のPIMルーターは定期的にHelloパケットを送信して互いの状態を監視しており、DRがダウンした場合は次点のルーターがDRになります。
RP(Rendezvous Point:ランデブーポイント:各マルチキャストグループに1台)
PIM-SMネットワークの中核をなす重要なルーター。マルチキャストグループごとに用意します。マルチキャストパケットの送信者が接続されているネットワークのDR(FHR:ファーストホップルーター)と、受信者が接続されているネットワークのDR(LHR:ラストホップルーター)は、送受信を始めるにあたってRPにメッセージを送り、このような送信者・受信者が存在するということを伝えます。最初、ファーストホップルーターはマルチキャストパケットをRPにユニキャストします。すると、RPは通知のあったラストホップルーターに向けてのみ、パケットをマルチキャストで転送します。RPの候補(C-RP)が複数存在する場合、RP優先度値のもっとも小さいルーターがRPに選出されます。
BSR(Bootstrap Router:ブートストラップルーター:PIM-SMネットワークに1台)
PIM-SMネットワークにおいて、RP候補とマルチキャストグループの一覧、および、各グループのRP一覧を管理・広告するルーター。複数のBSR候補(C-BSR)が存在するときは、BSR優先度値のもっとも大きいルーターがBSRに選出されます。
次に、PIM-SMの基本的な設定手順について説明します。
なお、以下の各例では、IPユニキャストルーティングの設定までは完了しているものとします。
IPインターフェースの基本設定については「IP」の「IPインターフェース」を、静的な経路設定については「IP」の「経路制御」を、RIPについては「IP」の「経路制御(RIP)」を、OSPFについては「IP」の「経路制御(OSPF)」をご覧ください。
基本設定(動的RP)
PIM-SMでは、ランデブーポイント(RP)が重要な役割を果たします。RPの指定方法には、ブートストラップメカニズム(BSRがRPの情報を広告する)を利用して動的に決める方法と、各ルーターにRPのアドレスを静的に設定する方法があります。ここでは、ブートストラップメカニズムを利用して、RPを動的に決定する設定を示します。この場合は、少なくともRP、BSR、その他の3種類のルーターが必要です(RPとBSRは同じルーターにしてもかまいません)。
ランデブーポイント(RP)
- PIM-SMの動作に必要なPIMサービスを有効にします。これにはservice pimコマンドを使います。
awplus(config)# service pim
- IPマルチキャストルーティングを有効化します。これにはip multicast-routingコマンドを使います。
awplus(config)# ip multicast-routing
- マルチキャストルーティングを行うすべてのインターフェースで、PIM-SMとIGMP Querier機能を有効にします。これにはip pim sparse-modeコマンドとip igmpコマンドを使います。
awplus(config)# interface eth0,eth1,eth2 awplus(config-if)# ip pim sparse-mode awplus(config-if)# ip igmp awplus(config-if)# exit
- ランデブーポイントとして動作するよう設定します。これにはip pim rp-candidateコマンドを使います。
ここでは、すべてのマルチキャストグループに対するランデブーポイント候補(C-RP)として自らを広告するよう設定しています。広告時のアドレスとしては、eth0のIPアドレスを使います。
awplus(config)# ip pim rp-candidate eth0
設定は以上です。
ブートストラップルーター(BSR)
- PIM-SMの動作に必要なPIMサービスを有効にします。これにはservice pimコマンドを使います。
awplus(config)# service pim
- IPマルチキャストルーティングを有効化します。これにはip multicast-routingコマンドを使います。
awplus(config)# ip multicast-routing
- マルチキャストルーティングを行うすべてのインターフェースで、PIM-SMとIGMP Querier機能を有効にします。これにはip pim sparse-modeコマンドとip igmpコマンドを使います。
awplus(config)# interface eth0,eth1,eth2 awplus(config-if)# ip pim sparse-mode awplus(config-if)# ip igmp awplus(config-if)# exit
- ブートストラップルーターとして動作するよう設定します。これにはip pim bsr-candidateコマンドを使います。
ここでは、ブートストラップルーター候補(C-BSR)として自らを広告するよう設定しています。広告時のアドレスとしては、eth0のIPアドレスを使います。
awplus(config)# ip pim bsr-candidate eth0
設定は以上です。
その他のルーター(非RP)
- PIM-SMの動作に必要なPIMサービスを有効にします。これにはservice pimコマンドを使います。
awplus(config)# service pim
- IPマルチキャストルーティングを有効化します。これにはip multicast-routingコマンドを使います。
awplus(config)# ip multicast-routing
- マルチキャストルーティングを行うすべてのインターフェースで、PIM-SMとIGMP Querier機能を有効にします。これにはip pim sparse-modeコマンドとip igmpコマンドを使います。
awplus(config)# interface eth0,eth1,eth2 awplus(config-if)# ip pim sparse-mode awplus(config-if)# ip igmp
設定は以上です。
基本設定(静的RP)
本製品では、BSRを使わずに、RPを静的設定する方法もサポートしています。この例では、すべてのルーターに対し、特定のルーターがランデブーポイント(RP)であるということを静的に設定します。静的RPの構成では、ブートストラップルーター(BSR)は使用しません。
- PIM-SMの動作に必要なPIMサービスを有効にします。これにはservice pimコマンドを使います。
awplus(config)# service pim
- IPマルチキャストルーティングを有効化します。これにはip multicast-routingコマンドを使います。
awplus(config)# ip multicast-routing
- マルチキャストルーティングを行うすべてのインターフェースで、PIM-SMとIGMP Querier機能を有効にします。これにはip pim sparse-modeコマンドとip igmpコマンドを使います。
awplus(config)# interface eth0,eth1,eth2 awplus(config-if)# ip pim sparse-mode awplus(config-if)# ip igmp awplus(config-if)# exit
- ランデブーポイント(RP)を静的に設定します。これにはip pim rp-addressコマンドを使います。
ここでは、すべてのマルチキャストグループに対して、ランデブーポイント192.168.10.1を使うよう設定しています。
awplus(config)# ip pim rp-address 192.168.10.1
設定は以上です。
その他
マルチキャスト受信者(ホスト)だけが接続されており、PIMルーターが存在しない末端ネットワークのインターフェースでは、ip pim sparse-modeコマンドでPIM-SMを有効化するときにpassiveオプションを指定することにより、PIMパケットの送信を抑制できます。たとえば、前記の各例において、eth1にPIMルーターが存在しないのであれば、eth1のみ次のような設定に変更することが可能です。
awplus(config)# interface eth1 awplus(config-if)# ip pim sparse-mode passive awplus(config-if)# ip igmp
PIM-SSM
PIM-SSM(PIM Source Specific Multicast)はPIM-SMを拡張して送信元指定マルチキャスト(SSM = Source-Specific Multicast)に対応したマルチキャスト経路制御プロトコルです。PIM-SSMでは、マルチキャスト受信者(ホスト)が送信元サーバーのアドレスを明示的に指定することで、ランデブーポイント(RP)を経由する共有ツリーを使わずに、送信元から受信者への最短ツリーによる直接配送を実現します。
PIM-SSMを使用する場合の注意点をまとめます。
- PIM-SSMでは、次に示す範囲のマルチキャストグループアドレスを使います。
232.0.0.0/8(232.0.0.0 ~ 232.255.255.255)
PIM-SSMの動作は、SSMレンジ内のマルチキャストグループに対してのみ行われます。SSMレンジ外のマルチキャストグループに対しては通常のPIM-SMの動作が行われます。
- SSMレンジ内のマルチキャストグループを受信するホストは、IGMPバージョン3に対応している必要があります。
IGMPバージョン1/2を使用するホストがSSMレンジ内のマルチキャストグループに参加することはできません。
- PIM-SSMはPIM-SMを拡張したプロトコルであるため、PIM-SSMを使用する場合はPIM-SMの設定も必要です。
ただし、PIM-SSMの動作ではランデブーポイント(RP)を使わないため、SSMレンジ内のグループだけを使用する場合はRPやBSRの設定は不要です。
一方、SSMレンジ外のマルチキャストグループに対しては通常のPIM-SM動作を行うため、SSMレンジ外のマルチキャストグループも使用する場合はRPやBSRの設定も必要となります。
次に、PIM-SSMの基本的な設定手順について説明します。
なお、以下の各例では、IPユニキャストルーティングの設定までは完了しているものとします。
IPインターフェースの基本設定については「IP」の「IPインターフェース」を、静的な経路設定については「IP」の「経路制御」を、RIPについては「IP」の「経路制御(RIP)」を、OSPFについては「IP」の「経路制御(OSPF)」をご覧ください。
基本設定
標準SSMレンジ「232.0.0.0/8」内のマルチキャストグループにおいてPIM-SSMを使用するための基本設定を示します。ここでは、SSMレンジ外のアドレスは使わない、すなわち、通常のPIM-SMの動作は行わないものと仮定します。
PIM-SSMはPIM-SMを拡張したプロトコルであるため、各インターフェースで通常のPIM-SMを有効にする必要がありますが、PIM-SSMの動作に限定した場合はRPやBSRといった特殊なルーターを使わないため、基本的にすべてのルーターで同じ設定となります。
- PIM-SMの動作に必要なPIMサービスを有効にします。これにはservice pimコマンドを使います。
awplus(config)# service pim
- IPマルチキャストルーティングを有効化します。これにはip multicast-routingコマンドを使います。
awplus(config)# ip multicast-routing
- マルチキャストルーティングを行うすべてのインターフェースで、PIM-SMとIGMP Querier機能を有効にします。これにはip pim sparse-modeコマンドとip igmpコマンドを使います。
awplus(config)# interface eth0,eth1,eth2 awplus(config-if)# ip pim sparse-mode awplus(config-if)# ip igmp
- SSMレンジを指定してPIM-SSMを有効化します。これには、ip pim ssmコマンドを使います。
defaultキーワードを指定した場合は、標準のSSMレンジ(232.0.0.0/8)に対してPIM-SSMの動作が有効になります。
awplus(config)# ip pim ssm default
設定は以上です。
SSMレンジ外のマルチキャストグループも併用する場合、SSMレンジ外のグループに対してはPIM-SMの動作を行うため、RPやBSRの設定が必要となります。「PIM-SM」を参照して、RPやBSRの設定(あるいは静的RPの設定)を追加してください。