En este artículo, abordamos un problema común relacionado con el uso elevado de memoria en el proceso cw_acd de FortiGate, que es el daemon capwap encargado de gestionar los FortiAP. Este problema es crucial porque puede afectar el rendimiento del dispositivo y provocar problemas en la administración de la red. A través de este artículo, aprenderás a identificar la causa del alto uso de memoria y cómo optimizar el rendimiento de tu dispositivo FortiGate.
Índice
Descripción del problema
Este artículo describe algunas causas potenciales del alto uso de memoria en el proceso cw_acd y formas de controlar o recuperar esta memoria utilizada. El proceso cw_acd es responsable de controlar los FortiAP administrados dentro del entorno de FortiGate.
Alcance
FortiGate v7.2.x, v7.4.x, v7.6.x.
Diagnóstico paso a paso
Resolución inicial:
Verifica si el dispositivo tiene una memoria activa alta y si el uso de memoria por el proceso cw_acd es más elevado de lo esperado.
get hardware memory
MemTotal: 8170452 kB
MemFree: 1824136 kB
Cached: 1355868 kB
Active: 3343060 kB
Active(anon): 3025392 kB
Slab: 601072 kB
diag sys top-mem
cw_acd (303): 1314123 kB
ipsengine (27218): 130072 kB
ipsengine (27459): 127907 kB
wad (334): 98792 kB
node (5089): 92812 kB
Top-5 memory used: 1763706 kB
Si no se observa un alto uso de memoria por el proceso cw_acd, es probable que estés enfrente de un problema diferente. En ese caso, aísla la ubicación del uso de memoria siguiendo el artículo relacionado. Consejería sobre problemas de alta utilización de memoria.
Si se identifica que el cw_acd tiene un alto uso de memoria, hay diferentes optimizaciones disponibles en la versión 7.4.4 y posteriores, así como en la 7.6.1 y posteriores. Consulta las secciones siguientes para asegurar qué optimizaciones pueden ser aplicables.
Solución recomendada
Diagnóstico del uso elevado de memoria en funciones de WIDS:
Aunque el alto uso de memoria puede señalar una fuga de memoria, esto no siempre es el caso. FortiGate almacena información del Sistema de Detección de Intrusiones Inalámbricas (WIDS) sin ningún temporizador de eliminación.
El uso granular de memoria de cw_acd puede visualizarse con el comando ‘diagnose wireless-controller wlac -c stats‘. A continuación, un ejemplo de uso elevado en cw_wids_mac_oui_tree y algunas otras ubicaciones. La tabla mac_oui_tree almacena direcciones MAC que no se pudieron encontrar en la base de datos OUI conocida.
diagnose wireless-controller wlac -c stats
cw_wids_wl_bridge_tree : cnt=163663 mem=( 128B, 20MB)
cw_wids_nl_pbresp_tree : cnt=24304 mem=( 136B, 3MB)
cw_wids_long_dur_tree : cnt=165816 mem=( 144B, 23MB)
cw_wids_mac_oui_tree : cnt=2303275 mem=( 88B, 202MB)
cw_wids_wep_iv_tree : cnt=779362 mem=( 128B, 99MB)
Para tener una perspectiva más amplia, si imprimes esta información con ‘diagnose wireless-controller wlac show‘, FortiGate producirá cientos de miles de líneas de salida.
diagnose wireless-controller wlac show all
# <hundreds of thousands of lines of output>
# Total 6387794 mac oui attacks detected (tree size 1875071)
Comandos CLI utilizados
Los siguientes comandos pueden ser útiles para investigar problemas relacionados con la memoria en general y con el proceso cw_acd en particular:
config global
get sys status
get sys performance status
diagnose hardware sysinfo memory
diagnose sys vd stats
diagnose sys top-mem 99
diagnose sys top-fd 50
diagnose sys top 1 99 5
diagnose sys mpstat 2 5
fnsysctl ps aux
fnsysctl cat /proc/net/sockstat
fnsysctl cat /proc/softirqs
fnsysctl ifconfig
diagnose sys vd list
diagnose sys cmdb info
diag debug report
get wireless-controller status
diagnose wireless-controller wlac -c mpmt
Buenas prácticas y recomendaciones
Para prevenir el uso no deseado de memoria por la base de datos WIDS, desactiva las funciones de WIDS no utilizadas. Por defecto, las siguientes funciones están habilitadas en un perfil de WIDS y pueden consumir alta memoria en algunos entornos inalámbricos.
config wireless-controller wids-profile
edit <profile_name>
set wireless-bridge <enable/disable>
set weak-wep-iv <enable/disable>
set null-ssid-probe-resp <enable/disable>
set invalid-mac-oui <enable/disable>
set long-duration-attack <enable/disable>
next
end
Notas adicionales
Para dispositivos con FortiOS v7.6.1 y posteriores, es posible configurar un temporizador y un valor máximo para las entradas de la base de datos WIDS. Para obtener detalles sobre estos ajustes y otras optimizaciones en versiones anteriores, consulta la documentación oficial de Fortinet o los registros de cambios de FortiOS.
¿Te ha resultado útil??
0 / 0

Hola, somos Mila Jiménez y César Sánchez. Dos apasionados de la ciberseguridad con muchos años de experiencia. Hemos trabajado en muchas empresas del mundo TI y ahora nos apetece compartir nuestro conocimiento con cualquiera que lo necesite.
¡Si te gusta nuestro contenido puedes invitarnos a un café AQUÍ!