文成玉,杜 鴻,任德昊
(成都信息工程大學 通信工程學院,四川 成都 610225)
基于Linux虛擬網絡的網絡實驗環境設計
文成玉,杜 鴻,任德昊
(成都信息工程大學 通信工程學院,四川 成都 610225)
在"計算機網絡"課程教學中,受網絡設備及其他因素制約,教師難以隨堂開展部分驗證性實驗以輔助課堂教學.因此,文章在研究Linux虛擬網絡原理的基礎上,通過創建虛擬網絡設備及虛擬機等構建Linux虛擬網絡模擬物理網絡環境.結合計算機網絡教學需求,按需設計虛擬網絡結構,用于計算機網絡實驗的設計.
Linux虛擬網絡;實驗環境;實驗設計
"計算機網絡"是一門理論與實踐緊密結合的課程,具有知識覆蓋范圍廣、理論抽象及實踐性強等特點[1].對于課程實踐,除了開設一些基本的工程實踐性實驗,也需要開設要求更高的分析驗證性實驗,如協議原理驗證、協議分析等,培養學生實踐能力并深入理解計算機網絡的通信原理.但在實際教學中,完成這些實驗需要不少物理設備,不便于教師隨堂開展驗證性演示與原理講解.即使在實驗室,學生可利用設備,如第3層交換設備、物理服務器等,其數量難以滿足開展較復雜實驗的要求.
Linux操作系統能夠很好地支持虛擬化技術,可以配置虛擬網絡設備構建虛擬網絡,也可以創建虛擬機模擬物理主機.這樣的虛擬網絡系統可模擬物理網絡設備環境,結合少數的物理設備如3層交換機等,可以很好地完成多數計算機網絡實驗,從而較好地解決上述問題.
基于Linux設計課程實驗,主要是在Linux系統中用虛擬網絡模擬物理網絡,將需要大量設備的課程實驗轉化到虛擬網絡中.Linux系統中,對傳統IP網絡和802.1Q VLAN網絡,都已有良好的支持,只需配置相關的Linux設備就可以組成虛擬網絡模擬物理網絡.
Linux虛擬網絡的核心是對二層物理網絡的抽象與管理,實現物理網卡和交換設備的虛擬化.Linux中網絡設備虛擬化模型有Bridge,TAP,VLAN等.Bridge實現虛擬交換設備功能,TAP實現虛擬網卡功能.虛擬機通過虛擬網卡連接到Bridge設備,Bridge進一步與物理網卡形成數據轉發關系,實現與外部物理網絡通信.可以用VLAN虛擬接口+Bridge,模擬實現物理交換機的交換與隔離功能.
此外,如今的Linux系統都具有系統虛擬化管理模塊,可以創建和管理虛擬機,用來模擬物理計算機.在虛擬機里可以安裝操作系統如Windows/Linux等,并在操作系統中安裝應用程序等.
計算機網絡通信的原理是基于大量抽象的網絡協議實現的.如何讓學生理解這些協議的原理,最有效的方法就是通過實驗展示出網絡協議的數據處理工作過程.網絡原理實驗及協議分析就是展現這一過程的有效方法.目前計算機網絡體系結構一般是采用5層模型描述對應TCP/IP協議結構.針對每層的協議,可以設計實驗進行協議分析,如表1所示.

表1 網絡體系5層模型協議及對應的實驗
根據上述實驗內容,在網絡設備方面,需要一定數量的服務器、PC機及可網管二層交換機、路由器/3層交換機,組成若干局域網并用路由器/3層交換機將各局域網互聯起來.在軟件配置方面,需要在安裝配置相關的應用服務器,如:HTTP協議需要安裝配置Web服務器,FTP協議需要安裝配置FTP服務器;安裝協議分析軟,如:Wireshark等.綜合考慮實驗要求,設計如圖1所示的物理網絡拓撲結構,并劃分兩個VLAN(I和II),用于設計網絡原理驗證及協議分析實驗.
根據圖1的物理網絡環境,可以采用兩臺物理Linux主機創建虛擬網絡模擬,如圖2所示.與圖1中設備的對應關系,如表2所示.

表2 物理設備與虛擬設備對應關系

圖1 網絡實驗環境物理網絡結構

圖2 虛擬網絡結構
2.2.1 配置VLAN接口
在CentOS7系統中,編輯配置文件/etc/network/interfaces,配置虛擬網絡接口eth1.10和eth1.11,配置Bridge br10和br11,并生成VALN10和VLAN11.
對物理主機2中的文件進行類似配置,并將主機1和主機2用物理交換機連接起來.為了實現VALN間的通信,該交換機必須是3層交換機.同時,因為物理網卡eth1上面需要傳輸多個VLAN的數據,因而,物理交換機上與eth1相連的端口配置為trunk模式.
2.2.2 虛擬機生成及配置
在Linux主機中創建虛擬機,并將各虛擬機的虛擬網卡,分別連接到Bridge上.同時,配置各虛擬機IP地址.
相比傳統的網絡實驗環境,該網絡實驗環境具有以下優點.
(1)解決物理設備不足的問題,便于展開課堂實驗.可以根據需要設置虛擬網絡環境下的交換設備和虛擬機,而且,這些虛擬設備的管理也更簡單、方便[2].
(2)將課程內容外延擴展,讓學生主動接觸網絡新技術.不斷發展的網絡新技術,受多種因素的制約,并不能同步地在課程中體現并更新.通過在外圍引入這些新技術,讓學生了解這些技術的原理.
(3)Linux作為廣泛使用的網絡操作系統,最大的特點就是源代碼開放,且安全性和穩定性相對較高.通過Linux虛擬網絡開展實驗,能推動學生主動研究學習Linux系統內部原理,深入領會Linux系統中的網絡技術,并習慣使用Linux類操作系統,這對促進我國操作系統自主技術發展有重要意義.
VLAN具有安全、隔離廣播風暴、簡單管理等優點[3],在網絡中有著廣泛的運用.因此,VLAN原理實驗是網絡課程教學中重要的內容之一.這里以VLAN原理實驗為例,說明在虛擬網絡環境下如何開展網絡課程實驗.
可以從3個方面設計驗證VLAN實驗,即隔離性、跨交換機VLAN 劃分和VLAN間通信[4].
3.1.1 驗證VLAN的隔離性
為驗證這一特性,在圖1的物理主機2中有VLAN10和VLAN11,將VM3/4/5配置同一網段的IP地址.
通過Ping測試,可以發現:VM3與VM4/5是不能通信的,而VM4和VM5之間則可以通信,這就說明不同的VLAN間是不能通信的,可以引導學生進行相關分析得出結論.同理,VM3與VM5也不可以通信.而VM4和VM5在同一個VLAN11中,則不存在上述問題.
3.1.2 跨交換機VLAN劃分
在圖1中,每個主機中都配置了兩個VLAN:VLAN10和VLAN11,虛擬機分別在兩個網絡中,如表2所示.同時,還分別配置了2個Bridge,這4個Bridge分別有端口屬于VALN10和VALN11.通過Ping測試,可以驗證:VM1和VM3,VM2和VM4/5,由于分別屬于同一VLAN,能進行相互通信,即使同一VALN里的虛擬機位于不同的物理主機中的Bridge,在不同VALN里的虛擬機之間則不能進行相互通信.
3.1.3 VLAN間的通信
要實現不同VLAN間通信,需要借助3層交換技術.在圖1中的3層交換機中,采用以下配置實現VLAN間互通.(1)劃分2個VALN:VALN10和VLAN11;(2)創建2個VLAN接口,配置IP地址分別為:172.168.10.1和172.168.11.1,并保證兩個接口對應的IP路由可通;(3)將VM1-VM5的缺省網關設置為所屬VLAN的接口IP地址.通過Ping測試,可以發現:這些虛擬機之間互通的,說明VLAN間的通信必須采用3層交換技術.
在以太網環境下,通過協議分析工具(如Wireshark),按照通常設計的實驗步驟及方法,可以很容易分析ARP協議的工作過程以及MAC幀格式,從而理解以太網的通信過程.
802.1Q協議通過在MAC幀中附加4字節的標識信息,把物理網絡從邏輯上進行劃分從而實現VLAN.為分析VLAN的通信過程,實驗中需要捕獲帶VLAN標記的數據包,而MAC幀通常是不帶標記的普通數據包.
為了捕獲含VLAN標記的數據包,需要在安裝協議分析的機器中修改網卡的配置,創建VLAN,使其能支持VLAN功能;同時,還需要設置網卡在系統中的相關注冊表項,使網卡向協議分析軟件傳遞數據時,將VLAN標記保留下來.不同類型的網卡在進行上述兩項配置時,其內容略有不同[5],這里不詳述配置過程.
在圖1中,將VM1和VM4按上述要求設置網卡支持VLAN功能,同時設置Windows系統中的相關注冊表項.這樣兩個虛擬機里運行的協議分析軟件就可以捕獲含VLAN標記的數據包.
先啟動VM1和VM4中的協議分析工具,按照3.1中3個實驗的步驟,重新實驗過程,這時就可以在分析工具中展示出數據包中的VLAN標記信息,幫助學生理解VLAN通信的原理.
目前,虛擬化技術的發展與成熟,基于Linux環境實現計算資源、網絡、存儲的虛擬化已非常方便容易.通過將網絡設備/物理主機虛擬化,在Linux虛擬網絡中構建網絡實驗環境,設計計算機網絡教學實驗,可以提高教師課組織課堂教學的靈活性,方便學生課外重構實驗.隨著虛擬化技術的不斷發展,虛擬實驗技術必將得到更廣應用.
[1]李紅,賀章擎,歐陽勇.IOT 環境下網絡實驗課程群及實驗綜合平臺建設[J].實驗室研究與探索,2016(9):191-195.
[2]韓芳,袁宇賓.計算機桌面虛擬化技術在教學及管理中的實現路徑研究[J].重慶理工大學學報(自然科學版),2014(7):105-109.
[3]謝希仁.計算機網絡[M].6版.北京:電子工業出版社,2013.
[4]楊姝.VLAN技術實驗的設計與仿真實現研究[J].實驗技術與管理,2014(3):114-117.
[5]陳立明.關于網卡支持VLAN以及抓包顯示VLANID的解決方法[J].中國有線電視,2014(11):1274-1277.
Design of network experiment environment based on Linux virtual network
Wen Chengyu, Du Hong, Ren Dehao
(Communication Engineering College of Chengdu University of Information Technology, Chengdu 610225, China)
In the course teaching of "Computer Network", restricted by network equipment and other factors, it is difficult for teachers to carry out some experimental experiments to assist classroom teaching. Therefore, in this paper, on the basis of studying the principle of Linux virtual network, virtual network devices and virtual machines are created to construct Linux virtual networks for simulating physical networks. Combined with the requirement of computer network teaching, a virtual network can be constructed to design computer network experiment by one's will.
Linux virtual network; experiment environment; experiment design
文成玉(1972- ),男,四川眉山人,副教授,碩士;研究方向:計算機網絡與通信.