《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 全面深入交換機(jī)FFP技術(shù)探究
全面深入交換機(jī)FFP技術(shù)探究
互聯(lián)網(wǎng)
摘要: 交換機(jī)FFP(FastFilterProcessor)技術(shù)提供了先進(jìn)的多層交換,、報(bào)文分類及線速處理功能,,能夠基于協(xié)議或字節(jié)對(duì)報(bào)文進(jìn)行線速解析、分類,,報(bào)文解析深度達(dá)80或128字節(jié),,廣泛用于各類基于流的報(bào)文分類,、過濾及鏡像等應(yīng)用,如:QOS(QualityofService),、ACL(AccessControlLists),、DSCP(DifferentiatedServicesCodepoint)等,。
關(guān)鍵詞: 交換機(jī) FFP技術(shù) IP 字段
Abstract:
Key words :
ipt type="text/javascript">showAd(2009080513234060,236,236);

交換機(jī)FFP(Fast Filter Processor)技術(shù)提供了先進(jìn)的多層交換、報(bào)文分類及線速處理功能,,能夠基于協(xié)議或字節(jié)對(duì)報(bào)文進(jìn)行線速解析,、分類,報(bào)文解析深度達(dá)80或128字節(jié),,廣泛用于各類基于流的報(bào)文分類,、過濾及鏡像等應(yīng)用,如:QOS(Quality of Service),、ACL(AccessControl Lists),、DSCP(DifferentiatedServices Codepoint)等。

原理介紹

一般來說,,F(xiàn)FP硬件引擎都是由圖1所表示部件組成:


其主要作用是在數(shù)據(jù)流通過網(wǎng)絡(luò)設(shè)備時(shí)進(jìn)行分類過濾,,并對(duì)從指定接口輸入或者輸出的數(shù)據(jù)流進(jìn)行檢查,根據(jù)匹配條件(Conditions)允許其通過(Permit),、丟棄(Deny)或者采取其他動(dòng)作策略,,由此來達(dá)到限制網(wǎng)絡(luò)中某些通信數(shù)據(jù)類型、限制網(wǎng)絡(luò)的使用者或使用設(shè)備的目的,。我們通過FFP的這種特性實(shí)現(xiàn)各種ACL技術(shù),,從而滿足各種不同應(yīng)用的需要。

下面,,分別對(duì)各個(gè)部件的作用及工作原理進(jìn)行介紹:

字段解析器

用于從各種來源的數(shù)據(jù)流中獲取各種指定字段,,即匹配域,例如:報(bào)文的源MAC地址,、目的MAC地址、源IP等字段,,在進(jìn)行報(bào)文解析之前,,需要預(yù)先設(shè)置字段,用以對(duì)報(bào)文進(jìn)行識(shí)別,、分類,,之后開始對(duì)報(bào)文進(jìn)行解析,將解析出來的匹配域字段封裝成KEY送到查找匹配引擎中,。

其中,,各種來源的數(shù)據(jù)流包括報(bào)文流、各種硬件檢測(cè)信息(如:報(bào)文的類型,、輸入的物理端口,、是否在地址表中HIT等信息)。

查找匹配引擎

查找匹配引擎由一定數(shù)量的TCAM表項(xiàng)組成,,我們將TCAM表項(xiàng)稱為匹配規(guī)則,,在進(jìn)行匹配之前,,需要預(yù)先申明匹配條件,設(shè)置好匹配規(guī)則中的內(nèi)容,,匹配規(guī)則針對(duì)數(shù)據(jù)流的源地址,、目標(biāo)地址、上層協(xié)議等字段,。匹配規(guī)則一般有兩部分組成:匹配內(nèi)容和掩碼,,匹配過程就是將輸入的KEY和掩碼進(jìn)行相與,再將相與的結(jié)果和匹配內(nèi)容進(jìn)行比較,,如果比較結(jié)果相同,,則匹配成功,例如:配置一個(gè)ACE,,如下:

permit 192.168.1.0 0.0.0.255,,

則這條表項(xiàng)的匹配內(nèi)容為192.168.1.0,掩碼為255.255.255.0,。這時(shí)候,,將輸入報(bào)文的源IP(通過字段解析器解析)與掩碼進(jìn)行相與,如果結(jié)果等于192.168.1.0,,則報(bào)文可以通過,,即192.168.1.0/24網(wǎng)段的報(bào)文可以通過。

設(shè)置好匹配規(guī)則之后,,將接收到的KEY與匹配規(guī)則一一進(jìn)行比較,,檢查報(bào)文是否與某一條匹配規(guī)則相匹配,返回該匹配規(guī)則(HIT表項(xiàng))所在的偏移,。

動(dòng)作策略引擎

動(dòng)作策略引擎由一定數(shù)量的策略表項(xiàng)組成,,策略表項(xiàng)和匹配規(guī)則一一對(duì)應(yīng),當(dāng)查找匹配引擎中的某條匹配規(guī)則匹配上后,,返回該匹配規(guī)則的偏移,,根據(jù)這個(gè)偏移值,就可以找到匹配規(guī)則對(duì)應(yīng)的策略表項(xiàng),,執(zhí)行策略表項(xiàng)中預(yù)先設(shè)置好的動(dòng)作,。同樣的,我們需要先申明滿足某個(gè)規(guī)則匹配后的對(duì)應(yīng)行為,。

動(dòng)作策略引擎支持的動(dòng)作包括:轉(zhuǎn)發(fā),、丟棄、重定向,、鏡像,、送CPU、改變報(bào)文優(yōu)先級(jí)等等,,不同產(chǎn)品支持的動(dòng)作存在較大差異,。

度量,、統(tǒng)計(jì)引擎

動(dòng)作策略表項(xiàng)被HIT上后,會(huì)觸發(fā)度量,、統(tǒng)計(jì)引擎工作,,動(dòng)作策略表項(xiàng)中指定要使用的meter表項(xiàng)、counter表項(xiàng)的索引,,meter表項(xiàng),、counter表項(xiàng)的各種屬性也是在報(bào)文解析過濾前預(yù)先設(shè)置完成。

一般情況下,,將查找匹配引擎,、動(dòng)作策略引擎、度量統(tǒng)計(jì)引擎合在一起稱為一個(gè)slice,,有些產(chǎn)品支持多個(gè)slice,,有些產(chǎn)品則全局共享一個(gè)slice。

一般情況下,,查找匹配引擎,、動(dòng)作策略引擎和度量統(tǒng)計(jì)引擎中的表項(xiàng)是一一對(duì)應(yīng),將一條匹配規(guī)則,、策略表項(xiàng)及其對(duì)應(yīng)的統(tǒng)計(jì)度量表項(xiàng)合在一起稱為一條表項(xiàng),。

動(dòng)作仲裁引擎

動(dòng)作仲裁引擎收集所有匹配表項(xiàng)產(chǎn)生的動(dòng)作策略信息,包括動(dòng)作策略及meter結(jié)果,,對(duì)于不沖突的動(dòng)作全部被執(zhí)行,,對(duì)于沖突動(dòng)作,則依照優(yōu)先級(jí)進(jìn)行仲裁,,高優(yōu)先級(jí)動(dòng)作被執(zhí)行,。

應(yīng)用介紹

目前,各種交換產(chǎn)品中,,有多個(gè)應(yīng)用的實(shí)現(xiàn)依賴于FFP引擎特性,,不同產(chǎn)品上,由于FFP引擎原理不同,,導(dǎo)致各應(yīng)用在實(shí)現(xiàn)過程中對(duì)表項(xiàng)占用情況、引擎分布情況存在較大差異,。

各產(chǎn)品支持的應(yīng)用

各種交換機(jī)產(chǎn)品支持的依賴于FFP引擎的應(yīng)用:遠(yuǎn)程鏡像,、CPU保護(hù)模塊、防攻擊模塊(nfpp),、安全通道,、防網(wǎng)關(guān)ARP欺騙、arp check,、IP防掃描,、全局IP + MAC 綁定,、Dhcp_option82、Dot1x中的QOS應(yīng)用,、Dot1x中下發(fā)ACL應(yīng)用,、Dot1x認(rèn)證用戶綁定應(yīng)用、dhcp snooping綁定應(yīng)用,、GSN全局安全應(yīng)用,、QOS應(yīng)用模塊、VLAN ACL應(yīng)用,、出口方向安全ACL應(yīng)用,、入口方向安全ACL應(yīng)用、修改外部tag應(yīng)用,、QINQ,、策略路由、IPV6_ROUTE,、網(wǎng)絡(luò)域名轉(zhuǎn)換應(yīng)用,、數(shù)據(jù)流鏡像應(yīng)用、重定向應(yīng)用等,。

表項(xiàng)及模板分配過程

除了目前廣泛使用的安全ACL外,,F(xiàn)FP相關(guān)的其他各種應(yīng)用也都是依賴于ACL技術(shù)實(shí)現(xiàn),ACL全稱為訪問控制列表(Access ControlList),,也稱為訪問列表(Access List),,俗稱為防火墻,ACL通過定義一些規(guī)則對(duì)網(wǎng)絡(luò)設(shè)備接口上的數(shù)據(jù)報(bào)文進(jìn)行控制,,ACL 由一系列的表項(xiàng)組成,,稱之為訪問控制列表表項(xiàng)(Access Control Entry:ACE),每個(gè)接入控制列表表項(xiàng)都申明了滿足該表項(xiàng)的匹配條件及行為(動(dòng)作策略),。

有些應(yīng)用可以顯式關(guān)聯(lián)各種類型的ACL(IP標(biāo)準(zhǔn)ACL,、IP擴(kuò)展ACL、專家擴(kuò)展ACL等),,如:安全ACL,、安全通道、QOS等,,這時(shí)候可以修改各ACL中的ACE,,過濾各種指定的流;有些應(yīng)用則由軟件自動(dòng)創(chuàng)建ACL,這種應(yīng)用下無法直接操作ACL中ACE,,由軟件自動(dòng)進(jìn)行添加刪除操作,。

1. 只要是符合某條ACE,就按照該ACE定義的動(dòng)作策略處理報(bào)文(Permit、Deny,、Copy_To_Cpu等),,ACL 的ACE根據(jù)以太網(wǎng)報(bào)文的某些字段來標(biāo)識(shí)以太網(wǎng)報(bào)文,這些字段包括:

二層字段(Layer 2 Fields):

48 位的源MAC 地址(必須申明所有48 位)

48 位的目的MAC 地址(必須申明所有48 位)

16 位的二層類型字段

  三層字段(Layer 3 Fields):
  源IP 地址字段
  目的IP 地址字段
  協(xié)議類型字段
  四層字段(Layer 4 Fields):
  可以申明一個(gè)TCP 的源端口,、目的端口或者都申明
  可以申明一個(gè)UDP 的源端口,、目的端口或者都申明
  2. 過濾域,指的就是在生成一條ACE 時(shí),,根據(jù)報(bào)文中的哪些字段用以對(duì)報(bào)文進(jìn)行識(shí)別,、分類;
  3. 過濾域模板,就是這些字段組合的定義,,對(duì)應(yīng)于字段解析器中預(yù)先設(shè)置到的匹配域,,比如,在生成某一條ACE時(shí)希望根據(jù)報(bào)文的目的IP 字段對(duì)報(bào)文進(jìn)行識(shí)別,、分類,,而在生成另一條ACE 時(shí),希望根據(jù)的是報(bào)文的源IP 地址字段和UDP 的源端口字段,,這樣,,這兩條ACE 就使用了不同的過濾域模板。
  4. 規(guī)則(Rules),,指的是ACE 過濾域模板對(duì)應(yīng)的值,,對(duì)應(yīng)于查找匹配引擎中預(yù)先申明的匹配規(guī)則。
  5. 行為(Action),,指的是ACE中指定的動(dòng)作,,對(duì)應(yīng)于動(dòng)作策略引擎中預(yù)先申明的動(dòng)作策略。
  6. 比如有一條ACE 內(nèi)容如下:
  permit tcp host 192.168.12.2 any eq telnet
  在這條ACE 中,,匹配域?yàn)橐韵伦侄蔚募希涸碔P地址字段,、IP 協(xié)議字段、目的TCP 端口字段;
  匹配規(guī)則為:源IP 地址=Host 192.168.12.2;IP 協(xié)議=TCP;TCP 目的端口= Telnet;
  動(dòng)作策略為:允許通過(permit),,即do_not_drop,。
  在實(shí)現(xiàn)上,為每個(gè)應(yīng)用創(chuàng)建一個(gè)或者多個(gè)ACL并關(guān)聯(lián),,然后根據(jù)各種應(yīng)用的優(yōu)先級(jí),,將各應(yīng)用關(guān)聯(lián)的ACL按照硬件表項(xiàng)的優(yōu)先級(jí)關(guān)系設(shè)置硬件,從而達(dá)到高優(yōu)先級(jí)表項(xiàng)優(yōu)先生效的目的,。
  在不同產(chǎn)品上,,支持的過濾域模板數(shù)量存在較大差異,實(shí)現(xiàn)原理及含義也不近一樣,。
  默認(rèn)行為
  在目前已經(jīng)實(shí)現(xiàn)的各種FFP相關(guān)應(yīng)用中,有些應(yīng)用存在默認(rèn)的行為,隱含“拒絕所有數(shù)據(jù)流”規(guī)則表項(xiàng),,目的是為了將不匹配的非法報(bào)文全部丟棄,,對(duì)于這些存在默認(rèn)行為的應(yīng)用,存在默認(rèn)添加的表項(xiàng),,占用了一定數(shù)量的硬件表項(xiàng),。
  同時(shí),在起機(jī)后空配置的情況下,,會(huì)有一些CPP及信任模式的默認(rèn)表項(xiàng),,這些隱含的表項(xiàng)也占用了一定數(shù)量的硬件表項(xiàng),但是在統(tǒng)計(jì)硬件容量的過程中,,又容易被忽略,。
  優(yōu)先級(jí)沖突處理
  應(yīng)用優(yōu)先級(jí)是指多種應(yīng)用同時(shí)存在時(shí),根據(jù)應(yīng)用的優(yōu)先級(jí)關(guān)系,,將高優(yōu)先級(jí)應(yīng)用的ACE裝在高優(yōu)先級(jí)的硬件表項(xiàng)上,,以保證高優(yōu)先級(jí)的應(yīng)用先生效,只有高優(yōu)先級(jí)的應(yīng)用沒有表項(xiàng)匹配時(shí),,低優(yōu)先級(jí)應(yīng)用的表項(xiàng)才能生效,。
  某些應(yīng)用由于隱含“拒絕所有數(shù)據(jù)流”規(guī)則,會(huì)存在一條deny any的表項(xiàng),,這導(dǎo)致在同一個(gè)端口下多種應(yīng)用同時(shí)打開時(shí)產(chǎn)生優(yōu)先級(jí)沖突,,低優(yōu)先級(jí)的應(yīng)用表項(xiàng)完全不生效,例如:當(dāng)一個(gè)端口同時(shí)打開DOT1X IP授權(quán)綁定,、DHCP SNP綁定,,這時(shí)候由于DOT1X IP授權(quán)綁定默認(rèn)會(huì)添加一個(gè)denyip any的表項(xiàng),導(dǎo)致而DHCP SNP綁定的所有表項(xiàng)不生效,,因此,,我們判斷一個(gè)端口的某個(gè)應(yīng)用配置是否生效是,需要考慮兩個(gè)方面:
  1. 端口下是否存在高優(yōu)先級(jí)應(yīng)用被匹配,,或者存在影響這個(gè)端口的高優(yōu)先級(jí)全局應(yīng)用被匹配;
  2. 端口下是否存在隱含“拒絕所有數(shù)據(jù)流”規(guī)則的高優(yōu)先級(jí)應(yīng)用,。
  3. 對(duì)于不同端口下的多種應(yīng)用,則不存在優(yōu)先級(jí)沖突,。在交換機(jī)上嵌入各種功能強(qiáng)大FFP引擎后,,使得交換機(jī)能夠提供強(qiáng)大的數(shù)據(jù)流過濾功能,能很方便根據(jù)網(wǎng)絡(luò)具體情況進(jìn)行安全部署,,對(duì)數(shù)據(jù)流進(jìn)行控制,,提高交換機(jī)在安全接入、匯聚等各方面的性能,,在發(fā)展迅速的網(wǎng)絡(luò)市場(chǎng)中將得到廣泛應(yīng)用,。

 
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。