0731-84728105
15116127200
FAST項目技術白(bái)皮書(shū)
發布時間: 2016-11-20
1.引言
    得房; 軟件定義網絡(SDN)采用控制與轉發分(fēn)離(lí)結構什報,由于允許網絡擁有者和運營商(shāng)對網絡行爲進行編程而取得巨就熱大(dà)的成功,在工(gōng)業界得到廣泛認可。各種開(kāi)源項目舞線,如ODL和ONOS等,在SDN技術發展中(zhōng來技)扮演重要角色,是推動SDN應用的最大(dà)動力。
    &nb書麗sp;可編程交換是當前SDN的研究熱點之一(yī)。如何實現高性能的o但動penflow流表查表,如何擴展SDN交換但暗平面功能,如何實現對高級語言編程(P4)的支持等在學術理不界都得到了廣泛研究。然而與目前存在的大(dà)量開(kāi)源SDN控土師制器不同,開(kāi)源SDN交換機難以報請滿足SDN科研與教學的需要。OpenVSwitch功上兒能全面,但全軟件的實現方式難以滿足高性能處理需求;NetFPGA實現了雪黑openflow 1.0交換,但近年來很難看到後續的麗用發展;國内南(nán)京疊锶的ONetSwit務黃ch在FPGA上實現了完善的SDN交換功能,但交換機采用FP土子GA内嵌的處理器,能力較弱,難以在處理器上進行數據路徑處理功科吃能的擴展。
   &nbs離門p; 2011年開(kāi)始,國防科技大(dà)學、北(b從窗ěi)京郵電(diàn)大(dà)學和東人喝南(nán)大(dà)學等單位相關的課題組基于可編程交換平台NetMagi業明c08進行了SDN實驗平台的開(kāi)發,形成務草了支持openflow1.0/1.3的SDN交換機跳業。并采用多核CPU+FPGA的架構(Netmagic Pro平台),實現信對了支持SDN數據平面功能擴展的Labelcast交換機以術河及軟件定義隧道交換機(SDTS)等成果。2016年,課題組基于上述成果形成件跳FAST(Fpga bAsed Sdn swiTch)開(kāi)源項目,跳車支持國内SDN交換技術的創新研究和相關的教學工(街錢gōng)作。
2. 科研與教學對開(kāi)源SDN交換機的需求 都個
      與在工多也(gōng)業界應用不同,面向科研與教學領域的開(k樂話āi)源項目的目标用戶主要是研究機構和大(dà)學中(zhōng)參與SDN技火愛術研究的老師和研究生(shēng),這些人員(yuán)在綠白網絡知(zhī)識儲備、編程水平、有意投入工(gōng)程實現的時間少歌等方面具有較大(dà)差異,因此對開(kāi)源SDN交換項目也有不同也低的需求,主要具有以下(xià)特點。
   (1)内部交換機内部的實現到文流程可見
   &影風nbsp; 研究人員(yuán)、老師和學生(shēn腦站g)可以看到交換機内部詳細的工(gōng)作流程冷友,包括硬件對報文的處理波形,交換機内部軟硬件交互的流程,以及會物交換機通過南(nán)向接口與控制器的通信流程。目前的市場采購的SDN交換機無中秒法看到内部工(gōng)作流程,對研究人員(yuán)來說是一(yī)個典就光型的“黑盒”,隻能通過各種配置命令改變交換機的處件兒理行爲,或在開(kāi)源的控制器一(yī)側通過抓算現包軟件觀測交換機的外(wài)部行爲,對SDN交換技術的研究支持不足。 電家
   (2)能夠在交換機中(zh空愛ōng)增加自己的創新工(gōng)作
    &nbs校北p;SDN的創新研究有可能需要增加一(yī)個定歌員制的模塊來修改硬件處理邏輯,如支持新的分(fēn)組格式,科工新的調度算法,也有可能是通過在硬件邏輯中(zhōng)(或者流表中(zhō頻你ng))設置一(yī)個“鈎子”,将指定要歌的流量定向到CPU,通過編寫軟件代碼實現對特定流量施加特定處理。目前劇自基于ASIC的商(shāng)用SDN交換機難以支持上述功能,新子火型可編程SDN芯片(如Barefoot支持P4的芯片)尚未成熟分電,而且也是無法在硬件處理層次的創新實驗。
   (3)需要更好的應喝科用和開(kāi)發支持
   &nbs服木p; 由于在教學科研領域的研究人員(yuán),特愛了别是研究生(shēng),水平層次不齊。特别電(diàn)子工(gōng這他)程專業的可能擅長硬件設計,計算機專業的可媽外能擅長軟件編程,以論文爲目标的研究人員(yuán)可能更加注重得車原理的驗證而不是工(gōng)作的穩定性,而部分(fēn)科研院所希望能夠讀些穩定可靠的工(gōng)作,成爲産品的原型。因此研究人員(yuán)在場希望能夠獲得更加專業,甚至是定制的服務。 關做
  &nbs這上p;(4)平台中(zhōng)立,不涉及具體森小(tǐ)的商(shāng)業利益
     科研教現票學領域的研究主要是面向關鍵技術的突破和驗證吃廠,以及SDN原理的學習。基本不涉及到各種麗吧商(shāng)業利益的紛争,因此平台應該具有中(zhōng)立性說車,不能依賴特定的平台和操作系統,也不能與其海有他特定的開(kāi)源項目綁定發展。
     因此,愛不100G/40G高速接口和幾十甚至是上百個的端口密度不是資嗎科研與教學平台的第一(yī)需求,内部處理流程可見,平台遠鐘處理功能可定制,良好的服務技術支持,以及不帶有商(shān媽暗g)業傾向性的平台設計才是科研教學領域的最重要需求。 熱場
3.FAST的技術路線
3.1 FAST硬件架構
FAST的FPGA設計主要分(fēn)爲平台相生朋關邏輯、FAST流水線模塊庫以及工(gōng)程配置文件庫三部分(fēn)船道,如圖1所示。平台相關邏輯主要是各類用于網絡實厭員驗的FPGA平台,如NetMagic08,NetM窗房agic Pro以及NetFPGA等爲了支持FAST交換機需要提供的基本功能習刀,包括物(wù)理網絡接口分(fēn)組的收發,與CP妹友U的通信,訪問闆卡外(wài)圍協處理器(如TCAM)和服睡存儲器的接口等。
FAST流水線模塊庫包含了實現SDN交換邏輯的主要功能模塊,這視著些模塊是在前期項目開(kāi)發中(zhōng)積累的,人中包括協議分(fēn)析,關鍵字提取、查表理花,動作(封頭/去(qù)頭,令牌桶限速等)、緩沖區管理和章弟計數器等模塊。用戶可根據這些模塊,針對自己的需求搭建自河微己的SDN轉發流水線。
工(gōng)程配置文件庫類似C語章我言的makefile文件,用戶可使用工(gōng)程配置文件指定FPGA選票訊用的平台,将平台相關邏輯以及FAST流水線多個相輛模塊組成一(yī)個工(gōng)程。由于在FAST雨信流水線模塊設計中(zhōng)依賴一(yī)些器件相關的宏(如基于Alte短能ra Quartus II工(gōng)具弟這生(shēng)成的FIFO、PLL等實例),因此目前工(gō員風ng)程配置庫隻支持基于Altera FPGA的可編程闆卡呢音。
FAST UM規範定義了平台相關邏輯與FAST交換邏裡秒輯的接口,詳細見《FAST UM接口規範》。基于FAST UM規範設計長弟的SDN轉發邏輯可以方便的在不同的,支持FSA遠門T 的FPGA平台上移植。例如SDN轉發師輛邏輯可以在相對簡單的NetMagic08平台上調試,完成到可後再移植到NetMagic Pro平台。 動的

圖1 FAST項目的硬件架構
     FAS技的T軟件由4部分(fēn)組成,包括平台相關通信庫,核心管理軟件,轉發面擴展軟做做件以及配置管理軟件。其中(zhōng)平台無關的核一學心管理軟件,轉發面擴展軟件以及配置管理軟件都是F裡樂AST用戶可以修改的,統稱爲UA(User 還村Application)。
    &nbs拍那p;平台相關通信庫實現CPU軟件與交換FPGA的通信,根吃月據FPGA平台的不同,會采用不同的通信方式,例如與Ne高又tMagic08平台采用以太網方式進行通信,對于NetMag區雪ic Pro平台、NetFPGA平台則采用PCIe總線通信的方式。但平台相關軟大場件與FPGA不同的通信方式對上層軟件(核心管理軟件、轉發面功能擴上謝展軟件等)是透明的。即FAST項目定義了平台相關通讀會信庫對上層接口的規範,詳見《FAST UA設計規範》。基于該規海照範開(kāi)發的上層軟件可不考慮下(xià)層的具體(tǐ)資從通信方式。

圖2 FAST項目的軟件架構
     核頻火心管理軟件主要是SDN交換機數據平面中(zhōng)由CPU軟件實現的基本功能資嗎,包括各種表管理軟件,硬件相關的驅動和管理軟件以及軟硬上金件協同處理中(zhōng)的軟件功能實現公算部分(fēn)。各部分(fēn)主要功能如讀南下(xià)。
   厭為  (1)表管理軟件:負責所有草相控制器配置表格的維護,控制器flowmod命令對交換機表操作的命令主要由核心木站管理軟件響應和實現。
   &nb會錢sp; (2)算法相關軟件:是對硬件平台的驅動。例如NetMag大雪ic Pro平台硬件采用TCAM實現帶掩水睡碼的查表,而NetMagic08平台采用S很些BV算法實現288位帶掩碼的查表。算法相關軟件需要根據表管理軟件要求,根據平台生林相關的算法實現特點,實現對硬件中(zhōng)流河新表的管理。
     可很(3)統計管理軟件:例如實現SDN交換機計數器的管腦朋理,将硬件實現的計數器(如流表項匹配分(fēn)組數目計數器、端口接收計數匠章器)和軟件實現的計數器(流表項存活時間)進行統一(yī)的管理明理。又(yòu)如數據平面實現的令牌桶參數、輸但醫出調度器配置的參數計算等。
配置管理軟件主要實現SDN交換機的外(wài)部配置管理接口廠公,包括SDN交換機需要的南(nán)向接口可微協議,如openflow協,以及本地的配置管理界面等。
4.基于FAST架構的用戶開(kāi)發
    懂車 FAST是面向教學科研的開(kāi道會)源項目,必須爲網絡技術研究和教學提供簡單的第三方開(kāi)發接口能海。根據不同科研單位的不同需求,這些開(k媽通āi)發接口分(fēn)爲多個層次。用戶可以選擇全定錢唱制功能開(kāi)發模式,即基于平台提供的FPGA開(k制木āi)發接口(UM接口)和軟件開(kāi)發接口(UA接口)開(kāi)發自己放海的功能,優點是可以全新打造自己的功能,效率高,但難度較大(dà嗎聽),周期長,對開(kāi)發人員(yuán)的要求較高。FAST社區不推答動薦用戶采用全定制功能開(kāi)發的模式,而推薦采不雜用用戶定義功能模塊開(kāi)發模式。
   &nb東線sp; 用戶可借鑒已有的FAST軟硬件架構和已有成熟的功能模塊,劇木隻增加與自己應用相關的模塊,優點是開(kāi)發時間短,對人員(y購生uán)要求較低,而且可以得到FAST社區最大(dà)程度的技術支持。又海用戶可選擇隻開(kāi)發自定義的硬件功能模塊時懂,或自定義的軟件功能模塊,或者同時開(kāi玩坐)發硬件和軟件模塊,實現特定網絡功能的協同處理,FA照用ST用戶定義模塊開(kāi)發示意如圖3所示。 吃光
4.1 硬件UM開(kāi)發
     市報;FAST社區已經開(kāi)發了可工(gōng)作的SDN轉發的流水線女明demo程序,如圖3所示。主要包含協議分(fēn)析(Parser訊外)、查表(match)以及動作執行(match)等階段。一離用戶可以在現有基礎上增加自己的模塊,如對新協議的pa窗視rser模塊(P4),新的動作執行模塊(H4)等,而不需修改其他部分快制(fēn)。FAST UM規範定義了5個接口,分(fēn)别是A(飛生從物(wù)理端口接收報文)、B(向物(wù)理接口發送報文)、C(将報文送北服軟件處理)、D(從軟件接收報文)和E(軟件對硬件的配置接口)。玩可
     用白從戶開(kāi)發的硬件模塊如果需要軟件管理配置,隻要将需坐算要管理配置的寄存器、計數器和控制表等預先映射到虛拟地址空間中(zhōng睡高),軟件UA按照虛拟空間的地址,通過平台提供的API可以直接水藍訪問到這些資(zī)源。虛拟地址空間的原理坐遠見《FAST虛拟地址空間設計和使用方法》。
4.2軟件UA開(kāi)發
     機區; 用戶可在CPU的用戶空間進行定制模塊的開(kāi)發。用戶程序通少技過平台提供的接口接收和發送數據包, 在每個數據包之前會攜帶32個字節的me用鐘tadata,Metadata的定義和使用詳見4.3節。
     上新軟件模塊的開(kāi)發主要遵循FAST UA規範謝道中(zhōng)定義的F(接收Matadata和分(fēn)組的人跳接口)、G(發送Matadata和分(fēn)組的接口)和機理H(向系統注冊用戶定義功能模塊的接口,獲月鐘取自己的MID号等),并将需要管理的硬件模塊的資(zī)源在虛拟地址空間中(在畫zhōng)定義。
      師多根據圖2中(zhōng)的軟件架構,用戶定義的模塊位于SDN放道交換機數據平面,因此一(yī)方面可實現對L2-L3功能的軟硬些算件協同處理,例如對新性網絡協議的解析,另一(yī)方面她資也可實現數據平面對L4-L7處理功能的擴展,如擴展有報師狀态防火(huǒ)牆功能,擴展對指定流的DP城可I功能等。

圖3 用戶定義功能模塊開(kāi)發原理示意話器圖
(a)用戶模塊的工(gōng)作原理(b)軟硬件模塊通信攜帶的meta車跳data格式
4.3軟硬件協同處理機制
   &nbs家女p; FAST通過兩種機制實現軟硬件處理的協同。一(y些照ī)是将軟硬件處理模塊統一(yī)編址,爲每個ac離答tion模塊分(fēn)配統一(yī)的MID(Module ID)。例市生如圖3(a)中(zhōng)三個硬件action模塊(H1、H2話樹和H3)和一(yī)個軟件功能模塊(S1爸能)都會分(fēn)配一(yī)個唯一(yī)的MID。老舊流表可以按照匹配結果将一(yī)個報文顯示的分(fēn)派到指定的軟件或者硬件員司功能模塊。二是軟硬件分(fēn)組通信時同時攜帶32字節的metadat理視a。Metadata的定義如圖3(b)所示。 購鐘
    &n購刀bsp;FAST規範顯式定義了Matadata的前16字節(Metada舊錯ta0),如表1所示。通過Matadata,FPGA UM可将報文接對土收的端口、長度、接收的精确時間和序列号,以及發出的硬件模塊,目的軟哥笑件模塊等信息送給軟件,平台相關軟件根據DM文到ID信息将其送給指定的用戶UA程序。用戶UA程序處理完分(f做又ēn)組後,又(yòu)可通過Metadata信息将其送給指定費內的硬件模塊,也可直接指定目的輸出接口(輸出調度器也通過DMID指定)。 妹紙
    一歌; FAST沒有對Matadata的後16字節(Met化做adata1)進行定義。當SMID和DMID都是用戶自己設計時,可以自行的問約定Metadata1的含義,平台相關硬件和軟件不對Metadata1進藍畫行任何檢查和修改。
4.4 FAST.0參考設計
   鐵就  目前基于圖1和圖2錯讀的硬件和軟件架構,以及圖3的軟硬件協同模型,國防科大(dà)課題組已經坐照開(kāi)發了支持openflow1.3的交換機原型FAST.0。FAST鐘是.0運行在NetMagic Pro平台,實現了下下與floodlight控制器的互聯互通,以及老我标準的二層轉發功能。
    &知工nbsp;在FPGA硬件方面,FAST.0支持以太網/IPv4分(fēn)組現亮的解析,L2-L4層關鍵字的提取,以及基于比特向量算法(BV)的2吧算88位帶掩碼的規則匹配功能;在CPU軟件方面,支持BV算法的管理,通用流請體表管理,标準的openflow 1.3的接口軟件等。FAST.0軟硬件代也森碼已經完全開(kāi)源,可作爲用戶基于FAST架構進行門短定制開(kāi)發的基礎。
5.基于FAST的創新研究示例
   &理冷nbsp; 目前FAST項目基于電樂NetMagic Pro等多個平台已經有支持openf風了low1.3的标準SDN交換機原型。基于這個原型,用戶可以進一(y醫物ī)步增加自己的許多功能。本節通過兩個例子說明基于FA懂師ST項目進行SDN交換機功能擴展研究的方法和流程。
   &nbs生去p; 在5.1的基于内容的轉發機制ICN-X實現中舞東(zhōng),用戶隻需進行相關用戶态軟件開(kāi)發,行就不需任何硬件編程;5.2實現的精準測量服務AMS(Accurat小相e Measurement Service)中(zhōng),需要分(哥會fēn)别設計軟件和硬件模塊,實現精确分(fēn)河舊組發送時刻控制以及時間戳标記。
5.1支持基于内容的轉發機制(ICN-X)
用戶可在FAST交換機上實現内容中(zhōng)心話紙的轉發機制ICN-X。這種機制在網絡中(zhōng)可以與IPv小弟4,IPv6轉發機制共存。在FAST交換機上實現ICN-姐話X轉發機制的方法如下(xià)。 &nb唱北sp;    
(1)将以太網type/length設置爲“X”,用于指代上層協議爲在要ICN-X;交換機可根據該域的值區别以太網幀封裝的上層協書生議分(fēn)組爲IPv4,IPv6,ARP、MPL員人S或是ICN-X。    我上  
(2)在用戶空間開(kāi)發ICN-X哥不協議轉發軟件ICN-X UA,ICN-X UA實現ICN-X的分(fēn拿花)組轉發控制,ICN-X機制的路由和其他管理分(朋新fēn)組可通過ICN-X UA重新定向成Packet-in分(水高fēn)組,發給控制器上相關的應用處理。  生農;    
(3)ICN-A UA啓動時向UA管理器(UA-M)注冊,頻家注冊信息包括:   &nbs請知p;  
ICN-X UA的模塊版本号/開(kāi)發者信息; &nb店山sp;   &nbs算房p;
ICN-X UA中(zhōng)需要控制器管理的流風務表(如由控制器APP計算的轉發表等); 店空     
(4)UA-M給ICN-X UA分(fēn)配唯一(yī)的模塊号MID=會西Y;      
(5)SDN控制器(應用)通過南(nán)向接口或其理錢他方式獲取ICN-X UA的模塊号Y,以及需要通過FlowMod消息管理開資的流表信息;      
(6)控制器(應用)根據Packet-in消息計算ICN-UA中(zhōn外車g)轉發規則,并通過flowMod消息配理訊置這些規則;     &nb草站sp;
(7)控制器(應用)産生(shēng)并配置UM流表中(zhōng)的“鈎子規有拍則”,如: Rule =“Type/length=X”,“other fi看影eld= don’t care” Atcion = G妹亮oto Module Y 經過上述步驟,用戶定制的明都FAST交換機就可以在正常進行IP分(fēn可和)組交換的同時,支持新的ICN-X交換機制了。ICN-X農雨 UA完成分(fēn)組轉發和二層封裝後,直接将分(fēn鐵湖)組發送回FAST UM,同時在metadata師玩中(zhōng)設置輸出端口号以及輸出調度器的MID。該林銀分(fēn)組會通過平台相關的軟件和硬件送到UM的物站輸出調度模塊,不經修改的從相應的物(wù)理接口發出大慢。
5.2支持精準測量服務(AMS)
    &nb公的sp;主動測量是獲取網絡狀态的有效手段。例如利用香港理工(gōng)女紙大(dà)學提出的oneProbe測試方法,通過在用照還戶網中(zhōng)向分(fēn)布在全球的web服務器發制業送背靠背的TCP分(fēn)組對(packet pa微銀ir),通過計算服務器對分(fēn)組對得響應情況,精确的推斷出用戶舊呢主機到分(fēn)布在全球的互聯網服務器之間的帶寬和延時情況,從而進一火和(yī)步推斷廣域網的鏈路特性。
   &你章nbsp; 這種測試的精确性取決于能否控制分(fēn)組對真正的背靠議跳背發送(中(zhōng)間沒有插入延時),能否精确的獲取分草來(fēn)組對發出以及返回的時間戳。由于基于标準服務懂和器的實現存在測量進程收到内核調度,中(zhōn間離g)斷處理以及系統時鍾不精确等特點,很難保證測量的精确資舞性,因此測量必須借助專用的,昂貴的可編程網卡實現,而且發信空送進程與網卡之間的時間和狀态同步控制也比較複雜(zá)。
    人哥; 通過對部署在用戶網絡中(zhōng)的FAST交換機進行擴充,可用生以在交換機上方便的提供對精确的主動測量的支持。設發起測量的主機H連請喝接FAST交換機端口A,連接被測網絡的是FAST交換機的接口B議動,基本測量的流程爲:測量主機H通過FAST接口A發送兩個背靠背熱舊的TCP分(fēn)組P1和P2,這兩個分(fēn)組經過村作交換機轉發後從端口B發向被測網絡;被測網絡通過接口B返回對這兩高道個分(fēn)組的響應P1’和P2’,交換機将這兩個分(fēn)組通聽了過接口A返回測試主機H。
   &音我nbsp; 通過對FAST交換機功能擴展,提供的綠外精準測量服務包括:(1)交換機嚴格控制P1和P2從接口B背靠背議日發出,中(zhōng)間不插入任何延時;(街相2)交換機能夠精确記錄B口發出P1和P2,以新用及接收P1’和P2’的時間戳;(3)FAST交換機信理将時間戳信息通告給測試主機H。
    &nbs討在p;要在FAST交換機上實現用戶定義的精準測量海麗服務,需要在FAST UM中(zhōng)開(kāi人來)發專用的分(fēn)組輸出調度模塊Hams,以及相關控制軟件AMS U得件A。主機H使用FAST交換機擴展的AMS服務鄉地流程如下(xià)。
   &n錢筆bsp; (1)控制器上AMS AP他麗P配置交換機的流表規則,将主機H與被測服務器S之間的測量報文(用H和些樹S的地址标識,這些信息可通過離(lí)線方式或在線的方式通知(zhī)控制器上文個的AMS APP),對送軟件中(zhōng)的(預先完成向UA-M注冊,你秒并獲取到MID)AMS UA模塊處理;   厭作;   
(2)AMS UA将P1和P2兩個報文标記爲測量報文對,通過Matada師草ta1中(zhōng)自定義的字段發給FAST UM中(z得習hōng)的Hams模塊,Hams模塊對輸出調度器具有最高優先級,在收到兩不司個報文後,通過輸出調度模塊背靠背發出,同時将發出時間記錄在H人美ams模塊中(zhōng),在虛拟地址空間預先注冊的寄存器中(zhōng),A問秒MS UA通過輪訓讀寫該寄存器,獲得報文發出的精确時間戳。 &nbs動相p;    
(3)P1’和P2’從B端口返回後,根據流表中(zhōng)的規則,會定向到A紙離MS UA處理。AMS UA根據報文matadata0可獲取分(fēn)組兒關到達的精确時間戳。   &嗎冷nbsp;  
(4)控制器上AMS APP從南(nán)向接口獲取信民主機H測量必須的分(fēn)組對精确發出時間物章和響應的返回時間,并提交給主機H,完成AMS服務。鐵吃
6.總結
    來日  綜上所述,FAST技術架構具有以下(xià)特點。一窗拍(yī)是基于FPGA加多核CPU的異構處理平台設慢司計,用戶可以根據自己的特點通過軟件編程或硬件編程實現自己定制的匠民模塊,進行交換功能的擴充;二是FAST平台采用開(kāi)源結構,内部志船分(fēn)組的處理流程完全可見;三是軟硬件設計呢醫基于平台無關接口,不依賴特定的平台實現,可移植性好;四是具有完善的軟離機硬件參考設計,研究人員(yuán)可以根據自己研究兒自的需求定制自己的交換機。
參考文獻
(1)《FAST UM接口規範》
(2)《FAST UA設計規範》
(3)《FAST虛拟地址空間設計和使用下離方法》
(4)《FAST.0 硬件設計說明》山門
(5)《FAST.0 軟件設計說明》 行下
(以上文檔整在修訂,即将陸續發布。。。) 著坐