多低 針對不同應用場景在不同時間内對交換拿要功能的需求不一(yī)緻的特點,FAST流水線支持利用FPGA現場可編程特性妹坐,動态增加和卸載流水線模塊以滿足不斷變化需求的特性。
相們
一(yī)、硬件流水線的擴展
&nb體哥sp; FAST基本流水線包含通用分(fēn)從西組解析(GPP)、通用關鍵字提取(GKE)、通用匹是月配引擎(GME)、通用轉發動作(GAC)和通用輸出跳草引擎(GOE)五個模塊。基于這五個模塊搭建的基本架構,FAS唱煙T流水線支持動态模塊的插入和删除,如下(xià)圖日裡所示。
內我 在GAC之前的照花流水線稱爲Ingress流水線,主要在輸入端口的上下(村務xià)文中(zhōng)對分(fēn)組進行轉發決策處理。由于分(fēn裡道)組元數據到達GAC模塊後,可根據GME的理務匹配結果查表的到分(fēn)組輸出的接口号(或軟件UA編号),因此在GAC之後術街分(fēn)組在輸出接口的上下(xià)文中(國中zhōng)處理,因此GAC模塊之後的流水線稱爲Egr光制ess流水線。
&nb嗎場sp;FAST流水線的功能擴展主要通過增加以下(國文xià)幾類硬件模塊:
(1)用戶定義的解析(UDP)模塊爸上
在GP子問P模塊之後增加一(yī)個或多個UDP模塊,可實現對GPP不支持的其公慢他協議進行解析,并根據解析結果修改元數據中(zhōn著男g)的協議類型字段PST。一(yī)個UDP模塊在修改完PS商下T後,将DMID設置爲GKE,旁路掉後續的UDP,即每算北個分(fēn)組最多支持一(yī)個UDP模塊的協議分(fēn)析。
可現
(公畫2)UKE模塊
男內 在GKE模頻花塊之後增加用戶定義的關鍵字提取模塊UKE,擴展支持GKE不快北支持的關鍵字提取能力,UKE可以修改KEY字段。通常如果一(yī)個UKE模雜謝塊完成KEY的提取和修改後,直接将DMID設置爲GM草月E,旁路掉後續的UKE(如果有的話(huà)),即每個分(fēn)組最多支持熱習一(yī)個UKE模塊的處理
(3)U土妹DA模塊
&n時要bsp; UDA模塊主要實現用戶定義的ac西城tion處理。UDA模塊插在GME和GAC之間可以擴充Ingre少學ss流水線的處理功能,插入在GAC和GOE之間可以擴充Egress流水線空下的處理功能。位于GAC之前和之後的UDA模塊有兩點不同。一(yī)是UD光文A之前的隻能對分(fēn)組的元數據進行操作,而GAC之後的U雨藍DA可以直接修改整個分(fēn)組;二是GAC之前的UDA是在得嗎分(fēn)組輸入的上下(xià)文處理分(fēn)組,而業相GAC之後的UDA是在分(fēn)組輸出自河端口的上下(xià)文中(zhōng)處理分(fēn)組。
服了
(4)UDO模器技塊
&n用中bsp; UDO模塊物(wù)理位置并不在FAST流水線之内南嗎,而是位于FPGA OS中(zhōng)分(fēn)組最終從FPGA引腳輸出之老和前。由于UDO的位置位于分(fēn)組輸出調度之後離員,因此UDO處理的分(fēn)組在輸出時不存說見在任何阻塞,能夠保證分(fēn)組離(lí)開(kāi)後到最終輸出到鏈議音路上有一(yī)個确定的延時。因此UDO可以看作是FAST流水線在F商吧PGA OS中(zhōng)的一(yī)個“飛地”。其主要作用是獲下唱取精确的分(fēn)組輸時間戳,可以支持IEEE 1588透明時線相鍾的計算或者網絡測量中(zhōng)精确發送時間的獲取。
&nb冷視sp;FAST流水線擴展模塊的設計必須遵循标個醫準的模塊接口定義,而且擴展插入的模塊對上下(xià)遊模也輛塊都是透明的,即流水線中(zhōng)原有的上下(友志xià)遊模塊在都應該感知(zhī)不到新模塊的插入。
二、硬件流水線擴展的示例
弟劇通過對FAST硬件流水線進行擴展,可以支持在原有的交換平台中(zhōng)擴電去充支持新的協議以及新的分(fēn)組處理報農機制。例如下(xià)圖分(fēn)别介紹了通過擴展好紙UDP和UDA模塊支持IEEE 1588,L3轉發控制以及安全網關靜道功能的例子。
&外數nbsp; 在(a)中(zhō作煙ng),由于GPP協議無法識别封裝在特定UDP端口号中(zhōng)傳輸的I票他EEE 1588的PTP協議,因此GPP地妹處理後PST字段表示的分(fēn)組類型爲ETH/多自IP/UDP,如果交換平台需要支持IEEE 1588的PTP協議,能志需要插入一(yī)個UDP模塊,對使用319和320端口的UDP分(fēn)視說組進行解析。如果UDP目地端口号爲319,即UDP内部包含需要交換平是歌台計算透明時鍾的事件消息(sync,delay_req),這些消息可在PST來音中(zhōng)标記,UDO會根據PST少和的标記跟新分(fēn)組的透明時鍾。如果目的端口号爲32高文0,則其中(zhōng)包含不需要透明時鍾計算的PTP通用一對消息,UDP會進一(yī)步分(fēn)析消息類型,将分(fēn)組答吃轉發(follow_up消息或delay_resp消息),或送唱謝特定的軟件UA處理(BMC協議消息)。
在(b慢男)中(zhōng),增加UDA1實現輸出組播複制功能,根據組播分(f開說ēn)組元數據中(zhōng)Outpor裡姐t攜帶的組播組信息查表獲得輸出接口集合,将分(fēn)組一(yī)嗎購次複制發送到每個輸出接口,而UDA1實現綁定到特定輸出接窗綠口的ACL過濾功能,UDA3實現對輸出分(日中fēn)組的修改,例如修改目的MAC等。因此通過擴展Egress流水線中(z這理hōng)的UDA模塊,可以使FAST流水線支持三層的單播和組月外播轉發功能。顯然,每個新增的UDA模塊内部也包含相應的控制表格,這些表會新格會通過相應的軟件配置。
&nb有時sp;在(c)中(zhōng),可在Ingress流水線醫音中(zhōng)增加連接管理和複雜(zá)的流量統計功能,問朋實現與特定輸入端口綁定的安全控制。利用連接管理功能,可以維護五元組标識的T拿會CP/UDP/ICMP的連接狀态,實現狀态防火(hu雪歌ǒ)牆,并爲其他基于流的middlebox花黃功能提供流的狀态信息。而利用複雜(zá)的流量統計功能可以檢測到特定大訊輸出接口甚至是到特定服務器流量的非對稱性,用于早期的發現DDoS攻擊。而妹路在Egress流水線中(zhōng)增加議中流量過濾功能,可對具有特定屬性分(fēn)組進行過拍下濾,例如在“勒索病毒”爆發期間,可以針對該病毒的特點快速部署硬件過濾模塊,對船一傳播病毒的惡意分(fēn)組進行過濾,而過子綠了“勒索病毒”爆發期以後,該模塊可以删除以節約資(z醫靜ī)源用于其他功能的實現。
體開 上圖中(zhōng)三個例子隻是對通過模塊擴展實慢鄉現功能擴展的示意。後續會更加深入的介紹基于軟硬件協同方式快速實現特定如哥處理功能的方法。