在安全防火墙威胁防御(FTD)上观察到以下症状:FTD使用双向协议独立组播(BIDIR-PIM,PIM-SM的变体)作为中间跳加入组播路由域:
1.不存在特定组播组232.4.4.4的mroute:
device# show mroute 232.4.4.4
No mroute entries found.
2. show mfib count命令输出中232.0.0.0/8组范围的“Other drops”计数器增加:
device# show mfib count
IP Multicast Statistics
6 routes, 3 groups, 0.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: 224.0.1.39
RP-tree:
Forwarding: 0/0/0/0, Other: 0/0/0
Group: 224.0.1.40
RP-tree:
Forwarding: 0/0/0/0, Other: 0/0/0
Group: 232.0.0.0/8
RP-tree:
Forwarding: 0/0/0/0, Other: 2551/0/2551 <----
device# show mfib count
IP Multicast Statistics
6 routes, 3 groups, 0.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: 224.0.1.39
RP-tree:
Forwarding: 0/0/0/0, Other: 0/0/0
Group: 224.0.1.40
RP-tree:
Forwarding: 0/0/0/0, Other: 0/0/0
Group: 232.0.0.0/8
RP-tree:
Forwarding: 0/0/0/0, Other: 2864/0/2864 <----
3.组播数据包在加速安全路径(ASP)中因超过Punt速率限制(punt-rate-limit)丢弃原因而被丢弃。 丢包计数器持续增加:
device# cap capi trace interface inside match udp any host 232.4.4.4
device# show cap capi trace
2: 19:36:08.509205 192.168.1.2.12345 > 232.4.4.4.12345: udp 0
Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Elapsed time: 13056 ns
Config:
Additional Information:
MAC Access list
Phase: 2
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Elapsed time: 13056 ns
Config:
Implicit Rule
Additional Information:
MAC Access list
Phase: 3
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Elapsed time: 2560 ns
Config:
Additional Information:
Found flow with id 4876, using existing flow
Result:
input-interface: inside
input-status: up
input-line-status: up
Action: drop
Time Taken: 28672 ns
Drop-reason: (punt-rate-limit) Punt rate limit exceeded, Drop-location: frame snp_sp_mcast:4898 flow (NA)/NA
device# show asp drop
Frame drop:
Punt rate limit exceeded (punt-rate-limit) 142
FP L2 rule drop (l2_acl) 6
Last clearing: 19:38:00 UTC Apr 29 2026 by admin
Flow drop:
Last clearing: 19:38:00 UTC Apr 29 2026 by admin
…
device# show asp drop
Frame drop:
Punt rate limit exceeded (punt-rate-limit) 780
FP L2 rule drop (l2_acl) 37
4.外部接口捕获不显示任何出口组播数据包:
device# capture capo type raw-data interface outside match udp any host 232.4.4.4
device# show cap capo
0 packet captured
0 packet shown
拓扑:
拓扑.png
关键点
组播域中的对等体使用BIDIR-PIM。
本文中的“路由器”是指思科路由器,如CSR或ASR。
Rendezvous Point(RP)是运行Cisco IOS XE软件版本17.09.08的ASR1001-X。其他平台和软件版本也会受到影响。
第一跳路由器(FHR)是运行Cisco IOS XE软件版本16.12.04的C9200L-48T-4G。其他平台和软件版本也可能受到影响。
使用PIM引导路由器(BSR)在组播域中动态传播整个组播范围224.0.0.0/8的Loopback0接口上的交汇点(RP)地址10.4.4.4。 使用静态PIM RP地址配置的部署也会受到影响。
RP上的PIM配置:
device# show run interface loopback0
interface Loopback0
description LO0
ip address 10.4.4.4 255.255.255.255
ip pim sparse-mode
device(config)# ip pim bidir-enable
device(config)# ip pim bsr-candidate Loopback0 0 1
device(config)# ip pim rp-candidate Loopback0 interval 10 priority 1 bidir
为简单起见,在本例中,RP显示为已连接到接收器,即它也是最后一跳路由器(LHR)。这是可选的。
防火墙是运行版本7.6.4的安全防火墙3110。其他防火墙平台、软件版本和自适应安全设备(ASA)软件也可能会受到影响。
在防火墙上,组播路由已启用,而且第一跳路由器(FHR)和RP具有PIM BIDIR功能的PIM邻接关系:
device# show run multicast-routing
multicast-routing
device# show pim neighbor
Neighbor Address Interface Uptime Expires DR pri Bidir
192.168.2.1 inside 1d12h 00:01:40 1 B
192.168.3.1 outside 1d12h 00:01:35 1 B
在防火墙上,尽管使用PIM BSR,但PIM RP地址10.4.4.4是手动配置的。这是冗余配置。因此,组224.0.0.0/4与RP地址10.4.4.4之间存在2个RP到组的映射:
device# show run pim
pim rp-address 10.4.4.4 bidir
device# show pim group-map
Group Range Proto Client Groups RP address Info
224.0.1.39/32* DM static 0 0.0.0.0
224.0.1.40/32* DM static 0 0.0.0.0
224.0.0.0/24* L-Local static 1 0.0.0.0
232.0.0.0/8* SSM config 0 0.0.0.0
224.0.0.0/4* BD BSR 0 10.4.4.4 RPF: outside,192.168.3.1 <-- * means the mapping is in use.
224.0.0.0/4 BD config 0 10.4.4.4 RPF: outside,192.168.3.1
224.0.0.0/4 SM static 0 0.0.0.0 RPF: ,0.0.0.0
在继续操作之前,请确保复习“原因”部分。
由于预期配置(BIDIR-PIM)和需要使用PIM SSM处理的流量之间不兼容,防火墙上可能会出现数据包丢弃。
如果预期配置是BIDIR-PIM,请考虑以下选项:
仅使用非PIM SSM组。
如果必须使用PIM SSM组,请确保防火墙将PIM SSM范围内的组播组作为非SSM组地址处理。有关详细信息,请参阅问答部分。
考虑思科漏洞ID CSCwt9960。
地址232.4.4.4属于互联网编号指派机构(IANA)保留的源特定组播(SSM)组范围。 防火墙自动为PIM SSM保留232.0.0.0/8范围:
device# show pim group-map
Group Range Proto Client Groups RP address Info
224.0.1.39/32* DM static 0 0.0.0.0
224.0.1.40/32* DM static 0 0.0.0.0
224.0.0.0/24* L-Local static 1 0.0.0.0
232.0.0.0/8* SSM config 0 0.0.0.0
224.0.0.0/4* BD BSR 0 10.4.4.4 RPF: outside,192.168.3.1
224.0.0.0/4 BD config 0 10.4.4.4 RPF: outside,192.168.3.1
224.0.0.0/4 SM static 0 0.0.0.0 RPF: ,0.0.0.0
有关PIM SSM的要点:
它构建基于源的树并使用(S, G)路由。
不需要基于RP的PIM-SM协议的共享树基础设施。换句话说,不使用RP或(*, G)路由。
接收方通常使用互联网组管理协议第3版(IGMPv3)加入组播树,并附带“源过滤”,即系统能够报告只从特定源地址接收数据包,或者只从特定源地址接收发送到特定组播地址的数据包。
有关BIDIR-PIM的要点:
它构建连接组播源和接收器的双向共享树。
使用在组播拓扑的每个链路上运行的故障安全指定转发器(DF)选举机制构建双向树。
在DF的帮助下,组播数据从源本地转发到RP,从而沿着共享树转发到接收器,而不需要源特定状态。
BIDIR-PIM不使用最短路径树(SPT)和(S, G)条目。
BIDIR-PIM对等体使用(*, G)条目构建共享树。此特定组播组的条目必须存在于mroute表中。
通过比较PIM SSM和BIDIR-PIM的要点,可以发现PIM SSM和BIDIR-PIM具有互斥的功能。
在这种情况下,组播域配置为使用BIDIR-PIM,而组播组属于IANA和防火墙为PIM SSM保留的范围。由于组播域使用BIDIR-PIM,因此PIM SSM所需的(S, G)路由在防火墙上不可用。由于缺少路由,组播流量的传出/出口接口不可用。缺少出口/传出接口会导致组播转发信息库(MFIB)中的数据包丢弃。 可以使用show mfib或show mfib count命令验证丢弃:
device# show mfib count
IP Multicast Statistics
6 routes, 3 groups, 0.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: 224.0.1.39
RP-tree:
Forwarding: 0/0/0/0, Other: 0/0/0
Group: 224.0.1.40
RP-tree:
Forwarding: 0/0/0/0, Other: 0/0/0
Group: 232.0.0.0/8
RP-tree:
Forwarding: 0/0/0/0, Other: 333797/0/333797
防火墙尝试通过连接控制点(CP)来解析传出/出口接口。 这是关键的防火墙组件,主要负责管理和控制平面功能,如路由协议、管理访问、故障切换/集群管理、处理发往防火墙接口的数据包、组播或广播IP地址等。
为了避免控制点过载,防火墙具有内置保护机制。例如,防火墙会限制从数据平面(DP)发送到控制点的数据包的速率。超过速率的数据包将被丢弃,同时超过punt rate limit(punt-rate-limit)ASP丢弃原因。可在show asp event dp-cp punt的输出中验证该传送速率 | begin EVENT-TYPE命令:
device# show asp event dp-cp punt | begin EVENT-TYPE
EVENT-TYPE ALLOC ALLOC-FAIL ENQUEUED ENQ-FAIL RETIRED 15SEC-RATE
punt 1264746 0 1264746 0 1264746 44 <-- 15-second punt rate
multicast 1250020 0 1250020 0 1250020 44
pim 14726 0 14726 0 14726 0
总之,结论是,由于预期配置(BIDIR-PIM)和需要使用PIM SSM处理的流量之间不兼容,防火墙上可能会出现丢包现象。
问题解答
在本节中,“路由器”是指类似CSR的思科路由器,“防火墙”是指运行ASA或FTD的思科防火墙。
1.Q:防火墙是否自动为PIM SSM保留232.0.0.0/8?
A:Yes.与CSR等路由器不同,不需要特定的配置。在路由器上,PIM SSM范围需要显式配置:
device(config)#ip pim ssm ?
default Use 232/8 group range for SSM
range ACL for group range to be used for SSM
2.Q:MFIB“Other drops”计数器是否特定于防火墙?
A:否。具有组播路由的Cisco路由器上存在类似的计数器。
3.Q:其它设备(例如路由器代替防火墙)是否也会丢弃发送到组232.4.4.4的数据包?
A:这取决于路由器如何处理地址232.4.4.4。与防火墙不同,默认情况下,路由器不为PIM SSM保留范围232.0.0.0/8。但是,如果同时启用PIM SSM和BIDIR-PIM,并且路由器为BIDIR-PIM感知RP或接收带有Bidir标志的RP到组的映射,并接收发送到PIM SSM范围的组播数据包,则数据包将被丢弃,MFIB“Other”计数器增加:
device# show run | i pim
ip pim bidir-enable
no ip pim autorp
ip pim ssm default
device# show ip pim rp mapping
Auto-RP is not enabled
PIM Group-to-RP Mappings
Group(s) 224.0.0.0/4
RP 10.4.4.4 (?), v2, bidir <-- mapping has the bidir flag
Info source: 10.4.4.4 (?), via bootstrap, priority 1, holdtime 150
Uptime: 17:32:39, expires: 00:02:05
device# show ip mfib count
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)
Default
9 routes, 6 (*,G)s, 3 (*,G/m)s
Group: 224.0.0.0/4
RP-tree,
SW Forwarding: 1/0/28/0, Other: 41037/41037/0
HW Forwarding: 3428217/0/64/0, Other: 0/0/0
Group: 232.0.0.0/8
RP-tree,
SW Forwarding: 0/0/0/0, Other: 97/97/0 <----
HW Forwarding: 0/0/0/0, Other: 0/0/0
device# show ip mfib count
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)
Default
9 routes, 6 (*,G)s, 3 (*,G/m)s
Group: 224.0.0.0/4
RP-tree,
SW Forwarding: 1/0/28/0, Other: 41037/41037/0
HW Forwarding: 3428217/0/64/0, Other: 0/0/0
Group: 232.0.0.0/8
RP-tree,
SW Forwarding: 0/0/0/0, Other: 106/106/0 <----
HW Forwarding: 0/0/0/0, Other: 0/0/0
请注意,与路由器上计数器增加“Other drops”的防火墙不同,计数器增加“RPF failed”。
4.Q:如何强制防火墙将来自PIM SSM范围的组作为非SSM组地址进行处理?
A:确保RP通告比232.0.0.0/8(更长的前缀)更具体的组的RP到组的映射,或者在防火墙上为特定组手动配置RP地址。
选项1.RP上的配置:
device(config)# access-list 1 permit host 232.4.4.4
device(config)# ip pim rp-candidate Loopback0 group 1 interval 10 priority 1 bidir <-- group refers to the access-list
防火墙验证:
device# show pim group-map 232.4.4.4 Group Range Proto Client Groups RP address Info 232.4.4.4/32* BD BSR 0 10.4.4.4 RPF: outside,192.168.3.1 <-- Proto is BD, not SSM
选项2.防火墙配置:
device(config)# access-list mcast standard permit 232.4.4.4 255.255.255.254
device(config)# pim rp-address 10.4.4.4 mcast bidir
device(config)# show pim group-map 232.4.4.4
Group Range Proto Client Groups RP address Info
232.4.4.4/31* BD config 0 10.4.4.4 RPF: outside,192.168.3.1 <-- Proto is BD, not SSM
请注意,访问列表不得使用掩码为255.255.255.255的主机条目。
5.Q:如果防火墙将来自PIM SSM范围的组作为非SSM组地址处理,会发生什么情况?
A:假设组232.4.4.4作为非SSM地址处理(请参阅问题4):
device# show pim group-map 232.4.4.4
Group Range Proto Client Groups RP address Info
232.4.4.4/32* BD BSR 0 10.4.4.4 RPF: outside,192.168.3.1
如果软件版本受Cisco Bug ID CSCwt9960影响,则缺少(*, G)mroute,并且组播流量受速率限制,每秒大约50个数据包。超出的数据包被丢弃,同时超出了punt rate limit(punt-rate-limit)ASP丢弃原因:
device# show mroute 232.4.4.4
No mroute entries found.
device# show mfib 232.4.4.4 count
IP Multicast Statistics
7 routes, 4 groups, 0.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: 232.4.4.4
RP-tree:
Forwarding: 23317/50/28/10, Other: 0/0/0
device# show mfib 232.4.4.4 count
IP Multicast Statistics
7 routes, 4 groups, 0.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: 232.4.4.4
RP-tree:
Forwarding: 23540/49/28/10, Other: 0/0/0
device# capture capi interface inside trace match udp any host 232.4.4.4
device# show capture capi trace | i Drop-reason
Drop-reason: (punt-rate-limit) Punt rate limit exceeded, Drop-location: frame snp_sp_mcast:4898 flow (NA)/NA
Drop-reason: (punt-rate-limit) Punt rate limit exceeded, Drop-location: frame snp_sp_mcast:4898 flow (NA)/NA
Drop-reason: (punt-rate-limit) Punt rate limit exceeded, Drop-location: frame snp_sp_mcast:4898 flow (NA)/NA
Drop-reason: (punt-rate-limit) Punt rate limit exceeded, Drop-location: frame snp_sp_mcast:4898 flow (NA)/NA
Drop-reason: (punt-rate-limit) Punt rate limit exceeded, Drop-location: frame snp_sp_mcast:4898 flow (NA)/NA
Drop-reason: (punt-rate-limit) Punt rate limit exceeded, Drop-location: frame snp_sp_mcast:4898 flow (NA)/NA
Drop-reason: (punt-rate-limit) Punt rate limit exceeded, Drop-location: frame snp_sp_mcast:4898 flow (NA)/NA
Drop-reason: (punt-rate-limit) Punt rate limit exceeded, Drop-location: frame snp_sp_mcast:4898 flow (NA)/NA
…
有关详细信息,请参阅Cisco Bug ID CSCwt9960。
Cisco Bug ID CSCwt99960
| 版本 | 发布日期 | 备注 |
|---|---|---|
1.0 |
30-Apr-2026
|
初始版本 |