&nb間照sp; 針對不(bù)同應用場景在不(bù)同時(司看shí)間内對交換功能的需求不(bù)一緻的特點,FAST流水線熱校支持利用FPGA現場可編程特性,動态增加和卸載流水線模塊以滿足通吃不(bù)斷變化需求的特性。
一、硬件流水線的擴展
&n黑暗bsp; FAST基本流水線包含通(tōng)用分組解析(GPP文有)、通(tōng)用關鍵字提取(GKE)、通(t關美ōng)用匹配引擎(GME)、通(tōng南微)用轉發動作(GAC)和通(tōng)用輸出引擎(GOE)五個來外模塊。基于這五個模塊搭建的基本架構,FAS的路T流水線支持動态模塊的插入和删除,如(r畫日ú)下圖所示。
&n舞文bsp; 在GAC之前的流水線稱為(wèi)Ing藍都ress流水線,主要在輸入端口的上下文中對分組進行轉發決策處理。由于分水店組元數據到達GAC模塊後,可根據GME的要放匹配結果查表的到分組輸出的接口号(或軟件UA編号),因此在GAC之後分組在唱數輸出接口的上下文中處理,因此GAC模塊之後的流水線稱為(wèi)Egr妹路ess流水線。
&業做nbsp;FAST流水線的功能擴展主要通(知紙tōng)過增加以下幾類硬件模塊:
業議
(1)用戶定義的解析(U從師DP)模塊
&nb雜民sp; 在GPP模塊之後增加一個或多個UDP模塊,可實現對G上火PP不(bù)支持的其他(tā)協議進行解析,并根據解析結果生自修改元數據中的協議類型字段PST。一個UDP模塊校女在修改完PST後,将DMID設置為(wèi)還黃GKE,旁路掉後續的UDP,即每個分組最多支持一個U河銀DP模塊的協議分析。
(2)UKE模新錯塊
&下些nbsp; 在GKE模塊之後增加用戶定門林義的關鍵字提取模塊UKE,擴展支持GKE不(bù)支持的關鍵字提取能開姐力,UKE可以修改KEY字段。通(tōng)友工常如(rú)果一個UKE模塊完成KEY的提取和修飛器改後,直接将DMID設置為(wèi)GME,旁路掉後續的UKE生對(如(rú)果有的話),即每個分組最多支煙呢持一個UKE模塊的處理
(3)UDA模塊
&藍吃nbsp; &n書費bsp;UDA模塊主要實現用戶定義的action處理。林話UDA模塊插在GME和GAC之間可以擴充Ingress流水些匠線的處理功能,插入在GAC和GOE之間可以擴充Egress流水線的處理鐵麗功能。位于GAC之前和之後的UDA模塊有兩點不行廠(bù)同。一是UDA之前的隻能對分組的元數據進行操作,而GAC之上路後的UDA可以直接修改整個分組;二是GAC是樹之前的UDA是在分組輸入的上下文處理分組,而GAC之後的UD地道A是在分組輸出端口的上下文中處理分組。
海笑
&nbs頻是p;(4)UDO模塊
&樂玩nbsp; UDO模塊物理線到位置并不(bù)在FAST流水線之内,而是位于F又錢PGA OS中分組最終從FPGA引腳輸出之前。由于UDO的位置位樂離于分組輸出調度之後,因此UDO處理的分組要作在輸出時(shí)不(bù)存在任何阻塞,能夠件員保證分組離開(kāi)後到最終輸出到鍊路上有一個确定的延時遠商(shí)。因此UDO可以看作是FAST流水線在FPGA OS中的一問來個“飛地”。其主要作用是獲取精确的分組輸時(shí)間戳,可以支持IE農村EE 1588透明時(shí)鐘(zhōng)的服秒計算或者網絡測量中精确發送時(shí)間學習的獲取。
FAS報答T流水線擴展模塊的設計必須遵循标準的模塊接口定義,而且擴展插入的模塊對上下遊和關模塊都是透明的,即流水線中原有的上下遊模塊在都朋就應該感知不(bù)到新模塊的插入。
二、硬件流水線擴展的示例
通(tō東喝ng)過對FAST硬件流水線進行擴展,可以支亮美持在原有的交換平台中擴充支持新的協議以及新的分組處理美是機制。例如(rú)下圖分别介紹了通(tōng)過擴展UDP和UDA模塊支持IE家樹EE 1588,L3轉發控制以及安全網關功能的例子(zǐ)。
女海
在(a)中她村,由于GPP協議無法識别封裝在特定UDP端口号中傳輸的IEEE 區事1588的PTP協議,因此GPP處理後PST字段表示的分組類型通鐘為(wèi)ETH/IP/UDP,如(rú)果交換紅視平台需要支持IEEE 1588的PTP協議,需要插入一個UDP模塊,船唱對使用319和320端口的UDP分組進行解析路東。如(rú)果UDP目地端口号為(wèi)319,即UDP内部包含需要交藍信換平台計算透明時(shí)鐘(zhōng)務白的事件消息(sync,delay_req),這些消息可在PST中标記靜的,UDO會(huì)根據PST的标記跟新分組的透明時(sh笑靜í)鐘(zhōng)。如(rú)果目的端口号為(南吧wèi)320,則其中包含不(bù)需要透明時(shí)鐘(zhōng學也)計算的PTP通(tōng)用消息,UDP會(huì)進一步分析消息雨說類型,将分組轉發(follow_up消息或delay_resp通你消息),或送特定的軟件UA處理(BMC協議消鐵分息)。
在(熱自b)中,增加UDA1實現輸出組播複制功能,根據組播分組元數據中歌分Outport攜帶的組播組信息查表獲得(de)輸出接口集合,将分煙服組一次複制發送到每個輸出接口,而UDA1實現綁定到特定輸出接口的ACL過濾功長吃能,UDA3實現對輸出分組的修改,例如(rú)修改目的MAC等。因此通(t個呢ōng)過擴展Egress流水線中的UDA月商模塊,可以使FAST流水線支持三層的單播務師和組播轉發功能。顯然,每個新增的UDA模塊内部也包含相應的控制表格,這些表格光服會(huì)通(tōng)過相應的軟件配置。
拍嗎
&nb司化sp; 在(c)中,可在Ingress流水線中增加連接管理和複雜的流場信量統計功能,實現與特定輸入端口綁定的安全控制。利用連接管理功能,可以對年維護五元組标識的TCP/UDP/ICMP的連接狀态,實現狀開懂态防火牆,并為(wèi)其他(tā)基于流的middle的多box功能提供流的狀态信息。而利用複雜的流量統計功能可以檢測到特定輸出接口甚至微在是到特定服務器(qì)流量的非對稱性,用于早期的發現DDoS攻擊。而在現嗎Egress流水線中增加流量過濾功能,可對具些身有特定屬性分組進行過濾,例如(rú)在“勒索病毒”爆發期間,可以針對問裡該病毒的特點快速部署硬件過濾模塊,對傳播病毒的惡意分組進行過濾,弟姐而過了“勒索病毒”爆發期以後,該模塊可以删除以節行樹約資(zī)源用于其他(tā)功能的實現。
是短
上圖中三用還個例子(zǐ)隻是對通(tōng)過模塊擴展場自實現功能擴展的示意。後續會(huì)更加深入的介紹基于軟硬件協同農慢方式快速實現特定處理功能的方法。