年 梅,張?zhí)m芳
(1.新疆大學 計算機科學與技術博士后流動站,新疆 烏魯木齊830054;2.新疆師范大學計算機科學與技術學院,新疆,烏魯木齊830054)
《計算機網(wǎng)絡》是信息技術相關專業(yè)本專科的必修課,是計算機科學與技術專業(yè)考研必考科目之一,要求學生掌握一定的理論深度。同時,網(wǎng)絡技術應用范圍越來越廣,社會對掌握網(wǎng)絡工程實踐技能的人才需求越來越大。針對這種狀況,我們將網(wǎng)絡課程的目標設置為:使學生熟練掌握計算機網(wǎng)絡的體系結(jié)構、局域網(wǎng)、廣域網(wǎng)、網(wǎng)絡互連和Internet協(xié)議等網(wǎng)絡基本原理和配置技術,讓學生能夠“學網(wǎng)”、“建網(wǎng)”、“用網(wǎng)”和“管網(wǎng)”,為后續(xù)學習和未來工作打下扎實的理論基礎和實踐技能。如何加深學生對網(wǎng)絡理論的理解以及讓學生掌握較強的實踐能力,網(wǎng)絡實驗起到了至關重要的作用。
目前,高校開設的《計算機網(wǎng)絡》實驗主要包括了三類:一是計算機網(wǎng)絡協(xié)議實驗,通過讓學生對網(wǎng)絡協(xié)議包的抓取和分析,加深對網(wǎng)絡體系結(jié)構,網(wǎng)絡協(xié)議的語法、語義以及協(xié)議執(zhí)行順序的理解。二是網(wǎng)絡工程實驗,幫助學生學會交換機、路由器以及服務器的配置,掌握管理局域網(wǎng)和廣域網(wǎng)基本技能。三是計算機網(wǎng)絡編程實驗,培養(yǎng)學生網(wǎng)絡編程的思想和方法。通過這幾類實驗的培養(yǎng),基本能夠滿足本課程培養(yǎng)目標要求。
目前的網(wǎng)絡實驗模式存在以下問題:有些學校沒有條件建立專門的網(wǎng)絡協(xié)議實驗室和網(wǎng)絡工程實驗室,無法開設網(wǎng)絡協(xié)議實驗,影響了學生對協(xié)議的理解;其次,很多高校的網(wǎng)絡協(xié)議和網(wǎng)絡工程類是專門的軟硬結(jié)合的實驗室,兩個實驗室中開設的實驗內(nèi)容相互隔離,無法根據(jù)教學需要自主設計和調(diào)整實驗內(nèi)容;網(wǎng)絡工程實驗只關注網(wǎng)絡設備和服務器的配置與管理,并未考慮服務實現(xiàn)中協(xié)議的作用。這種實驗方案無法將兩類實驗相結(jié)合,培養(yǎng)工程能力同時加深理論理解。如何解決以上問題,打破協(xié)議實驗和工程實驗之間的壁壘,滿足無協(xié)議實驗室高校能夠開設網(wǎng)絡協(xié)議類實驗,是本文要解決的主要問題。
《計算機網(wǎng)絡》中最重要的概念就是網(wǎng)絡協(xié)議。單純依靠教師講解網(wǎng)絡協(xié)議,學生缺乏對網(wǎng)絡協(xié)議的感性認識,無法深入地理解網(wǎng)絡協(xié)議。由于技術的不斷發(fā)展,網(wǎng)絡工具越來越多,出現(xiàn)了各種網(wǎng)絡嗅探器,如Sniffer、Wireshark等,這些工具能夠進行協(xié)議數(shù)據(jù)包的獲取和分析,因此能有效地彌補無網(wǎng)絡協(xié)議實驗室的問題。此外,網(wǎng)絡虛擬機軟件的出現(xiàn),能夠在一臺計算機上搭建客戶/服務器等復雜網(wǎng)絡拓撲,為學生獨立完成從網(wǎng)絡服務拓撲搭建到服務功能測試的實驗提供了技術支持。
由此可知,在普通機房中開設網(wǎng)絡服務器配置管理與協(xié)議分析實驗是可能的。但如何達到培養(yǎng)目標,最重要的問題是提供精心設計的實驗內(nèi)容,在實驗中融合服務功能和服務協(xié)議分析,在潛移默化中讓學生深入理解網(wǎng)絡協(xié)議的功能和作用。
Wireshark(前稱Ethereal)是一個網(wǎng)絡抓包分析軟件,其功能是抓取網(wǎng)絡中各層次的協(xié)議數(shù)據(jù)包,并盡可能顯示出最為詳細的網(wǎng)絡協(xié)議包的信息。網(wǎng)絡管理員可以使用Wireshark來檢測網(wǎng)絡問題,網(wǎng)絡安全工程師可以使用Wireshark來檢查資訊安全相關問題,我們可以使用Wireshark來學習網(wǎng)絡協(xié)定的相關知識。[1]本文主要利用Wireshark來獲取并分析網(wǎng)絡協(xié)議的語法、語義和順序,為學生深刻理解網(wǎng)絡協(xié)議和體系結(jié)構提供幫助。
VMwareWorkstation是一款功能強大的桌面虛擬計算機軟件,它可在一部實際機器上模擬完整的網(wǎng)絡環(huán)境,以及可便于攜帶的虛擬機器,利用VMwareWorkstation,可以在一個窗口中加載一臺虛擬機,它可以運行自己的操作系統(tǒng)和應用程序。用戶可以在運行于桌面上的多臺虛擬機之間切換,通過一個網(wǎng)絡共享虛擬機。該軟件為我們在普通的PC機上實現(xiàn)客戶/服務器網(wǎng)絡拓撲結(jié)構提供了支持。
本類實驗設計主要包括了以下步驟:
(1)確定實驗拓撲結(jié)構。該階段是整個實驗成功的關鍵,其主要任務是確定配置的服務器、客戶數(shù)量,考慮是否需要轉(zhuǎn)發(fā)設備等。
(2)根據(jù)服務器的功能,確定服務器和客戶機配置的參數(shù)以及如何通過客戶機測試服務器的功能。
(3)如有轉(zhuǎn)發(fā)設備或者中間設備,確定中轉(zhuǎn)設備的數(shù)量、硬件結(jié)構和配置參數(shù)。
(4)實驗拓撲中的每臺設備(包括服務器和客戶機)都安裝Wireshark軟件,設計在哪些設備上抓取協(xié)議包以及抓取該協(xié)議的哪些種類報文等。
(5)通過課程綱要中對協(xié)議的知識點要求,確定需要對哪些類型的協(xié)議報文進行分析以及如何分析協(xié)議的順序。確定重點分析協(xié)議報文中哪些字段及這些字段在協(xié)議中作用。
按照實驗設計的步驟,我們以DHCP實驗為例,介紹了如何應用該設計方法,進行DHCP實驗內(nèi)容的設計與實施。
動態(tài)主機配置協(xié)議 (DynamicHostConfiguration Protocol,DHCP)是一個局域網(wǎng)的網(wǎng)絡協(xié)議,使用UDP協(xié)議工作,主要有兩個用途:給內(nèi)部網(wǎng)絡或網(wǎng)絡服務供應商自動分配IP地址,給用戶或者內(nèi)部網(wǎng)絡管理員提供作為對所有計算機進行中央管理的手段。
DHCP是一種典型的客戶/服務器的服務模式,主要任務是IP地址的分配。DHCP對服務器的主要配置和管理就是對其預分配的地址范圍數(shù)據(jù)庫的管理。該地址范圍可以是一個網(wǎng)絡的也可以是多個網(wǎng)絡的??蛻魴C的配置就是使其能夠?qū)崿F(xiàn)自動地址獲取配置。
DHCP服務器除了能夠為本局域網(wǎng)內(nèi)的計算機分配IP地址外,還能給外網(wǎng)的機器分配IP地址,為此需要設計一臺DHCP中繼代理服務器,該中繼設備需要連接兩個網(wǎng)絡,可以對不在同一網(wǎng)絡中其它客戶機的請求和應答信息進行轉(zhuǎn)發(fā)。
DHCP協(xié)議實現(xiàn)過程中共有7種報文。Dhcpdiscover是client開始DHCP過程中的第一個請求報文;dhcpoffer是server對dhcpdiscover報文的響應;dhcprequst是client對dhcpoffer報文的響應;Dhcpdeclient是client發(fā)現(xiàn)server分配給它的IP地址無法使用(如IP地址發(fā)生沖突),將發(fā)出此報文讓server禁止使用這次分配的IP地址的報文;dhcpack是server對dhcprequst報文的響應,client收到此報文后才真正獲得了IP地址和相關配置信息;dhcpnack是server對client的dhcprequst報文的拒絕響應,client收到此報文后,一般會重新開始DHCP過程;dhcprelease是client主動釋放IP地址,當server收到此報文后就可以收回IP地址分配給其他的client。
圖1DHCP實驗的拓撲結(jié)構
按照對DHCP的分析,我們設置了2臺服務器,一臺用作DHCP服務器,一臺用作DHCP中繼代理服務器,該DHCP中繼代理服務器上需要配置兩塊網(wǎng)卡,一塊連接內(nèi)網(wǎng),一塊連接外網(wǎng)。為了驗證IP地址的分配結(jié)果以及轉(zhuǎn)發(fā)的結(jié)果,至少需要兩臺客戶機,是分別進行內(nèi)外網(wǎng)地址獲取的驗證設備。按照上述要求,設計了如圖1所示的拓撲結(jié)構。
(1)按照設計的DHCP實驗拓撲結(jié)構,安裝兩臺Windows2003server虛擬機和兩臺WindowsXP虛擬機。其中一臺server虛擬機設置為DHCP服務器,另一臺server虛擬機設置為DHCP中繼代理服務器(也稱轉(zhuǎn)發(fā)器),并在該機器中配置了兩塊網(wǎng)卡。設置兩個網(wǎng)段,即LANsegment1、LANsegment2。把DHCP服務器、客戶機A、DHCP中繼代理服務器的網(wǎng)卡1(本地連接)設置為LANsegment1,把客戶機B、DHCP中繼代理服務器的網(wǎng)卡2(本地連接2)設置為LANsegment2。
(2)設置DHCP服務器的IP地址、網(wǎng)關、DHCP作用域(LAN1和LAN2的地址范圍)。實驗時將DHCP服務器的 IP地址設置為 192.168.10.1, 網(wǎng)關為192.168.10.30(指向DHCP中繼代理服務器的IP地址),DNS為192.168.10.1;設置第一個DHCP作用域area1,范圍為192.168.10.2~192.168.10.50,要排除的IP地址為192.168.10.30,租約期限使用默認,路由器(默認網(wǎng)關)為192.168.10.1;設置第二個DHCP作用域area2,其范圍為192.168.20.2~192.168.20.50,地址租約期限設置默認,路由器(默認網(wǎng)關)為192.168.20.1;建立超級作用域hr,包括area1和area2兩個作用域,并授權。
(3)DHCP中繼代理服務器的配置。DHCP中繼代理服務器的網(wǎng)卡1連接DHCP服務器,IP地址為192.168.10.30(DHCP服務器的網(wǎng)關地址),網(wǎng)卡2連接LAN2,IP地址為192.168.20.1;在該機器上配置路由轉(zhuǎn)發(fā)和DHCP中繼代理功能使子網(wǎng)192.168.20.0的客戶機可以使用子網(wǎng)192.168.10.0的DHCP服務器。
(4)用主機A和B進行內(nèi)外網(wǎng)獲取地址的測試。將機器的TCP/IP屬性設置為“自動獲取IP地址”以及“自動獲取DNS服務器的地址”。
(5)DHCP協(xié)議實現(xiàn)過程中共有7種報文,為了盡可能測試各種協(xié)議報文的作用和執(zhí)行順序,設計了以下實驗內(nèi)容,每個實驗前都需要:打開所有設備上的Wireshark軟件,設置為俘獲DHCP協(xié)議數(shù)據(jù)包,并啟動數(shù)據(jù)俘獲功能。每個實驗結(jié)束后都停止俘獲報文并進行實驗分析。
①分別在每個客戶機上使用命令IPCONFIG/all查看獲取IP地址的結(jié)果,并整理獲取的所有DHCP報文,分析報文的地址和類型字段。列出俘獲的各類DHCP報文的順序。
②分別在每個客戶機上使用命令。IPCONFIG/release釋放IP地址,整理獲取的DHCP報文,分析這些報文的地址和類型字段。列出俘獲的各類DHCP報文的順序。
③將DHCP中繼代理服務器上。Wireshark軟件打開,在其兩塊網(wǎng)卡上設置DHCP協(xié)議報文的俘獲,然后分別在兩個客戶機上使用命令IPCONFIG/renew重新獲取IP地址。停止DHCP中繼代理服務器上的DHCP俘獲,整理兩個網(wǎng)絡接口上獲取的各類DHCP報文,分析報文類型和順序。對兩個接口上俘獲的DHCP請求、應答報文的地址信息進行記錄然后比較。
按照實驗設計得到以下的實驗結(jié)果:
(1)在兩臺客戶機上執(zhí)行了IPCONFIG/all命令后,兩個主機上均獲得了正確的IP地址,證明DHCP服務設置正確。同時,我們在實驗的DHCP服務器上獲取了地址分配時的DHCP報文,如圖2所示。在圖2中用方框標識的是為主機A分配IP所用DHCP報文,可以看出DHCP地址分配使用了四類報文,分別是dhcpdiscover、dhcpoffer、dhcprequest和dhcpack,以上列出的順序就是該協(xié)議報文的執(zhí)行順序。圖2下半部分是dhcpoffer報文的解析結(jié)果,通過解析清楚地看到擬分配的地址是192.168.10.2以及該地址的各種租約期限等。
圖2客戶機B執(zhí)行ipconfig/all的結(jié)果
圖3執(zhí)行ipconfig/release和ipconfig/renew的結(jié)果
(2)使用IPCONFIG/release后,在DHCP服務器上獲取了如圖3上半部分所示的數(shù)據(jù)包,表示192.168.20.2(客戶機B)、192.168.10.2(客戶機A)釋放IP地址時僅使用了一種報文,即dhcprelease報文。使用IPCONFIG/renew后,在DHCP服務器上俘獲的DHCP報文如圖3下半部分所示。從圖3中可以看出,renew過程相當于執(zhí)行了一次地址釋放和一次地址分配過程。在圖3中,用方框標識的是主機A地址獲取時的DHCP報文,剩下的報文則是主機B地址獲取時的DHCP。
圖4DHCP轉(zhuǎn)發(fā)器網(wǎng)卡1、2獲取的DHCP報文
(3)在DHCP中繼代理服務器上,網(wǎng)卡1上俘獲的DHCP報文如圖4上半部分所示,網(wǎng)卡2上俘獲的DHCP報文如圖4下半部分所示。從圖4上下兩部分的對比發(fā)現(xiàn),主機B發(fā)出的dhcpdiscover和dhcprequest,在LANsegment2上傳遞時,報文的源地址為0.0.0.0,目標地址為255.255.255.255,由此證明是廣播傳遞。經(jīng)DHCP轉(zhuǎn)發(fā)器轉(zhuǎn)發(fā)后,報文的源地址為192.168.20.1(DHCP中繼代理地址),目標地址為192.168.10.1,轉(zhuǎn)變?yōu)閱尾鬟f。為了更為清晰地表達,我們在圖4上下兩部分的對應位置上用方框進行了標識。從以上對比證實了DHCP在跨網(wǎng)地址分配時,DHCP的請求應答報文在不同的網(wǎng)段上以不同的傳播方式進行傳遞。
四、結(jié)束語
計算機網(wǎng)絡是一門理論與實踐結(jié)合非常緊密的課程,通過實驗能夠加深對理論的理解,掌握計算機網(wǎng)絡工程的實踐技能。精心設計的實驗,能夠讓學生在工程中深入理解網(wǎng)絡原理,激發(fā)他們的求知欲望,同時充分利用現(xiàn)有信息技術,解決一些學校在設備不足的情況下,提升學生的綜合設計性能力的實驗思路。本文以網(wǎng)絡中常用的DHCP協(xié)議為例,介紹了該類實驗設計的思路。限于篇幅,文中未將所有的實驗結(jié)果羅列出來,如僅將dhcpoffer的解析展示給大家,教師還可以根據(jù)需要設計分析更多的協(xié)議報文以及協(xié)議字段的信息,引導學生進行深入思考。希望通過本文,給教師們一點參考,能夠促進教師將多年的教學經(jīng)驗進行總結(jié),為學生精心設計更多的綜合性實驗,幫助學生達到課程培養(yǎng)的目標。
[1]百度百科.Wireshark[DB/OL]http://baike.baidu.com/link?url=W1Su2atwHdLqM0wSTk2QsXPkHdF0VZrPF7lDXUWsE_fZtFmMs54YEcOwmp1GlRR,2013-10-22/2013-10-31.
[2]謝希仁.計算機網(wǎng)絡[M].北京:電子工業(yè)出版社,2008:224-232.
[3]蔣一川,王陳章,曹巖,高菲等.計算機網(wǎng)絡實驗教學系統(tǒng)V1.1實驗教程(IPv4網(wǎng)絡協(xié)議篇)[M].吉林中軟吉大信息技術有限公司.2011.8:162-175.
[4]朱小明.中等職業(yè)學?!坝嬎銠C網(wǎng)絡”實踐教學的研究與思考[J]中國電化教育,2013(2):102-105.
[5]吳海濤,郭麗紅.DNS協(xié)議分析與安全檢測[J].計算機安全,2009(4):24-27.