La configuración de sesión falla debido al error de colisión de hash de sesión

La configuración de sesión falla debido al error de colisión de hash de sesión

65720
Created On 09/25/18 19:22 PM - Last Modified 03/26/21 16:47 PM


Symptom


  • Las conexiones entrantes fallan ocasionalmente
  • El firewall se configura con una fuente dinámica y portuaria para el tráfico IP NAT policy saliente
  • El firewall se configura con NAT un destino estático  policypara el tráfico entrante

 



Environment


  • PAN-OS
  • NAT


Cause


En un Palo Alto Networks firewall , una sesión se define mediante dos flujos unidireccionales identificados de forma única por una clave de 6 tuplas: dirección de origen, destino-dirección, puerto de origen, destino-puerto, protocolo y zona de

A firewall seguridad. Cuando esto ocurra, el firewall caerá el paquete entrante e incrementará el contador global llamado session_hash_insert_duplicate.

En los dos diagramas siguientes puede ver este comportamiento de colisión de sesión con dos SIP llamadas. Cada diagrama incluye un teléfono local firewall y un teléfono remoto.Además, hemos enumerado los tramos de red del flujo cliente-servidor y la IP información de dirección y puerto para cada UDP paquete.

70539-1.1. png
 
  1. El teléfono local (192.168.1.2) inicia una SIP llamada al teléfono remoto (10.10.10.10) con un puerto de origen y destino de UDP 5060.
  2. El tráfico saliente coincide con una fuente NAT policy en el firewall , traduciendo la fuente a IP 10.10.10.1 y el puerto de origen a 56611. firewallA continuación, crea una sesión con dos flujos unidireccionales.Aquí podemos ver los detalles de la sesión de la primera SIP sesión creada por el firewall .
    > show session id 27954
    
    Session 27954
    
    c2s flow:
    source: 192.168.1.2 [l3-trust]
    dst: 10.10.10.10
    proto: 17
    sport: 5060 dport: 5060
    state: ACTIVE type: FLOW
    src user: unknown
    dst user: unknown
    
    s2c flow:
    source: 10.10.10.10 [l3-untrust]
    dst: 10.10.10.1
    proto: 17
    sport: 5060 dport: 56611
    state: ACTIVE type: FLOW
    src user: unknown
    dst user: unknown
  3. A segunda conexión es intentado por el teléfono remoto poco después. Esta conexión está destinada a la firewall dirección 's IP de 10.10.10.1. El firewall tiene un destino entrante configurado para la dirección interna del teléfono de NAT policy IP 192.168.1.2.Esta llamada nunca se establece, pero ¿por qué?

70539-2.1. png


Después de ejecutar una captura de paquetes filtrada vemos que el firewall está soltando los paquetes de SIP INVITE 10.10.10.10.
Los contadores globales indican que las caídas se producen durante la creación de la sesión y son causadas por una colisión hash de sesión.
> show counter global filter delta yes packet-filter yes


Global counters:
Elapsed time since last sampling: 9.170 seconds

name value rate severity category aspect description
--------------------------------------------------------------------------------
session_allocated 1 0 info session resource Sessions allocated
session_freed 1 0 info session resource Sessions freed
session_install_error 1 0 warn session pktproc Sessions installation error
session_install_error_s2c 1 0 warn session pktproc Sessions installation error s2c
session_hash_insert_duplicate 1 0 warn session pktproc Session setup: hash insert failure due to duplicate entry


La firewall llamada coincide desde el 10.10.10.10 con un destino entrante y traduce la dirección de destino del NAT policy IP 10.10.10.1 al 192.168.1.2. Cuando los firewall intentos de crear una sesión comprueba si el hash de sesión coincide con un flujo c2s o s2c existente.

Si comparamos el flujo c2s de la primera sesión y el flujo s2c esperado de la sesión fallida tenemos lo siguiente:
flujo c2s:
fuente: 192.168.1.2 [l3-trust]
dst: 10.10.10.10
proto: 17
sport: 5060 dport: 5060
state: ACTIVE type: FLOW
src user: unknown
dst user: unknown
s2c flow:
source: 192.168.1.2 [l3-trust]
dst: 10.10.10.10
proto: 17
sport: 5060 dport: 5060
state: ACTIVE type: FLOW
src user: unknown
dst user: unknown

Observe que estos dos flujos son idénticos. Si el firewall hubiera creado la segunda sesión, no podría identificar qué flujo utilizar para un paquete coincidente.El firewall no crea la segunda sesión debido a este conflicto.
 


Resolution


Este comportamiento puede manifestarse de manera única en función de la implementación. Para este escenario, un usuario puede reconfigurar su origen NAT de dinámico y puerto a IP estático. NAT Esto permitirá que la segunda llamada coincida con el flujo s2c inicial en lugar de crear una nueva sesión por firewall el .

Cuando session_hash_insert_duplicate se vea en los contadores globales, tenga en cuenta cómo NAT las directivas podrían afectar a las nuevas sesiones que coincidan con los flujos existentes.



Actions
  • Print
  • Copy Link

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

Choose Language