簡介
本文檔介紹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中每個條目的統計資訊
指令:每個條目無統計資訊
- 片段處理
指令:片段deny-all/permit-all
- ACE擴展閾值
指令:hardware access-list lou resource threshold
- 資源池(由於現有條目未移動,因此不影響服務)
指令:hardware access-list resource pooling mod <x>
原子更新
預設情況下,N7K在發生ACL更改時對模組執行原子訪問控制清單(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被歸檔以解決此問題(自今天起在弗里敦修復)。
附註:在TCAM使用率較高時嘗試刪除ACE時,由於總是首先嘗試進行上述原子更新,因此仍可能遇到泛邏輯違規,並提交CSCua24513以解決此問題(已在5.2.7中修正)。
每個條目的統計資訊
預設情況下,N7K會在對TCAM進行程式設計時嘗試合併功能,這有助於節省TCAM資源。配置每個條目的統計資訊時,不會合併條目以維護每個訪問控制條目(ACE)統計資訊,在這種情況下,可能需要更多的資源。
此命令對效能沒有任何影響,因為ACL處理始終在硬體中。
顯示統計資訊有兩個選項:
show ip access-list <acl>
附註:僅顯示那些被程式設計為策略型別PACL/RACL(例如應用於介面的acl)的硬體條目命中的計數器
show hardware internal access-list input 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 detail module <x> | b CoPP
片段處理
預設程式設計模型會在硬體中為每個ACE建立並行非第一個分段條目。此條目匹配與原始ACE相同的源/目標IP地址和協定,但沒有L4埠資訊,並且匹配非初始片段。
附註:未對非XL轉發引擎上的L3 ACE的片段條目進行程式設計。
預設片段處理會導致2X CL TCAM利用率。提供的配置旋鈕允許或拒絕所有非初始片段:
片段{permit-all | deny-all}
最佳化CL TCAM利用率 — 為整個ACL消耗一個CL TCAM條目(而不是每L4 ACE一個條目)
ACE擴展閾值
使用L4運算子的ACE — 範圍、gt、lt、neq。軟體處理L4操作員的方法有兩種:
- 分配L4op(硬體資源)和程式LOU暫存器(另一個硬體資源)
- 將ACE展開為多個eq條目(即CL TCAM條目)
全域性命令hardware access-list lou resource threshold控制ACE發生選項1與選項2的時間。擴展閾值控制何時進行擴展,預設閾值為5。如果ACE可以擴展到<=5 CL TCAM條目,則不分配L4op。
優點/缺點:
- 擴展導致更多TCAM條目消耗
- 每個標籤(10)和LOU暫存器(208)的L4op/LOU使用率受限
資源池
AK銀行鏈。詳細解釋請參見
相關資訊
思科錯誤ID CSCtd24377 AD-XL:Span演算法約束
思科錯誤ID CSCuc98853 ACLQOS未對XL的路由對映執行分段deny-all/permit-all
Tim Stevens的分類幻燈片