한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Libro blanco del lag en juegos › L5 Equipos de red del centro de datos

Tabla de sesiones del firewall llena Firewall session table exhaustion

ID de la causa dc-firewall · Responsable principal Infraestructura de red (Equipo de infraestructura) · También Desarrollo de servidor (Equipo de desarrollo), Desarrollo de cliente (Equipo de desarrollo)

Abrir la ficha interactiva con gráficos y simulaciones →

El firewall registra en la tabla de sesiones cada conexión que deja pasar para hacerle seguimiento. Cuando la tabla se llena, ya no puede aceptar conexiones nuevas.

Por qué Una avalancha de conexiones o un ataque lleva el número de sesiones al límite → Efecto No queda ninguna entrada libre para registrar una conexión nueva, así que se rechaza → En pantalla Para quien intenta entrar, el juego no conecta o se queda en carga infinita; algunas conexiones ya abiertas también se desconectan

Síntomas
No conecta / carga infinita, Desconexión
Factores
Pérdida de paquetes
A quién afecta
Todo el servidor
Cuándo
Al conectar o tras un mantenimiento, Cuando se junta mucha gente
Responsable
Responsable principal Infraestructura de red (Equipo de infraestructura) · También Desarrollo de servidor (Equipo de desarrollo), Desarrollo de cliente (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Servidor: regular con una cola de inicio de sesión las conexiones que llegan de golpe, reutilizar conexiones para no abrir conexiones cortas una y otra vez, cerrar primero las conexiones cuyo heartbeat se cortó (para que las conexiones muertas no ocupen la tabla de sesiones mucho tiempo). Cliente: enviar heartbeats a intervalos de como mucho la mitad del timeout por inactividad más corto, reconectar automáticamente si se corta, pero con intervalos de reintento crecientes y aleatorios (para que no vuelvan todos a la vez).
Tareas (Equipo de infraestructura)
Ampliar la tabla de sesiones, limpiar rápido las conexiones que terminan pronto (acortar el timeout de las sesiones cerradas), avisar al equipo de desarrollo del nuevo valor cuando se acorte el timeout de sesiones inactivas para que ajuste el intervalo de heartbeat, bloquear los ataques, poner alertas sobre el uso de la tabla de sesiones.
En el gráfico
Topa con el límite · Sesiones del firewall, conexiones nuevas fallidas
Dónde mirar
Graficar las sesiones simultáneas del firewall junto con su límite y buscar en el log del dispositivo los paquetes descartados por no poder crear la sesión. En un firewall Linux, comparar nf_conntrack_count con nf_conntrack_max y buscar en dmesg “nf_conntrack: table full, dropping packet”; en una instancia de AWS, mirar conntrack_allowance_exceeded en ethtool -S
Se confirma si
Desde el momento en que el número de sesiones queda plano en el límite, aumentan las conexiones nuevas fallidas, junto con los registros de fallos al crear sesiones o los contadores de descartes
Se descarta si
Si el número de sesiones está muy por debajo del límite y aun así no conecta, apunta a “Desbordamiento de la cola de conexiones pendientes (backlog)” o al servidor de login. Si solo se cortan las conexiones inactivas, a “Expiración del seguimiento de conexiones en grupos de seguridad de la nube”
Se verifica con
Con herramientas de infraestructura (no hace falta código del juego)

Fuentes

  1. Netfilter Conntrack Sysfs variables Linux kernel
    Número máximo de entradas de la tabla de seguimiento de conexiones (nf_conntrack_max), tiempo que se conservan las conexiones que se están cerrando (TIME_WAIT y FIN_WAIT: 120 s por defecto), TCP establecido: 5 días por defecto, número actual de entradas (nf_conntrack_count)
  2. Amazon EC2 security group connection tracking AWS
    Si una instancia supera el número de conexiones que puede seguir, se descartan los paquetes de las conexiones nuevas; las conexiones inactivas pueden agotar la tabla de seguimiento
  3. Infrastructure layer attacks AWS
    Los ataques como el SYN flood acaparan los recursos de servidores, firewalls y balanceadores de carga
  4. net/netfilter/nf_conntrack_core.c (Linux v6.12) Linux kernel
    Cuando la tabla de seguimiento de conexiones se llena, se registra “nf_conntrack: table full, dropping packet” y se descartan los paquetes de las conexiones nuevas
  5. Monitor network performance for ENA settings on your EC2 instance AWS
    conntrack_allowance_exceeded: número de paquetes descartados por superar el límite de seguimiento de conexiones de la instancia; se ve con ethtool -S

Ver también

Misma capa: L5 Equipos de red del centro de datos

Causas de otras capas con el mismo síntoma (No conecta / carga infinita)

Ver la ficha interactiva con gráficos y simulaciones