OpenBox網絡全功能(néng)可編程平台:工(gōng)欲善其事(shì),必先利其器!
發布時(shí)間:2021-03-09
阿基米德說:“給我一個杠杆我能(néng)翹起整個地球!”
我覺得:“給我一台OpenBox設備我能(néng)改變整個網絡!”
牛皮吹大(dà)了(le),肯定會(huì)破。但(dàn)牛皮吹多了(le),肯定會(huì)信。不管是自(zì)己還是别人!
FAST是一個與平台無關的開(kāi)源架構,根據FAST原理(lǐ)和(hé)規範實現(xiàn)的CPU + FPGA 異構網絡設備形态都屬于FAST平台。點擊此處了(le)解FAST——開(kāi)源、開(kāi)放(fàng)、高(gāo)速、高(gāo)效。
OpenBox是湖南新實全力打造的一款面向計(jì)算(suàn)機網絡實驗科研與教學平台設備的品牌型号,是基于FAST架構實現(xiàn)的一種支持軟硬件全功能(néng)編程的網絡實驗開(kāi)發平台。物如其名,其設備外(wài)觀如白(bái)色,盒狀;小(xiǎo)巧,精緻;氣質樸素,純潔。其系統結構爲典型的多核CPU+FPGA異構形式,輔以一個控制平台以太網接口和(hé)4個數據平台以太網接口。系統搭建遵循FAST架構規範,在多核CPU軟件側運行普通Linux系統、通用(yòng)SOCKET應用(yòng)、FAST軟件開(kāi)發環境和(hé)FAST應用(yòng)。在FPGA硬件側運行平台相關FPGA OS邏輯和(hé)用(yòng)戶模塊邏輯。軟件使用(yòng)C語言編程,硬件使用(yòng)Verilog語言編程。OpenBox也(yě)本着開(kāi)源、開(kāi)放(fàng)、高(gāo)速和(hé)高(gāo)效的原則爲國内外(wài)近百家高(gāo)校和(hé)科研院所提供平台定制、功能(néng)定制、協議(yì)定制、案例定制和(hé)全方位的使用(yòng)培訓、開(kāi)發服務等功能(néng)。
軟件也(yě)編程,硬件也(yě)編程,軟硬都可以編程。如果您不想編程,這(zhè)平台可能(néng)不适合您折騰。建議(yì)您換個頻道(dào)試試?我就想打造一個完全服從(cóng)自(zì)己的網絡世界,這(zhè)才是真正的定義網絡。
一台OpenBox設備就是一個完整的支持軟硬件全功能(néng)編程的網絡實驗平台,平台提供了(le)軟硬件二開(kāi)發環境和(hé)大(dà)量應用(yòng)開(kāi)發案例,用(yòng)戶可以在上(shàng)面進行軟硬件任何位置的編程開(kāi)發。
一台OpenBox設備就能(néng)改變整個網絡?這(zhè)個牛皮顯然是吹大(dà)了(le),但(dàn)還不緻于會(huì)破。怎麽做?我們絕對(duì)不會(huì)。下(xià)面說點我們平台會(huì)的。
1,編程語言
OpenBox設備是一台小(xiǎo)型嵌入式主機,擁有完整的操作(zuò)系統和(hé)相關外(wài)設。其操作(zuò)系統已經升級到(dào)ubuntu版本,開(kāi)源庫中支持的開(kāi)發語言基本上(shàng)都可以在該平台使用(yòng)。如C、C++、shell、perl、Python等等。
2,嵌入式開(kāi)發
我本是個嵌入式主機,在我上(shàng)面做的開(kāi)發當然是嵌入式的開(kāi)發,還包括驅動移植等,如網絡驅動、GPIO、UART等等。
3,網絡服務搭建
apt-get install something。直接搭建和(hé)配置你(nǐ)想要的服務器。如FTP服務器、NFS服務器、HTTP服務器和(hé)DHCP服務器等等。
4,網絡協議(yì)編程
A. 系統命令或工(gōng)具:arp、route、ping、ftp、curl、iperf和(hé)tcpdump等。通過系統命令或工(gōng)具産生或接收指定協議(yì)的數據包;查看(kàn)并分析協議(yì)格式内容;通過其修改網絡協議(yì)的數據内容或處理(lǐ)行爲;
B. 用(yòng)戶态協議(yì)編程:使用(yòng)libpcap和(hé)libnet兩個開(kāi)發庫實現(xiàn)網絡協議(yì)的ETH、ARP、IP、ICMP、TCP、UDP等協議(yì)内容的定義與構造,實現(xiàn)與對(duì)應網絡協議(yì)層次通信。libpcap的分組獲取方式是接口所有流量送到(dào)CPU,通過libpcap的内核過濾器篩選後轉發用(yòng)戶态處理(lǐ);
C. 用(yòng)戶态協議(yì)FAST編程:基于FAST軟件開(kāi)發環境與編程接口,實現(xiàn)對(duì)網絡分組數據的硬件篩選,截取分派到(dào)指定軟件應用(yòng)編程處理(lǐ),用(yòng)戶可以自(zì)定義其輸出格式内容與轉發端口控制(單播、多播或組播)。分組内容包含完整以太網幀,支持各層級完整協議(yì)解析與重組,且隻從(cóng)硬件提取用(yòng)戶關心的小(xiǎo)部分特征分組流送用(yòng)戶态處理(lǐ)。如實現(xiàn)用(yòng)戶态ARP功能(néng)應用(yòng)、用(yòng)戶态PING功能(néng)應用(yòng)和(hé)用(yòng)戶态DNS防禦功能(néng)等。收發任意用(yòng)戶自(zì)定義網絡分組數據幀格式都可以,也(yě)就是說從(cóng)二層自(zì)定義、三層自(zì)定義到(dào)其他(tā)任何分組協議(yì)層的定義内容均可以;
D. 内核态協議(yì)編程:實現(xiàn)諸如ARP内核模塊、ICMP内核模塊功能(néng),類IP層模塊、類UDP模塊。在内核插入一個能(néng)處理(lǐ)ARP協議(yì)的模塊,添加一個類似IP層協議(yì)功能(néng)的模塊(處理(lǐ)以太網幀類型爲自(zì)己定義的内核模塊),添加一個類似UDP層協議(yì)功能(néng)模塊(處理(lǐ)IP層協議(yì)字段爲自(zì)己定義的内核模塊)。
5,網絡原型系統
軟件二層交換機:根據二層交換原理(lǐ),僅使用(yòng)FAST用(yòng)戶态API接口編程,設計(jì)與實現(xiàn)一個二層以太網交換機原型系統,支持多端口分組數據交換功能(néng),實現(xiàn)基本的單播與廣播功能(néng),支持MAC轉發表老(lǎo)化;
硬件二層交換機:将軟件二層交換的學習與老(lǎo)化功能(néng)留在CPU軟件端處理(lǐ),學習好(hǎo)MAC表後,配置到(dào)硬件FPAG的轉發流表中,實現(xiàn)在硬件完成分組解析、MAC查表與輸出轉發功能(néng);
軟件三層路由器:根據三層路由原理(lǐ),基于FAST設計(jì)與實現(xiàn)一個路由器原型系統,實現(xiàn)設備接口的ARP請(qǐng)求與響應功能(néng)、分組三層解析與修改、FIB查表和(hé)二層替換等功能(néng)。支持控制平面(轉交協議(yì)棧)與數據平面分開(kāi)處理(lǐ),實現(xiàn)基本的路由轉發功能(néng);
硬件三層路由器:将軟件三層路由器的控制平台留在CPU軟件端處理(lǐ),并安裝Quagga路由學習軟件,将路由學習的FIB表及鄰接表内容更新到(dào)硬件FPGA的相關表項,實現(xiàn)路由器的數據平面完全硬件卸載處理(lǐ);
軟件SDN交換機:根據OpenFlow協議(yì)1.3版本實現(xiàn)一個精簡的SDN交換機,協議(yì)通道(dào)支持與Floodlight控制器互聯,數據平面支持IPv4和(hé)IPv6的分組匹配和(hé)轉發功能(néng);
高(gāo)精度硬件測量:由軟件構造測量報(bào)文(wén)并配置測量報(bào)文(wén)的發送時(shí)間及間隔,然後提交給硬件發送,硬件發送成功後可獲取每個報(bào)文(wén)的硬件輸出時(shí)間。再等待測量報(bào)文(wén)返回,在接口标記其硬件輸入時(shí)間後轉發給測量軟件。最後由軟件計(jì)算(suàn)測量數據。由于測量數據均由硬件控制,其時(shí)間精度可達到(dào)ns級别。發包間隔設置爲固定長度,可在對(duì)端網絡測量網絡抖動,間隔設置爲零,則可以測量網絡的實時(shí)帶寬;
硬件SDN交換機:将OpenFlow的協議(yì)通道(dào)留在CPU軟件端完成,實現(xiàn)同步控制器下(xià)發的FLOW_MOD消息内容到(dào)硬件FPGA的轉發流表,在硬件完成分組的解析、查表和(hé)執行動作(zuò)等功能(néng);
SDN拓撲測量:根據LLDP協議(yì)和(hé)BBDP協議(yì)測量純SDN網絡環境與跨SDN網絡環境的拓撲。支持用(yòng)戶自(zì)定義拓撲探測協議(yì)數據的分發與采集;
基于OVS的SDN交換機:軟件運行OVS,并将OVS的内核快(kuài)速路徑流表卸載到(dào)硬件FPGA邏輯中,軟件實現(xiàn)OVS流表與硬件流表同步更新。
軟件LISP路由器:根據LISP工(gōng)作(zuò)原理(lǐ),在軟件三層路由器基礎上(shàng)增加對(duì)LISP功能(néng)的支持,每個RLOC節點啓動後均自(zì)動與MS/MP注冊,獲取全網RLOC與EID的映射信息。支持各RLOC下(xià)任意EID節點之間互聯互通;
軟件段路由:根據段路由(segment routing,SR)工(gōng)作(zuò)原理(lǐ),在軟件三層路由器基礎上(shàng)增加對(duì)段路由功能(néng)支持,支持用(yòng)戶在路由實驗網中任意配置分段跳轉路由功能(néng);
軟件網絡編碼路由(暫未開(kāi)源):感興趣的朋友可上(shàng)網搜索網絡編碼路由相關資料;
時(shí)間敏感網絡系統(暫未開(kāi)源):包含時(shí)間敏感網絡交換機與主機節點,各節點之間可動态靈活組網,時(shí)間同步自(zì)動完成。節點支持SDN流表轉發配置,輸出端口支持8個TT隊列,可将一條流在不同交換節點映射到(dào)不同優先級隊列調度輸出。隊列調度支持Qbv,可配置多種調度模式使用(yòng)。主機節點加載高(gāo)實時(shí)操作(zuò)系統及實時(shí)驅動與協議(yì)棧,與交換機時(shí)間同步、調度同步。
1,技術支撐與培訓
平台提供免費的軟硬件源碼、開(kāi)發環境、示例應用(yòng)源碼及相關文(wén)檔。面向項目組建專屬服務微信群,提供免費培訓,講解和(hé)剖析平台原理(lǐ)構架、實現(xiàn)方法、開(kāi)發流程和(hé)調測試步驟。免費爲用(yòng)戶提供設計(jì)、開(kāi)發指導及關鍵技術快(kuài)速實現(xiàn)與測試驗證。
2,專屬定制服務
A. 系統架構:CPU可選:Intel、飛(fēi)騰和(hé)龍芯;FPGA可選:Inetl、Xilinx和(hé)國産型号;
B. PCB器件:部分解決方案器件可實現(xiàn)全國産化;
C. 設備外(wài)形:網卡、闆卡模塊、獨立1U/2U機箱、ATCA或VPX等;
D. 設備接口:網口支持1G、10G、40G和(hé)100G,串口(或轉RJ45)、USB口、JTAG調試口;
E. 操作(zuò)系統:開(kāi)源Linux或國産Linux;
F. 内核模塊及應用(yòng):PCIe驅動、以太網驅動、協議(yì)棧内核模塊、協議(yì)棧用(yòng)戶模塊和(hé)協議(yì)應用(yòng);
G. 原型系統:交換、路由、SDN、TSN,根據用(yòng)戶需求定制開(kāi)發;
H .硬件卸載加速:高(gāo)精度測量、TOE、根據用(yòng)戶需求定制開(kāi)發。
OpenBox平台爲您提供了(le)可以在網絡分組各個層次對(duì)分組數據進行解析、處理(lǐ)、封裝和(hé)自(zì)定義的能(néng)力,允許用(yòng)戶在硬件FPAG、軟件内核态和(hé)用(yòng)戶态各環境下(xià)面處理(lǐ)和(hé)定義分組數據。同時(shí)還允許分組數據在軟件、内核、用(yòng)戶态自(zì)由靈活循環分派、處理(lǐ)和(hé)轉發。總有一個層次是适合您設計(jì)的,總有一個環境是适合您去開(kāi)發的,總有一條分組處理(lǐ)流水(shuǐ)線是可以滿足您業務或創新需求的。
OpenBox平台助力您在網絡學習、競賽、教學和(hé)科研各領域的原理(lǐ)驗證與創新設計(jì)中迅速領跑、高(gāo)速騰飛(fēi)和(hé)極速穿越。
未來(lái)網絡因您的設計(jì)而變得更加美(měi)好(hǎo)!
FAST官網:
www.fastswitch.org。
湖南新實網絡官網:
www.xperis.com.cn。
關注FAST開(kāi)源社區(qū)
FAST一一開(kāi)源、開(kāi)放(fàng)、高(gāo)速、高(gāo)效、可編程、可定義!軟硬件協同并行處理(lǐ)。