国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向數(shù)據(jù)平面P4編程的虛擬仿真實(shí)驗(yàn)教學(xué)平臺

2019-11-07 11:42林為偉葉福玲
中國現(xiàn)代教育裝備 2019年19期
關(guān)鍵詞:流表圖形化網(wǎng)絡(luò)拓?fù)?/a>

林為偉 張 棟 葉福玲

1.福州大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院 福建福州 350108

2.福州大學(xué)網(wǎng)絡(luò)信息安全與計(jì)算機(jī)技術(shù)實(shí)驗(yàn)教學(xué)中心 福建福州 350108

3.福州大學(xué)至誠學(xué)院 福建福州 350002

網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)是計(jì)算機(jī)專業(yè)網(wǎng)絡(luò)課程的重要組成部分。現(xiàn)有網(wǎng)絡(luò)實(shí)驗(yàn)課程主要集中在設(shè)備操作與協(xié)議驗(yàn)證,對網(wǎng)絡(luò)底層,如路由器或交換機(jī)的體系結(jié)構(gòu)、工作機(jī)制及工作原理等涉及較少[1,2]。教師受限于固化的硬件,難以編程設(shè)計(jì)或優(yōu)化底層設(shè)備,實(shí)驗(yàn)教學(xué)主要圍繞步驟化的驗(yàn)證性實(shí)驗(yàn)展開。隨著軟件定義網(wǎng)絡(luò)(Software Defined Networking,SDN)技術(shù)的發(fā)展,上述困境逐步得到緩解。SDN作為新型網(wǎng)絡(luò)架構(gòu),將控制平面與數(shù)據(jù)平面分離,控制平面通過OpenFlow協(xié)議制訂和下發(fā)轉(zhuǎn)發(fā)策略,數(shù)據(jù)平面按策略轉(zhuǎn)發(fā)[3]。然而OpenFlow不具有協(xié)議不相關(guān)性,使數(shù)據(jù)轉(zhuǎn)發(fā)只能依據(jù)現(xiàn)有的協(xié)議[4]。而P4(Programming Protocol-Independent Packet Processors)的問世,克服了OpenFlow的上述缺陷。

作為SDN領(lǐng)域的編程語言,P4為數(shù)據(jù)平面提供了一套編程抽象,開發(fā)者可以使用P4描述網(wǎng)絡(luò)數(shù)據(jù)平面協(xié)議和數(shù)據(jù)包處理行為,而無須關(guān)心底層硬件的實(shí)現(xiàn)細(xì)節(jié),并可編程更改數(shù)據(jù)包解析與轉(zhuǎn)發(fā)流程,解決了傳統(tǒng)網(wǎng)絡(luò)硬件設(shè)備可編程能力低的問題[5,6]。已有越來越多高校將SDN引入計(jì)算機(jī)網(wǎng)絡(luò)教學(xué),并探索將P4作為SDN的重要組成部分引入課堂,解決當(dāng)前網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)無法涉及底層設(shè)備架構(gòu)與可編程的問題[7,8]。但是,現(xiàn)有的P4從開發(fā)到部署運(yùn)行,配套的集成運(yùn)行環(huán)境較為缺乏,嚴(yán)重依賴于控制平面的復(fù)雜配置,難以滿足初學(xué)者的仿真實(shí)驗(yàn)學(xué)習(xí)要求。因此,如何簡化控制平面的復(fù)雜配置,設(shè)計(jì)簡便的P4集成仿真實(shí)驗(yàn)環(huán)境,將教與學(xué)的精力集中于數(shù)據(jù)平面可編程,成為保障P4實(shí)驗(yàn)教學(xué)順利實(shí)施的重要課題。

1 P4虛擬仿真實(shí)驗(yàn)教學(xué)平臺的設(shè)計(jì)與實(shí)現(xiàn)

作為數(shù)據(jù)平面的編程語言,P4的開發(fā)、部署和運(yùn)行,都依賴控制平面的配置。首先,P4程序的運(yùn)行,需要控制平面下發(fā)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的具體配置;其次,P4程序只定義對數(shù)據(jù)平面匹配動作的一系列高級描述,但匹配動作何時(shí)被執(zhí)行,還需要控制平面配置下發(fā)流表,來驗(yàn)證匹配動作執(zhí)行的正確性。控制平面的配置操作煩瑣,影響P4教學(xué)實(shí)驗(yàn)的順利實(shí)施與推廣。針對該問題,構(gòu)建P4虛擬仿真實(shí)驗(yàn)教學(xué)平臺,為P4程序提供配套的集成運(yùn)行環(huán)境,將教與學(xué)的精力集中于P4編程上。

1.1 平臺設(shè)計(jì)

P4虛擬仿真實(shí)驗(yàn)教學(xué)平臺包含五個(gè)模塊,分別是Web前端、初始化模塊、網(wǎng)絡(luò)拓?fù)渑渲媚K、流表配置模塊和P4源代碼模塊,各模塊間的關(guān)系如圖1所示。各模塊功能如下。

(1)Web前端:啟動Web圖形化界面,提交網(wǎng)絡(luò)拓?fù)渖傻奈募团渲孟掳l(fā)流表。

(2)初始化模塊:存放網(wǎng)絡(luò)拓?fù)湮募颓岸藛幽_本,通過運(yùn)行啟動腳本可以啟動網(wǎng)絡(luò)環(huán)境的虛擬仿真。

(3)網(wǎng)絡(luò)拓?fù)渑渲媚K:服務(wù)后端,存放網(wǎng)絡(luò)拓?fù)渑渲梦募?,處理前端操作生成的網(wǎng)絡(luò)拓?fù)湮募?,?shí)際配置網(wǎng)絡(luò)拓?fù)洹?/p>

(4)流表配置模塊:服務(wù)后端,存放流表配置文件,處理前端操作提交的流表配置命令。

(5)P4源代碼模塊:存放用戶編寫的P4代碼及代碼所依賴的頭文件和解析文件,根據(jù)前端建立網(wǎng)絡(luò)拓?fù)浜吞峤坏牧鞅砼渲猛瓿上鄳?yīng)的動作匹配。

圖1 P4虛擬仿真實(shí)驗(yàn)平臺模塊結(jié)構(gòu)圖

平臺為P4程序的開發(fā)部署提供了兩項(xiàng)控制平面配置服務(wù)功能,一是提供圖形化操作建立并展示網(wǎng)絡(luò)拓?fù)洌欢翘峁﹫D形化操作查看和修改交換機(jī)的流表項(xiàng)。

1.2 平臺實(shí)現(xiàn)

平臺采用輕量級仿真工具M(jìn)ininet提供底層網(wǎng)絡(luò)拓?fù)渖桑ㄟ^初始化模塊啟動Mininet,并基于控制器Ryu應(yīng)用gui_topology進(jìn)行二次開發(fā),提供Web前端的圖形化展示[9,10]。Mininet 基于 Linux Container 架構(gòu),是斯坦福大學(xué)Nick McKeown 教授領(lǐng)導(dǎo)的研究小組開發(fā)的網(wǎng)絡(luò)虛擬仿真工具,可以在計(jì)算機(jī)上模擬完整的網(wǎng)絡(luò)主機(jī)、鏈路和交換機(jī),同時(shí)還具有很強(qiáng)的擴(kuò)展性[11]。Ryu是SDN的一種開源控制器,可以將Mininet平臺連接到Ryu控制器上,通過Ryu提供的可視化界面展示SDN對網(wǎng)絡(luò)的集中式控制。P4虛擬仿真實(shí)驗(yàn)教學(xué)平臺可以讓學(xué)生通過可視化的Web界面創(chuàng)建網(wǎng)絡(luò)拓?fù)洌瑫r(shí)動態(tài)查看和修改數(shù)據(jù)平面交換機(jī)的流表項(xiàng)。

2 P4虛擬仿真實(shí)驗(yàn)教學(xué)方案

通過建立拓?fù)浜托薷牧鞅韺?shí)驗(yàn)對提出的P4虛擬仿真實(shí)驗(yàn)教學(xué)方案進(jìn)行展示。實(shí)驗(yàn)需要驗(yàn)證P4代碼switch.p4在網(wǎng)絡(luò)拓?fù)渲袑?shù)據(jù)包的轉(zhuǎn)發(fā),程序關(guān)鍵代碼展示如下。

首先,利用P4虛擬仿真實(shí)驗(yàn)教學(xué)平臺提供的圖形化界面,建立并驗(yàn)證網(wǎng)絡(luò)拓?fù)涞恼_性;其次,在建立網(wǎng)絡(luò)拓?fù)浠A(chǔ)上,選擇特定的交換機(jī),由平臺完成流表下發(fā),驗(yàn)證所寫P4程序數(shù)據(jù)包轉(zhuǎn)發(fā)的功能。通過上述實(shí)驗(yàn),能讓學(xué)生感受到平臺的圖形化界面為控制平面配置工作所提供的便捷,將師生從原本復(fù)雜的控制平面配置中解脫出來,專注于數(shù)據(jù)平面的P4編程。

本實(shí)驗(yàn)將要建立的網(wǎng)絡(luò)拓?fù)淙鐖D2所示,其中s1,s2,s3是三臺形成環(huán)路的交換機(jī),每臺交換機(jī)分別連接一臺主機(jī)和相鄰兩臺交換機(jī)。在沒有平臺的輔助下,學(xué)生若需要建立該拓?fù)?,要按照特定的格式,以文本文件的形式將所需網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)編寫保存,再由Mininet加載生成虛擬網(wǎng)絡(luò)環(huán)境。建立拓?fù)浜托薷牧鞅韺?shí)驗(yàn)將展示由平臺提供的Web圖形化界面,幫助快速便捷地建立網(wǎng)絡(luò)拓?fù)?。網(wǎng)絡(luò)搭建完成后,還將進(jìn)行修改流表的操作。若缺少平臺輔助,學(xué)生需逐臺登錄交換機(jī),再通過命令行的方式,逐條下發(fā)流表規(guī)則,學(xué)生需要記憶復(fù)雜的流表下發(fā)命令格式。建立拓?fù)浜托薷牧鞅韺?shí)驗(yàn)將展示由平臺提供的Web圖形化界面,便捷地配置下發(fā)流表。

圖2 實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)鋱D

(1)創(chuàng)建網(wǎng)絡(luò)拓?fù)洌菏紫龋褂肦yu開源控制器的ryu-manager命令,運(yùn)行Web前端當(dāng)中的python代碼p4web.py,啟動Web前端。其次,在瀏覽器中打開Web圖形化界面。在Web界面左側(cè)輸入交換機(jī)和主機(jī)的數(shù)量,輸入鏈路信息,點(diǎn)擊提交,即可在Web界面的右側(cè)展示出所創(chuàng)建的網(wǎng)絡(luò)拓?fù)?,如圖3所示,同時(shí)程序后臺將生成網(wǎng)絡(luò)拓?fù)湮募?,以供后續(xù)啟動Mininet時(shí)加載。

圖3 P4虛擬仿真實(shí)驗(yàn)平臺的前端界面

(2)驗(yàn)證網(wǎng)絡(luò)拓?fù)洌和ㄟ^Web前臺展示的網(wǎng)絡(luò)拓?fù)鋱D可以初步驗(yàn)證網(wǎng)絡(luò)拓?fù)涞恼_性。啟動Mininet,啟動過程將加載步驟(1)創(chuàng)建的網(wǎng)絡(luò)拓?fù)湮募琈ininet完成交換機(jī)和主機(jī)的虛擬仿真,完成網(wǎng)絡(luò)拓?fù)涞呐渲?。在Mininet上使用net命令查看網(wǎng)絡(luò)拓?fù)洌?yàn)證發(fā)現(xiàn)由虛擬仿真平臺生成的網(wǎng)絡(luò)拓?fù)渑c要建立網(wǎng)絡(luò)拓?fù)涫且恢碌?,如圖4所示。

圖4 在Mininet上驗(yàn)證網(wǎng)絡(luò)拓?fù)?/p>

通過步驟(1)、步驟(2)發(fā)現(xiàn),平臺能夠幫助學(xué)生快速建立網(wǎng)絡(luò)拓?fù)?。此外,平臺具有配置交換機(jī)流表的能力,配置入口如圖3右下方所展示。實(shí)驗(yàn)將展示學(xué)生在完成P4程序switch.p4后,利用平臺在控制平面上對網(wǎng)絡(luò)拓?fù)鋬?nèi)的交換機(jī)配置轉(zhuǎn)發(fā)規(guī)則,以實(shí)現(xiàn)主機(jī)間的網(wǎng)絡(luò)互通。

(3)配置下發(fā)流表:實(shí)驗(yàn)前交換機(jī)流表并沒有配置任何規(guī)則,因此網(wǎng)絡(luò)拓?fù)鋬?nèi)的3臺主機(jī)相互間是不通的,如圖5a所示。實(shí)驗(yàn)要求通過修改流表實(shí)現(xiàn)h1和h3,h2和h3之間互通,需分別配置下發(fā)3臺交換機(jī)的流表規(guī)則。通過平臺提供的Web圖形化界面,學(xué)生可以方便快速地完成交換機(jī)流表規(guī)則的下發(fā),而不再需要上述煩瑣的過程。以s1為例,點(diǎn)擊Web前臺右下角的交換機(jī)流表信息,進(jìn)入下發(fā)流表頁面,點(diǎn)擊下發(fā)流表按鈕,進(jìn)行流表下發(fā),下發(fā)流表后,平臺將展示在s1上下發(fā)的所有流表規(guī)則,如圖6所示。之后再以同樣的操作,分別在s2和s3上完成下發(fā)流表的操作。

(4)驗(yàn)證流表規(guī)則:在s1,s2,s3完成下發(fā)流表的操作后,再次驗(yàn)證h1,h2,h3互相之間的網(wǎng)絡(luò)通信,發(fā)現(xiàn)h1和h3,h2和h3互相間網(wǎng)絡(luò)已經(jīng)連通,如圖5b所示,說明此前下發(fā)的流表規(guī)則已經(jīng)生效,交換機(jī)內(nèi)的數(shù)據(jù)包成功被轉(zhuǎn)發(fā)。此外,P4虛擬仿真實(shí)驗(yàn)教學(xué)平臺還可對已經(jīng)下發(fā)的流表執(zhí)行刪除操作,只需點(diǎn)擊交換機(jī)流表規(guī)則右邊的刪除按鈕即可完成。

圖5 主機(jī)之間的相互通信結(jié)果

圖6 s1下發(fā)流表

通過建立拓?fù)浜托薷牧鞅韺?shí)驗(yàn),展示了學(xué)生在P4程序的開發(fā)過程中,使用P4虛擬仿真實(shí)驗(yàn)教學(xué)平臺提供的圖形化界面,建立并驗(yàn)證網(wǎng)絡(luò)拓?fù)涞恼_性,不需要預(yù)先按照特定格式編輯網(wǎng)絡(luò)拓?fù)湮募?,并可在網(wǎng)絡(luò)拓?fù)鋬?nèi)選擇特定的交換機(jī),利用圖形化界面完成配置下發(fā)流表的操作,從而驗(yàn)證所寫P4程序的數(shù)據(jù)包轉(zhuǎn)發(fā)功能,無須手工輸入命令。傳統(tǒng)方法和通過平臺輔助的對比見表1。實(shí)驗(yàn)表明,學(xué)生在P4編程學(xué)習(xí)過程中,可以借助P4虛擬仿真實(shí)驗(yàn)教學(xué)平臺快速便捷地完成控制平面的配置,克服因控制平面的復(fù)雜配置給P4開發(fā)部署帶來的不便,有利于P4實(shí)驗(yàn)教學(xué)的進(jìn)一步推廣。

表1 傳統(tǒng)方法和P4虛擬仿真平臺的功能對比

3 結(jié)語

面對網(wǎng)絡(luò)新技術(shù)的發(fā)展,傳統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)課程相對滯后,師生難以對網(wǎng)絡(luò)底層設(shè)備的設(shè)計(jì)與優(yōu)化實(shí)現(xiàn)編程控制。P4推動了SDN數(shù)據(jù)平面可編程,成為高校SDN課程教學(xué)中的重要一環(huán)。雖然P4提供了數(shù)據(jù)平面可編程能力,但在開發(fā)、部署和運(yùn)行的過程中,依賴于控制平面的復(fù)雜配置。本文提出了面向數(shù)據(jù)平面P4編程的虛擬仿真實(shí)驗(yàn)教學(xué)平臺,并以建立拓?fù)浜托薷牧鞅韺?shí)驗(yàn)為例,展示了平臺為P4程序運(yùn)行提供圖形化的網(wǎng)絡(luò)拓?fù)浜蛣討B(tài)的可視化流表管理。平臺有助于提升SDN課程的教學(xué)質(zhì)量,促進(jìn)了P4實(shí)驗(yàn)教學(xué)的推廣。

猜你喜歡
流表圖形化網(wǎng)絡(luò)拓?fù)?/a>
基于匹配動作表模型的可編程數(shù)據(jù)平面流表歸并
基于通聯(lián)關(guān)系的通信網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)方法
基于Arduino圖形化編程的教學(xué)應(yīng)用研究
基于時(shí)序與集合的SDN流表更新策略
軟件定義網(wǎng)絡(luò)中OpenFlow流表空間優(yōu)化技術(shù)研究進(jìn)展
電子制作(2018年23期)2018-12-26
LKJ自動化測試系統(tǒng)圖形化技術(shù)研究
一種高效的OpenFlow流表拆分壓縮算法
2017款捷豹F-PACE網(wǎng)絡(luò)拓?fù)鋱D及圖注
勞斯萊斯古斯特與魅影網(wǎng)絡(luò)拓?fù)鋱D
林芝县| 竹北市| 枞阳县| 阳城县| 白银市| 工布江达县| 泾阳县| 抚远县| 类乌齐县| 长子县| 太仆寺旗| 长寿区| 庆城县| 民丰县| 大关县| 永州市| 封开县| 翁源县| 章丘市| 永定县| 新和县| 宁乡县| 龙江县| 镇沅| 黔江区| 静安区| 南华县| 满洲里市| 南岸区| 准格尔旗| 苗栗县| 鄂托克前旗| 临潭县| 亳州市| 宣恩县| 郸城县| 镇安县| 西林县| 新郑市| 张家港市| 托克托县|