このドキュメントでは、マルチキャストネットワークのトラブルシューティングのツールと手法について説明します。
このドキュメントを読むには、IPマルチキャスト、Internet Group Management Protocol(IGMP)、Protocol Independent Multicast(PIM)、およびリバースパス転送(RPF)に関する知識が必要です。
本書の内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
注:このドキュメントで使用できるコマンド、構文、および出力は、シスコのプラットフォームとソフトウェアリリースによって異なります。この例では、Cisco IOS®およびCisco IOS XE®コマンドの出力を使用します。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
マルチキャストネットワークのトラブルシューティングを行う際には、ネットワークで使用されるシグナリングプロトコルとパケットフローを考慮してください。シグナリングプロトコルは、マルチキャストセッション(PIMデンスモード、PIMスパースモード、DVMRPなど)のセットアップとティアダウンに使用されます。 パケットフローは、シグナリングプロセスによって作成された転送テーブルに基づいて、送信元と受信者間でマルチキャストパケットを送信、複製、および受信します。
次の表に、送信元、ネットワーク、および受信側のシグナリングとパケットフローのチェックをまとめます。
| 送信元 |
Network |
受信者 |
|
| シグナリング |
N/A |
||
| パケット フロー |
次のサブセクションでは、一般的な問題の確認と解決に使用できるトラブルシューティングツールについて詳しく説明します。
送信元がパケットを送信し、正しいパケットフィールドが挿入されているかどうかを判断するには、次の手順を実行します。
1. ホストのインターフェイスカウンタを確認します。最初に、発信元ホストのインターフェイスカウンタをチェックして(UNIXシステムの場合は、netstatコマンドを実行して)、パケットが送信されているかどうかを確認します。送信していない場合は、ホスト スタックおよびアプリケーションに不良構成やバグがあるかどうかを調べます。
2. show ip igmp groups <interface-name>コマンドを実行して、ルータがそのインターフェイスでIGMPメンバシップレポートを受信したことを確認します。
3. マルチキャストアプリケーション内のパケットのTTL値を確認します。1つのルーテッドホップを通過するには、少なくとも2である必要があります。アプリケーションがTTL値1のパケットを送信すると、TTLが期限切れになると、最初のアップストリームルータはパケットをドロップします。これを確認するには、show ip trafficコマンドを実行して、「bad hop count」カウンタの値が増加しているかどうかを調べます。TTL値が1のパケットや、ip multicast ttl-thresholdコマンドでインターフェイスに設定されているTTLしきい値よりも低いTTL値のパケットはすべて廃棄されます。この廃棄によって「bad hop-count」カウンタが1ずつ増加します。show ip igmp interface <interface-name>コマンドを実行して、インターフェイスのTTLしきい値を表示します。
4. show ip mroute countコマンドおよびshow ip mroute activeコマンドを実行して、上流に位置するルータまたはスイッチで、送信元からのマルチキャストパケットが観測されているかどうかを調べます。コマンド出力には、(S,G) ペアごとのトラフィック フロー統計情報が表示されます。トラフィックが確認されない場合は、送信元アプリケーション、ホストスタック、パケットキャプチャ、およびファーストホップルータインターフェイスの確認を続けます。
5. マルチキャストグループまたはサポートされているアクセスリスト(ACL)フィルタとdetailキーワードを使用して、最も近い上流ルータでdebug ip mpacketコマンドを実行し、パケットの詳細情報と粒度を確認します。
注:このコマンドは、ネットワーク上のマルチキャストトラフィックが多い場合には注意して実行してください。必要な場合に限り、ルータ上でdebug ip mpacketコマンドを実行してください。detail引数を実行すると、debug出力にパケットヘッダーが表示され、特定の送信元からのトラフィックを調べるにはアクセスリストが表示されます。このコマンドは、他のトラフィックのパフォーマンスに重大な影響を与える可能性があることに注意してください。
これは、あらゆるネットワークでトラブルシューティングを行う際に最も複雑で重要な作業です。確認手順は、使用されているネットワーク シグナリング プロトコル(PIM スパース モード、PIM デンス モード、DVMRP など)によって異なります。シスコでは、このセクションで説明する複数ステップのアプローチを推奨しています。
PIM スパース モードをトラブルシューティングするには、以下の手順に従います。
1. すべてのマルチキャストルーターでIPマルチキャストルーティングが有効になっていることを確認します。
2. show ip pim neighborコマンドを実行して、ネイバー確立期限タイマーとモードを調べ、PIMネイバー確立が成功することを確認し、PIMネイバー確立の妨げとなる可能性のある接続の問題やタイマーの問題がないかどうかを調べます。必要に応じて、インターフェイスコマンドip pim version {1 | 2}およびip pim {dense-mode | sparse-mode | sparse-dense-mode}を実行して、必要なPIMバージョンとモードを設定します。
3. show ip pim rp mappingコマンドを実行して、RP-Groupマッピングが正しいこと、自動RPが設定されている場合はネイバー確立タイマーを確認します。debug ip pim auto-rpコマンドを実行して、Auto-RPの障害を特定します。PIMのグループとRPのマッピングを確認できない場合は、自動RPの設定を確認するか、ip pim rp-address <rp-address> [<access-list>] [override]コマンドを使用してグループとRPの静的マッピングを設定します。候補RPをip pim send-rp-announce <interface> scope <ttl> group-list <access-list>で設定し、マッピングエージェントをip pim send-rp-discovery <interface> scope <ttl>で設定します。これらのコマンドはAuto-RPにのみ適用されます。候補RPでsend-rp-announceを設定し、マッピングエージェントでsend-rp-discoveryを設定します。
4. show ip rpf <isource-address>コマンドを実行し、送信元アドレスについてのRPFインターフェイス、ネイバー、およびルートを確認します。PIMは、非RPFインターフェイスに到着したマルチキャストパケットをドロップします。その他のアサートまたはプルーニング処理は、PIMモードとインターフェイスのタイプによって異なります。debug ip pimコマンドは、PIMネットワーク障害の原因調査に役立ちます。確認された出力を、このドキュメントの一般的な出力と比較します。この出力を実行して、PIMスパースモードの3つの個別のステージ(参加、登録、およびSPTスイッチオーバー)を特定します。show ip mroute コマンドを使用することで、Outgoing Interface リストの NULL エントリと、mroute テーブルのプルーニング エントリを観察できます。
ネットワーク全体のマルチキャスト パケット フローを確認するには、以下のコマンドを使用します。
mtraceコマンドを実行して、マルチキャストトレースホップバイホップを確認します
受信側シグナリングを確認するには、以下の手順に従います。
1. 受信側に接続されている最初の上流ルータでshow ip igmp groupsコマンドを実行して、受信側に面したインターフェイスの、ルータが学習したグループメンバーシップを確認します。
2. pingコマンドを実行して、ホストと上流に位置する最初のルータの到達可能性を確認します。
3. show ip igmp interfaceコマンドを実行して、インターフェイスのIGMPバージョンを確認します。
4. debug ip igmpコマンドを実行して、受信側シグナリングをさらにトラブルシューティングします。
受信側パケット フローを確認するには、以下の手順に従います。
1. UNIXシステムでnetstatコマンドを実行し、受信側インターフェイスの統計情報を確認します。
2. TCP/IPスタックがインストールされ、正しく設定されていることを確認します。
3. マルチキャスト受信側クライアントアプリケーションがインストールされ、正しく設定されていることを確認します。
4. 受信側のインターフェイスでパケットキャプチャを使用し、マルチアクセスセグメント上の重複したマルチキャストパケットを特定します。
このセクションで説明するコマンドは、トラブルシューティングを行う際、特にネットワークパケットフローをテストしてマルチキャストネットワークの障害ポイントを特定する際に役立ちます。
このコマンドは、ASCII グラフ形式でマルチキャスト パスを表示します。このコマンドはネットワーク内の 2 つのポイントの間のパスをトレースし、ナットワーク内のノードごとに、ドロップ/重複カウント、TTL、および遅延を表示します。
これは、ネットワーク内の輻輳ポイントを特定する必要がある場合、またはドロップ/重複カウントが高いルータに重点を置く必要がある場合に便利です。負の計算済みドロップ値は、ダウンストリームインターフェイスがアップストリームインターフェイスより多くのパケットを報告していることを示します。これは、重複パケットやカウンタサンプリングの違いを示している可能性があります。
Router#mstat lwei-home-ss2 172.16.58.88 224.0.255.255 Type escape sequence to abort Mtrace from 172.16.143.27 to 172.16.58.88 via group 224.0.255.255 >From source (lwei-home-ss2.cisco.com) to destination (lwei-ss20.cisco.com) Waiting to accumulate statistics...... Results after 10 seconds: Source Response Dest Packet Statistics For Only For Traffic 172.16.143.27 172.16.62.144 All Multicast Traffic From 172.16.143.27
| __/ rtt 48 ms Lost/Sent = Pct Rate To 224.0.255.255 v / hop 48 ms --------------------- -------------------- 172.16.143.25 lwei-cisco-isdn.cisco.com | ^ ttl 1 v | hop 31 ms 0/12 = 0% 1 pps 0/1 = --% 0 pps 172.16.121.84 172.16.121.45 eng-frmt12-pri.cisco.com | ^ ttl 2 v | hop -17 ms -735/12 = --% 1 pps 0/1 = --% 0 pps 172.16.121.4 172.16.5.27 eng-cc-4.cisco.com | ^ ttl 3 v | hop -21 ms -678/23 = --% 2 pps 0/1 = --% 0 pps 172.16.5.21 172.16.62.130 eng-ios-2.cisco.com | ^ ttl 4 v | hop 5 ms 605/639 = 95% 63 pps 1/1 = --% 0 pps 172.16.62.144 172.16.58.65 eng-ios-f-5.cisco.com | \__ ttl 5 v \ hop 0 ms 4 0 pps 0 0 pps 172.16.58.88 172.16.62.144 Receiver Query Source
このコマンドは、マルチキャストネイバールータ情報、ルータの機能とコードバージョン、マルチキャストインターフェイス情報、TTLしきい値、メトリック、プロトコル、およびステータスを表示します。これは、マルチキャストネイバーを確認する必要がある場合、双方向ネイバー隣接関係が存在する場合、およびトンネルが両方向でアップしていることを確認する必要がある場合に便利です。
Router#mrinfo 192.168.7.37 (b.cisco.com) [version cisco 11.1] [flags: PMSA]: 192.168.7.37 -> 192.168.7.34 (s.cisco.com) [1/0/pim] 192.168.7.37 -> 192.168.7.47 (d.cisco.com) [1/0/pim] 192.168.7.37 -> 192.168.7.44 (d2.cisco.com) [1/0/pim] 192.168.9.26 -> 192.168.9.29 (su.bbnplanet.net) [1/32/pim]
出力のフラグは次を示します。
P = プルーニング対応
M = mtrace 対応
S = SNMP 対応
A = 自動 RP 対応
このコマンドは、送信元から受信側までのマルチキャストパスを表示し、ネットワーク内のポイント間のパスをトレースします。その結果、各ノードでのTTLしきい値と遅延が表示されます。
トラブルシューティング時にmtraceコマンドを実行し、マルチキャストトラフィックフローが止まる地点を特定したり、マルチキャストトラフィックパスを確認したり、次に最適なパスを判別したりします。
Router#mtrace 192.168.215.41 192.168.215.67 239.254.254.254 Type escape sequence to abort. Mtrace from 192.168.215.41 to 192.168.215.67 via group 239.254.254.254 From source (?) to destination (?) Querying full reverse path... 0 192.168.215.67 -1 192.168.215.67 PIM thresh^ 0 0 ms -2 192.168.215.74 PIM thresh^ 0 2 ms -3 192.168.215.57 PIM thresh^ 0 894 ms -4 192.168.215.41 PIM thresh^ 0 893 ms -5 192.168.215.12 PIM thresh^ 0 894 ms -6 192.168.215.98 PIM thresh^ 0 893 ms
トラブルシューティング時に、マルチキャストICMPエコー要求を処理する到達可能なグループメンバーが応答できるため、pingコマンドを使用すると、マルチキャストツリーをテストするためのマルチキャストトラフィックをラボ環境で簡単に生成できます。
R3#ping 239.255.0.1 Type escape sequence to abort. Sending 1, 100-byte ICMP Echos to 239.255.0.1, timeout is 2 seconds: Reply to request 0 from 172.16.12.2, 16 ms Reply to request 0 from 172.16.7.2, 20 ms
このセクションで説明するコマンドを使用すると、マルチキャストの問題をトラブルシューティングする際に役立つ情報を収集できます。詳細については、『IPマルチキャストコンフィギュレーションガイド、Cisco IOS XE 17.x』を参照してください。
ヒント:showコマンドの応答が遅い場合は、コマンド出力のアドレスについて、ルータがIPドメインのルックアップを実行している可能性があります。IPドメインルックアップを無効にするには、グローバルコンフィギュレーションモードでno ip domain lookupコマンドを実行します。これにより、IP ドメイン ルックアップが停止して、show コマンドの出力速度が向上します。
このコマンドは、ルータに直接接続されているマルチキャストグループと、Internet Group Management Protocol(IGMP)を介して学習されたマルチキャストグループを表示します。 このコマンドを使用すると、受信側またはローカルに参加しているルータインターフェイスが、ルータインターフェイス上のターゲットグループに参加していることを確認できます。Last Reporter列には、1つのIGMPホストだけが表示されます。これは、このホストが、その特定のグループに対するPIMルータからのIGMP Queryに対して、要求されていないIGMP JoinまたはIGMP Reportのいずれかを送信したことを示しています。グループおよびインターフェイスエントリごとに1つのLast Reporterを確認できます。
R1#show ip igmp groups IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 239.255.0.1 Ethernet1 00:10:54 00:01:10 192.168.9.1 224.0.1.40 Ethernet0 01:36:27 00:02:45 192.168.10.2 224.0.1.40 Ethernet1 01:48:15 never 192.168.9.3
このコマンドを実行して、インターフェイス上のマルチキャスト関連情報を表示し、IGMPがイネーブルになっているか、正しいバージョンが稼働しているか、タイマー、存続可能時間(TTL)しきい値、およびIGMPクエリアルータが正しく設定されているかを確認します。インターフェイスに IGMP を設定する必要はありません。これは、ip pim {dense-mode|sparse-mode|sparse-dense-mode}を設定すると、デフォルトで有効になります。
R1#show ip igmp interface
Ethernet1 is up, line protocol is up
Internet address is 192.168.9.3/24
IGMP is enabled on interface
Current IGMP version is 2
CGMP is disabled on interface
IGMP query interval is 60 seconds
IGMP querier timeout is 120 seconds
IGMP max query response time is 10 seconds
Last member query response interval is 1000 ms
Inbound IGMP access group is not set
IGMP activity: 22 joins, 18 leaves
Multicast routing is enabled on interface
Multicast TTL threshold is 0
Multicast designated router (DR) is 192.168.9.5
IGMP querying router is 192.168.9.3 (this system)
Multicast groups joined (number of users):
224.0.1.40(1)
このコマンドを実行して、Cisco IOSソフトウェアによって検出されたProtocol Independent Multicast(PIM)ネイバーをリストします。
R1#show ip pim neighbor PIM Neighbor Table Neighbor Interface Uptime/Expires Ver DR Address Prio/Mode 10.10.10.1 Ethernet0/0 02:19:41/00:01:38 v2 1 / DR B S
各フィールドの詳細は次のとおりです。
ネイバーアドレス:PIMネイバーIPアドレスを指定します。
Interface:PIMネイバーが検出されたインターフェイス。
Uptime:ネイバーの合計稼働時間。
Expires:ネイバーがタイムアウトになるまでの時間。この時間が経過すると、次のPIM helloを受信します。
Ver:ネイバーインターフェイスでのPIMのバージョン。
DR Prio:可能な値は0 ~ 4294967294またはNです。
これは、DR選定のPIMインターフェイスのプライオリティを追跡する新しい列です。最高のプライオリティと最高のIPアドレスに基づいてDRを設定する機能は、Cisco IOS®ソフトウェアリリース12.1(2)Tおよび12.2と、Bidir-PIMを使用するCisco IOS®イメージで導入されました。DRプライオリティを設定するには、ip pim dr-priority <0-4294967294> インターフェイスコマンドを実行します。DR プライオリティはデフォルトで 1 に設定されます。
相互運用性を確保するため、DRプライオリティ機能をサポートしていない古いバージョンのCisco IOS®がPIMネイバーで実行されている場合、「DR Prior」列にはNと表示されます。 マルチアクセスネットワーク上のいずれかのルータがDRプライオリティオプションをアドバタイズしない場合、DR選定では、そのネットワーク上のすべてのPIMルータの中で最も大きいプライマリIPアドレスが使用されます。
モード:DRおよびその他のPIM機能に関する情報。
この列には、DR に加え、その PIM ネイバーがサポートしているすべての機能が一覧表示されます。
DR - この PIM ネイバーが代表ルータであることを示す。
B:双方向 PIM(Bidir-PIM)対応
S:状態更新対応(デンス モードにのみ適用)
トラブルシューティングの際に、すべてのネイバーが稼働していること、それらのネイバーが適切なモード、バージョン、期限タイマーを使用していることを確認するには、このコマンドを使用します。また、ルータ設定を確認したり、show ip pim interface コマンドを使用してモード(PIM スパースまたはデンス モード)を確認することもできます。 PIM クエリ メッセージ交換を観察するには、debug ip pim コマンドを使用します。
PIM用に設定されたインターフェイスに関する情報を表示するには、次のコマンドを実行します。また、このコマンドを実行して、正しいPIMモード(稠密または希薄)がインターフェイスに設定されていること、ネイバー数が正しいこと、およびDesignated Router(DR;代表ルータ)が正しいこと(PIM希薄モードの場合に重要)を確認できます。 マルチアクセスセグメント(イーサネット、トークンリング、FDDIなど)は、最も高くアドバタイズされたDRプライオリティに基づいてDRを選出し、最も高いプライマリIPアドレスが選出の要因となります。ルータがDRプライオリティをアドバタイズしない場合、選出では最も大きいプライマリIPアドレスが使用されます。ポイントツーポイント リンクには、DR 情報は表示されません。
R1#show ip pim interface
Address Interface Version/Mode Nbr Query DR
Count Intvl
192.168.10.1 Ethernet0 v2/Sparse-Dense 1 30 192.168.10.2
192.168.9.3 Ethernet1 v2/Sparse-Dense 1 30 192.168.9.5
このコマンドを実行して、IPマルチキャストルーティングテーブルの要約された内容を表示します。また、タイマーとフラグを調べる際に、アクティブなマルチキャストグループと、アクティブなマルチキャスト送信者を確認するためにも使用できます。
R1#show ip mroute summary
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, 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 - Advertised via MSDP
Outgoing interface flags: H - Hardware switched
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.255.0.1), 01:57:07/00:02:59, RP 192.168.7.2, flags: SJCF
(192.168.33.32, 239.255.0.1), 01:56:23/00:02:59, flags: CJT
(192.168.9.1, 239.255.0.1), 01:57:07/00:03:27, flags: CFT
(*, 224.0.1.40), 1d00h/00:00:00, RP 192.168.7.2, flags: SJPCL
IPマルチキャストルーティングテーブルの全内容を表示するには、次のコマンドを実行します。トラブルシューティングを行う際には、次のコマンドを実行して確認します。
フラグに基づく (S,G) および (*,G) 状態のエントリ。
着信インターフェイスが正しいこと。正しくない場合は、ユニキャスト ルーティング テーブルを確認します。
発信インターフェイスが正しいこと。誤ってプルーニングされている場合は、下流に位置するルータで状態を確認します。
R1#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, 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 - Advertised via MSDP
Outgoing interface flags: H - Hardware switched
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.255.0.1), 01:55:27/00:02:59, RP 192.168.7.2, flags: SJCF
Incoming interface: Ethernet0, RPF nbr 192.168.10.2
Outgoing interface list:
Ethernet1, Forward/Sparse, 01:55:27/00:02:52
(192.168.33.32 , 239.255.0.1), 01:54:43/00:02:59, flags: CJT
Incoming interface: Ethernet0, RPF nbr 192.168.10.2
Outgoing interface list:
Ethernet1, Forward/Sparse, 01:54:43/00:02:52
(192.168.9.1, 239.255.0.1), 01:55:30/00:03:26, flags: CFT
Incoming interface: Ethernet1, RPF nbr 0.0.0.0
Outgoing interface list:
Ethernet0, Forward/Sparse, 01:55:30/00:03:12
(*, 224.0.1.40), 1d00h/00:00:00, RP 192.168.7.2, flags: SJPCL
Incoming interface: Ethernet0, RPF nbr 192.168.10.2
Outgoing interface list: Null
しきい値を超えたアクティブなトラフィックの送信元とグループを表示するには、このコマンドを実行します。トラブルシューティング時に、このコマンドを使用して、アクティブなソースグループペア、設定されたしきい値を超える各(S、G)エントリのトラフィックレート、およびターゲットグループのマルチキャストトラフィックが受信されているかどうかを確認します。トラフィックが受信されない場合は、送信元から受信側に向かって開始するアクティブなトラフィックを探します。
R1#show ip mroute active Active IP Multicast Sources - sending >= 4 kbps Group: 239.255.0.1, (?) Source: 192.168.33.32 (?) Rate: 10 pps/115 kbps(1sec), 235 kbps(last 23 secs), 87 kbps(life avg)
IPマルチキャストルーティングでリバースパス転送(RPF)がどのように実行されるかを表示するには、このコマンドを実行します。 トラブルシューティングの際には、このコマンドを使用してRPF情報が正しいことを確認します。情報が正しくない場合は、送信元アドレスのユニキャスト ルーティング テーブルを確認します。また、送信元アドレスに対してpingコマンドとtraceコマンドを実行して、ユニキャストルーティングが機能していることを確認します。Distance Vector Multicast Routing Protocol(DVMRP)ルートまたはスタティックmrouteを使用して、ユニキャストマルチキャストの不整合を修正できます。
R1#show ip rpf 192.168.33.32 RPF information for ? (192.168.33.32) RPF interface: Ethernet0 RPF neighbor: ? (192.168.10.2) RPF route/mask: 192.168.33.0/16 RPF type: unicast (eigrp 1) RPF recursion count: 0 Doing distance-preferred lookups across tables
マルチキャストファーストスイッチングキャッシュをサポートするCisco IOS®リリースでは、このコマンドによってキャッシュエントリが表示され、ファーストスイッチングの問題を切り分けるのに役立ちます。新しいCisco IOS XE®プラットフォームでは、show ip mfibコマンドを実行してマルチキャスト転送情報を表示します。
R1#show ip mcache IP Multicast Fast-Switching Cache (192.168.33.32/32, 239.255.0.1), Ethernet0, Last used: 00:00:00 Ethernet1 MAC Header: 01005E7F000100000C13DBA90800 (192.168.9.1/32, 239.255.0.1), Ethernet1, Last used: 00:00:00 Ethernet0 MAC Header: 01005E7F000100000C13DBA80800
マルチキャストトラフィックが受信されていることを確認し、そのフローレートとドロップを確認するには、このコマンドを実行します。トラフィックが受信されていない場合、送信元から受信側への方向で、トラフィックが停止している場所を見つける作業を行います。このコマンドを実行して、トラフィックが転送されていることを確認することもできます。転送されていない場合は、show ip mrouteコマンドを実行して、「Null Outgoing interface list」とRPF障害の有無を調べます。
R1#show ip mroute count
IP Multicast Statistics
routes using 2406 bytes of memory
2 groups, 1.00 average sources per group
Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kilobits per second
Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc)
Group: 239.255.0.1, Source count: 2, Group pkt count: 11709
RP-tree: Forwarding: 3/0/431/0, Other: 3/0/0
Source: 192.168.33.32/32, Forwarding: 11225/6/1401/62, Other: 11225/0/0
Source: 192.168.9.1/32, Forwarding: 481/0/85/0, Other: 490/0/9
Group: 224.0.1.40, Source count: 0, Group pkt count:
次のコマンドを実行して、ユニキャストルーティングテーブルを確認し、mrouteテーブルのRPF障害を修正します。
R2#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
D 192.168.9.0/24 [90/307200] via 192.168.10.1, 00:59:45, Ethernet0
C 192.168.10.0/24 is directly connected, Ethernet0
D 192.168.4.0/24 [90/11040000] via 192.168.7.1, 23:21:00, Serial0
D 192.168.5.0/24 [90/11023872] via 192.168.7.1, 23:21:02, Serial0
C 192.168.7.0/24 is directly connected, Serial0
D 192.168.33.0/16 [90/2195456] via 192.168.7.1, 1d23h, Serial0
D 192.168.1.0/24 [90/11552000] via 192.168.7.1, 22:41:27, Serial0
このコマンドを実行して、マルチキャストグループ範囲ごとのRP割り当てを確認し、RPラーニングのソース(スタティックまたはAuto-RP)とマッピングが正しいことを確認します。エラーを見つけた場合は、ローカル ルータ設定または自動 RP 設定を確認します。
R1#show ip pim rp mapping
PIM Group-to-RP Mappings
Group(s) 224.0.1.40/32
RP 192.168.7.2 (?), v1
Info source: local, via Auto-RP
Uptime: 2d00h, expires: never
Group(s): 224.0.0.0/4, Static
RP: 192.168.7.2 (?)
このセクションでは、運用中のネットワークで特定のdebugコマンドを発行した場合の出力を示しています。トラブルシューティングの際には、正常なdebug出力と、ネットワークでの問題を示している箇所を判別できます。これらの debug コマンドの包括的な情報については、『Cisco IOS Debug Command Reference』を参照してください。
送受信されたIGMPパケットならびにIGMPホスト関連のイベントを表示するには、debug ip igmpコマンドを実行します。このコマンドの no 形式を使用すると、デバッグ出力が無効になります。
コマンド出力は、IGMP プロセスが機能しているかどうかを調べるのに役立ちます。一般に、IGMPが機能しない場合、ルータは接続されたインターフェイスのレシーバグループメンバーシップを学習しません。PIMデンスモードでは、プルーニングによって削除されるまで、初期フラッディングによってトラフィックがセグメントに送信される可能性があります。PIMスパースモードでは、ルータは受信側のメンバーシップやその他のローカル転送要件なしで、受信側に面したインターフェイスを発信インターフェイスリストに追加しません。
R1#debug ip igmp 12:32:51.065: IGMP: Send v2 Query on Ethernet1 to 224.0.0.1 12:32:51.069: IGMP: Set report delay time to 9.4 seconds for 224.0.1.40 on Ethernet1 12:32:56.909: IGMP: Received v1 Report from 192.168.9.1 (Ethernet1) for 239.255.0.1 12:32:56.917: IGMP: Starting old host present timer for 239.255.0.1 on Ethernet1 12:33:01.065: IGMP: Send v2 Report for 224.0.1.40 on Ethernet1 12:33:01.069: IGMP: Received v2 Report from 192.168.9.4 (Ethernet1) for 224.0.1.40 12:33:51.065: IGMP: Send v2 Query on Ethernet1 to 224.0.0.1
上記の出力は、ルータがマルチキャストアドレス224.0.0.1(このサブネット上のすべてのマルチキャストシステム)でインターフェイスEthernet 1からIGMPバージョン2クエリーを送信することを示しています。 インターフェイスイーサネット1自体はグループ224.0.1.40のメンバーで(これを確認するには、show ip igmp interfaceコマンドを実行できます)、レポートの遅延時間を9.4秒(ランダムに決定)に設定します。 このルータは、次の 9.4 秒間にマルチキャスト グループ 224.0.1.40 の別のシステムからレポートを受信しないと、自身のメンバシップに関するバージョン 2 レポートを送信します。このレポートは Ethernet 1 でこのルータ自身により受信されます。ホスト 192.168.9.1 から IGMP レポート バージョン 1 も受信しています。このホストは、グループ 239.255.0.1 のインターフェイス Ethernet1 に直接接続されています。
このdebug出力は、ルータインターフェイスがクエリーを送信していることを確認し、クエリーの間隔(以前のケースでは60秒)を決定する場合に役立ちます。 また、このコマンドで、クライアントが使用している IGMP のバージョンを判断することもできます。
送受信されたすべてのIPマルチキャストパケットを表示するには、debug ip mpacketコマンドを実行します。このコマンドの no 形式を使用すると、デバッグ出力が無効になります。
R1#debug ip mpacket 239.255.0.1 detail 13:09:55.973: IP: MAC sa=0000.0c70.d41e (Ethernet0), IP last-hop=192.168.10.2 13:09:55.977: IP: IP tos=0x0, len=892, id=0xD3C1, ttl=12, prot=17 13:09:55.981: IP: s=192.168.33.32 (Ethernet0) d=239.255.0.1 (Ethernet1) len 906, mforward
このコマンドはマルチキャスト パケットをデコードして、パケットが転送(mforward)されたものなのか、ドロップされたものなのかを示します。これは、ネットワーク内のパケットフローの問題をデバッグして、TTL値とパケットがドロップされた理由を調べる場合に役立ちます。
注意:パケットレベルのデバッグ出力をオンにする場合、特にルータが大量のマルチキャストパケットを処理している場合は注意が必要です。
このコマンドは、ルーティング テーブルのメンテナンスに役立ちます。このコマンドを使用して、(S,G)mrouteがIPマルチキャストルーティングテーブルにインストールされていることを確認します。インストールされていない場合はその理由も確認します。このコマンドで出力される重要な情報は、RPF インターフェイスです。RPF チェックが失敗すると、(S,G) ルートの mrouting テーブルへのインストールが失敗します。
R1#debug ip mrouting 239.255.0.1 13:17:27.821: MRT: Create (*, 239.255.0.1), RPF Null, PC 0x34F16CE 13:17:27.825: MRT: Create (192.168.33.32/32, 239.255.0.1), RPF Ethernet0/192.168.10.2, PC 0x34F181A 13:17:30.481: MRT: Create (192.168.9.1/32, 239.255.0.1), RPF Ethernet1/0.0.0.0, PC 0x34F18
送受信されたPIMパケットならびにPIM関連のイベントを表示するには、debug ip pimコマンドを実行します。このコマンドの no 形式を使用すると、デバッグ出力が無効になります。このセクションには、PIM スパース モードのデバッグ出力を理解できるよう、例を用いて一般的なデバッグ出力の内容を説明します。
次に示すのは、R1でのdebug ip pim 出力です。
R1#debug ip pim PIM: Send v2 Hello on Ethernet0 PIM: Send v2 Hello on Ethernet1 PIM: Received v2 Hello on Ethernet0 from 192.168.10.2 PIM: Send v2 Hello on Ethernet0 PIM: Send v2 Hello on Ethernet1 PIM: Building Join/Prune message for 239.255.0.1 PIM: v2, for RP, Join-list: 192.168.7.2/32, RP-bit, WC-bit, S-bit PIM: Send v2 periodic Join/Prune to RP via 192.168.10.2 (Ethernet0) PIM: Received RP-Reachable on Ethernet0 from 192.168.7.2 for group 239.255.0.1 PIM: Update RP expiration timer (270 sec) for 239.255.0.1
次は、グループ239.255.0.1のマルチキャスト受信側がR1に参加した際の、R1とR2間のdebug出力を示します。まず、R1 での出力を調べます。
1 PIM: Check RP 192.168.7.2 into the (*, 239.255.0.1) entry 2 PIM: Send v2 Join on Ethernet0 to 192.168.10.2 for (192.168.7.2/32, 239.255.0.1), WC-bit, RPT-bit, S-bit 3 PIM: Building batch join message for 239.255.0.1 4 PIM: Building Join/Prune message for 239.255.0.1 5 PIM: v2, for RP, Join-list: 192.168.7.2/32, RP-bit, WC-bit, S-bit 6 PIM: Send v2 periodic Join/Prune to RP via 192.168.10.2 (Ethernet0) 7 PIM: Received RP-Reachable on Ethernet0 from 192.168.7.2 : for group 239.255.0.1 8 PIM: Update RP expiration timer (270 sec) for 239.255.0.1 9 PIM: Building Join/Prune message for 239.255.0.1 10 PIM: v2, for RP, Join-list: 192.168.7.2/32, RP-bit, WC-bit, S-bit 11 PIM: Send v2 periodic Join/Prune to RP via 192.168.10.2 (Ethernet0)
次に、R2 での出力を調べます。
12 PIM: Received v2 Join/Prune on Ethernet0 from 192.168.10.1, to us 13 PIM: Join-list: (*, 239.255.0.1) RP 192.168.7.2 14 PIM: Check RP 192.168.7.2 into the (*, 239.255.0.1) entry, RPT-bit set, WC-bit set, S-bit set 15 PIM: Add Ethernet0/192.168.10.1 to (*, 239.255.0.1), Forward state 16 PIM: Building Join/Prune message for 239.255.0.1 17 PIM: Received v2 Join/Prune on Ethernet0 from 192.168.10.1, to us 18 PIM: Join-list: (*, 239.255.0.1) RP 192.168.7.2, RPT-bit set, WC-bit set, S-bit set 19 PIM: Add Ethernet0/192.168.10.1 to (*, 239.255.0.1), Forward state 20 PIM: Building Join/Prune message for 239.255.0.1 21 PIM: Send RP-reachability for 239.255.0.1 on Ethernet0 22 PIM: Received v2 Join/Prune on Ethernet0 from 192.168.10.1, to us 23 PIM: Join-list: (*, 239.255.0.1) RP 192.168.7.2, RPT-bit set, WC-bit set, S-bit set 24 PIM: Add Ethernet0/192.168.10.1 to (*, 239.255.0.1), Forward state 25 PIM: Building Join/Prune message for 239.255.0.1
行1の前の出力では、グループ239.255.0.1のマルチキャスト受信側はR1に参加しています。これにより、mroute テーブルに (*, 239.255.0.1) エントリがインストールされます。次に行2では、マルチキャスト受信側がR2(RP)にIGMP Joinを送信して、共有ツリーに参加します。
PIM Join/PruneがR2に到着すると、R2はmroute(*, 239.255.0.1)をインストールします(R2の出力の行12 ~ 15を参照)。
R2は、mroutingテーブルに(*, 239.255.0.1)をインストールすると、Join/Pruneメッセージの送信元インターフェイスを、転送状態のOutgoing-interface-list(OIL)に追加します。次に、Join/Pruneメッセージを受信したインターフェイスに、RP到達可能性メッセージを返信します。このトランザクションは、R2 出力の行 15 から行 21 に示されています。R1 はグループ 239.255.0.1 の RP 到達可能性メッセージを受信すると、RP の有効期限タイマーを更新します。デフォルトでは、この交換が 1 分ごとに 1 回繰り返され、マルチキャスト転送状態が R1 出力の行 7 と行 8 に示されているように更新されます。
その後の行には、R2(RP)とR3間のdebug出力が示されています。送信元(R3に直接接続)がグループ239.255.0.1へのパケットの送信を開始しました。
まず、R3 での出力を調べます。
1 PIM: Check RP 192.168.7.2 into the (*, 239.255.0.1) entry 2 PIM: Building Join/Prune message for 239.255.0.1 3 PIM: For RP, Join-list: 192.168.7.2/32, RP-bit, WC-bit 4 PIM: Send periodic Join/Prune to RP via 192.168.7.2 (Serial4/0) 5 PIM: Received RP-Reachable on Serial4/0 from 192.168.7.2 6 PIM: Update RP expiration timer (270 sec) for 239.255.0.1 7 PIM: Send Register to 192.168.7.2 for 192.168.33.32, group 239.255.0.1 8 PIM: Send Register to 192.168.7.2 for 192.168.33.32, group 239.255.0.1 9 PIM: Received Join/Prune on Serial4/0 from 192.168.7.2 10 PIM: Join-list: (192.168.33.32/32, 239.255.0.1), S-bit set 11 PIM: Add Serial4/0/192.168.7.2 to (192.168.33.32/32, 239.255.0.1), Forward state 12 PIM: Received Register-Stop on Serial4/0 from 192.168.7.2 13 PIM: Clear register flag to 192.168.7.2 for (192.168.33.32/32, 239.255.0.1) 14 PIM: Received Register-Stop on Serial4/0 from 192.168.7.2 15 PIM: Clear register flag to 192.168.7.2 for (192.168.33.32/32, 239.255.0.1)
これはRPであるR2の出力です。
16 PIM: Received Join/Prune on Serial0 from 192.168.7.1, to us 17 PIM: Send RP-reachability for 239.255.0.1 on Serial0 18 PIM: Received Register on Serial0 from 192.168.7.1 for 192.168.33.32, group 239.255.0.1 19 PIM: Forward decapsulated data packet for 239.255.0.1 on Ethernet0 20 PIM: Forward decapsulated data packet for 239.255.0.1 on Serial0 21 PIM: Send Join on Serial0 to 192.168.7.1 for (192.168.33.32/32, 239.255.0.1), S-bit 22 PIM: Send Join on Serial0 to 192.168.7.1 for (192.168.33.32/32, 239.255.0.1), S-bit 23 PIM: Send Register-Stop to 192.168.7.1 for 192.168.33.32, group 239.255.0.1 24 PIM: Received Join/Prune on Serial0 from 192.168.7.1, to us 25 PIM: Prune-list: (192.168.33.32/32, 239.255.0.1) 26 PIM: Received v2 Join/Prune on Ethernet0 from 192.168.10.1, to us 27 PIM: Join-list: (*, 239.255.0.1) RP 192.168.7.2, RPT-bit set, WC-bit set, S-bit set 28 PIM: Add Ethernet0/192.168.10.1 to (*, 239.255.0.1), Forward state 29 PIM: Add Ethernet0/192.168.10.1 to (192.168.33.32/32, 239.255.0.1) 30 PIM: Join-list: (192.168.33.32/32, 239.255.0.1), S-bit set 31 PIM: Add Ethernet0/192.168.10.1 to (192.168.33.32/32, 239.255.0.1), Forward state 32 PIM: Building Join/Prune message for 239.255.0.1 33 PIM: For 192.168.7.1, Join-list: 192.168.33.32/32 34 PIM: For 192.168.10.1, Join-list: 192.168.9.1/32 35 PIM: Send v2 periodic Join/Prune to 192.168.10.1 (Ethernet0) 36 PIM: Send periodic Join/Prune to 192.168.7.1 (Serial0) 37 PIM: Received Join/Prune on Serial0 from 192.168.7.1, to us 38 PIM: Join-list: (*, 239.255.0.1) RP 192.168.7.2, RP-bit set, WC-bit set, S-bit set 39 PIM: Add Serial0/192.168.7.1 to (*, 239.255.0.1), Forward state 40 PIM: Add Serial0/192.168.7.1 to (192.168.33.32/32, 239.255.0.1) 41 PIM: Add Serial0/192.168.7.1 to (192.168.9.1/32, 239.255.0.1) 42 PIM: Join-list: (192.168.9.1/32, 239.255.0.1), S-bit set 43 PIM: Add Serial0/192.168.7.1 to (192.168.9.1/32, 239.255.0.1), Forward state 44 PIM: Join-list: (*, 239.255.0.1) RP 192.168.7.2, RP-bit set, WC-bit set, S-bit set 45 PIM: Add Serial0/192.168.7.1 to (*, 239.255.0.1), Forward state
| 改定 | 発行日 | コメント |
|---|---|---|
3.0 |
23-Sep-2026
|
スペル、文法、読みやすさを考慮したセクションへの水平線の挿入、CCWアラートの修正を更新。 |
2.0 |
28-Nov-2023
|
再認定 |
1.0 |
10-Dec-2001
|
初版 |