發(fā)布時(shí)間:2022-04-13
.jpg)
互聯(lián)網(wǎng)服務(wù)中心 田小楊
前言
各位讀者在部署數(shù)據(jù)中心項(xiàng)目時(shí),是否也遇到過類似情況:
在部署數(shù)據(jù)中心交換機(jī)的ACL相關(guān)業(yè)務(wù)時(shí),ACL條目?jī)H部署幾條,但交換機(jī)還是提示TCAM資源不足配置無法生效;
數(shù)據(jù)中心交換機(jī)的TCAM模式有很多種,不清楚到底應(yīng)該使用哪種模式,才適合當(dāng)前的部署環(huán)境;
在規(guī)劃設(shè)備業(yè)務(wù)時(shí),不清楚應(yīng)該考慮哪些因素,才能保障不會(huì)出現(xiàn)TCAM資源不足的情況。
本文希望能夠幫助各位解決以上問題,同時(shí)也希望助力各位深入理解設(shè)備在給ACl分配TCAM資源時(shí)的底層邏輯,從而規(guī)劃好自己數(shù)據(jù)中心網(wǎng)絡(luò)的業(yè)務(wù),避免出現(xiàn)TCAM資源不足的情況。
TCAM簡(jiǎn)介
TCAM是數(shù)據(jù)中心交換機(jī)產(chǎn)品上用于存在ACL表項(xiàng)的存儲(chǔ)器。根據(jù)ACL應(yīng)用的位置不同通常將TCAM資源分VFP ACL TCAM資源、IFP ACL TCAM資源、EFP ACL TCAM資源三種。TCAM上存放ACL表項(xiàng)的最小單位是Slice,每個(gè)Slice根據(jù)容量存放若干的ACL條目。
.png)
Single Slice(單寬)與Double Slice(雙寬)
一臺(tái)數(shù)據(jù)中心交換機(jī)每個(gè)Slice的位寬長(zhǎng)度是固定的(不同型號(hào)交換機(jī)Slice位寬略有差異,比如S6510-48VS8CQ每個(gè)Slice位寬為160bit)。如果一個(gè)業(yè)務(wù)的位寬沒有超過單寬Slice的位寬,那么該業(yè)務(wù)使用一個(gè)Slice進(jìn)行存儲(chǔ)即可,即說該業(yè)務(wù)使用Single Slice(單寬);如果一個(gè)業(yè)務(wù)的位寬超過Slice的位寬,那么該業(yè)務(wù)需要通過將兩個(gè)相鄰Slice(偶數(shù)開始)拼接形成位寬更大的Double Slice(雙寬)使用,即說該業(yè)務(wù)使用Double Slice(雙寬)。

業(yè)務(wù)的位寬依據(jù)ACL中ACE涉及到匹配域之和進(jìn)行計(jì)算,所有ACE中涉及的匹配域之和與Slice的位寬進(jìn)行比較,如果該業(yè)務(wù)的位寬沒有超過單寬Slice的位寬,則該業(yè)務(wù)使用Single Slice(單寬),反之則使用Double Slice(雙寬)。

其中Etype、Port、PortGroup匹配域根據(jù)業(yè)務(wù)應(yīng)用需要下發(fā),ACL沒有顯示感知。
盒式交換機(jī)和框式交換機(jī)TCAM特點(diǎn)介紹
不同型號(hào)數(shù)據(jù)中心交換機(jī)TCAM資源特性略有不同,大致分為兩類:
盒式交換機(jī)TCAM資源分為VFP ACL TCAM資源、IFP ACL TCAM資源、EFP ACL TCAM資源三種,這三種資源是獨(dú)立分配的不能共享使用。在盒式交換的IFP ACL TCAM資源中,Slice從使用上不同分為普通Slice和預(yù)留Slice兩種。普通Slice可以通過兩個(gè)相鄰Slice(偶數(shù)開始)拼接形成Double Slice使用,滿足更長(zhǎng)匹配域的業(yè)務(wù);預(yù)留Slice不支持拼接,只能以Single Slice方式存在,并且只能提供給部分業(yè)務(wù)或部分TCAM模式下有進(jìn)行規(guī)劃的業(yè)務(wù)使用,使用預(yù)留Slice的業(yè)務(wù)只能支持Single Slice(單寬)。對(duì)于盒式交換機(jī)一般前N個(gè)Slice為預(yù)留Slice,N等于Slice總數(shù)除以3(例如盒式交換機(jī)RG-S6510-48VS8CQ交換機(jī)的IFP ACL一共12個(gè)Slice,預(yù)留Slice則一共4個(gè),Slice0-Slice3)。VFP ACL TCAM資源和EFP ACL TCAM資源當(dāng)前沒有預(yù)留Slice,全部為普通Slice。
框式交換機(jī)TCAM資源分為IFP ACL TCAM資源、EFP ACL TCAM資源兩種,與盒式交換機(jī)存在不同的是框式交換機(jī)的IFP ACL TCAM資源、EFP ACL TCAM資源兩種資源是共享分配的。在框式交換機(jī)中,存在兩個(gè)小Slice(前兩個(gè)Slice)為預(yù)留Slice,與盒式交換機(jī)不同,該預(yù)留Slice可以進(jìn)行拼接,即該預(yù)留Slice可以支持Single Slice(單寬)和Double Slice(雙寬)業(yè)務(wù),但同樣存在使用限制,該預(yù)留Slice只能給特定的業(yè)務(wù)使用。
.jpg)
使用TCAM資源的業(yè)務(wù)介紹
數(shù)據(jù)中心交換機(jī)支持許多使用ACL的業(yè)務(wù),這些使用ACL的業(yè)務(wù)并不是都使用TCAM資源,比如VTY下調(diào)用的ACL實(shí)現(xiàn)設(shè)備登錄控制功能就不會(huì)使用TCAM資源,下表列出了使用TCAM資源的常用業(yè)務(wù)供各位讀者參考。
.png)
不同的業(yè)務(wù)在使用TCAM資源時(shí)是以Slice為維度的。相同業(yè)務(wù)可以使用同一Slice資源,大部分不同業(yè)務(wù)不可使用同一Slice資源,即大多數(shù)情況下同一個(gè)Slice只能存放一個(gè)類型的業(yè)務(wù),比如一個(gè)Slice已經(jīng)存放SECURITY業(yè)務(wù)(接口下使用ACL)的資源,那么它就不能在存放PBR業(yè)務(wù)(策略路由業(yè)務(wù))的資源,PBR業(yè)務(wù)必須存放在另一個(gè)Slice之中,即使存放SECURITY業(yè)務(wù)的Slice還有空余空間。(部分業(yè)務(wù)在特定的TCAM模式下進(jìn)行了整合,整合后的業(yè)務(wù)可以占用相同的Slice資源,但業(yè)務(wù)上存在一定的優(yōu)先級(jí)限制)
以上業(yè)務(wù)除了CPP業(yè)務(wù)外其余都是在配置該業(yè)務(wù)后才會(huì)使用TCAM資源。CPP業(yè)務(wù)通過標(biāo)準(zhǔn)的QOS差分服務(wù)模型實(shí)現(xiàn)設(shè)備CPU的保護(hù),在設(shè)備啟動(dòng)后默認(rèn)開啟且不支持關(guān)閉。故在空配置情況下設(shè)備啟動(dòng)后,默認(rèn)CPP業(yè)務(wù)已使用TCAM資源。
TCAM運(yùn)維方法
數(shù)據(jù)中心交換機(jī)TCAM使用情況查看與分析
在數(shù)據(jù)中心交換機(jī)上可以通過“show acl res”命令查看Slice資源使用情況匯總,包括Slice的數(shù)量,每個(gè)Slice的容量,每個(gè)Slice的使用情況及剩余情況等;通過“show acl res detail”命令可查看Slice資源的詳細(xì)使用情況,包括每個(gè)Slice資源是哪個(gè)業(yè)務(wù)使用的、使用的是Single Slice還是Double Slice、業(yè)務(wù)優(yōu)先級(jí)等信息。
舉例:查看盒式交換機(jī)(RG-S6510-48VS8CQ)TCAM資源使用情況
通過“show acl res”命令查看盒式交換機(jī)RG-S6510-48VS8CQ TCAM資源情況如下:其中VFP ACL TCAM資源上共包含4個(gè)Slice(Slice 0-Slice 3),每個(gè)Slice共256容量,總?cè)萘?024;IFP ACL TCAM資源上共包含12個(gè)Slice(Slice 0-Slice 11),其中4個(gè)預(yù)留Slice(Slice 0-Slice 3)和8個(gè)普通Slice(Slice 4-Slice 11),每個(gè)Slice共768容量,總?cè)萘抗?216;EFP ACL TCAM資源上共包含4個(gè)Slice(Slice 0-Slice 3),每個(gè)Slice共512容量,總?cè)萘?048。
.png)
通過“show acl res detail”命令查看盒式交換機(jī)RG-S6510-48VS8CQ TCAM資源詳細(xì)使用情況如下:其中IFP ACL TCAM資源上,CPP業(yè)務(wù)占用一個(gè)Double Slice資源,使用Slice 10和Slice 11,SECURITY業(yè)務(wù)占用一個(gè)Single資源,使用Slice 4;在EFP ACL TCAM資源上,SECURITY業(yè)務(wù)占用一個(gè)Single資源,使用Slice 0。
.png)
舉例:查看框式交換機(jī)(RG-N18000-X)TCAM情況
通過“show acl res”命令查看框式交換機(jī)RG-N18000-X TCAM資源情況如下:每板卡IFP ACL TCAM和EFP ACL TCAM資源共用,共包含14個(gè)Slice(Slice 0-Slice 13),其中2個(gè)預(yù)留Slice(Slice 0-Slice 1),每個(gè)Slice共128容量,12個(gè)普通Slice(Slice 2-Slice 13),每個(gè)Slice共2048容量,總?cè)萘抗?4832。
.png)
通過“show acl res detail”命令查看框式交換機(jī)RG-N18000-X TCAM資源詳細(xì)使用情況如下:CPP業(yè)務(wù)占用一個(gè)Double Slice資源,使用預(yù)留Slice空間Slice 0和Slice 1,CPP(v6)業(yè)務(wù)占用一個(gè)Double Slice資源,使用Slice 10和Slice 11,SECURITY(v6)業(yè)務(wù)占用一個(gè)Double Slice資源,使用Slice 12和Slice 13。
.png)
數(shù)據(jù)中心交換機(jī)TCAM模式查看與調(diào)整
上文中提到大部分不同業(yè)務(wù)不可使用同一Slice資源,數(shù)據(jù)中心交換機(jī)出廠TCAM模式為默認(rèn)模式,在該模式下TCAM業(yè)務(wù)一般不會(huì)進(jìn)行整合,不同業(yè)務(wù)不可使用在同一Slice資源,該模式下一個(gè)業(yè)務(wù)最少使用1個(gè)到2個(gè)Slice資源。TCAM模式提供了一種機(jī)制可以根據(jù)不同場(chǎng)景選擇相應(yīng)的TCAM工作模式來讓該場(chǎng)景下的部分業(yè)務(wù)可以使用同一Slice資源或者使用預(yù)留Slice資源,減少部分功能的Slice使用,從而增加可用的Slice資源。比如部分型號(hào)交換機(jī)ACL-MAX模式下,SECURITY業(yè)務(wù)和SECURITY-COUNT業(yè)務(wù)進(jìn)行了整合,可使用同一Slice資源。
.png)
在數(shù)據(jù)中心交換機(jī)上可以通過“show tcam-mode status”命令查看設(shè)備運(yùn)行的TCAM工作模式,查看包括當(dāng)前設(shè)備運(yùn)行的TCAM模式及設(shè)備重啟后下一次運(yùn)行時(shí)TCAM模式。如果需要調(diào)整設(shè)備的TCAM模式,可以通過“tcam-mode acl-max/acl-slices-all/vxlan/vxlan-hash/acl-default-vxlan-hash”命令調(diào)整,需要注意調(diào)整TCAM模式后需要保存配置整機(jī)重啟后才會(huì)生效。
TCAM應(yīng)用與實(shí)踐
TCAM資源評(píng)估建議
數(shù)據(jù)中心交換機(jī)TCAM資源評(píng)估因素:
Slice資源評(píng)估:在評(píng)估Slice資源時(shí),除了需要評(píng)估Slice容量是否滿足ACL條目,更需要關(guān)注的是Slice的數(shù)量能否滿足業(yè)務(wù)的數(shù)量。上文提到大多數(shù)情況下同一個(gè)Slice只能存放一個(gè)類型的業(yè)務(wù),實(shí)際使用過程中Slice容量還有空余但沒有新的完整的Slice給新的業(yè)務(wù)使用,這種情況是最容易造成TCAM資源不足的情況,請(qǐng)各位讀者重點(diǎn)關(guān)注。
KEY資源評(píng)估:KEY是設(shè)備內(nèi)部的一個(gè)處理引擎,用于給需要TCAM資源的業(yè)務(wù)分配TCAM資源。盒式交換機(jī)無需單獨(dú)評(píng)估KEY資源,只需要評(píng)估Slice資源即可,Slice資源滿足KEY資源也滿足。框式交換機(jī)在評(píng)估Slice資源后,需要單獨(dú)評(píng)估KEY資源。(DUNE系列芯片的交換機(jī)需要評(píng)估KEY資源,12.X存在DUNE系列芯片的盒式交換機(jī))
數(shù)據(jù)中心交換機(jī)TCAM資源評(píng)估方法:
評(píng)估Slice容量是否滿足ACL條目數(shù):
因ACL中ACE配置的多樣性,不同ACE所使用的Slice容量不同,無法通過計(jì)算得出,如果使用的ACL的ACE數(shù)量較多,建議將部署的業(yè)務(wù)配置到實(shí)際使用的數(shù)據(jù)中心交換機(jī)型號(hào)中進(jìn)行驗(yàn)證,判斷Slice容量是否滿足ACL條目數(shù)。
評(píng)估Slice的數(shù)量能否滿足業(yè)務(wù)所需的數(shù)量:
首先通過上小節(jié)所述業(yè)務(wù)的位寬與Slice的位寬進(jìn)行對(duì)比的方法,評(píng)估使用的每項(xiàng)業(yè)務(wù)需要使用Single Slice還是Double Slice;其次將所有業(yè)務(wù)使用的Slice相加得到“業(yè)務(wù)需要使用的Slice總數(shù)量”;最后按照如下表格評(píng)估Slice的數(shù)量能否滿足業(yè)務(wù)所需的數(shù)量。
在計(jì)算“業(yè)務(wù)需要使用的總Slice數(shù)量”時(shí)需要注意,IPv4場(chǎng)景下設(shè)備默認(rèn)CPP業(yè)務(wù)使用Slice資源需要計(jì)算進(jìn)去;IPv4和IPv6雙棧場(chǎng)景下,設(shè)備默認(rèn)CPP業(yè)務(wù)和CPP(v6)業(yè)務(wù)使用Slice資源需要計(jì)算進(jìn)去。
.png)
.png)
評(píng)估KEY資源是否滿足需求:
盒式交換機(jī)無需單獨(dú)評(píng)估KEY資源,只需要評(píng)估Slice資源即可。本小節(jié)只針對(duì)框式交換機(jī),在評(píng)估KEY資源時(shí),參照下表KEY資源數(shù)量,將一個(gè)KEY資源看成一個(gè)Slice按照上小節(jié)“評(píng)估Slice的數(shù)量能否滿足業(yè)務(wù)所需的數(shù)量”的方法進(jìn)行評(píng)估。一般在IPv4/IPv6雙棧的場(chǎng)景,如果出現(xiàn)KEY資源不足的情況,可調(diào)整TCAM模式為ACL-MAX模式,ACL-MAX模式下IPv4 KEY資源和IPv6 KEY資源單獨(dú)分配,可增大可用KEY資源。
.png)
TCAM資源不足案例分享
本小節(jié)將結(jié)合以上的內(nèi)容給大家分享兩個(gè)“TCAM資源不足的真實(shí)案例”幫助大家更好的理解設(shè)備在給ACL分配TCAM資源時(shí)的底層邏輯。在出現(xiàn)TCAM資源不足時(shí),建議讀者先根據(jù)業(yè)務(wù)場(chǎng)景嘗試調(diào)整TCAM模式,調(diào)整TCAM模式后設(shè)備將自動(dòng)整合該場(chǎng)景下常用業(yè)務(wù)的TCAM資源,調(diào)整后觀察能否滿足新業(yè)務(wù)TCAM資源的需求。如果調(diào)整TCAM模式后仍然存在TCAM資源不足的情況,建議整合目前使用的TCAM業(yè)務(wù),進(jìn)行一定的調(diào)整或者刪除。
![]()
舉例:盒式交換機(jī)(RG-S6510-48VS8CQ)Slice資源不足案例
在IPv4場(chǎng)景下的一臺(tái)RG-S6510-48VS8CQ上部署了如下圖所示的TCAM業(yè)務(wù):
.jpg)
業(yè)務(wù)部署完成后在設(shè)備上查看TCAM資源的使用情況如下,IFP ACL TCAM資源共12個(gè)Slice包括4個(gè)預(yù)留Slice和8個(gè)普通Slice,目前已使用1個(gè)預(yù)留Slice和6個(gè)普通Slice。EFP ACL TCAM資源共4個(gè)Slice,目前已使用3個(gè)Slice。
.png)
業(yè)務(wù)使用Slice詳細(xì)情況如下圖所示,對(duì)于IFP ACL TCAM資源:QOS業(yè)務(wù)、PBR業(yè)務(wù)、PBM業(yè)務(wù)、SECURITY-COUNT業(yè)務(wù)均為Single Slice分別使用一個(gè)Slice;SECURITY業(yè)務(wù)和SECURITY-GBL業(yè)務(wù)共用一個(gè)Slice一共使用一個(gè)Slice;CPP業(yè)務(wù)為Double Slice使用兩個(gè)Slice。對(duì)于EFP ACL TCAM資源:SECURITY業(yè)務(wù)、SECURITY-COUNT業(yè)務(wù)、QOS-CAR業(yè)務(wù)均為Single Slice分別使用一個(gè)Slice。
在以上業(yè)務(wù)基礎(chǔ)上,因業(yè)務(wù)需要該設(shè)備需要開啟IPv6功能并部署IPv6的接口ACL功能,具體部署功能如下:
.png)
在開啟IPv6功能后默認(rèn)CPP(v6)業(yè)務(wù)將使用Double Slice IFP ACL TCAM資源,預(yù)計(jì)將使用普通Slice 8和Slice 9,接下來配置IPv6接口ACL業(yè)務(wù),在接口下調(diào)用IN方向和OUT方向的ACL時(shí),設(shè)備都將出現(xiàn)TCAM資源不足情況。因?yàn)榇藭r(shí)IFP ACL TCAM還剩余3個(gè)預(yù)留Slice資源,SECURITY(v6)業(yè)務(wù)為Double Slice無法使用預(yù)留Slice資源;EFP ACL TCAM目前剩余1個(gè)Slice資源,SECURITY(v6)業(yè)務(wù)為Double Slice需要使用2個(gè)Slice資源,所以IFP ACL TCAM和EFP ACL TCAM都將Slice資源不足。
本設(shè)備原本使用IPv4單棧,在開啟IPv6功能部署雙棧后出現(xiàn)TCAM資源不足的情況,查看上文中整理的各場(chǎng)景推薦部署的TCAM模式,在IPv4/IPv6雙棧場(chǎng)景下推薦使用ACL-MAX模式,修改設(shè)備TCAM模式后進(jìn)行重啟。重啟后設(shè)備已運(yùn)行在ACL-MAX模式下,此時(shí)再次開啟IPv6功能并部署IPv6的接口ACL功能,未在出現(xiàn)TCAM資源不足的情況,此時(shí)查看設(shè)備的TCAM資源情況如圖所示,CPP(v6)業(yè)務(wù)和SECURITY(v6)業(yè)務(wù)已正常使用TCAM資源。
.png)
此時(shí)業(yè)務(wù)使用Slice詳細(xì)情況如下圖所示,對(duì)于IFP ACL TCAM資源:QOS業(yè)務(wù)、CPP(v6)業(yè)務(wù)、PBM業(yè)務(wù)、PBR業(yè)務(wù)均為Single Slice分別使用一個(gè)Slice;SECURITY業(yè)務(wù)、SECURITY-GBL業(yè)務(wù)和SECURITY-COUNT業(yè)務(wù)共用一個(gè)Slice一共使用一個(gè)Slice;SECURITY(v6)業(yè)務(wù)和CPP業(yè)務(wù)為Double Slice分別使用兩個(gè)Slice。對(duì)于EFP ACL TCAM資源:QOS-CAR業(yè)務(wù)為Single Slice使用一個(gè)Slice;SECURITY業(yè)務(wù)和SECURITY-COUNT業(yè)務(wù)共用一個(gè)Slice一共使用一個(gè)Slice;SECURITY(v6)業(yè)務(wù)為Double Slice使用兩個(gè)Slice。
.jpg)
舉例:框式交換機(jī)(RG-N18000-X)KEY資源不足案例
在IPv4/IPv6雙棧場(chǎng)景下的一臺(tái)RG-N18000-X上部署了如下TCAM業(yè)務(wù):
.png)
業(yè)務(wù)部署完成后在設(shè)備上查看TCAM資源的使用情況如下,IFP ACL TCAM和EFP ACL TCAM資源共用14個(gè)Slice資源,包括2個(gè)預(yù)留Slice和12個(gè)普通Slice,目前已使用2個(gè)預(yù)留Slice和5個(gè)普通Slice。框式交換機(jī)除了評(píng)估Slice資源還需要評(píng)估KEY資源使用情況,此時(shí)IFP ACL TCAM KEY資源共7個(gè),已使用7個(gè);EFP ACL TCAM KEY資源共2個(gè),已使用0個(gè)。
.png)
.png)
在以上業(yè)務(wù)基礎(chǔ)上,該設(shè)備新增IPv4的ERSPAN的功能,具體部署功能如下:
.png)
在配置IPv4的ERSPAN的功能時(shí),設(shè)備將出現(xiàn)TCAM資源不足的情況。因?yàn)榇藭r(shí)設(shè)備的Slice資源是充足的,但在DEFAULT模式下IFP ACL TCAM的KEY一共7個(gè),在新增ERSPAN配置時(shí)無多余的KEY資源可用,所以IFP ACL TCAM出現(xiàn)KEY資源不足的情況。
一般在IPv4/IPv6雙棧的場(chǎng)景,如果出現(xiàn)KEY資源不足的情況,可調(diào)整TCAM模式為ACL-MAX模式,ACL-MAX模式下IFP ACL TCAM的KEY資源IPv4 和IPv6是單獨(dú)分配,可增大可用KEY資源。修改TCAM模式并重啟后設(shè)備已運(yùn)行在ACL-MAX模式下,此時(shí)在開啟IPv4的ERSPAN的業(yè)務(wù)后,未在出現(xiàn)TCAM不足的情況,此時(shí)查看設(shè)備的TCAM資源情況如下圖所示,PBM業(yè)務(wù)已正常使用TCAM資源。
.png)
.png)
總結(jié)
本文共三篇章七個(gè)小節(jié),從TCAM簡(jiǎn)介、TCAM運(yùn)維方法和TCAM應(yīng)用與實(shí)踐三個(gè)方面為讀者介紹了銳捷數(shù)據(jù)中心交換機(jī)ACL業(yè)務(wù)TCAM資源的評(píng)估方法。本文介紹理論適用于大部分?jǐn)?shù)據(jù)中心交換機(jī),不同型號(hào)設(shè)備存在一定差異,因篇幅原因不能面面俱到請(qǐng)各位讀者諒解。故在評(píng)估TCAM資源使用情況時(shí),作者強(qiáng)烈建議一定要將部署的業(yè)務(wù)配置到實(shí)際使用的數(shù)據(jù)中心交換機(jī)型號(hào)中進(jìn)行驗(yàn)證,以最終驗(yàn)證結(jié)果為準(zhǔn)。
