Alto descriptor en chip y uso del búfer de paquetes debido a policy la denegación que resulta en latencia de tráfico y caídas

Alto descriptor en chip y uso del búfer de paquetes debido a policy la denegación que resulta en latencia de tráfico y caídas

109008
Created On 11/23/20 10:43 AM - Last Modified 06/24/22 21:22 PM


Symptom


  • Latencia/lentitud observada, en algunos casos pérdida de paquetes para el tráfico que atraviesa a través del Firewall .
  • Por lo general, el uso de DataPlane ( DP ) permanece dentro del rango esperado y no hay una gran desviación de la condición de trabajo habitual CPU o "".
  • Aumento de flow_policy_deny contadores globales.
  • La sesión superior en la ejecución de ingress-backlogs de resource-monitor tiene grp id 2 o grp id 16
Ejemplo:
> show running resource-monitor ingress-backlogs 
<snip>
-- SLOT: s1, DP: dp0 --
USAGE - ATOMIC: 88% TOTAL: 89%

TOP SESSIONS:
SESS-ID         PCT     GRP-ID  COUNT
2022536315      88%     16      3640

<snip>
 
  • mostrar id de sesión muestra"Mala clave", y su consumo está tomando la mayoría % de on-chip.
Ejemplo:
> show session id 2022536315

Session      2022536315

            Bad Key: c2s: 'c2s'
            Bad Key: s2c: 's2c'
        index(local):                        : 9270395

  • Pico en el descriptor de paquetes en el chip y el uso del búfer de paquetes, ejemplo (de una salida de depuración viva):
> show running resource-monitor second last 5

DP s1dp0:

Resource monitoring sampling data (per second):

CPU load sampling by group:
flow_lookup                    :     3%
flow_fastpath                  :     3%
flow_slowpath                  :     3%
flow_forwarding                :     3%
flow_mgmt                      :     0%
flow_ctrl                      :     3%
nac_result                     :     3%
flow_np                        :     3%
dfa_result                     :     3%
module_internal                :     3%
aho_result                     :     3%
zip_result                     :     3%
pktlog_forwarding              :     9%
lwm                            :     0%
flow_host                      :     3%

CPU load (%) during last 5 seconds:
core   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
       *   0   3   2   2   3   3   3   4   4   2   3   2   3   3   2
       *   0   3   2   2   3   3   3   3   4   2   3   2   3   3   2
       *   0   3   3   2   4   4   3   3   3   2   2   2   3   3   3
       *   0   3   2   2   3   4   3   3   3   2   3   2   3   4   2
       *   0   3   3   2   3   3   3   3   3   2   2   2   3   4   2
core  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31
       2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3
       2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3
       2   3   2   2   2   3   3   3   2   4   3   3   2   3   3   2
       2   3   2   2   2   3   2   3   2   3   3   3   2   3   3   3
       2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3
core  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47
       3   2   2   2   2   2   3   2   2   2   2   2   3   2   4   9
       3   2   2   2   2   2   2   2   2   2   2   2   3   2   4   9
       3   2   2   3   2   2   2   2   2   2   2   2   3   2   4   9
       3   2   2   2   3   2   2   2   2   2   2   2   3   2   4   9
       3   2   3   2   2   2   3   2   2   2   2   2   3   2   4   9

Resource utilization (%) during last 5 seconds:
session:
  0   0   0   0   0 
packet buffer:
 14  13  13  13  12 
packet descriptor:
  0   0   0   0   0 
packet descriptor (on-chip):
100 100 100 100 100
<snip>

 


Environment


  • PAN-OS
  • Zona de protección
  • DOS Protección


Cause


NOTE:
El descriptor alto en el chip y el uso del búfer de paquetes pueden ocurrir bajo varias condiciones.
Este artículo cubre un caso específico de denegación de ruta lenta, que da como resultado policy descriptores altos en chip y búferes de paquetes.

Nota: Otra causa del pico del descriptor en el chip se discute en el buffer del paquete y el espiga del descriptor en el chip debido a las WildFire cargas
 
Tenga en cuenta que este artículo se aplica solamente si se cumplen las siguientes condiciones:

1. La sesión superior en los registros pendientes del monitor de recursos en ejecución de la demostración tiene grp id 2 o grp id 16
Más información sobre grp id 2 y grp id 16 en la sección "Información adicional"

ejemplo:
> show running resource-monitor ingress-backlogs 
<snip>
-- SLOT: s1, DP: dp0 --
USAGE - ATOMIC: 88% TOTAL: 89%

TOP SESSIONS:
SESS-ID         PCT     GRP-ID  COUNT
2022536315      88%     16      3640

<snip>

2. Hay un pico en flow_policy_deny contadores globales.
3. Mostrar <id> </id> id de sesión de la sesión obtenida de los atrasos de entrada, muestra el ejemplode "mala
clave":
> show session id 2022536315

Session      2022536315

            Bad Key: c2s: 'c2s'
            Bad Key: s2c: 's2c'
        index(local):                        : 9270395
Nota: En la mayoría de los casos, es el mismo tráfico syslog de 6 tuplas, que causa el UDP problema.
UDP


4. El tráfico denegado tiene las mismas 6 tuplas (origen/destino, IP puerto de origen/destino, protocolo (encabezado L3), zona de entrada).

¿Cuándo/Por qué policy la denegación causa el uso alto/alto del descriptor del chip?
  • Si un paquete entrante no coincide con una sesión existente, se somete a slowpath.
  • Si el paquete hace juego una denegación policy en la ruta lenta (con el registro de sesión habilitado), el paquete se cae y se crea una entrada del registro de tráfico, pero no se instala una sesión.
  • El siguiente paquete con las mismas 6 tuplas iría a través de la misma trayectoria que el paquete anterior.
  • slowpath, como su nombre indica, puede tomar un mayor número de ciclos de procesamiento, porque es en este paso que se realizan todas las tareas asociadas con el establecimiento de una sesión.
  • El tiempo que se tarda en completar la ruta lenta depende de la configuración y del patrón Firewall de tráfico.
  • Por ejemplo, si hay un gran número de directivas nat o de seguridad, el tiempo que se tarda en completar slowpath sería mayor.
  • Todos los paquetes con las mismas 6 tuplas se someten o ATOMIC el procesamiento de paquetes serie en el orden entrante(uno a la vez).
  • Como estos paquetes tienen que ser procesados en serie, no se pueden enviar a diversos núcleos o subprocesos para el procesamiento paralelo.
  • Como los paquetes están esperando ser procesados por el DP CPU , dependiendo de la velocidad entrante de los paquetes y el tiempo tomado para completar la ruta lenta para cada paquete, puede haber acumulación de paquetes.
  • Si hay una velocidad/cantidad significativa de tal mismo tráfico de 6 tuplas golpeando el Firewall , siendo negado en slowpath, los descriptores en el chip y eventualmente los buffers de paquetes se pueden llenar.
  • En este punto usted comenzaría a ver los problemas de tráfico.
Para obtener más información, consulte la sección "Información adicional".


Resolution


NOTE
  • Una vez que usted ha determinado que la policy negación es significativamente alta o es más alta de lo habitual, el siguiente paso es identificar la fuente de este tráfico.
  • Si "Registro en el final de la sesión" se habilita en la policy denegación del tráfico, el tráfico "ofensivo" se puede encontrar filtrando los registros de tráfico para policy -deny.
Nota: En la mayoría de los casos, es el mismo tráfico syslog de 6 tuplas, que causa el UDP problema.
UDP

Mitigación

1.
Una vez que se identifica la fuente del tráfico denegado, marque si es factible detener este tráfico en la fuente o más cerca de la fuente.
Ejemplo: Si hay un dispositivo que está inundando los mensajes de Syslog a un destino determinado, usted puede quitar el destino del servidor syslog de ese dispositivo para detener la inundación.

2. Permitir el tráfico con políticas de seguridad
  • Antes de pasar a las técnicas de mitigación, debemos asegurarnos de que el tráfico que se supone que se permite está permitido por las políticas de seguridad.
  • Si es necesario permitir el tráfico, cree la seguridad policy necesaria. Una vez permitido el tráfico, se instalaría una sesión y el tráfico no se somete a la ruta lenta.
  • Si no se conoce el patrón de tráfico en la red, se puede crear una seguridad policy para permitir el tráfico de alto volumen como syslog de las zonas internas/de confianza (aplique los perfiles de seguridad según sea necesario).
3. Protección contra delincuentes conocidos policy (DoS)
  • Si se conocen las IPs exactas de los hosts que causan el problema, crear un DoS policy con la acción "Denegar" ayudará.
  • Las reglas DoS policy son específicas (zona de origen/destino, IP, puerto de servicio) y pueden reemplazar una seguridad similar policy con la denegación de acciones.
  • Puesto que las directivas DoS se evalúan antes de la búsqueda de seguridad policy y no tienen un gran número de entradas, los paquetes se bloquean antes, ahorrando así los firewall recursos.
4. Protección contra delincuentes desconocidos policy (DoS)
  • Creación de un DoS clasificado policy con la acción "Proteger"
  • A clasificado DoS policy se puede aplicar con la acción "Protect" y la dirección coincide con "source-ip only"o "src-dest-ip-both".
Imagen de usuario añadido
Nota: Los valores de umbral configurados son solo ejemplos, estos necesitan ser ajustados en función del entorno del cliente

Imagen de usuario añadido
  • Una vez alcanzado el umbral configurado, el DoS policy crearía una tabla de ip-block del DoS, que comenzaría a caer los paquetes sin ser sometido a la ruta lenta.
  • En los dispositivos que tienen un procesador de descarga, la tabla de bloques se instalaría en la descarga hardware para reducir aún más la carga en el archivo DP CPU .
  • Para obtener más información: Supervisar la lista de bloqueos y los perfiles y reglas de protección Policy doS
Advertencia:
  • Los umbrales para el objeto DoS clasificado cambiarían en función del patrón de tráfico del cliente y la red, es posible que los valores predeterminados no sean aplicables a todos los entornos.
  • Para slowpath negar ataques solamente "source-ip only" o "src-dest-ip-both" funcionaría, el uso de "solo destination-ip" no ayuda.
  • Para las zonas orientadas a Internet, ya que las ips de origen podrían ser potencialmente enormes, firewall el no tiene la capacidad de almacenar contadores para cada dirección posible en IP Internet.
  • Consulte: Perfiles doS clasificados vs agregados
5. Protección del búfer de paquetes ( PBP )
  • Packet Buffer Protection ( PBP ) es una característica disponible a partir de PAN-OS 8.0.
  • PBP es preferible, ya que es automático y se activa en función de la utilización real de los recursos, en comparación con DoS policy que se desencadena en las conexiones preconfiguradas por segundo umbral
  • PBP protege el firewall agotamiento del búfer de trayectoria lenta y vía rápida (sesión existente).
  • Firewall supervisa automáticamente a los abusadores del búfer.
  • Después de alcanzar el umbral de activación configurado (predeterminado 50%), el firewall comienza a caer el tráfico ofensivo ( RED ).
  • Si la utilización del búfer está por encima del 80% (este umbral está codificado internamente y no es configurable) durante una duración del tiempo de retención de bloque, se crea una entrada de tabla de dos bloques.
  • Refiera: Protección del búfer de paquetes
En este caso específico de negación de ruta lenta por lo general una combinación de PBP + DoS clasificado policy con la acción "Proteger" proporciona mejores resultados.

Supervisión:

SNMP se puede aprovechar para supervisar la utilización del búfer, entre otras cosas. DP recursos son parte de HOST-RESOURCES-MIB . Puede encontrar más información aquí:
SNMP para Monitorización de dispositivos de redes Palo Alto
snmp-mibs

Lista de OID útiles:
1. Descripción - .1.3.6.1.2.1.25.2.3.1.3.xxxx
Ejemplo:
.1.3.6.1.2.1.25.2.3.1.3.10 11 = STRING : "Slot-1 Data Processor-0 Hardware Packet Buffers"
.1.3.6.1.2.1.25.2.3.1.3.1111 = STRING : "Slot-1 Data Processor-1 Packet Hardware Buffers"

2. Hardware Tamaño del grupo de búferes de paquetes - .1.3.6.1.2.1.25.2.3.1.5.xxxx
Ejemplo:
.1.3.6.1.2.1.25.2.3 .1.5.1011 = INTEGER : 17203
.1.3.6.1.2.1.25.2.3.1.5.1111 = INTEGER : 17203

3. Utilización actual del búfer - .1.3.6.1.2.1.25.2.3.1.6.xxxx
Ejemplo:
.1.3.6.1.2.1.25.2 .3.1.6.1011 = INTEGER : 122
.1.3.6.1.2.1.25.2.3.1.6.1111 = INTEGER : 128
 

Contadores relacionados con DoS a través SNMP de (parte PAN-COMMON-MIB de):
 

MIB IdentidadContador DescripciónOID
panFlowPolicyDenyflow_policy_denyConfiguración de sesión: denegada por policy.1.3.6.1.4.1.25461.2.1.2.1.19.8.10
panFlowDosBlkNumEntriesflow_dos_blk_num_entriesNúmero de entradas en DOS la tabla de bloques.1.3.6.1.4.1.25461.2.1.2.1.19.8.2
 
panFlowDosBlkSwEntriesflow_dos_blk_sw_entriesNúmero de entradas en DOS la tabla de bloques de software.1.3.6.1.4.1.25461.2.1.2.1.19.8.33
panFlowDosBlkHwEntriesflow_dos_blk_hw_entriesNúmero de entradas en DOS Hardware la tabla de bloques.1.3.6.1.4.1.25461.2.1.2.1.19.8.34
panFlowDosDropIpBlockedflow_dos_drop_ip_blockedPaquetes caídos: Marcados para el bloqueo y la duración del bloque por DoS u otros módulos.1.3.6.1.4.1.25461.2.1.2.1.19.8.13
panFlowDosRuleDropflow_dos_rule_dropPaquetes caídos: Tarifa limitada o IP bloqueada.1.3.6.1.4.1.25461.2.1.2.1.19.8.23


 


Additional Information


Refiera a la mirada detallada en el CLI "show running resource-monitor ingress-backlogs" para más detalles sobre el comando.

¿Por qué vemos 'Bad Key' al ejecutar el id <id> </id> de sesión de demostración de la sesión obtenido de los atrasos de entrada?
Puesto que en esta etapa la sesión SESS-ID aún no está instalada, el valor bajo es un valor interno tag y no el id de sesión real.
En este caso specifc de denegación de ruta lenta, si examina cuidadosamente los valores en SESS-ID , el valor es mucho mayor que el rango de índice de sesión. (Lo cual por sí mismo es una pista.
Por lo tanto, cuando usted utiliza el id de la sesión de la demostración <idx>puesto que el valor no es un id de sesión real usted ve 'Mala clave'.

¿Por qué necesitamos ATOMIC o procesamiento de paquetes en serie (a la vez)?</idx>

  • Cada etapa de procesamiento de paquetes tiene requisitos diferentes en términos de si se debe someter al procesamiento de paquetes serie (uno a la vez en el orden entrante) o al procesamiento paralelo de paquetes para una tupla/sesión 6 determinada.
  • El objetivo del procesamiento de paquetes serie es evitar que varios núcleos/subprocesos realicen la misma operación o accedan/escriban en los mismos datos.
  • Por ejemplo, si recibimos una ráfaga de nuevo tráfico que debe pertenecer a la misma sesión, no queremos que varios núcleos/subprocesos realicen la instalación de la sesión, por lo tanto no procesamos los paquetes en paralelo, sino que los sometemos al procesamiento en serie.
¿Por qué es DP CPU bajo, pero el descriptor en el chip y el uso del búfer de paquetes es alto?
  • Como se explicó anteriormente, puesto que las mismas 6 tuplas niegan el tráfico está sujeto al procesamiento en serie, es posible que la mayoría de los núcleos estén esperando a que se procese el trabajo/los paquetes.
  • Por lo tanto, el CPU uso sería bajo, pero los recursos del búfer de paquetes y del descriptor en el chip podrían llenarse.
¿Cuándo mostraría los registros pendientes de entrada de entrada de recursos-monitor en ejecución que muestran grp id 2 y cuándo mostraría grp id 16?
  • A cada flow_fastpath de grupo, flow_slowpath, etc., se le asigna un id de grupo (grp id)
  • grp id 2 y 16 representan slowpath/ flow_slowpath
  • En modelos más hardware antiguos (Por ejemplo: PA-3000 , PA-5000 etc.) y en el caso de modelos más antiguos de PA-7000 la serie se vería NPC grp id 2
  • En los modelos más nuevos hardware (Por ejemplo, PA-5200 , ) y en el caso de los modelos más nuevos de la serie se vería PA-3200 PA-7000 NPC grp id 16

 


Actions
  • Print
  • Copy Link

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

Choose Language