排除ASA组播常见问题

您所在的位置:网站首页 total简写ttl 排除ASA组播常见问题

排除ASA组播常见问题

2023-05-22 19:13| 来源: 网络整理| 查看: 265

简介

本文档介绍自适应安全设备(ASA)上的组播路由和常见问题。

功能信息 注意:有关自适应安全设备(ASA)、Firepower威胁防御(FTD)或安全防火墙威胁防御(FTD)上组播路由的更新内容,请参阅以下文章: Firepower威胁防御IGMP和组播基础故障排除 排除Firepower威胁防御和ASA组播PIM故障 思科内部信息

由于旧缺陷或修复的缺陷、防火墙外的问题,或罕见的用户案例,一些常见问题没有迁移到新文档中。

缩写/缩写

缩写词

说明

FHR

第一跳路由器 — 直接连接到组播流量源的一跳。

LHR

最后一跳路由器 — 直接连接到组播流量接收器的跳。

RP

交汇点

DR

指定路由器

SPT

最短路径树

RPT

交汇点(RP)树、共享树

RPF

反向路径转发

石油

传出接口列表

MRIB

组播路由信息库

MFIB

组播转发信息库

ASM

任意源组播

BSR

Bootstrap路由器

SSM

源特定组播

FP

快速路径

服务提供商

慢速路径

CP

控制点

PPS

每秒数据包速率

ASA上的组播可以配置为以下两种模式之一: PIM稀疏模式(协议无关组播:RFC 4601) IGMP末节模式(互联网组管理协议:RFC 2236)

因为ASA通过真正的组播路由协议(PIM)与邻居通信,所以PIM稀疏模式是首选模式。在ASA 7.0版本发布之前,IGMP末节模式是唯一的组播配置选项,其操作方法只是将从客户端收到的IGMP报告转发到上游路由器。

   

思科内部信息

有关由PIX/ASA(EDCS-530142)实施的一些其他组播安全检查的信息:

组播组件

 通常,组播基础设施由以下组件组成:

发送方=>发起组播流的主机或网络设备。例如,发送视频和/或音频流的服务器以及运行路由协议(如EIGRP或OSPF)的网络设备。 

Receiver =>接收组播流的主机或设备。此术语通常用于那些对流量有积极兴趣并使用IGMP加入或离开有问题的组播组的主机。

路由器/ASA =>负责处理组播流/流量并在需要时从源到客户端转发到网络其他网段的网络设备。

组播路由协议=>负责转发组播数据包的协议。最常见的是PIM(协议无关组播),但也有其它类似于MOSPF的组播。

Internet组管理协议(IGMP)=>客户端用于接收来自特定组的组播流的过程。

PIM稀疏模式操作 ASA支持PIM稀疏模式和PIM双向模式。 不能同时配置PIM sparse-mode和IGMP stub-mode命令。

使用PIM稀疏模式时,所有组播流量最初流向交汇点(RP),然后转发到接收器。一段时间后,组播流直接从源传输到接收器(并绕过RP)。

此图片说明了一个常见部署,其中ASA在一个接口上拥有组播客户端,而在另一个接口上拥有PIM邻居:

Screen Shot 2012-03-06 at 11.33.01 AM

  

思科内部信息 此图片显示了PIM加入数据包的wireshark解码器。请注意,数据包的目的地是特殊的组播MAC地址224.0.0.13

Screen Shot 2013-01-02 at 3.39.27 PM

  

PIM稀疏模式示例配置

1.启用组播路由(全局配置模式)。

ASA(config)# multicast-routing

 2.定义PIM交汇点地址。

ASA(config)# pim rp-address 172.18.123.3

 3.在适当的接口上允许组播数据包进入(仅在ASA的安全策略阻止入站组播数据包时才需要)。

access-list 105 extended permit ip any host 224.1.2.3 access-group 105 in interface outside

  

 PIM稀疏模式示例:

old_asa_top

 请注意,客户端IGMP注册(以红色显示)和服务器接收的流(以绿色显示)的颜色不同,因此采用这种方式来证明两个过程可以独立进行。

客户端注册步骤(红色步骤):

1.客户端发送组239.1.1.77的IGMP报告

2.路由器将PIM加入消息发送到为组239.1.1.77配置的静态RP(10.1.1.1)。

3. ASA向RP发送组239.1.1.77的PIM加入消息。

ASA在show mroute命令输出上显示PIM *,G条目:

ciscoasa# show mroute 239.1.1.77 Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, I - Received Source Specific Host Report, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, State (*, 239.1.1.77), 00:03:43/00:02:41, RP 10.1.1.1, flags: S Incoming interface: outside RPF nbr: 10.38.111.240 Immediate Outgoing interface list: inside, Forward, 00:03:43/00:02:41

但是,由于源服务器尚未启动任何数据流,因此ASA上的“show mfib”输出不会显示任何收到的数据包:

ciscoasa# show mfib 239.1.1.77 Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,239.1.1.77) Flags: C K Forwarding: 0/0/0/0, Other: 0/0/0 outside Flags: A inside Flags: F NS Pkts: 0/0

在服务器开始向组播组发送任何流量之前,RP仅显示“*.G”条目,列表中没有传入接口,例如:

CRSv#show ip mroute 239.1.1.77 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, E - Extranet, 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, G - Received BGP C-Mroute, g - Sent BGP C-Mroute, N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed, Q - Received BGP S-A Route, q - Sent BGP S-A Route, V - RD & Vector, v - Vector, p - PIM Joins on route, x - VxLAN group Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.1.1.77), 00:00:02/00:03:27, RP 10.1.1.1, flags: S Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet2, Forward/Sparse-Dense, 00:00:02/00:03:27

一旦服务器开始向组播组传输数据流,RP就会创建一个“S,G”条目,并将面向发送方的接口放在传入接口列表中,并开始将流量下游发送到ASA:

CRSv#show ip mroute 239.1.1.77 ... (*, 239.1.1.77), 00:03:29/stopped, RP 10.1.1.1, flags: SF Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet2, Forward/Sparse-Dense, 00:03:29/00:02:58 (10.38.118.10, 239.1.1.77), 00:00:07/00:02:52, flags: FT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet2, Forward/Sparse-Dense, 00:00:07/00:03:22

使用以下命令进行验证:

- show mroute命令显示“S,G”条目

- show mfib命令显示转发数据包计数器

- show conn命令显示与组播组ip相关的连接

ciscoasa# show mroute 239.1.1.77 Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, I - Received Source Specific Host Report, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, State (*, 239.1.1.77), 00:06:22/00:02:50, RP 10.1.1.1, flags: S Incoming interface: outside RPF nbr: 10.38.111.240 Immediate Outgoing interface list: inside, Forward, 00:06:22/00:02:50 (10.38.118.10, 239.1.1.77), 00:03:00/00:03:28, flags: ST Incoming interface: outside RPF nbr: 10.38.111.240 Immediate Outgoing interface list: inside, Forward, 00:03:00/00:03:26 ciscoasa# show mfib 239.1.1.77 Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,239.1.1.77) Flags: C K Forwarding: 15/0/1271/0, Other: 0/0/0 outside Flags: A inside Flags: F NS Pkts: 0/15 (10.38.118.10,239.1.1.77) Flags: K Forwarding: 7159/34/1349/360, Other: 0/0/0 outside Flags: A inside Flags: F NS Pkts: 7159/5 ciscoasa# show conn all | i 239.1.1.77 UDP outside 10.38.118.10:58944 inside 239.1.1.77:5004, idle 0:00:00, bytes 10732896, flags - UDP outside 10.38.118.10:58945 inside 239.1.1.77:5005, idle 0:00:01, bytes 2752, flags - UDP outside 10.38.118.10:58944 NP Identity Ifc 239.1.1.77:5004, idle 0:00:00, bytes 0, flags - UDP outside 10.38.118.10:58945 NP Identity Ifc 239.1.1.77:5005, idle 0:00:01, bytes 0, flags -

注意:一旦客户端关闭组播客户端应用,主机将发送IGMP查询消息。

如果这是路由器知道的唯一主机,因为客户端想要接收数据流,则路由器会向RP发送IGMP修剪消息。

IGMP末节模式操作 在IGMP末节模式下,ASA充当组播客户端,生成或向相邻路由器转发IGMP报告(也称为IGMP“加入”),以触发组播流量的接收 路由器会定期向主机发送查询,以查看网络上的任何节点是否希望继续接收组播流量。 不推荐IGMP末节模式,因为PIM稀疏模式比末节模式具有许多优点(更高效的组播流量传输、参与PIM的能力等)。 此图片说明为IGMP末节模式配置的ASA的基本操作: Screen Shot 2013-01-02 at 3.39.27 PM 思科内部信息 这是PIM加入数据包的wireshark解码器,以供参考 Screen Shot 2013-01-02 at 3.48.09 PM

  

IGMP末节模式配置

1.启用组播路由(全局配置模式)。

ASA(config)# multicast-routing

 2.在防火墙接收igmp报告的接口上,配置igmp forward-interface命令。将数据包从接口转发到流源。在本示例中,组播接收器直接连接到内部接口,而组播源不在外部接口上。

! interface Ethernet0 nameif outside security-level 0 ip address 172.16.1.1 255.255.255.0 no pim ! interface Ethernet1 nameif inside security-level 100 ip address 10.0.0.1 255.255.255.0 no pim igmp forward interface outside !

 3.在适当的接口上允许组播数据包进入(仅当ASA的安全策略拒绝入站组播流量时才需要)。

ASA(config)# access-list 105 extended permit ip any host 224.1.2.3 ASA(config)# access-group 105 in interface outside

通常,不同igmp接口子模式命令存在混淆,下图描述了何时使用每个命令:

Screen Shot 2012-03-06 at 11.41.47 AM Bidir PIM

双向PIM中没有共享树(SPT)。这意味着三件事:

1.第一跳路由器(连接到发送方)不向RP发送PIM注册数据包。

2. RP不发送PIM JOIN消息以加入源树。

3.接收方路径中的路由器向RP发送PIM加入消息以加入RPT。

这意味着ASA不会生成(S,G),因为设备不会加入SPT。所有组播流量都通过RP。只要(*,G)存在,ASA就会转发所有组播流量。如果没有(*,G),则表示ASA从未收到PIM加入数据包。如果是这种情况,ASA不得转发组播数据包。

Bidir PIM配置

1.启用组播路由(全局配置模式)。

ASA(config)# multicast-routing

 2.定义PIM交汇点地址。

ASA(config)# pim rp-address 172.18.123.3 bidir

 3.在适当的接口上允许组播数据包进入(仅在ASA的安全策略阻止入站组播数据包时才需要)。

access-list 105 extended permit ip any host 224.1.2.3 access-group 105 in interface outside 故障排除方法 排除多播问题故障时要收集的信息

为了完全了解和诊断ASA上的组播转发问题,需要以下部分或全部信息:

·网络拓扑描述、组播发送方、接收方和交汇点的位置。 ·特定组IP地址,以及使用的端口和协议。 ·组播流出现故障时ASA生成的系统日志。 · ASA命令行界面的特定show命令输出: show mroute show mfib show pim neighbor show route show tech-support ·数据包捕获,显示组播数据是否到达ASA,以及数据包是否通过ASA转 发(注意数据包的IP生存时间(TTL))。这可以通过命令show capture x detail看到) ·为IGMP和/或PIM数据包捕获数据包。示例: capture cap1 interface outside match ip any host 239.1.1.77 >>> This captures the multicast traffic itself capture cappim1 interface inside match pim any any >>> This captures PIM Join/Prune messages capture capigmp interface inside match igmp any any >>> This captures IGMP Report/Query messages ·来自相邻组播设备(路由器)的信息,例如“show mroute”和“show mfib”。 ·数据包捕获和/或show命令确定ASA是否丢弃组播数据包。“show asp drop”命令可用于确定ASA是否丢弃数据包。此外,“asp-drop”类型的数据包捕获可用于捕获ASA丢弃的所有数据包,然后检查丢弃捕获中是否存在组播数据包。

   

有用的show命令输出

show mroute命令输出显示各种组和转发信息,与IOS show mroute 命令非常相似。show mfib命令显示各种组播组的转发状态。观察转发数据包计数器和其他(表示丢弃)尤其重要:

ciscoasa# show mfib Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,224.1.2.3) Flags: S K Forwarding: 0/0/0/0, Other: 0/0/0 inside Flags: F Pkts: 0/0 (192.168.1.100,224.1.2.3) Flags: K Forwarding: 6749/18/1300/182, Other: 690/0/690 outside Flags: A inside Flags: F Pkts: 6619/8 (*,232.0.0.0/8) Flags: K Forwarding: 0/0/0/0, Other: 0/0/0 ciscoasa#

clear mfib counters命令可用于清除计数器,这在测试期间非常有用:

ciscoasa# clear mfib counters

  

数据包捕获

板载数据包捕获实用程序对于解决组播问题非常有用。在本示例中,捕获在DMZ接口发往239.17.17.17的所有入口数据包:

ciscoasa# capture dmzcap interface dmz ciscoasa# capture dmzcap match ip any host 239.17.17.17 ciscoasa# show cap dmzcap 324 packets captured 1: 17:13:30.976618 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 2: 17:13:30.976679 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 3: 17:13:30.996606 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 4: 17:13:30.996652 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 5: 17:13:31.016676 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 6: 17:13:31.016722 802.1Q vlan#301 P0 10.1.123.129.2000 > 239.17.17.17.16384: udp 172 ....

show capture x detail 命令的输出显示了数据包的TTL,这非常有用。在此输出中,数据包的TTL为1(并且ASA传递此数据包,因为默认情况下它不会递减IP数据包的TTL),但下游路由器会丢弃数据包:

ASA# show cap capout detail 453 packets captured ... 1: 14:40:39.427147 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.4.2.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0)

数据包捕获对于捕获PIM和IGMP流量也非常有用。此捕获显示内部接口已收到来自10.0.0.2的IGMP数据包(IP协议2):

ciscoasa# capture capin interface inside ciscoasa# capture capin match igmp any any ciscoasa# show cap capin 1 packets captured 1: 10:47:53.540346 802.1Q vlan#15 P0 10.0.0.2 > 224.1.2.3: ip-proto-2, length 8 ciscoasa#

  

请注意,可以使用“show capture x detail”命令查看数据包的TTL。

在这里我们可以看到已捕获的ASP丢包捕获,其中显示已丢弃的组播数据包以及丢弃的原因(punt-rate-limit):

ASA# show cap capasp det 12: 14:37:26.538332 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.76.4.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0) Drop-reason: (punt-rate-limit) Punt rate limit exceeded 13: 14:37:26.538439 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.76.4.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0) Drop-reason: (punt-rate-limit) Punt rate limit exceeded ASA PIM稀疏模式组播部署示例

下图说明了ASA如何在PIM稀疏模式下与邻居设备交互。

了解网络拓扑

准确确定特定组播流的发送器和接收器的位置。此外,确定组播组IP地址以及交汇点的位置。

Screen Shot 2013-01-02 at 3.54.41 PM

 在这种情况下,可以在ASA的外部接口接收数据,然后将其转发到内部接口上的组播接收器。由于接收方与ASA的内部接口位于同一个IP子网中,因此当客户端请求接收数据流时,预计会在内部接口处收到IGMP报告。发送方的IP地址是192.168.1.50。

验证ASA是否从接收方收到IGMP报告

在本示例中,IGMP报告由接收方生成并由ASA处理。

数据包捕获和debug igmp的输出可用于验证ASA是否接收并成功处理IGMP消息。

验证ASA向交汇点发送PIM加入消息

ASA解释IGMP报告并生成PIM加入消息,然后将其从接口发送到RP。

Screen Shot 2013-01-02 at 4.03.38 PM

此输出来自debug pim group 224.1.2.3并显示ASA成功发送PIM加入消息。组播流的发送方是192.168.1.50。

IPv4 PIM: (*,224.1.2.3) J/P processing IPv4 PIM: (*,224.1.2.3) Periodic J/P scheduled in 50 secs IPv4 PIM: (*,224.1.2.3) J/P adding Join on outside IPv4 PIM: (*,224.1.2.3) inside Processing timers IPv4 PIM: Sending J/P message for neighbor 10.2.3.2 on outside for 1 groups IPv4 PIM: [0] (192.168.1.50,224.1.2.3/32) MRIB update (a=0,f=0,t=1) IPv4 PIM: [0] (192.168.1.50,224.1.2.3/32) outside MRIB update (f=20,c=20) IPv4 PIM: [0] (192.168.1.50,224.1.2.3) Signal present on outside IPv4 PIM: (192.168.1.50,224.1.2.3) Create entry IPv4 PIM: [0] (192.168.1.50,224.1.2.3/32) outside MRIB modify NS IPv4 PIM: Adding monitor for 192.168.1.50

验证ASA接收并转发组播流

ASA开始在外部接口上接收组播流量(以绿色箭头表示),然后将其转发到内部接收器。

Screen Shot 2013-01-02 at 4.08.14 PM

show mroute和show mfib命令以及数据包捕获可用于验证ASA接收和转发组播数据包。

连接表中会构建一个连接来表示组播流:

ciscoasa# show conn 59 in use, 29089 most used ... UDP outside:192.168.1.50/52075 inside:224.1.2.3/1234 flags - ... 数据分析 常见问题 思科内部信息

与组播路由相关的已知缺陷和增强功能

Cisco Bug ID CSCty34063 ASA不更新MFIB,组播数据包将被丢弃 Cisco Bug ID CSCvx54396 启用组播路由时间歇性策略部署失败Cisco Bug ID CSCvy24859 可以使用punt-rate-limit ASP丢弃原因丢弃组播数据包 Cisco Bug ID CSCvy36751 S,G mroute注册标记F在收到PIM注册停止数据包时未清除Cisco Bug ID CSCvy18138 当向RP发送带有寄存器标志的封装数据包时,PIM寄存器发送计数器不会增加 Cisco Bug ID CSCuz95020 显示PIM/MRIB/MFIB的调试日志,每行带有重复的日期和时间戳 Cisco Bug ID CSCvy51226 “show asp cluster counter”中MCAST_FP_CHK_FAIL_NO_MENTRY的说明不正确 Cisco Bug ID CSCvy73895 “show pim topology route-count detail”输出中的每组S,G条目计数不正确 Cisco Bug ID CSCvy94250 显示PIM/MRIB/MFIB的调试日志,每行带有重复的日期和时间戳 Cisco Bug ID CSCsr53916 ASA需要完全支持源特定组播SSMCisco Bug ID CSCso99013 mroutes无法在PIM/HSRP环境中提供冗余 Cisco Bug ID CSCvy51232 ENH:在调试情况下添加对多个组播组的支持 Cisco Bug ID CSCvv16723 ENH:提供手动清除mroute条目和mfib条目的方式 Cisco Bug ID CSCvy51227 ENH:将“show pim traffic”重命名为“show pim counters” Cisco Bug ID CSCvy60096 ENH:在“show mroute”中显示断言优胜者传出接口标志 Cisco Bug ID CSCvy67176 ENH:支持根据共享或源树条目过滤mroute/mrib/mfib表 Cisco Bug ID CSCvy73891 ENH:当交汇点(RP)未配置或不可达时生成系统日志消息 Cisco Bug ID CSCvy67187 ENH:支持根据传出接口过滤mroute/mfib表

本部分提供了一系列与实际ASA组播相关的问题

由于HSRP,ASA无法向上游路由器发送PIM消息

遇到此问题时,ASA无法从接口发送任何PIM消息。此图显示ASA无法向发送方发送PIM消息,但是当ASA需要向RP发送PIM消息时,也会出现相同的问题。

Screen Shot 2013-01-02 at 4.29.09 PM

debug pim命令的输出显示ASA无法将PIM消息发送到上游下一跳路由器:

IPv4 PIM: Sending J/P to an invalid neighbor: outside 10.0.0.1

 此问题并不特定于ASA,也会影响路由器。问题是由路由表配置和PIM邻居使用的HSRP配置的组合触发的。

路由表指向HSRP IP 10.0.0.1作为下一跳设备:

ciscoasa# show run route route outside 0.0.0.0 0.0.0.0 10.0.0.1 1

 但是,PIM邻居关系在路由器的物理接口IP地址之间形成,而不是HSRP IP:

ciscoasa# show pim neighbor Neighbor Address Interface Uptime Expires DR pri Bidir 10.0.0.2 outside 01:18:27 00:01:25 1 10.0.0.3 outside 01:18:03 00:01:29 1 (DR)

有关详细信息,请参阅“为什么PIM稀疏模式不能与到HSRP地址的静态路由配合使用?”。

本文档摘录:

为什么路由器不发送加入/修剪消息? RFC 2362指leavingcisco.com“路由器定期向每个(S,G)、(*,G)和(*,*,RP)条目关联的每个不同RPF邻居发送加入/修剪消息。只有当RPF邻居是PIM邻居时,才会发送加入/修剪消息。"

为了缓解问题,请在ASA上为相关流量添加一个静态mroute条目。确保它指向两个路由器接口的IP地址(10.0.0.2或10.0.0.3)之一。在本例中,此命令允许ASA向地址为172.16.1.2的组播发送方发送PIM消息:

ciscoasa(config)# mroute 172.16.1.2 255.255.255.255 10.0.0.3

 完成此操作后,组播路由表将覆盖ASA的单播路由表,ASA将PIM消息直接发送到10.0.0.3邻居。

思科内部信息 显然,此解决方法会破坏HSRP冗余的实用性,并且如果mroute命令中指定的路由器发生故障,ASA不会“回退”到另一台路由器。 请参阅Cisco Bug ID CSCso99013 mroutes无法在PIM/HSRP环境中提供冗余 ASA会忽略IGMP报告,因为它不是LAN网段上的指定路由器

对于此问题,ASA从直接连接的组播接收器接收IGMP报告,但它忽略了该报告。不生成调试输出,数据包被丢弃,数据流接收失败。

Screen Shot 2013-01-02 at 4.26.09 PM

对于此问题,ASA会忽略数据包,因为它不是客户端所在的LAN网段上选举出的指定路由器。

此ASA CLI输出显示不同的设备是内部接口网络上的指定路由器(以“DR”表示):

ciscoasa#show pim neighbor Neighbor Address Interface Uptime Expires DR pri Bidir 192.168.1.2 outside 01:18:27 00:01:25 N/A> 10.0.0.2 inside 01:18:03 00:01:29 1 (DR)

默认情况下,将multicast-routing命令添加到配置中时,所有ASA接口上都启用PIM。如果ASA的内部接口(客户端所在的位置)上有其他PIM邻居(其他路由器或ASA),并且由于该网段的DR而选择了其中一个邻居,则其他非DR路由器会丢弃IGMP报告。解决方案是在接口上禁用PIM(在涉及的接口上使用no pim命令),或通过pim dr-priority接口命令将ASA设置为网段的DR。

当超过IGMP接口限制时,防火墙会拒绝IGMP报告

默认情况下,ASA允许在接口上跟踪500个当前活动联接(报告)。这是可配置的最大值。如果接口外的客户端请求大量组播流,最多可以遇到500个活动加入,并且ASA可以忽略来自组播接收器的其他传入IGMP报告。

要确认这是否是导致组播故障的原因,请发出命令“show igmp interface interfacename”并查找该接口的“IGMP limit”信息。

ASA# show igmp interface inside Hosting-DMZ is up, line protocol is up Internet address is 10.11.27.13/24 IGMP is enabled on interface Current IGMP version is 2 IGMP query interval is 125 seconds IGMP querier timeout is 255 seconds IGMP max query response time is 10 seconds Last member query response interval is 1 seconds Inbound IGMP access group is: IGMP limit is 500, currently active joins: 500 Cumulative IGMP activity: 7018 joins, 6219 leaves IGMP querying router is 10.11.27.13 (this system) DEBUG - IGMP: Group x.x.x.x limit denied on outside 思科内部信息 此增强功能旨在增加每个接口的IGMP状态限制Cisco bug ID CSCuw84390 增强版:增加ASA上的IGMP限制 ASA无法转发232.x.x.x/8范围内的组播流量

此地址范围用于源特定组播(SSM),ASA当前不支持该组播。

debug igmp命令的输出显示以下错误:

IGMP: Exclude report on inside ignored for SSM group 232.179.89.253 思科内部信息 Cisco Bug ID CSCsr53916 ASA需要完全支持源特定组播SSM 由于反向路径转发检查,ASA会丢弃组播数据包

在这种情况下,ASA在接口上接收组播流量,但不会将其转发到接收方。ASA会丢弃数据包,因为它们未通过反向路径转发(RPF)安全检查。RPF在所有接口上为组播流量启用,且无法禁用(对于单播数据包,默认情况下检查未启用,并使用ip verify reverse-path interface命令启用)。

由于RPF检查,当在接口上收到组播流量时,ASA会检查是否有路由返回该接口上的组播流量源(它检查单播和组播路由表)。如果它没有通往发送方的路由,则会丢弃数据包。这些丢包在show asp drop的输出中可视为计数器:

ciscoasa(config)# show asp drop Frame drop: Invalid UDP Length 2 No valid adjacency 36 No route to host 4469 Reverse-path verify failed 121012

一个选项是为流量发送方添加路由。在本示例中,mroute命令用于满足对源自外部接口上收到的172.16.1.2的组播流量的RPF检查:

ciscoasa(config)# mroute 172.16.1.2 255.255.255.255 outside ASA在PIM切换到源树时不生成PIM加入

最初,PIM稀疏模式组播数据包从组播发送方流到RP,然后通过共享组播树从RP流到接收方。但是,一旦聚合比特率达到特定阈值,最接近组播接收方的路由器会尝试沿源特定树接收流量。此路由器为组生成新的PIM加入并将其发送到组播流的发送方(而不是像以前一样发送到RP)。

组播流量的发送方可以驻留在与RP不同的ASA接口上。当ASA收到要切换到源特定树的PIM加入时,ASA必须具有到发送方IP地址的路由。如果未找到此路由,则会丢弃PIM加入数据包,并在debug pim的输出中看到此消息

NO RPF Neighbor to send J/P

此问题的解决方案是为流的发送方添加一个静态mroute条目,指出发送方所在的ASA接口。

思科内部信息

以下是必须采取的做法:

ASA从下游请求流的人那里收到PIM加入(或IGMP报告)。消息将发送到RP,并且ASA位于路径中 ASA将PIM加入转发到RP,RP将组播数据发送到共享树下 经过一段时间后(或超过流的聚合吞吐量),距离接收器最近的路由器尝试加入源树。这样,来自此发送方的组播流量就不必经过RP。最接近接收方的路由器将PIM加入直接发送到流的发送方 这里就是一切崩溃的地方。路径中的所有组播路由器都必须为发送方提供一条路由或一条路由,该路由指向发送方实际驻留的接口(或下一跳ip)。如果它们没有通过正确接口到达发送方的路由或路由,或者该接口禁用了PIM或没有PIM邻居,则设备会丢弃PIM加入并输出调试“无RPF邻居发送J/P” ASA由于超过生存时间(TTL)而丢弃组播数据包

在这种情况下,由于数据包的TTL太低,组播流量会失败。这会导致ASA或网络中的其他设备丢弃它们。

通常,组播数据包的IP TTL值由发送它们的应用程序设置得非常低。有时,默认情况下这样做是为了帮助确保组播流量不会在网络中传输得太远。例如,默认情况下, 局域网 客户端应用(常用的组播发射器和测试工具)将IP数据包中的TTL默认设置为1。

思科内部信息 ASA丢弃的组播流 — 存在PIM(*,G);无MFIB条目

问题:实际组播流到达ASA但被丢弃。  ASA记录“%ASA-7-710005: UDP request discarded from 10.222.4.71/49468 to outside:239.222.64.1/4444”(从10.到outside:239.),ASA在mroute表中具有(*,G),OIL设置正确。  MFIB表不包含此组的条目。  同一RP的其他组播组可以正常工作。

原因:丢弃组播流时没有MFIB条目。  Cisco Bug ID CSCty34063 ASA不更新MFIB,组播数据包将被丢弃 缓解措施是禁用并重新启用组播路由。

由于特定组播拓扑,ASA的CPU使用率较高,并且数据包被丢弃

如果关于组播拓扑的所有这些条件都成立,则ASA可能会遇到高CPU使用率,而组播流可能会遇到丢包情况:

ASA充当RP。 ASA是组播流的第一跳接收方。这意味着组播发送方与ASA接口位于同一IP子网中。 ASA是组播流的最后一跳路由器。这意味着组播接收器与ASA接口位于同一IP子网中。

如果遇到上述所有症状,则 由于设计限制,ASA被迫处理切换组播流量。这会导致高数据速率组播流遇到丢包情况。当丢弃这些数据包时,show asp drop计数器会增加,该计数器是punt-rate-limit。

思科内部信息 被传送至控制点(对于此特定拓扑)的组播流量的实际速率限制限制为大约1Mbit/秒。我们尚未在代码中确切地确认这一点,但根据我们在实验室和用户网络中观察到的情况,这种确认似乎是合理的。请参阅案例624465037,了解与工程人员就此进行的讨论。

要确定ASA是否存在此问题,请完成以下步骤:

第1步:检查ASA是否为RP:

show run pim show pim tunnel

第2步:检查ASA是否为最后一跳路由器:

show igmp group

第3步:检查ASA是否是第一跳路由器:

show mroute

可以采取以下步骤来缓解此问题:

— 修改拓扑,使ASA不是RP。或者,使发送方或接收方未直接连接到ASA

— 使用IGMP末节模式代替PIM进行组播转发。

首次启动组播流时,ASA会丢弃前几个数据包

当组播流的第一个数据包到达ASA时,ASA必须构建该特定组播连接和关联的mroute条目来转发数据包。当条目正在创建过程中,一些组播数据包可能会被丢弃,直到路由和连接已建立(通常这只需不到一秒钟)。组播流设置完成后,数据包不再受速率限制。

思科内部信息 在修复Cisco Bug ID CSCto34823之前 会话创建后第一秒丢弃的组播数据包,组播流设置期间的数据包速率限制为1 pps。在修复此缺陷后,将其提高到50pps。

因此丢弃的数据包的ASP丢弃原因为“(punt-rate-limit)Punt rate limit exceeded”。这是“show capture asp”的输出(其中asp是在ASA上配置的ASP丢弃捕获,用于捕获丢弃的数据包),您可以看到由于以下原因丢弃的多播数据包:

ASA # show capture asp 2 packets captured 1: 16:14:49.419091 10.23.2.2.810 > 239.255.123.123.890: udp 32 Drop-reason: (punt-rate-limit) Punt rate limit exceeded 2: 16:14:49.919172 10.23.2.2.810 > 239.255.123.123.890: udp 32 Drop-reason: (punt-rate-limit) Punt rate limit exceeded 2 packets shown 断开组播接收器会中断其它接口上的组播组接收

只有在IGMP末节模式下运行的ASA才会遇到此问题。参与PIM组播路由的ASA不会受到影响。

问题通过Cisco Bug ID CSCeg确定48235 一个接口上的IGMP离开会中断其他接口上的组播流量。

这是漏洞的版本说明,它解释了问题:

Symptom: When a PIX or ASA firewall is configured for IGMP stub mode multicast reception and traffic from a multicast group is forwarded to more than one interface, if a host behind a the interface sends an IGMP Leave message for the group, it could temporarily interrupt the reception for that group on other interfaces of the firewall. The problem is triggered when the firewall forwards the IGMP leave for the group towards the upstream device; that device then sends a IGMP query to determine if any other receivers exist out that interface towards the firewall, but the firewall does not report that it still has valid receivers. Conditions: The PIX or ASA must be configured for IGMP stub mode multicast. IGMP stub mode is a legacy multicast forwarding technique, whereby IGMP packets from receivers are forwarded through the firewall towards the source of the stream. It is recommended to use PIM multicast routing instead of stub igmp forwarding. Workarounds: 1) Use PIM multicast routing instead of IGMP stub mode. 2) Decrease multicast IGMP query timers so that the receivers are queried more frequently, so their IGMP reports are forwarded towards the sender more frequently, thus restarting the stream quicker. 思科内部信息

由于某种原因,ASA一旦收到来自另一个接口之外客户端的离开消息,就会停止向某个接口转发流量,即使位于第一个接口的客户端未发送离开消息,也未收到查询消息(该查询消息会促使客户端以报告消息进行响应),也会发生这种情况。

因此我们重新制造这个问题的方法是: — 在ASA的接口字段外的路由器后面有一个组播发送器- ASA将一个客户端连接到接口atm,流量顺利通过,如果我们向同一个接口添加另一个客户端,然后另一个客户端与组播源断开连接,流量仍然可以顺利通过。 — 如果从另一个接口(例如madison_agency)添加客户端,然后让该客户端断开与组播源的连接,那么atms接口中客户端的流量也会中断,出于某些原因,Madison_agency接口中收到的离开消息也会影响其他接口中的客户端。

客户端在发送新的IGMP报告消息以响应该组播组的后,开始再次接收该源,但是该过程再次循环,因为他们有一个应用程序运行所有发送组播流量的摄像机的某种浏览,该应用程序加入组播源约30秒钟,然后从该组断开连接,以加入另一个组等等。

我们将Nortel路由器上的最大响应时间增加到25.5秒,但这并没有太大区别,因为ASA只是没有将目标为相关组播组的流量从atm接口发送出去。

我们对组播组239.5.6.32和239.5.6.179进行了多次测试,结果始终相同。当客户端在一个接口上发送加入和离开消息时,它工作正常,但只要客户端加入另一个接口后发送离开,而第二个接口上没有更多的客户端,流量就无法到达第一个接口上的客户端。

我已要求用户在Nortel面向ASA的接口上添加一个命令,如ip igmp static-group x.x.x.x。在atms界面上,我让他添加以下命令:- igmp query-interval 10- igmp query-max-response-time 3

之前的解决方法不可扩展,因为它们是为数百个组播组路由流量。

解决方案:

Cisco Bug ID CSCeg48235 一个接口上的IGMP离开会中断其他接口上的组播流量

我觉得这与你所看到的相符。基本上,当一个接口后的接收方发送IGMP离开时,ASA会将该请求转发到上游设备,当上游设备向ASA发送查询以询问是否有人仍然对数据流感兴趣时,ASA不会响应,即使它有来自不同接口的有效接收方也是如此。

该漏洞在7年前就关闭了,我不知道有其他用户自那以后也遇到过此问题,但可能有一些用户遇到过。 此问题特定于igmp-stub模式,在PIM稀疏模式下不可见,我看到用户使用此配置。我们希望我们的用户使用PIM稀疏模式,而不是传统的IGMP末节模式,它实际上只是在PIX时代实施的一个黑客攻击,目的是让组播流经防火墙。 

由于出站访问列表的安全策略,ASA丢弃组播数据包

对于此特定问题,ASA会丢弃组播数据包(根据配置的安全策略)。但是,网络管理员很难确定丢包的原因。在这种情况下,由于为接口配置的出站访问列表,ASA会丢弃数据包。解决方法是允许出站访问列表中的组播流。

思科内部信息

此增强功能旨在使此丢弃原因更直观:

Cisco Bug ID CSCtz78944 ENH:当出站ACL拒绝组播时记录ACL丢弃

发生这种情况时,组播数据包将使用ASP丢弃计数器“FP no mcast output intrf(no-mcast-intrf)”丢弃。

由于控制点速率限制,ASA会持续丢弃组播流中的某些数据包(但不是全部)

流量极有可能受到控制点的速率限制,这是由于punt-rate-limit所致。查看asp丢弃输出和捕获以确认:

ASA# show asp drop Frame drop: Punt rate limit exceeded (punt-rate-limit) 1492520 ASA# show cap capasp det 12: 14:37:26.538332 c062.6baf.8dc3 0100.5e7f.02c3 0x8100 Length: 1362 802.1Q vlan#1007 P0 10.76.4.95.1806 > 239.255.2.195.5000: [udp sum ok] udp 1316 (DF) [ttl 1] (id 0) Drop-reason: (punt-rate-limit) Punt rate limit exceeded

mfib条目显示所有流量都进行了进程交换:

ASA(config)# show mfib 239.255.2.1195 Entry Flags: C - Directly Connected, S - Signal, IA - Inherit A flag, AR - Activity Required, K - Keepalive Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kbits per second Other counts: Total/RPF failed/Other drops Interface Flags: A - Accept, F - Forward, NS - Negate Signalling IC - Internal Copy, NP - Not platform switched SP - Signal Present Interface Counts: FS Pkt Count/PS Pkt Count (*,239.255.2.195) Flags: C K Forwarding: 4278/50/1341/521, Other: 0/0/0 Outside-1007 Flags: A RDEQ-to-Corporate Flags: F NS Pkts: 0/4278


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3