如何解决数据包缓冲区或数据包描述符使用率过高的问题
162035
Created On 02/14/22 21:53 PM - Last Modified 01/07/25 17:38 PM
Objective
- 本文提供了有关解决高数据包缓冲区或数据包描述符问题的一般指导。
- 数据包缓冲区使用率过高可能会导致用户流量缓慢和延迟。许多不同的因素都可能导致数据包缓冲区使用率过高。请参阅以下可能的情况
- 意外流量突发、 DoS攻击。
- 对于 PA-3200、PA-5200、PA-7000,属于被拒绝的单个会话的拒绝流量率很高,属于单个会话的碎片流量率很高。
- 与高数据平面中央处理器相关。如果数据平面中央处理器繁忙,则数据包缓冲区可能会填满。请参阅此处了解如何降低数据平面中央处理器 的提示。
- 软件缺陷,导致数据包缓冲区无法释放。在这种情况下,即使通过防火墙的流量很低,数据包缓冲区的使用率也会很高。
Environment
- Palo Alto 防火墙
- 支持的 PAN OS
- 数据包缓冲区和数据包描述符
Procedure
场景 A:
- 检查威胁日志。
- 仅当启用数据包缓冲区保护(PBP) 时才会记录威胁日志。
- 检查 PBP 是否已启用并激活。(请参阅下面的迁移步骤)
情景 A 和 B 的缓解措施
- 检查威胁日志,查看是否有任何流量被识别为高流量的来源。
- 如果没有看到威胁日志,请确保已启用数据包缓冲区保护 (PBP),并且配置的参数足以降低数据包缓冲区的使用率。( PBP 的激活阈值默认为 80%。如果防火墙大小正确,缓冲区利用率应远低于 50%)
- 要检查 PBP 是否已启用和/或激活,请使用CLI show 会话 packet-buffer-protection
下面的输出表明 PBP 尚未启用
> show session packet-buffer-protection
Packet buffer protection is disabled.
下面的输出显示 PBP 已启用,但尚未激活。激活的 PBP 意味着数据包缓冲区使用率已超过阈值,现在正在检查流量以查找数据包缓冲区资源的最大用户。
> show session packet-buffer-protection
------------------------------------------------------------------------------------------
dp0
------------------------------------------------------------------------------------------
Packet buffer count based
Congestion: 1/86016 (0%)
System resource usage is low, packet buffer protection not activated.
------------------------------------------------------------------------------------------
dp1
------------------------------------------------------------------------------------------
Packet buffer count based
Congestion: 1/86016 (0%)
System resource usage is low, packet buffer protection not activated.
下面的输出显示 PBP 已被激活,最常滥用的会话是会话ID 38492
> show session packet-buffer-protection
-------------------------------------------------------------------------------------------
dp0
-------------------------------------------------------------------------------------------
Packet buffer count based
Congestion: 12431/17203 (72%)
Drop probability: 74%. Percentage drop threshold: 48.
-------------------------------------------------------------------------------------------
| | | | Drop | Packets |
Session/IP Address | Zone | PCS | Percentage | State | Total | Dropped | Time till discard
-------------------------------------------------------------------------------------------
38492 | replay_vw_trust | 4088 | 49 | Yes | 381171 | 121232 | 59
38492 | replay_vw_untrust | 4024 | 49 | Yes | 392557 | 125172 | 57
172.16.1.1 | vw-trust | 31 | 0 | No | 721 | 0 | 60
51718 | vw-trust | 9 | 0 | No | 1 | 0 | 60
172.16.1.2 | vw-untrust | 4 | 0 | No | 71 | 0 | 60
51704 | vw-untrust | 3 | 0 | No | 0 | 0 | 60
51712 | vw-trust | 3 | 0 | No | 0 | 0 | 60
51714 | vw-untrust | 3 | 0 | No | 0 | 0 | 60
-------------------------------------------------------------------------------------------
- 如果数据包缓冲区使用率很高,但 PBP 尚未激活,则确定是否应降低 PBP 阈值。默认下,当缓冲区使用率达到 80% 时,PBP 就会启动。可以降低活动阈值,以便如果存在滥用会话,可以更早地将其丢弃。要更改 PBP 的配置,请转到此处: 配置数据包缓冲区保护
- 确保区域保护配置文件到位,以防止数据包洪水。
下面的CLI打印了为特定区配置的区保护阈值。调整阈值以匹配设备看到的流量模式。
> show zone-protection zone <zone name>
------------------------------------------------------------------------------------------
Number of zones with protection profile: 1
------------------------------------------------------------------------------------------
Zone test, vsys vsys1, profile tap
------------------------------------------------------------------------------------------
tcp-syn RED enabled: yes
DP alarm rate: 80000 cps, activate rate: 80000 cps, maximal rate: 80000 cps
current: 193413 packets
dropped: 262219664 packets
------------------------------------------------------------------------------------------
udp RED enabled: yes
DP alarm rate: 80000 cps, activate rate: 80000 cps, maximal rate: 80000 cps
current: 0 packets
dropped: 0 packets
------------------------------------------------------------------------------------------
icmp RED enabled: yes
DP alarm rate: 80000 cps, activate rate: 80000 cps, maximal rate: 80000 cps
current: 0 packets
dropped: 0 packets
------------------------------------------------------------------------------------------
other-ip RED enabled: yes
DP alarm rate: 80000 cps, activate rate: 80000 cps, maximal rate: 80000 cps
current: 0 packets
dropped: 0 packets
------------------------------------------------------------------------------------------
icmpv6 RED enabled: yes
DP alarm rate: 80000 cps, activate rate: 80000 cps, maximal rate: 80000 cps
current: 0 packets
dropped: 0 packets
- 如果通过威胁日志或show 会话 packet-buffer-protection的CLI输出识别出会话,则可以针对该流量采取特定措施,方法是针对已知违规者创建DoS策略并按照记录在案的说明进行操作( 由于策略拒绝导致片上描述符和数据包缓冲区使用率过高,从而导致流量延迟和丢失)。或者,可以在防火墙上游停止流量。
场景 B:
- 运行“ show running resource-monitor”并查看片上数据包描述符的输出。如果该值始终大于 90%,则设备正在遇到场景 B。
Resource utilization (%) during last 5 seconds:
session:
0 0 0 0 0
packet buffer:
75 75 75 75 75
packet descriptor:
0 0 0 0 0
packet descriptor (on-chip):
100 100 100 100 100
情景 B 的缓解措施(与情景 A 相同)
场景 C:
- 运行“ show running resource-monitor”检查中央处理器使用率。如果中央处理器使用率超过 80%,则设备可能遇到了由中央处理器导致的累积情况。
情景 C 的缓解措施
- 为了降低中央处理器 的使用率,请尝试减少流量检查。可以考虑以下步骤
- 删除与安全策略关联的安全配置文件。请参阅识别使用过多片上数据包描述符的会话
- 根据“ 使用DSRI提高HTTP性能”Disable Server Response Inspection(禁用服务器响应检测-DSRI)
- 为可能导致高中央处理器/数据包缓冲区使用率的流量配置应用程序覆盖。 按照“ 如何创建应用程序覆盖”
场景D:
- 如果设备不符合上述任何条件,则可能是软件缺陷。请参阅下文,了解开立支持案例所需的数据。
场景 D 要收集的数据
- 运行以下命令
show running resource-monitor
debug dataplane pow performance
debug dataplane pool statistics
show counter global filter delta yes (multiple times)
show counter global
笔记: For the next 2 commands, if the CLI output contains any sessions, print ?显示会话ID? for those sessions, so that the sessions that are occupying the resource can be identified.
- show session packet-buffer-protection
- 显示会话数据包缓冲区保护缓冲区延迟
- 收集技术支持文件
- 涵盖数据包缓冲区较高的时间段的流量日志