■PIMの基本設定
CiscoIOSが稼働しているCatalystスイッチでIPマルチキャストを設定するには以下の手順を実行します。
マルチキャストルーティングをグローバルに有効にします。
(config)# ip multicast-routing |
マルチキャストを設定する必要のあるインターフェイスでPIMを有効にします。
(config-if)# ip pim [ dense-mode | sparse-mode | sparse-dense mode ] |
( オプション ) PIMではHelloメッセージを送り隣接ルータの検出を行います。その際、代表ルータが選出されますが選出の基準は以下の順序で選出されます。
1) 最もプライオリティが高いルータ
2) 最もIPが高いルータ
DRが直接関係するのはsparseモードにおいてです。プライオリティの変更は以下のように行います。
(config-if)# ip pim dr-priority [priority] |
( オプション ) sparseモードを実行する場合はRPを設定します。RPルータを含む全てのルータでRPアドレスを設定することが重要です。ACLを併用することで特定グループのみのRPを指定することが可能です。
(config)# ip pim rp-address [ip-address] [ACL] |
( オプション ) ACLを使ってマルチキャストグループのRP候補としてルータを指定するには以下のコマンドを実施します。またACLと併用して特定のマルチキャストグループのみに指定することも可能です。
(config)# ip pim send-rp-announce [interface-type] [interface number] scope [ttl] \ group-list [ACL] interval [seconds] |
( オプション ) ルータにAuto-RPのRPマッピングエージェントの役割を持たせるには以下のコマンドを実施します。
(config)# ip pim send-rp-discovery scope [ttl] |
( オプション ) RPマッピングエージェントに不正なIPからのアナウンスを拒否するコマンドがあります。RP-ACLには受信を許可するユニキャストアドレスのACLを指定し、Group-ACLには許可するマルチキャストグループのACLを指定します。
(config)# ip pim rp-announce-filter rp-list [RP-ACL] group-list [Group-ACL] |
以下ではPIM sparseモードでRPアドレス192.168.1.1を設定する例を示しています。
(config)# ip multicast-routing (config)# interface fa0/0 (config-if)# ip pim sparse-mode (config-if)# interface fa0/1 (config-if)# ip pim sparse-mode (config)# ip pim rp-address 192.168.1.1 |
以下はfa0/0のアドレスをRP候補としてアドバタイズし、かつマッピングエージェントにするAuto-RPを設定する例です。
(config)# ip multicast-routing (config)# interface fa0/0 (config-if)# ip pim sparse-mode (config)# ip pim send-rp-announce fa0/0 scope 15 group-list 1 (config)# ip pim send-rp-discovery scope 15 (config)# access-list 1 permit 239.1.1.0 0.0.0.255 |
■IGMPの基本設定
IGMPの基本設定です。マルチキャストのテスト通信を行いたい場合、それ用のアプリを用意してテスト配信するのがベストですが試験環境においてはルータのインターフェイスをマルチキャストのレシーバにし特定のグループに参加させることが可能です。以下ではfa0/0をグループ239.1.1.1に参加させる設定です。マルチキャストを配信するにはルータからpingコマンドでグループアドレスを指定すればOKです。
(config-if)# ip igmp join-group 239.1.1.1 |
上の設定はグループに参加しなおかつ応答も返すという設定ですが、単に参加し転送だけをするコマンドが下記です。ホストがIGMPに未対応といった場合に使用するコマンドです。
(config-if)# ip igmp static-group 239.1.1.1 |
インターフェイスにjoinするグループを限定することも可能です。下記ではACLに指定されたグループ ( 239.1.1.1 ) のみ参加を許可します。
(config-if)# ip igmp access-group 1 (config)# access-list 1 permit 239.1.1.1 |
マルチキャストを制限するもう一つの手法として境界を定義することができます。以下は上と同様の動きになります。
(config-if)# ip multicast boundary 1 (config)# access-list 1 permit 239.1.1.1 |
IGMPスヌーピングを有効にするには以下のコマンドを実施しますが、デフォルトで既に有効になっています。
(config-if)# ip igmp snooping |
VLAN単位で有効にするには以下のようになります。
(config-if)# ip igmp snooping vlan [vlan id] |
■マルチキャストのモニタと確認
show ip mrouteコマンドを発行した時の出力です。全ての ( S , G ) エントリに対応する親エントリがあり、 ( * , G )と表記されます。 ( * , G ) はグループの動作モード、RPFネイバー、IPアドレスなどグループ全体の情報を表示します。但し、 ( * , G ) はsparseモードのときのみ参考になりdenseモードでは全体ツリーがそもそもありませんのでこれを見ても意味はありません。以下は、denseモードで動作しているshow ip mrouteです。
RPFネイバーが192.168.0.1であることを示しています。( 192.168.0.1 , 239.1.1.1 ) はグループの送信元と出力インターフェイスのリストを示しています。
# show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT, M - MSDP created entry, X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement, U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel, z - MDT-data group sender, Y - Joined MDT-data group, y - Sending to MDT-data group Outgoing interface flags: H - Hardware switched, A - Assert winner Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.1.1.1), 00:11:06/stopped, RP 0.0.0.0, flags: DC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: FastEthernet0/1, Forward/Sparse-Dense, 00:11:06/00:00:00 FastEthernet0/0, Forward/Sparse-Dense, 00:11:06/00:00:00 (192.168.0.1, 239.1.1.1), 00:00:07/00:02:59, flags: T Incoming interface: FastEthernet0/0, RPF nbr 192.168.0.1 Outgoing interface list: FastEthernet0/1, Forward/Sparse-Dense, 00:00:08/00:00:00 |
summaryキーワードを指定してshow ip mrouteコマンドを発行したときの出力です。
# show ip mroute summary IP Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT, M - MSDP created entry, X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement, U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel, z - MDT-data group sender, Y - Joined MDT-data group, y - Sending to MDT-data group Outgoing interface flags: H - Hardware switched, A - Assert winner Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.1.1.1), 00:00:53/stopped, RP 0.0.0.0, OIF count: 2, flags: DC (192.168.0.1, 239.1.1.1), 00:00:46/00:02:42, OIF count: 1, flags: T |
countキーワードを指定してshow ip mrouteコマンドを発行し、トラフィックに関する付加的な統計情報を表示できます。
# show ip mroute count Active IP Multicast Sources - sending >= 4 kbps a negative (-) Rate counts pps being fast-dropped R3#show ip mroute count IP Multicast Statistics 3 routes using 2038 bytes of memory 2 groups, 0.50 average sources per group Forwarding Counts: Pkt Count/Pkts(neg(-) = Drops) per second/Avg Pkt Size/Kilobits per second Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc) Group: 239.1.1.1, Source count: 1, Packets forwarded: 21, Packets received: 21 Source: 192.168.0.1/32, Forwarding: 21/1/100/0, Other: 21/0/0 |
show ip pim interfaceの出力を示しています。
# show ip pim interface Address Interface Ver/ Nbr Query DR DR Mode Count Intvl Prior 192.168.0.3 FastEthernet0/0 v2/SD 1 30 1 192.168.0.3 172.16.0.3 FastEthernet0/1 v2/SD 1 30 1 172.16.0.4 |
countオプションを指定してshow ip pim interfaceを発行した時の出力です。
# show ip pim interface count State: * - Fast Switched, D - Distributed Fast Switched H - Hardware Switching Enabled Address Interface FS Mpackets In/Out 192.168.0.3 FastEthernet0/0 * 21/0 172.16.0.3 FastEthernet0/1 * 0/21 |
RPマッピング情報をモニタするには以下に示すコマンドを利用します。
コマンド | 説明 |
show ip pim rp-hash [group] | 指定されたグループで選択されたRPを示します。 |
show ip pim rp [group-name | group-address | mapping] | ルータがRPを学習する方法を表示します。 |
マルチキャストのキャッシュ、テーブル、データベースを消去するには以下に示すコマンドを利用します。
コマンド | 説明 |
clear ip mroute | ルーティングエントリを削除します。 |
clear ip pim auto-rp [rp-address] | Auto-RPキャッシュエントリを削除します。 |
clear ip igmp group [group-name | group-address | interface] | IGMPキャッシュからエントリを削除します。 |