目錄

簡介

必要條件

需求

採用元件

慣例

故障排除策略

檢查源資料包流

檢查網路信令

排除PIM稀疏模式故障

檢查網路資料包流

檢查接收器信令

檢查接收方資料包流

Power CLI工具

mstat

mrinfo

mtrace

ping

show命令

show ip igmp groups

show ip igmp interface

show ip pim neighbor

show ip pim interface

show ip mroute summary

show ip mroute

show ip mroute active

show ip rpf

show ip mcache

show ip mroute count

show ip route

show ip pim rp mapping

debug指令

debug ip igmp

debug ip mpacket

debug ip mrouting

debug ip pim

相關資訊

簡介

本文描述用於對組播網路進行故障排除的不同工具和技術。

必要條件

需求

本文件沒有特定需求。

採用元件

本文件所述內容不限於特定軟體和硬體版本。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

慣例

如需文件慣例的詳細資訊，請參閱思科技術提示慣例。

故障排除策略

對組播網路進行故障排除時，最好考慮網路和資料包流中使用的信令協定。信令協定用於建立和拆除組播會話（如PIM密集模式、PIM稀疏模式和DVMRP），資料包流是根據信令過程建立的轉發表，在源與接收方之間實際傳送、複製和接收組播資料包。

下表幫助驗證要故障排除的每項資訊，並檢查表的每個部分是否正常工作：

來源

網路

接收器

訊號

不適用

檢查網路信令

檢查接收器信令

封包流量

檢查源資料包流

檢查網路資料包流

檢查接收方資料包流

接下來的小節將詳細介紹可用於檢查和修復常見問題的故障排除工具。

檢查源資料包流

完成以下步驟，判斷來源是否已經傳送封包，且已插入正確封包欄位：

1. 檢查主機上的介面計數器。首先，檢查源主機上的介面計數器(如果是在UNIX系統上，請使用netstat命令)，以檢視它是否傳送資料包。如果失敗，請檢查主機堆疊和應用程式中是否有錯誤組態或錯誤。

2. 使用show ip igmp groups <interface-name>命令檢查上游路由器，以檢視它是否在直接連線到源的介面上收到加入成員報告。

3. 檢查組播應用程式中資料包的TTL值；該值必須大於1。如果應用程式傳送的TTL值小於1的資料包，您必須看到第一個上游路由器丟棄的流量。若要驗證，請使用show ip traffic命令，並尋找「bad hop count」計數器的值是否增加。TTL值為1或小於介面使用ip multicast ttl-threshold命令設定的TTL閾值的任何資料包都會被丟棄，並且「壞跳數」計數器會增加1。使用show ip igmp interface <interface-name>命令檢視介面TTL閾值。

4. 使用show ip mroute count和show ip mroute active命令檢查第一個上游路由器或交換機，以檢視它是否看到來自源的組播資料包。命令輸出會顯示每個(S，G)對的流量統計資訊。如果您沒有觀察到任何流量，請檢查接收器信令。

5. 在最近的上游路由器上使用debug ip mpacket命令，並使用detail或acl引數來指定粒度。

注意：當網路上存在大量組播流量時，請謹慎使用此命令。僅在必要時對路由使用debug ip mpacket命令。使用detail引數在debug輸出中顯示資料包報頭，使用訪問清單檢查來自特定源的流量。請記住，此命令可能會對其他流量產生嚴重的效能影響。

檢查網路信令

這是任何網路中最複雜、最重要的故障排除。這取決於使用的網路信令協定，例如PIM稀疏模式、PIM密集模式和DVMRP。我們建議使用本節中介紹的多步驟方法。

排除PIM稀疏模式故障

完成以下步驟以排除PIM稀疏模式故障：

1. 檢查是否在所有組播路由器上啟用了IP組播路由。

2. 使用show ip pim neighbor命令檢查到期計時器和模式以確保成功建立PIM鄰居，並查詢可能阻止PIM鄰居建立的任何連線和計時器問題。如有必要，請使用ip pim [version] [dense-mode] [sparse-mode] [sparse-dense-mode] interface level子命令設定正確的模式和版本，以成功建立PIM鄰居。

3. 使用show ip pim rp mapping命令以確保正確的RP-Group對映，並在配置了自動RP時檢查到期計時器。使用debug ip pim auto-rp命令幫助診斷任何自動RP故障。如果您沒有看到任何PIM組到RP的對映，請檢查自動RP配置，或使用ip pim rp-address ip address of RP [access-list] [named-accesslist] [override]命令配置靜態組 — RP映射。可以使用ip pim send-rp-announce interface-id scope TTL value和ip pim send-rp-discovery interface-id scope TTL value命令執行自動RP配置。只有在具有自動RP配置時才必須配置這些命令。

4. 使用show ip rpf <ip address of source>命令檢查源地址的RPF故障。如果流量到達非RPF點對點介面，則PIM密集模式和PIM稀疏模式會將修整消息傳送回源。debug ip pim命令有助於確定PIM網路中故障的可能原因 — 它將典型輸出與所看到的進行比較。使用此輸出可標識PIM稀疏模式中的三個離散階段：加入、註冊和SPT切換。show ip mroute命令允許您檢視傳出介面清單中的空條目和mroute表中的已修剪條目。

檢查網路資料包流

使用以下命令檢查網路中的組播資料包流：

- 使用mtrace命令逐跳檢查組播跟蹤

- mstat

- ping

- show ip mroute count

- show ip mroute active

- debug ip mpacket

檢查接收器信令

完成以下步驟以檢查接收方信令：

1. 在連線到接收器的第一個上游路由器上使用show ip igmp groups命令，檢查介面是否已加入該組。

2. 使用ping命令檢查主機和第一個上游路由器的可達性。

3. 使用show ip igmp interface命令檢查介面的IGMP版本。

注意：請記住，配置了IGMP版本1的路由器認為從主機接收的IGMP版本2資料包無效。這些IGMP資料包不會加入該組，直到路由器收到來自主機的IGMP版本1資料包。

4. 使用debug ip igmp命令進一步對接收器信令進行故障排除。

檢查接收方資料包流

完成以下步驟以檢查接收方資料包流：

1. 在UNIX系統上使用netstat命令檢查接收方介面統計資訊。

2. 檢查TCP/IP堆疊是否已正確安裝和配置。

3. 檢查組播接收器客戶端應用程式是否已正確安裝和配置。

4. 觀察多路訪問網段上的重複組播資料包。

Power CLI工具

本節中的命令在排除故障時也很有用，特別是在測試網路資料包流和查詢組播網路中的故障點時。

mstat

此命令以ASCII圖形格式顯示組播路徑。它跟蹤網路中任意兩點之間的路徑，顯示網路中每個節點的丟棄和重複、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

mrinfo

此命令顯示組播鄰居路由器資訊、路由器功能和代碼版本、組播介面資訊、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

mtrace

此命令顯示從源到接收方的組播路徑，並跟蹤網路中各點之間的路徑，其中顯示每個節點的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

ping

進行故障排除時，ping命令是本實驗中生成組播流量以測試組播樹的最簡單方法，因為它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

show命令

本節中的命令可幫助您在對組播問題進行故障排除時收集有用資訊。請參閱Cisco IOS IP多點傳送命令參考指南，瞭解有關這些show命令的更多詳細資訊。

提示：如果show命令響應緩慢，最可能的原因是路由器當前在show命令中對IP地址執行IP域查找。您可以禁用IP域查詢，在路由器全域性配置模式下使用no ip domain-lookup命令禁用IP域查詢。這將停止IP域查詢並提高show命令輸出速度。

show ip igmp groups

此命令顯示哪些組播組直接連線到路由器，哪些組播組通過網際網路組管理協定(IGMP)獲知。您可以使用此命令來驗證源或接收器是否已實際加入路由器介面上的目標組。Last Reporter列僅顯示一個IGMP主機，這表示該主機已傳送未經請求的IGMP連線或IGMP報告，以響應來自該特定組的PIM路由器的IGMP查詢。每個組地址只能看到最後一個報告程式。

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

show ip igmp interface

使用此命令可顯示有關介面的組播相關資訊，並驗證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)

show ip pim neighbor

使用此命令列出Cisco IOS軟體發現的協定無關組播(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

每個欄位的詳細資訊解釋如下：

- Neighbor Address — 指定PIM鄰居IP地址

- Interface — 在其中發現PIM鄰居的介面

- 正常運行時間 — 鄰居的總正常運行時間

- Expires — 鄰居超時之前和收到下一個PIM hello之前的時間

- 版本 — 鄰居介面上的PIM版本

- DR Prio — 可能的值為0到4294967294或N

這是一個新列，用於跟蹤PIM介面的DR選舉優先順序。使用Bidir-PIM的Cisco IOS軟體版本12.1(2)T和12.2以及Cisco IOS映像引入了根據最高優先順序與最高IP地址配置DR的功能。可以使用ip pim dr-priority <0-4294967294>interface命令設定DR優先順序。預設DR優先順序設定為1。對於互操作性，如果PIM鄰居運行不支援DR優先順序功能的舊版Cisco IOS版本，則「DR Previous」列顯示為N。如果鄰居是介面上唯一顯示N的路由器，則無論哪個路由器實際具有最高的IP地址，它都會成為DR。如果有多個PIM鄰居，其中N列在此列下，則連線斷開器是其中最高的IP地址。

- 模式 — 有關DR和其他PIM功能的資訊。

除了PIM鄰居支援的所有功能外，此列還列出DR:

DR - PIM鄰居是指定路由器

B — 支援雙向PIM(Bidir-PIM)

S — 支援狀態刷新（僅適用於密集模式）

進行故障排除時，使用此命令驗證所有鄰居都已啟動，並且它們使用正確的模式、版本和過期計時器。您還可以檢查路由器配置，或使用show ip pim interface命令驗證模式（PIM稀疏模式或密集模式）。使用debug ip pim命令觀察pim查詢消息交換。

show ip pim interface

使用此命令可以顯示為PIM配置的介面的資訊。此外，您可以使用此命令驗證介面上配置了正確的PIM模式（密集或稀疏），鄰居計數正確，指定路由器(DR)正確（對於PIM稀疏模式至關重要）。多路訪問網段（如乙太網、令牌環、FDDI）根據最高IP地址選擇DR。點對點鏈路不顯示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

show ip mroute summary

使用此命令可顯示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

show ip mroute

使用此命令可顯示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

show ip mroute active

使用此命令可以顯示超過閾值的活動流量源和組。進行故障排除時，可使用它來驗證活動源組以及每個源組(S，G)對的流量速率(您必須切換到最短路徑樹(SPT))，並檢查是否收到目標組組播流量。如果沒有收到流量，請尋找從來源到接收者的有效流量。

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)

show ip rpf

使用以下命令以顯示IP多點傳送路由如何執行反向路徑轉送(RPF)。進行故障排除時，請使用它來驗證RPF資訊是否正確。如果不是，請檢查源地址的單播路由表。在來源位址上使用ping和trace指令驗證單點傳播路由是否有效。您可以使用距離向量組播路由協定(DVMRP)路由或靜態路由來修復任何單播 — 組播不一致問題。

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

show ip mcache

此命令可驗證IP多點傳送快速交換快取和偵錯快速交換錯誤。

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 count

使用此命令驗證是否收到組播流量，並檢查其流量和丟棄。如果沒有收到流量，請從來源到接收者進行工作，直到找到流量停止的位置。您也可以使用此命令驗證流量是否已轉發。如果不是，請使用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:

show ip route

使用此命令檢查單播路由表並修復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

show ip pim rp mapping

使用此命令可以按組播組範圍檢查RP分配，並驗證RP學習（靜態或自動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輸出和哪些輸出指向您的網路問題。有關這些debug命令的更多詳細資訊，請參閱Cisco IOS Debug命令參考。

debug ip igmp

使用debug ip igmp命令顯示已接收和傳輸的IGMP資料包以及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（此子網上的所有組播系統）的IGMP版本2查詢從介面Ethernet 1發出。Interface Ethernet 1本身是組224.0.1.40(可以使用show ip igmp interface命令來確定這一點)的成員，該命令將報告延遲時間設定為9.4秒（隨機確定）。由於它在接下來的9.4秒內沒有從另一個系統收到組播組224.0.1.40的任何報告，因此它會傳送其成員資格的版本2報告，該報告由位於乙太網1上的路由器本身接收。它還會收到來自主機192.168.9.1的IGMP報告版本1，該主機直接連線到組239.255.0.1的介面Ethernet 1。

當您驗證路由器介面是否傳送查詢並確定查詢間隔（在上一個案例中，為60秒）時，此debug輸出非常有用。您還可以使用該命令來確定客戶端使用的IGMP版本。

debug ip mpacket

使用debug ip mpacket命令顯示所有接收和傳輸的IP組播資料包。此命令的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值以及資料包被丟棄的原因會很有用。

注意：開啟資料包級調試輸出時，尤其是當路由器服務多播資料包負載較高時，請務必小心。

debug ip mrouting

此命令對於路由表維護非常有用。使用它來檢驗(S，G)mroute是否已安裝在mroute表中，如果沒有，則檢查原因。此輸出中的關鍵資訊是RPF介面。如果存在RPF檢查故障，(S，G)mroute將無法安裝到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

debug ip pim

使用debug ip pim命令顯示接收和傳輸的PIM資料包以及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

以下是每行輸出的含義：R1和R2在交換Hello消息時建立PIM鄰居。這些定期Hello消息(在R1(E0)和R2(E0)之間以Query-Interval秒交換)用於跟蹤PIM鄰居。

R1向RP地址192.168.7.2傳送加入/修整消息。RP(R2)將組239.255.0.1的已接收RP可達消息回復到R1。這又會更新R1的RP過期計時器。過期計時器設定檢查點以確保RP仍然存在；否則，必須發現新的RP。使用show ip pim rp命令觀察RP到期時間。

現在，當組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.8.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加入以加入共用樹。

當IGMP連線到達R2時，R2會安裝(*, 239.255.0.1)mroute，如R2輸出第12行至第15行所示。

R2在其路由表中安裝(*, 239.255.0.1)後，會將其從中收到加入/修整消息的介面新增到其處於轉發狀態的傳出介面清單(OIL)中。然後，它會在收到加入/修剪消息的介面上傳送回可到達RP的消息。此事務處理顯示在R2輸出的第15行至第21行中。

R1收到組239.255.0.1的RP可到達消息並更新其RP的過期計時器。預設情況下，此交換每分鐘重複一次，並刷新其組播轉發狀態，如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)

以下是R2(RP)的輸出：

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

10 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

第1行顯示，R3（通過Ethernet0/0直接連線到源）接收組239.255.0.1的組播流量。它會建立一個(*, 239.255.0.1)條目並將加入消息傳送到RP。

第16行和第17行顯示，R2（即RP）也接收加入/修整消息並將RP可達性資訊傳送回R3。

在第5行和第6行中，R3在收到RP可到達資訊後更新其RP過期計時器。前面的第7行和第8行顯示，R3使用其(*,G)條目將資料傳送到RP，該RP封裝在源中發起到組239.255.0.1的傳輸。

第18行到第20行顯示，R2收到暫存器資料包，將其解封，並通過路由表中預先存在的(*, 239.255.0.1)條目沿樹轉發。

第21行和第29行顯示，R2向R3傳送加入消息，並在mroute表中安裝(S，G)(192.168.33.32, 239.255.0.1)條目。

第9行到第11行顯示，R3收到來自R2的加入消息，在mroute表中安裝(S，G)(192.168.33.32,239.255.0.1)條目，並將連線到RP的介面置於轉發模式，從而構建(S，G)面向源的多播SPT樹。

在第23行中，R2開始接收(S，G)下行SPT的流量，並向源傳送註冊停止消息（和加入消息）。

第12至15行顯示R3收到註冊停止消息，清除註冊標誌，並停止封裝(S，G)流量。

定期加入/修整消息在RP和R3之間交換，以維護組播樹。

相關資訊

- IP組播故障排除指南

- 組播快速入門配置指南

- IP多點傳送支援頁面

- IP 路由支援頁面

- 思科技術支援與下載