胡 罡,逄德明,彭立宏,蔡志平,徐 明
(國防科技大學(xué) 計(jì)算機(jī)學(xué)院,湖南 長沙 410073)
路由與交換技術(shù)是工程技術(shù)類網(wǎng)絡(luò)工程專業(yè)的限選課程。通過學(xué)習(xí)本課程,學(xué)員了解并掌握網(wǎng)絡(luò)路由和交換的基本概念、工作原理等基礎(chǔ)知識,了解并掌握交換機(jī)和路由器設(shè)計(jì)及實(shí)現(xiàn)的一系列關(guān)鍵技術(shù),為今后從事網(wǎng)絡(luò)設(shè)備設(shè)計(jì)與開發(fā)工作打下堅(jiān)實(shí)的專業(yè)基礎(chǔ)。
課程的基本理念是以工程認(rèn)證為標(biāo)準(zhǔn),以提高課程教學(xué)質(zhì)量為目標(biāo),以創(chuàng)新課程設(shè)計(jì)和改革教學(xué)內(nèi)容及教學(xué)方法為重點(diǎn),堅(jiān)持將知識、能力、素質(zhì)融為一體,堅(jiān)持教與學(xué)的良性互動,整體優(yōu)化教學(xué)實(shí)施過程,切實(shí)突出學(xué)員學(xué)習(xí)的主體地位,充分發(fā)揮課程教學(xué)對實(shí)現(xiàn)人才培養(yǎng)目標(biāo)的支撐作用,促進(jìn)學(xué)員全面發(fā)展。
課程的設(shè)計(jì)思路以改革教學(xué)內(nèi)容和教學(xué)方法為先導(dǎo),將課程內(nèi)容框架、課程內(nèi)容安排、課堂教學(xué)、實(shí)驗(yàn)教學(xué)、課程評價(jià)等方面有機(jī)結(jié)合起來,充分體現(xiàn)本課程的先進(jìn)性和創(chuàng)新性。課程的主線是交換機(jī)和路由器的設(shè)計(jì)與實(shí)現(xiàn)技術(shù),以此貫穿整個(gè)教學(xué)過程。
通過學(xué)習(xí)該課程,學(xué)員能夠了解并掌握網(wǎng)絡(luò)路由和交換的基本概念、工作原理以及交換機(jī)和路由器設(shè)計(jì)與實(shí)現(xiàn)的一系列關(guān)鍵技術(shù),在此基礎(chǔ)上把握計(jì)算機(jī)網(wǎng)絡(luò)交換機(jī)和路由器的性能特點(diǎn)和要求,以利于開發(fā)適合網(wǎng)絡(luò)系統(tǒng)的交換機(jī)和路由器;能夠基于科學(xué)原理和方法研究網(wǎng)絡(luò)工程領(lǐng)域的復(fù)雜工程問題,涉及計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)、開發(fā)、部署、運(yùn)行、維護(hù)、安全保障等方面的實(shí)驗(yàn)設(shè)計(jì)、數(shù)據(jù)分析與解釋,并能通過信息綜合得到合理有效的結(jié)論。
根據(jù)教學(xué)大綱的要求,本課程的主要內(nèi)容包括概述、網(wǎng)絡(luò)設(shè)備體系結(jié)構(gòu)、交換機(jī)設(shè)計(jì)與實(shí)現(xiàn)、路由協(xié)議設(shè)計(jì)與實(shí)現(xiàn)、路由器軟件系統(tǒng)等理論。另外,課程會對幾種常見的代表性路由協(xié)議RIP、OSPF、BGP做基本的講授,還將路由安全、SDN/NFV等內(nèi)容作為高級部分進(jìn)行介紹。
課程總計(jì)36學(xué)時(shí),理論24學(xué)時(shí),實(shí)驗(yàn)12學(xué)時(shí),具體構(gòu)成見表1。
本課程由淺入深地設(shè)計(jì)了3個(gè)實(shí)驗(yàn),分別是Packet Tracer組網(wǎng)實(shí)驗(yàn)、Quagga以及NetMagic。
1)實(shí)驗(yàn)1:Packet Tracer組網(wǎng)。
(1)實(shí)驗(yàn)?zāi)康呐c任務(wù):針對理論授課部分的交換機(jī)原理、路由原理,在思科的網(wǎng)絡(luò)模擬器上進(jìn)行驗(yàn)證。
(2)實(shí)驗(yàn)內(nèi)容:利用Packet Tracer驗(yàn)證VLAN的劃分,靜態(tài)路由協(xié)議及動態(tài)路由協(xié)議中各選擇一種進(jìn)行組網(wǎng)配置,要求提供組網(wǎng)結(jié)構(gòu)圖,并記錄協(xié)議的運(yùn)行結(jié)果。
(3)實(shí)驗(yàn)結(jié)果及要求:能在Packet Tracer上驗(yàn)證VLAN、靜態(tài)路由和動態(tài)路由的有效性及正確性,記錄實(shí)驗(yàn)結(jié)果,完成實(shí)驗(yàn)報(bào)告。
表1 路由與交換技術(shù)課程教學(xué)日歷
2)實(shí)驗(yàn)2:Quagga。
(1)實(shí)驗(yàn)?zāi)康呐c任務(wù):要求學(xué)員熟悉Quagga路由軟件安裝、配置和使用方法,利用Quagga路由軟件對路由協(xié)議RIP、OSPF、BGP4進(jìn)行配置,并通過RIP、OSPF、BGP4協(xié)議進(jìn)行組網(wǎng);通過實(shí)驗(yàn)讓學(xué)員了解并掌握RIP、OSPF、BGP4的工作原理和工作過程。
(2)實(shí)驗(yàn)內(nèi)容:首先要求學(xué)員在Linux平臺上安裝配置Quagga路由軟件,然后對Quagga路由軟件進(jìn)行配置,最后通過RIP、OSPF、BGP4協(xié)議進(jìn)行組網(wǎng)實(shí)驗(yàn)。
a.使用ip route 命令為所有模擬路由器設(shè)置靜態(tài)路由,使用show ip route命令查看并記錄路由狀態(tài)。
b.使用RIPv2、OSPFv2、BGP4路由協(xié)議進(jìn)行配置并運(yùn)行上述路由協(xié)議,使用對應(yīng)的查看路由命令查看并記錄路由狀態(tài)。通過配置運(yùn)行,明白什么是動態(tài)路由,知道動態(tài)路由的優(yōu)勢是什么。了解3種路由協(xié)議的操作與設(shè)定,了解其工作模式和計(jì)算路由開銷的方法,比較它們之間的不同。
(3)實(shí)驗(yàn)結(jié)果及要求:自主完成實(shí)驗(yàn)靜態(tài)配置部分,所配置的靜態(tài)路由協(xié)議可正常工作,并能記錄工作過程;基于動態(tài)路由協(xié)議進(jìn)行配置,測試連通情況,并在連通后斷開網(wǎng)絡(luò)查看路由狀態(tài),再重新連接網(wǎng)絡(luò),查看路由狀態(tài),記錄每一步路由狀態(tài)并分析。
3)實(shí)驗(yàn)3:NetMagic。
(1)實(shí)驗(yàn)?zāi)康呐c任務(wù):讓學(xué)員掌握NetMagic設(shè)備的操作與使用[1],掌握交換機(jī)邏輯功能與分組處理流程。主要任務(wù)是通過搭建NetMagic實(shí)驗(yàn)平臺環(huán)境實(shí)現(xiàn)兩臺PC的基本交換功能。通過本實(shí)驗(yàn),學(xué)員熟悉NetMagic可編程實(shí)驗(yàn)平臺的使用,通過交換機(jī)原型實(shí)例理解交換機(jī)進(jìn)行分組交換的原理及其具體實(shí)現(xiàn)流程,能夠通過代碼實(shí)現(xiàn)交換功能的基本機(jī)制。
(2)實(shí)驗(yàn)內(nèi)容:首先按照實(shí)驗(yàn)手冊的要求,安裝并配置好NetMagic可編程實(shí)驗(yàn)平臺相關(guān)的軟硬件環(huán)境,然后使用平臺提供的示例程序?qū)崿F(xiàn)NetMagic與外設(shè)主機(jī)的基本數(shù)據(jù)IO功能,最后基于示例程序設(shè)計(jì)實(shí)現(xiàn)交換機(jī)原型系統(tǒng),實(shí)現(xiàn)自學(xué)習(xí)二層以太網(wǎng)交換功能。
a.加載環(huán)境。燒錄NetMagic實(shí)驗(yàn)平臺的硬件FPGA邏輯,使用fast-0.1.5軟件開發(fā)環(huán)境進(jìn)行連通性測試,實(shí)現(xiàn)平臺與外設(shè)之間的分組收發(fā)功能。
b.功能設(shè)計(jì)。根據(jù)交換功能原理抽象交換邏輯功能,劃分分組處理邏輯模塊;設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu)、存儲對象和模塊之間的數(shù)據(jù)接口;為每個(gè)邏輯模塊畫出詳細(xì)的分組處理流程圖,并詳細(xì)描述不同分支的狀態(tài)與條件。
c.聯(lián)調(diào)驗(yàn)證。按照交換機(jī)制原理和分組處理流程,進(jìn)行各功能模塊的組裝、調(diào)試;搭建二層交換網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通路測試驗(yàn)證。
(3)實(shí)驗(yàn)結(jié)果及要求:加載NetMagic可編程實(shí)驗(yàn)平臺軟硬件環(huán)境后,可以實(shí)現(xiàn)分組的正常收發(fā)功能。學(xué)員設(shè)計(jì)的交換邏輯功能代碼能正確運(yùn)行,源MAC學(xué)習(xí)可以將MAC地址存儲在確定位置,查表可準(zhǔn)確得到該地址所在端口號或未命中狀態(tài)。分組輸出能根據(jù)不同查表結(jié)果進(jìn)行不同的分發(fā)功能。所有功能邏輯正常執(zhí)行后,兩臺PC之間能相互ping通,并通過顯示函數(shù)看到兩臺交換機(jī)進(jìn)行報(bào)文交換的動態(tài)過程;拔掉一臺主機(jī)網(wǎng)線后,可以觀測到無法ping通,并在指定時(shí)間內(nèi)從代碼打印輸出中看到啟動表項(xiàng)老化;兩臺主機(jī)網(wǎng)線交換后,從代碼輸出中能看到原來學(xué)習(xí)的MAC地址立即更新所在端口號信息。
課程的教學(xué)設(shè)計(jì)理念主要源自工程教育認(rèn)證思想,在具體課程實(shí)施中主要采用了BOPPPS模型進(jìn)行教學(xué),見圖1。
圖1 工程認(rèn)證的體系框架
根據(jù)工程認(rèn)證的思想,開設(shè)本課程的主要目標(biāo)是落實(shí)網(wǎng)絡(luò)工程專業(yè)的指標(biāo)點(diǎn),即具備對網(wǎng)絡(luò)工程領(lǐng)域復(fù)雜工程問題開展研究的能力,根據(jù)網(wǎng)絡(luò)核心設(shè)備交換機(jī)和路由器完成網(wǎng)絡(luò)基本原理的教學(xué)。由于部分教學(xué)內(nèi)容已在前導(dǎo)課程計(jì)算機(jī)網(wǎng)絡(luò)中講授,本課程重點(diǎn)在網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)、功能、設(shè)計(jì)上展開。鑒于工程認(rèn)證要求培養(yǎng)學(xué)員解決復(fù)雜工程問題的能力,課程設(shè)計(jì)了一個(gè)基于NetMagic的交換功能實(shí)現(xiàn)的實(shí)驗(yàn)。該實(shí)驗(yàn)涉及硬件系統(tǒng)配置、組網(wǎng)、協(xié)議分析、編程及測試,3人一組完成實(shí)驗(yàn),同時(shí)強(qiáng)化了團(tuán)隊(duì)協(xié)同溝通能力的培養(yǎng)。
具體教學(xué)過程采用BOPPPS模型進(jìn)行設(shè)計(jì)。BOPPPS模型的6要素分別為Bridge in、Objective、Pre-test、Participatory Learning、Postest、Summary,中文一般翻譯為導(dǎo)入、目標(biāo)、前測、參與式學(xué)習(xí)、后測、總結(jié),其中目標(biāo)和參與式學(xué)習(xí)兩部分最為重要。每次課程,不管是理論還是實(shí)驗(yàn),均按照以上基本要求展開教學(xué)活動。目標(biāo)部分每次課會列舉1~2個(gè)具體的學(xué)習(xí)目標(biāo),而參與式教學(xué)環(huán)節(jié)的設(shè)計(jì),側(cè)重學(xué)員進(jìn)行針對性的分組研討、實(shí)驗(yàn)。在本門課的教學(xué)中,理論講授的實(shí)際時(shí)間不到總課時(shí)數(shù)的一半,課后學(xué)員需要花較多的時(shí)間完成實(shí)驗(yàn)及實(shí)驗(yàn)報(bào)告,3個(gè)實(shí)驗(yàn)占最后成績的比例分別為10%、10%及30%,期末考試成績占最終成績的50%。
圖2 NetMagic平臺系統(tǒng)組成
NetMagic可編程網(wǎng)絡(luò)實(shí)驗(yàn)平臺包括硬件開發(fā)環(huán)境與軟件開發(fā)環(huán)境,見圖2。硬件開發(fā)環(huán)境采用5級流水工作模式,主要包括報(bào)文解析模塊、關(guān)鍵字拼組模塊、通用查表模塊、動作執(zhí)行模塊和通用輸出模塊。軟件開發(fā)環(huán)境包括內(nèi)核開發(fā)環(huán)境與用戶態(tài)開發(fā)環(huán)境。內(nèi)核開發(fā)環(huán)境包括虛擬以太網(wǎng)驅(qū)動、多核IO轉(zhuǎn)發(fā)編程模塊、多進(jìn)程UA編程模塊和用戶態(tài)零中斷快速IO編程模塊。虛擬以太網(wǎng)驅(qū)動使得NetMagic硬件設(shè)備端口可完全虛擬成主機(jī)邏輯設(shè)備,支持標(biāo)準(zhǔn)協(xié)議棧和上層標(biāo)準(zhǔn)SOCKET應(yīng)用。用戶態(tài)開發(fā)環(huán)境主要由FAST開發(fā)庫組成,主要包括支持硬件寄存器讀寫的libreg庫、支持硬件流表規(guī)則讀寫的librule模塊、支持多進(jìn)程UA編程的libua模塊、支持OpenFlow原型交換機(jī)的libofp應(yīng)用庫,FAST庫支持基于libnet和libpcap開發(fā)庫進(jìn)行編程。
筆者在FAST架構(gòu)下開發(fā)了一個(gè)基于NetMagic的交換實(shí)驗(yàn)?zāi)K。硬件部分不需要學(xué)員修改,但需要安裝相應(yīng)的調(diào)試環(huán)境;軟件層面,將所有功能集中在一個(gè)*.c文件中,把6個(gè)核心函數(shù)刪除,留給學(xué)員編寫。所有功能之間的邏輯見圖3。
在圖3的基礎(chǔ)上,學(xué)員將完成函數(shù)的編寫并進(jìn)行測試,正確的泛洪功能的實(shí)現(xiàn)代碼如下:
實(shí)驗(yàn)的成績以現(xiàn)場驗(yàn)收和實(shí)驗(yàn)報(bào)告為主,現(xiàn)場驗(yàn)收主要考查學(xué)員完成實(shí)驗(yàn)的正確性和速率,而實(shí)驗(yàn)報(bào)告主要用于學(xué)員的過程性評估。在驗(yàn)收過程中,教師也會對學(xué)員進(jìn)行相應(yīng)的提問,考察學(xué)員的能力。
采用NetMagic進(jìn)行實(shí)驗(yàn)教學(xué)的優(yōu)點(diǎn)有:在可編程的網(wǎng)絡(luò)設(shè)備開放環(huán)境下,學(xué)員可以通過代碼實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備的功能,對于學(xué)員深入理解網(wǎng)絡(luò)功能和原理具有顯著的效果;能夠與目前的軟件定義網(wǎng)絡(luò)、網(wǎng)絡(luò)功能虛擬化等網(wǎng)絡(luò)發(fā)展的新趨勢結(jié)合,使學(xué)員在后續(xù)本科畢業(yè)設(shè)計(jì)、研究生課程或工作后具備更好的網(wǎng)絡(luò)設(shè)備研發(fā)能力;也能為其他后續(xù)網(wǎng)絡(luò)工程相關(guān)課程、大學(xué)員創(chuàng)新實(shí)踐、電子信息競賽、信息安全競賽等多個(gè)創(chuàng)新實(shí)踐活動提供實(shí)驗(yàn)基礎(chǔ)。
圖3 交換功能的邏輯
實(shí)驗(yàn)中遇到的問題如下:
1)NetMagic實(shí)驗(yàn)分工不夠科學(xué)。
在8小時(shí)的課堂實(shí)驗(yàn)時(shí)間里,只有一組現(xiàn)場調(diào)試成功并通過了現(xiàn)場測試,造成進(jìn)度滯后的原因是學(xué)員對可編程網(wǎng)絡(luò)設(shè)備的軟硬件環(huán)境不熟悉。由于學(xué)員使用的操作系統(tǒng)、虛擬機(jī)版本各異,在搭建環(huán)境的過程中出現(xiàn)了不少問題。3個(gè)人的小組,默認(rèn)1人進(jìn)行環(huán)境搭建與測試,1人寫代碼,1人負(fù)責(zé)實(shí)驗(yàn)報(bào)告的撰寫,而實(shí)際完成情況往往是編程能力最好的學(xué)員也完成了其他工作,在分工協(xié)作上,還需要進(jìn)行更科學(xué)的設(shè)置。
2)代碼閱讀和編寫的能力問題。
在Linux環(huán)境下用C語言編程,應(yīng)該是在大學(xué)一年級和二年級解決的問題,然而在實(shí)際實(shí)驗(yàn)過程中,依然有學(xué)員存在讀寫程序能力不夠的問題,并在代碼寫作規(guī)范性方面普遍缺乏正規(guī)化訓(xùn)練。
3)對網(wǎng)絡(luò)協(xié)議的理解不夠深入。
雖然在實(shí)驗(yàn)之前學(xué)員已經(jīng)學(xué)習(xí)了計(jì)算機(jī)網(wǎng)絡(luò)等先導(dǎo)課程,但在代碼實(shí)現(xiàn)層面上,依然存在理論只是理論的問題。比如在泛洪過程中,大部分學(xué)員依然把報(bào)文發(fā)給所有端口,這種在考試時(shí)不會犯的錯(cuò)誤在實(shí)踐中還會出現(xiàn),說明理論教學(xué)本身存在明顯不足。
根據(jù)以上問題,筆者提出如下幾條建議。
1)提供更豐富的實(shí)驗(yàn)案例。
本次實(shí)驗(yàn),所有學(xué)員都完成相同的實(shí)驗(yàn)內(nèi)容,這導(dǎo)致了一些問題,比如后做實(shí)驗(yàn)的學(xué)員可以咨詢先做出來的學(xué)員,降低了主動思考并解決問題的難度。更科學(xué)合理的做法是提供一組實(shí)驗(yàn),為每個(gè)實(shí)驗(yàn)設(shè)置難度系數(shù),記錄學(xué)員完成的時(shí)間,并互相評分。
2)豐富課前及課后的實(shí)驗(yàn)環(huán)境。
本實(shí)驗(yàn)均在課堂上完成,而實(shí)際上更合理的方式是在課堂上交流,實(shí)驗(yàn)應(yīng)該安排在課下,這需要專業(yè)實(shí)驗(yàn)室及NetMagic團(tuán)隊(duì)提供支持。本次課程建立了一個(gè)微信交流群,在課下針對實(shí)驗(yàn)中遇到的問題提供了一個(gè)交流平臺,大部分問題可以在線解決。改進(jìn)的建議是在課前提供實(shí)驗(yàn)環(huán)境,讓學(xué)員先通過已有案例熟悉開發(fā)環(huán)境。實(shí)驗(yàn)開始后,提供一個(gè)更好的交流平臺,讓學(xué)員根據(jù)不同主題主動在專區(qū)中提出問題,并提供解決方案,這樣可以大幅提高學(xué)員完成實(shí)驗(yàn)的效率。
3)打通網(wǎng)絡(luò)工程專業(yè)核心課程的實(shí)驗(yàn)。
由于NetMagic平臺目前僅僅在路由與交換技術(shù)課程中使用,受限于課程時(shí)間安排,并未充分發(fā)揮出其在網(wǎng)絡(luò)教學(xué)系列課程中的作用。因此,可以考慮在計(jì)算機(jī)網(wǎng)絡(luò)、網(wǎng)絡(luò)工程、網(wǎng)絡(luò)工程課程設(shè)計(jì)等相關(guān)課程中安排相應(yīng)的實(shí)驗(yàn),必將更好地達(dá)到網(wǎng)絡(luò)工程人才培養(yǎng)的目標(biāo)。
本次路由與交換技術(shù)的教學(xué)是可編程網(wǎng)絡(luò)設(shè)備在學(xué)校網(wǎng)絡(luò)工程專業(yè)本科專業(yè)教學(xué)中的首次嘗試。這次嘗試是成功的,但也暴露出不少問題??紤]到目前工程認(rèn)證、新工科等高等教育的新要求,必須結(jié)合網(wǎng)絡(luò)工程專業(yè)的研究方向開展教學(xué)。為了更好地適應(yīng)網(wǎng)絡(luò)設(shè)備軟件定義化、虛擬化、智能化、通用化等發(fā)展趨勢,必須加強(qiáng)以NetMagic為代表的可編程網(wǎng)絡(luò)設(shè)備的實(shí)驗(yàn)教學(xué),通過更高強(qiáng)度、更科學(xué)合理的實(shí)驗(yàn)環(huán)節(jié)訓(xùn)練,不斷提升學(xué)員解決復(fù)雜工程問題的能力,為學(xué)員畢業(yè)后從事網(wǎng)絡(luò)專業(yè)工作的研發(fā)能力打下更堅(jiān)實(shí)的基礎(chǔ)。
[1]李韜, 孫志剛. 面向下一代互聯(lián)網(wǎng)實(shí)驗(yàn)平臺的新型報(bào)文處理模型: EasySwitch [J]. 計(jì)算機(jī)學(xué)報(bào), 2011, 34(11): 2187-2196.