如何缓解“pkt_recv_err”全局计数器的异常增加

如何缓解“pkt_recv_err”全局计数器的异常增加

10122
Created On 11/28/23 19:03 PM - Last Modified 07/24/25 07:42 AM


Objective


当防火墙收到包含不正确或无效 L2-L4 信息的数据包时,计数器 pkt_recv_err 递增。 防火墙无法解析或处理数据包,丢弃数据包,并递增pkt_recv_err全局计数器。

下面是防火墙中全局计数器pkt_recv_err递增的示例:
> show counter global

name value rate severity category aspect description
--------------------------------------------------------------------------------
pkt_recv_err 100 100 drop packet pktproc Packet receive error
尽管这种情况很少见,但某些应用程序可能会发送不符合当前有效的 TCP/IP 网络 RFC 标准的数据包,从而导致出现此问题。 在这些情况下,软件应用程序的供应商必须使用其软件解决该问题。

注意:仅当使用带有 特定源和目标IP地址过滤器 的全局计数器对特定流量进行故障排除时,此全局计数器才有意义,并且此全局计数器会专门丢弃该流量流。 所有其他时间,可以安全地忽略此全局计数器,并且不要继续执行本文档中的以下步骤。 如果发现全局计数器“pkt_recv_err”正在丢弃使用全局计数器进行故障排除的特定流量,请继续执行以下操作。


Environment


  • 下一代防火墙


Procedure


  1. 使用带过滤器的全局计数器确定网络中按源 IP、源端口、目标 IP、目标端口的哪些流量流由于此计数器(如果有)而被防火墙丢弃
注意:如果通常可以看到pkt_recv_err全局计数器,但不知道发生流量问题,则可以安全地忽略此计数器。 如果对特定流量进行故障排除,并且该流量因“pkt_recv_err”计数器而中断,请继续执行下面的步骤 2。
  1. 运行以下 CLI 命令:
> show counter global
查找以“pkt_recv”开头的任何其他全局计数器,这些计数器与pkt_recv_err同时递增,并改为解决该全局计数器的原因。

示例:
如果“pkt_recv_err”和“pkt_recv_multiple_bufs”都在递增,请改
为使用如何缓解“pkt_recv_multiple_bufs”全局计数器的异常增加来进行故障排除 如果“pkt_recv_err”和“pkt_recv_short_pkt”都在递增,请改用如何缓解“pkt_recv_short_pkt”全局计数器的异常增加来继续进行故障排除
  1. 在以下捕获点进行 数据包捕获 (使用过滤器):
A. 连接到防火墙的交换机/设备的出口端口(此数据包的来源)B. 防火墙的入口端口(此数据包将到达的位置)
  1. Wireshark 中打开数据包捕获,并检查丢弃的数据包中的 L2-L4 信息是否存在以下任何问题:
L2:VLAN 标记长度不正确、封装
不正确 L3:校验和不正确、IP 数据包被截断、数据包太短、数据包太大、数据包校验和错误、IP 和 UDP/TCP 长度不匹配、数据包大于防火墙接口 MTU(可能需要启用巨型帧)
L4:TCP/UDP 端口 0、TCP 标志无效等。
  1. 根据上述调查结果采取适当的措施来解决问题。 示例包括:
  • 如果这些数据包的源设备或应用程序发送不正确/其中包含无效的 L2-L4 信息,请与该软件应用程序的供应商联系,了解报告的行为,让他们进行修复
  • 如果防火墙上的 VLAN 配置与数据包中的 VLAN 标记相比不正确,请调整防火墙或数据包中的 VLAN 标记以正确
  • 如果禁用了巨型帧,但您的网络使用巨型帧,请考虑在防火墙上启用巨型帧(对于大于默认接口 MTU 1500 的数据包)
  • 如果数据包的源端口或目标端口为 0,请转到生成这些无效数据包的源应用程序并更正该问题


Additional Information


其他常见的全局计数器与 pkt_recv_err 同时递增,包括:
>show counter global | match pkt_recv
pkt_recv_err_large                              drop      Packet receive error due to large packet
pkt_recv_short_pkt                              drop      Packet receive short packets
pkt_recv_empty_buf                              drop      packet    pktproc   Packet WQE without buffer
pkt_recv_multiple_bufs                          drop      packet    pktproc   Packets received with multiple buffers
pkt_recv_throttle_cos                           drop      packet    pktproc   Packets throttled by QoS control
pkt_recv_flush_link                             drop      Packets dropped due to link down in dpdk mode
pkt_recv_flush_passive                          drop      Packets drop due to passive VM in dpdk mode
pkt_recv_skip_inflight                          info      Packet receive skipped due to high inflight num
pkt_recv_multiple_bufs                          drop      Packets received with multiple buffers not from content engine
pkt_recv_multiple_bufs_ce                       info      Packets received with multiple buffers from content engine
pkt_recv_retry                                  info      Full Burst Packets received on retry
pkt_recv_sso_wa_err                             warn      Packets received with atomic type but without SSO workaround
pkt_recv_zero                                   info      Packets received from QoS 0
flow_ipfrag_large_pkt_recv                      info      IP fragment large packet(>16k) received
pkt_recv_hop_err                                drop      Packet received with IP HOP error
pkt_recv_lro                                    info      LRO Packets received
pkt_recv_lro_cksum_err                          drop      LRO Packets received but dropped due incorrect cksum
pkt_recv_lro_dvflt_err                          drop      LRO Packets received but dropped due to DV Filter
pkt_recv_lro_err                                drop      LRO Packets receive error
pkt_recv_lro_ipfrag_err                         drop      LRO Packets received but dropped due to IP fragment
pkt_recv_lro_mem_err                            drop      LRO Packets received but no memory
pkt_recv_lro_notip_err                          drop      LRO Packets drop due to non-IP
pkt_recv_lro_prepend_err                        drop      LRO Packets received but prepend error
如果大于 1500 字节的数据包进入防火墙接口,其接口是默认接口 MTU 1500,则数据包可能会丢弃并pkt_recv_err增量。 启用巨型帧可能会解决此问题。


Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA14u000000XhFDCA0&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language