本文档介绍用于组播网络故障排除的工具和技术。
本文档需要熟悉IP组播、互联网组管理协议(IGMP)、协议无关组播(PIM)和反向路径转发(RPF)。
本文档不限于特定的软件和硬件版本。
注意:本文档中的命令可用性、语法和输出因Cisco平台和软件版本而异。示例使用Cisco IOS®和Cisco IOS XE®命令输出。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
排除组播网络故障时,请考虑网络和数据包流中使用的信令协议。信令协议用于设置和终止组播会话(例如PIM密集模式、PIM稀疏模式和DVMRP)。 数据包流根据信令过程创建的转发表,在源设备和接收设备之间发送、复制和接收组播数据包。
此表组织了对源、网络和接收器的信令和数据包流检查:
| 来源 |
网络 |
接收器 |
|
| 信令 |
不适用 |
||
| 数据包流 |
接下来的小节将详细介绍可用于检查和解决常见问题的故障排除工具。
完成以下步骤以确定源是否发送了数据包,并插入了正确的数据包字段:
1.检查主机上的接口计数器。首先,检查源主机上的接口计数器(如果是在UNIX系统上,请运行netstat命令),以查看它是否发送数据包。如果没有,请检查在主机堆栈和应用程序中是否存在错误配置或 Bug。
2.运行show ip igmp groups <interface-name>命令,验证路由器是否已收到该接口上的IGMP成员身份报告。
3.检查组播应用中数据包的TTL值。至少必须有2个路由跃点才能跨越。如果应用程序发送的TTL值为1的数据包,则当TTL到期时,第一上游路由器会丢弃这些数据包。要验证,请运行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.使用组播组或支持的访问列表(ACL)过滤器和detail关键字在最近的上游路由器上运行debug ip mpacket命令,以获取其他数据包信息和粒度。
注意:当网络上存在大量组播流量时,请谨慎运行此命令。仅在必要时在路由器上运行debug ip mpacket命令。运行detail参数以在debug输出中显示数据包报头,并运行访问列表以检查来自特定源的流量。请记住,此命令会对其他流量的性能产生严重影响。
这是所有网络中最复杂、最重要的故障排除部分。它取决于所用的网络信令协议,例如 PIM 稀疏模式、PIM 密集模式和 DVMRP。思科建议采用本节所述的多步骤方法。
请完成以下步骤以排除 PIM 稀疏模式故障:
1.检查所有组播路由器上是否已启用IP组播路由。
2.运行show ip pim neighbor命令检查过期计时器和模式以确保PIM邻居建立成功,并查找可能阻止PIM邻居建立的任何连接和计时器问题。如有必要,请运行interface命令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命令以识别任何自动RP故障。如果未看到任何PIM组到RP的映射,请检查自动RP配置,或使用ip pim rp-address <rp-address> [<access-list>] [override]命令配置静态组到RP的映射。使用ip pim send-rp-announce <interface> scope <ttl> group-list <access-list>配置候选RP,并使用ip pim send-rp-discovery <interface> scope <ttl>配置映射代理。以下命令仅适用于自动RP:在候选RP上配置send-rp-announce,并在映射代理上配置send-rp-discovery。
4.运行show ip rpf <source-address>命令以验证源地址的RPF接口、邻居和路由。PIM会丢弃到达非RPF接口的组播数据包。其他断言或修剪处理取决于PIM模式和接口类型。debug ip pim命令有助于确定PIM网络中出现故障的可能原因。将观察到的输出与本文档中的典型输出进行比较。运行以下输出以识别PIM稀疏模式中的三个离散阶段:加入、注册和 SPT 切换。show ip mroute 命令允许您查看传出接口列表中的空条目和 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 图形格式显示多播路径。它跟踪网络中任何两点之间的路径,显示网络中每个节点上的丢包数和重复项、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
当您排除故障时,ping命令是在实验中生成组播流量以测试组播树的简单方法,因为处理组播ICMP回应请求的可到达组成员可以响应。
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域查找来查找命令输出中的地址。您可以在全局配置模式下运行no ip domain lookup命令来禁用IP域查找。这将终止 IP 域名查找并提高 show 命令输出速度。
此命令显示哪些组播组直接连接到路由器,哪些组播组通过Internet组管理协议(IGMP)获知。您可以使用此命令验证接收器或本地加入的路由器接口是否已加入路由器接口上的目标组组。Last Reporter列仅显示一个IGMP主机,这表示该主机已发送未经请求的IGMP加入或IGMP报告,以响应来自该特定组的PIM路由器的IGMP查询。您可以看到每个组和接口条目的最后一个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软件发现的协议无关组播(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地址。
接口:在其中发现PIM邻居的接口。
运行时间:邻居的总运行时间。
Expires:在邻居超时之前和收到下一个PIM hello之前的时间。
版本:邻居接口上的PIM版本。
DR Prio:可能值为0到4294967294或N。
这是跟踪用于DR选举的PIM接口优先级的新列。使用Bidir-PIM的Cisco IOS®软件版本12.1(2)T和12.2以及Cisco IOS®映像中引入了根据最高优先级与最高IP地址配置DR的功能。您可以运行ip pim dr-priority <0-4294967294> 接口命令来设置DR优先级。默认 DR 优先级设为 1。
对于互操作性,如果PIM邻居运行不支持DR优先级功能的旧版Cisco IOS®,则“DR Previous”列显示为N。如果多路访问网络上的任何路由器不通告DR Priority选项,则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配置的接口的信息。此外,您可以运行此命令来验证接口上是否配置了正确的PIM模式(密集或稀疏)、邻居计数是否正确以及指定路由器(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命令以验证单播路由是否正常工作。您可以使用距离矢量组播路由协议(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
在支持组播快速交换缓存的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学习(静态或自动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 命令参考。
运行debug ip igmp命令以显示接收和传输的IGMP数据包,以及与IGMP主机相关的事件。此命令的 no 形式可禁用 debug 输出。
此输出可帮助您发现 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查询。 接口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命令以显示所有接收和传输的IP组播数据包。此命令的 no 形式可禁用 debug 输出。
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) 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命令以显示接收和传输的PIM数据包以及PIM相关事件。此命令的 no 形式可禁用 debug 输出。本部分通过一个示例帮助您了解 PIM 稀疏模式的 debug 输出,并显示了一个典型的 debug 输出。
以下是debug ip pim在R1上的输出:
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加入以加入共享树。
当PIM加入/修剪到达R2时,R2安装了一个(*, 239.255.0.1)mroute,如R2输出的第12行至第15行所示。
R2在其路由表中安装(*, 239.255.0.1)后,它会将从中接收加入/修剪消息的接口添加到处于转发状态的Outgoing-interface-list(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 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
|
初始版本 |