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