简介
本文档介绍TCAM资源问题解决方法。
常见TCAM错误
%ACLQOS-SLOT3-4-ACLQOS_OVER_THRESHOLD Tcam 0 Bank 0的使用率已达到其阈值
%ACLMGR-3-ACLMGR_VERIFY_FAIL验证失败:客户端8200016E,TCAM银行中没有足够的可用条目
"错误:由于Spanslogic TCAM限制,TCAM条目插入失败" — 仅在XL模块上
有关更多跨领域TCAM限制,请参阅。
硬件ACL资源利用率
命令:
show hardware access-list resource utilization module <mod>
SITE1-AGG1# show hardware access-list resource utilization mod 3
INSTANCE 0x0
-------------
ACL Hardware Resource Utilization (Mod 3)
--------------------------------------------
Used Free Percent
Utilization
-----------------------------------------------------
Tcam 0, Bank 0 9 16375 0.05
Tcam 0, Bank 1 2 16382 0.01
Tcam 1, Bank 0 7 16377 0.04
Tcam 1, Bank 1 246 16138 1.50
LOU 3 101 2.88
Both LOU Operands 2
Single LOU Operands 1
LOU L4 src port: 0
LOU L4 dst port: 1
LOU L3 packet len: 0
LOU IP tos: 0
LOU IP dscp: 0
LOU ip precedence: 0
LOU ip TTL: 0
TCP Flags 0 16 0.00
Protocol CAM 4 3 57.14
Mac Etype/Proto CAM 9 5 64.28
Non L4op labels, Tcam 0 2 6141 0.03
Non L4op labels, Tcam 1 3 6140 0.04
L4 op labels, Tcam 0 0 2047 0.00
L4 op labels, Tcam 1 1 2046 0.04
Ingress Dest info table 131072 510 0.39
Egress Dest info table 65536 511 0.19
SITE1-AGG1#
选项
以下是TCAM使用率较高时的几个选项。
- 原子更新
命令:no hardware access-list update atomic
- 在所有ACL中禁用每个条目的统计信息
命令:每个条目无统计信息
- 碎片处理
命令:fragments deny-all/permit-all
- ACE扩展阈值
命令:硬件访问列表lou资源阈值
- 资源池(由于不移动现有条目,不会影响服务)
命令:硬件访问列表资源池模块<x>
原子更新
默认情况下,当ACL发生更改时,N7K会对模块执行原子访问控制列表(ACL)更新。 原子更新不会中断更新后的ACL应用的流量。但是,原子更新要求接收ACL更新的I/O模块具有足够的可用资源来存储每个更新的ACL条目以及受影响ACL中所有现有条目。更新发生后,将释放用于更新的其他资源。如果I/O模块缺少所需资源,设备会生成错误消息,并且I/O模块的ACL更新失败。
如果I/O模块缺少原子更新所需的资源,可以使用
no hardware access-list update atomic
但是,在设备删除现有ACL并实施更新的ACL所需的短暂时间内,ACL应用到的流量会默认丢弃。 如果要允许ACL应用的所有流量,同时它接收非原子更新。使用hardware access-list update default-result permit命令。
注意:如果原子和非原子更新都可能(例如,TCAM有足够的可用空间),则原子更可取。如果没有足够的可用空间来进行原子更新,则尝试非原子。因此,即使禁用了原子更新,当前实现始终先尝试原子。但是,当前由于支持逻辑限制而发生故障时,它不会切换到非原子,并且CSCud36802会提交以解决此问题(从今天起将在Freetown中修复)。
注意:当尝试在TCAM使用率较高时删除ACE时,由于总是先尝试如上所述的原子更新,因此仍然可能会触发spanslogic contrans,并且CSCua24513已归档以解决此问题(在5.2.7中修复)。
每个条目的统计信息
默认情况下,N7K在编程TCAM时会尝试合并功能,这有助于保存TCAM资源。配置每个条目的统计信息时,不会合并这些条目以维护每个访问控制条目(ACE)统计信息,在这种情况下,可能会占用更多资源。
由于ACL处理始终在硬件中,因此此命令不会对性能产生任何影响。
显示统计信息有两个选项:
show ip access-list <acl>
注意:仅显示策略类型为PACL/RACL(例如应用于接口的acl)所编程的命中的硬件条目的计数器
show hardware internal access-list input entries detail module <x>
注意:在copp策略内使用的ACL用于数据包的分类。决定是否允许/拒绝/速率限制数据包由控制平面qos策略/类映射配置完成。在ACL中指定的允许/拒绝操作在在复制策略内使用时无效。
如果在copp acl上启用统计信息,并且即使在copp类映射内使用相同的acl,show ip access <acl>也不会因上述原因而反映这一点。本质上,在copp qos策略内使用的acl被编程为策略类型 — QoS。如果希望看到符合copp控制平面qos策略的数据包,可以使用以下命令:
show system internal access-list input entries detail module <x> |b CoPP
碎片处理
默认编程模型在硬件中为每个ACE创建并行非第一分段条目。此条目与原始ACE匹配相同的源/目标IP地址和协议,但没有L4端口信息,并且与非初始分段匹配。
注意:未在非XL转发引擎上编程的L3 ACE的分段条目。
默认分段处理会导致2X CL TCAM利用率。为允许或拒绝所有非初始分段而提供的配置按钮:
fragments {permit-all |拒绝所有}
优化CL TCAM利用率 — 为整个ACL使用单个CL TCAM条目(而每个L4 ACE使用一个条目)
ACE扩展阈值
使用L4运算符的ACE — 范围、gt、lt、neq。软件有两种方法处理L4操作员:
- 分配L4op(硬件资源)和程序LOU寄存器(另一硬件资源)
- 将ACE扩展为多个均衡条目(即CL TCAM条目)
当ACE出现选项1与选项2时,全局命令hardware access-list lou resource threshold controls。扩展阈值控制扩展发生时,默认阈值为5。如果ACE可扩展为<=5 CL TCAM条目,则不分配L4op。
优点/缺点:
- 扩展会导致TCAM条目消耗增加
- L4op/LOU使用受每个标签(10)的L4ops和LOU寄存器(208)的限制
资源池
银行连锁。详细说明
相关信息
Cisco Bug ID CSCtd24377 AD-XL:Spanslogic算法约束
Cisco BUG ID CSCuc98853 ACLQOS不支持XL路由映射的分段deny-all/permit-all
蒂姆·史蒂文斯的分类幻灯片