Introducción
Este documento describe los fallos de ACI F3545/F3544 y los pasos posibles para ayudar a mitigar el problema.
F3545: Programación de políticas CAM para contratos
El error F3545 ocurre cuando el switch no puede activar una regla de contrato (regla de zonificación) debido a un error de programación de hardware o software. Si ve esto, es porque la política Content Addressable Memory (CAM) está llena y no se pueden implementar más contratos en el switch, y se puede implementar un conjunto diferente de contratos después de un reinicio o actualización.
Esto puede llevar a que los servicios que solían funcionar antes de que una actualización comenzara a fallar después de una actualización o una recarga limpia del switch.
Tenga en cuenta que el mismo fallo puede producirse por otros motivos, como un tipo de filtro no compatible en los contratos en lugar del uso de políticas de CAM. Por ejemplo, los switches ACI de primera generación admiten EtherType IP, pero no IPv4 ni IPv6 en los filtros de contratos.
Cuando se produzca este error, compruebe el uso de CAM de políticasOperations > Capacity Dashboard > Leaf Capacity en la GUI de APIC. También puede ejecutar este comando en la hoja para obtener el conteo de políticas actual.
vsh_lc -c "show plat internal hal health-stats" | grep -A 7 "Policy stats"
También puede ejecutar el moquery (moquery -c faultInst -f 'fault.Inst.code=="F3545"') en la CLI de cualquier APIC para verificar si estos fallos existen en el sistema. Los fallos también son visibles en la GUI.
Ejemplo de fallo (F3545: error de programación de regla de división en zonas)
El siguiente resultado muestra un ejemplo del nodo 101 con error de programación para 266 reglas de contrato (zoneRuleFailed). Aunque también muestra la falla de programación de las subredes L3Out (pfxRuleFailed) en el changeSet, se genera un error independiente F3544 para eso.
apic1# moquery -c faultInst -f 'fault.Inst.code=="F3545"'
Total Objects shown: 1
# fault.Inst
code : F3545
ack : no
annotation :
cause : actrl-resource-unavailable
changeSet : pfxRuleFailed (New: 80), zoneRuleFailed (New: 266)
childAction :
created : 2020-02-26T01:01:49.256-05:00
delegated : no
descr : 266 number of Rules failed on leaf1
dn : topology/pod-1/node-101/sys/actrl/dbgStatsReport/fault-F3545
domain : infra
extMngdBy : undefined
highestSeverity : major
lastTransition : 2020-02-26T01:03:59.849-05:00
lc : raised
modTs : never
occur : 1
origSeverity : major
prevSeverity : major
rn : fault-F3545
rule : actrl-stats-report-zone-rule-prog-failed
severity : major
status :
subject : hwprog-failed
type : operational
uid :
F3544: L3Out subredes Programación para contratos (F3544)
La falla F3544 ocurre cuando el switch no puede activar una entrada para asignar un prefijo a pcTag debido a una falla de programación de hardware o software.
Estas entradas se configuran para subredes L3Out con el alcance 'Subredes externas para el EPG externo' bajo un EPG externo en una L3Out y se utilizan para asignar subredes L3Out a EPG L3Out.
Si observa esto debido a la capacidad de rutas de LPM o del host en el switch, dicho switch puede activar diferentes conjuntos de entradas después de un reinicio o actualización.
Esto puede dar lugar a que los servicios que estaban funcionales antes de una actualización falle una vez que se inicia la actualización o después de una recarga limpia del switch.
Cuando este fallo esté presente, verifique el Operations > Capacity Dashboard > Leaf Capacity en la GUI de APIC para el uso de rutas LPM y /32 o /128.
También puede ejecutar este comando en la hoja para obtener el conteo de políticas actual:
vsh_lc -c "show plat internal hal health-stats" | grep -A 55 "L3 stats"
Puede ejecutar el moquery (moquery -c faultInst -f 'fault.Inst.code=="F3544"') en la CLI de cualquier APIC para comprobar si existen estos fallos en el sistema. Los fallos también son visibles en la GUI.
Ejemplo de fallo (F3544: L3Out Subnet Programming Failure)
El siguiente resultado muestra un ejemplo del nodo 101 con falla de programación para 80 subredes L3Out con 'Subredes externas para el EPG externo' (pfxRuleFailed). Aunque también muestra el error de programación de los propios contratos (zoneRuleFailed) en el changeSet, se genera un error independiente F3545 para ello.
apic1# moquery -c faultInst -f 'fault.Inst.code=="F3544"'
Total Objects shown: 1
# fault.Inst
code : F3544
ack : no
annotation :
cause : actrl-resource-unavailable
changeSet : pfxRuleFailed (New: 80), zoneRuleFailed (New: 266)
childAction :
created : 2020-02-26T01:01:49.246-05:00
delegated : no
descr : 80 number of Prefix failed on leaf1
dn : topology/pod-1/node-101/sys/actrl/dbgStatsReport/fault-F3544
domain : infra
extMngdBy : undefined
highestSeverity : major
lastTransition : 2020-02-26T01:03:59.849-05:00
lc : raised
modTs : never
occur : 1
origSeverity : major
prevSeverity : major
rn : fault-F3544
rule : actrl-stats-report-pre-fix-prog-failed
severity : major
status :
subject : hwprog-failed
type : operational
uid :
¿Cómo solucionar los fallos?
Nota: No recargue el switch en este estado.
1. Verifique el uso/LPM del CAM de políticas en el panel de capacidad de operaciones o mediante la CLI de hoja vsh_lc -c "show plat internal hal health-stats".
2. Verifique la Guía de Escalabilidad Verificada (Guía de Escalabilidad Verificada de Google ACI) para verificar los límites soportados para la versión y la plataforma.
3. Elimine los contratos y filtros no utilizados aplicados a los EPG.
4. Recopile un soporte técnico a demanda que incluya los switches de hoja para que el TAC los analice más a fondo.
Comprobación previa a la actualización
El script de validación previo a la actualización marca los errores F3545 y F3544 para advertir al usuario del impacto si los errores no se solucionan antes de la actualización.
Los detalles del script previo a la actualización se documentan aquí:
https://www.cisco.com/c/en/us/td/docs/dcn/aci/apic/all/apic-installation-aci-upgrade-downgrade/Cisco-APIC-Installation-ACI-Upgrade-Downgrade-Guide/m-pre-upgrade-checklists.html?bookSearch=true#Cisco_Concept.dita_1f674dd5-9ea2-4062-826b-f3c1550552dc.