Este artículo aborda un problema crítico en la integración de FortiSwitch con FortiGate y FortiNAC. En ocasiones, los registros syslog pueden no transmitirse correctamente desde FortiGate a FortiNAC, lo que provoca la pérdida de eventos de direcciones MAC, como Adición, Eliminación y Movimiento, esenciales para la gestión de red. A continuación, se ofrece una guía detallada para diagnosticar y resolver este problema.
Descripción del problema
Este problema se manifiesta cuando los registros de eventos relacionados con direcciones MAC no son capturados adecuadamente, afectando la visibilidad y el control dentro de la red. Esto se debe a una configuración inadecuada en FortiGate que impide que los eventos de FortiSwitch se envíen correctamente a FortiNAC, lo que, a su vez, limita la capacidad de los administradores de red para manejar dispositivos conectados.
Alcance
Esto afecta a los dispositivos FortiGate, FortiNAC y FortiSwitch, específicamente en entornos donde se busca una gestión centralizada de registros y configuración de dispositivos.
Diagnóstico paso a paso
A continuación se presentan los pasos a seguir para diagnosticar y corregir el problema de transmisión de logs entre FortiGate y FortiNAC.
- Verificar el registro de eventos MAC en FortiGate: Asegúrate de que el registro de eventos MAC esté habilitado en FortiGate. Esto es esencial para que FortiSwitch envíe eventos relacionados con las MAC, como Adición, Eliminación y Movimiento.
config switch-controller global
set mac-event-logging enable
end
- Comprobar los filtros de Syslog en FortiGate: Asegúrate de que los filtros de syslog estén correctamente configurados para capturar los tipos de eventos MAC relevantes. Verifica que los siguientes filtros estén configurados:
- MAC Add: (0100032615).
- MAC Delete: (0100032616).
- MAC Move: (0100032617).
Revisa la configuración de los filtros de syslog bajo:
config log syslogd filter
config free-style
edit 1 set category event
set filter «(logid 0115032615 0115032616 0115032617)»
set filter-type include
end
- Verificar la gravedad del filtro Syslog: Asegúrate de que el nivel de gravedad del filtro syslog esté configurado correctamente. La configuración predeterminada es ‘información’.
Para ajustar el nivel de gravedad, utiliza los siguientes comandos:
config log syslogd filter
set severity ?
emergency Emergency level.
alert Alert level.
critical Critical level.
error Error level.
warning Warning level.
notification Notification level.
information Information level.
debug Debug level.
set serverity emergency
end
- Verificar el intervalo de envejecimiento de MAC y periodo de retención de MAC: El Intervalo de Envejecimiento de MAC es el periodo tras el cual el conmutador eliminará direcciones MAC que no han sido vistas. El predeterminado es de 300 segundos (5 minutos).
- Periodo de Retención de MAC: Este periodo indica cuánto tiempo una dirección MAC permanece en la caché, incluso si no ha sido vista. Por ejemplo, si se establece un periodo de retención de 10 horas, la dirección MAC permanecerá en la caché hasta por 10 horas, incluso si el dispositivo ya no está activo.
- mac-retention-period 0: 0 indica que no hay almacenamiento en caché, lo que significa que la entrada se elimina de FortiGate simultáneamente con su eliminación de FortiSwitch.
Utiliza los siguientes comandos para establecer esta configuración:
config switch-controller global
set mac-aging-interval 300
set mac-retention-period 0
end
Para verificar, utiliza:
diagnose switch-controller mac-cache show
- Verificar la configuración de registro remoto en FortiGate: Asegúrate de que la configuración de registro remoto esté correctamente establecida para encaminarlos a FortiNAC.
config switch-controller remote-log
edit «syslogd»
set status enable
set server «10.21.0.18» # IP del servidor syslog primario
next
edit «syslogd2»
set status enable
set server «x.x.x.x» # IP del servidor syslog secundario
next
end
Si los registros no llegan a FortiNAC, confirma que las direcciones IP de los servidores syslog sean correctas y accesibles.
- Verifica que la política de firewall permita el tráfico desde la LAN/FortiLink hacia el servidor Syslog.
- Ejecuta un sniffer y depura el flujo para el puerto UDP 514 para llevar a cabo un diagnóstico adicional.
diagnose sniffer packet any «port 514» 4 0 l
interfaces=[any]
filters=[port 514]
2024-12-03 18:28:23.436531 port1 in 10.255.1.2.49072 -> 10.21.0.18.514: udp 288
2024-12-03 18:28:23.436550 fortilink in 10.255.1.2.49072 -> 10.21.0.18.514: udp 288
2024-12-03 18:28:23.436593 wan1 out 10.255.1.2.49072 -> 10.21.0.18.514: udp 288
2024-12-03 18:28:23.487565 port1 in 10.255.1.2.49072 -> 10.21.0.18.514: udp 419
2024-12-03 18:28:23.487585 fortilink in 10.255.1.2.49072 -> 10.21.0.18.514: udp 419
2024-12-03 18:28:23.487626 wan1 out 10.255.1.2.49072 -> 10.21.0.18.514: udp 419
Presiona Ctrl + C para detener esto:
diagnose debug flow filter dport 514
diagnose debug flow trace start 99
diagnose debug enable
FortiGate-81E-POE (root) # id=65308 trace_id=4 func=print_pkt_detail line=5880 msg=»vd-root:0 received a packet(proto=17, 10.255.1.2:49072->10.21.0.18:514) tun_id=0.0.0.0 from fortilink. «
id=65308 trace_id=4 func=init_ip_session_common line=6062 msg=»allocate a new session-000082f7″
id=65308 trace_id=4 func=vf_ip_route_input_common line=2613 msg=»find a route: flag=04000000 gw-10.128.202.1 via wan1″
id=65308 trace_id=4 func=__iprope_tree_check line=529 msg=»gnum-100004, use int hash, slot=85, len=3″
id=65308 trace_id=4 func=fw_forward_handler line=992 msg=»Allowed by Policy-9:»
id=65308 trace_id=5 func=print_pkt_detail line=5880 msg=»vd-root:0 received a packet(proto=17, 10.255.1.2:49072->10.21.0.18:514) tun_id=0.0.0.0 from fortilink. «
id=65308 trace_id=5 func=resolve_ip_tuple_fast line=5968 msg=»Find an existing session, id-000082f7, original direction»
id=65308 trace_id=5 func=npu_handle_session44 line=1226 msg=»Trying to offloading session from fortilink to wan1, skb.npu_flag=00000400 ses.state=00000204 ses.npu_state=0x00000001″
id=65308 trace_id=5 func=fw_forward_dirty_handler line=443 msg=»state=00000204, state2=00000001, npu_state=00000001″
Para detener la depuración, ejecuta los siguientes comandos:
diagnose debug disable
diagnose debug reset
¿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Í!