陳濱
(川北醫學院管理學院,四川 南充 637100)
計算機網絡是由一些看不見的網絡協議和各種可感知的具體網絡設備組成的,是一門典型的理論和實踐并重的學科[1]。因而針對計算機網絡的學習,我們不能只注重網絡協議這些理論知識,還應該加強實踐練習以掌握各種網絡設備的原理和操作,這同時可以鞏固和加深對理論知識的理解[2]。交換機作為目前網絡中使用最為廣泛的網絡設備,理解其基本的原理與功能是計算機網絡主要學習的目標之一。但是由于受限于現實的實驗室條件,相應的網絡硬件設備通常都比較缺乏,即使擁有部分實驗環境,學生可以分組進行實驗,但針對交換機原理與配置這種需要實際操作和驗證的實驗,往往也難以取得較好的教學效果。另一方面,在真實的設備上進行實驗,不能很好地查看和分析數據幀的傳輸情況,不能形象化地說明和驗證交換機的功能。因而,本文基于Packet Tracer進行實驗設計,詳細闡述了交換機的原理,通過Packet Tracer的交換機IOS命令以及利用Packet Tracer的仿真模式查看具體數據幀在網絡中的傳輸情況[3],逐步分析了交換機建立和維護MAC地址表的過程,同時也形象地展示和說明了交換機的整個工作過程。
Packet Tracer是由思科公司發布的一個輔助學習工具,為學習思科網絡課程的初學者提供了一個設計、配置、排除網絡故障的網絡模擬環境。該模擬器可以模擬思科的多種網絡設備,學習者可以通過拖拽的方式方便地建立網絡拓撲;并且它支持諸如HTTP、ARP、DHCP、DNS、RIP、OSPF、VTP、STP、TFTP、Telnet等常用協議,因此能完成基于ARP、VTP、DHCP等協議的實驗;此外,還可以使用Packet Tracer查看數據包(PDU)在網絡中詳細的處理過程,以便分析數據包的組成以及觀察網絡實時運行情況,可以讓學習者更好地理解網絡協議的工作原理和過程[4-5]。
交換機(Switch)是一種基于MAC地址識別,能完成封裝轉發數據包功能的網絡設備。交換機工作于OSI參考模型的數據鏈路層,它可以“學習”MAC地址,并把其存放在內部地址表中,通過在數據幀的始發者和目標接受者之間建立臨時的交換路徑,使數據幀直接由源地址到達目的地址,而不是像集線器(Hub)一樣向所有端口廣播[6]。因此,交換機可用于分割數據鏈路層廣播(沖突域),但是不能分割網絡層廣播(廣播域)。
交換機為了根據MAC地址進行數據幀的轉發,需要將這些MAC地址與對應的端口記錄在自己內部的一個MAC地址表中。其具體的工作流程如下[7-9]:
(1)交換機根據收到數據幀中的源MAC地址建立該地址同交換機端口的映射,并將其寫入MAC地址表,這是交換機的學習功能。
(2)讀取數據幀頭中的目的MAC地址,并在地址表中查找相應的端口,如有與該目的MAC地址對應的端口,把數據包直接復制到該端口上,這是交換機的轉發功能。同時更新MAC地址表中該記錄的記錄時間,這是交換機的更新功能。
(3)如果數據幀中的目的MAC地址不在MAC地址表中,則向所有端口轉發,這是交換機的泛洪功能。
(4)如果數據幀的目的地址指向的端口與接收數據幀的端口是同一個端口,這說明兩臺計算機通過Hub連接到同一端口,不需要交換機作轉發處理,這是交換機的過濾功能。
為了深入理解交換機的原理,熟悉交換機的基本配置命令,本實驗設計的學習目標主要有:
(1)掌握Packet Tracer網絡拓撲圖的繪制方法
(2)掌握交換機的基本配置命令
(3)理解交換機的原理
(4)理解交換機和集線器在工作原理上的差別
(5)熟悉Packet Tracer仿真模式的使用方法
為了達成以上的學習目標,本實驗采用如圖1所示的基于交換機星型網絡結構。在該拓撲圖中,采用了思科2960二層交換機,同時使用了集線器連接PC3和PC4,用來驗證交換機和集線器在工作原理上的差異。

圖1 仿真實驗拓撲結構圖
為了使得整個實驗有針對性和可操作性,實驗步驟之間的關系應該是一個難易度由低到高的遞增的關系。具體步驟和要求如下:
(1)根據實驗要求在Packet Tracer中畫出網絡拓撲圖。
(2)為各個PC設備配置IP地址、子網掩碼和MAC地址,并驗證各設備的連通性。各PC設備的詳細參數分配如表1所示。

表1 PC設備參數分配表
(3)對各交換機做基本的配置,比如設置名字、密碼等。
(4)通過交換機命令查看交換機的MAC地址表。
(5)通過發送數據幀驗證交換機的學習、轉發、泛洪、過濾功能。
(6)通過查看數據幀的傳輸情況驗證交換機和集線器的工作原理的差異。
下面依據實驗設計好的步驟,詳細說明每一步的操作過程。
(1)依照圖1中的網絡拓撲圖,從Packet Tracer的網絡組件區中選擇對應的網絡設備拖到邏輯工作區中,并用對應的網絡線纜進行連接。
(2)通過各PC的配置頁面來配置IP地址、掩碼和MAC地址。依照表1中的分配,為PC0配置地址如圖2所示,PC1~PC4依照PC0的配置方式進行。

圖2 PC0設備的參數配置
(3)對交換機進行基本的配置,比如禁用DNS查找,配置特權模式口令為admin,將控制臺和vty連接口令配置為hello等。具體的配置命令如下:
Switch(config)#no ip domain-lookup//禁用DNS查找
Switch(config)#enable secret admin//配置特權模式口令
Switch(config)#line console 0//配置控制臺口令
Switch(config-line)#password admin
Switch(config-line)#login
Switch(config-line)#line vty 015//配置VTY口令
Switch(config-line)#password hello
Switch(config-line)#login
(4)使用ping命令驗證各PC之間的連通性,確保所有PC都可以互通之后點擊Power Cycle Devices重啟整個網絡,這樣可以清空MAC地址表,同時在交換機上執行show macaddress-table,以查看MAC地址表,確認其為空,如圖3所示。

圖3 交換機初始MAC地址表
(5)切換Packet Tracer到仿真模式,點擊Edit Filter,只選擇其中的ARP,再點擊Capture/Forward啟動數據幀捕獲。然后在PC0上執行ping 192.168.10.12,接著通過點擊Capture/Forward來傳遞ARP數據幀,如圖4所示。當ARP數據幀到達交換機時,通過在交換機上執行show mac-address-table,可以查看到交換機的MAC地址表中有了PC0的MAC地址和對應的端口記錄,說明交換機學習了到PC0的MAC和端口記錄。

圖4 交換機的學習功能的驗證
(6)繼續點擊Capture/Forward按鈕,由于交換機MAC地址表中沒有PC2的MAC地址的記錄,因而交換機向所有其它端口廣播該數據幀,如圖5所示,這就是交換機的泛洪功能。這個時候可以選擇點擊Reset Simulation終止仿真過程或者點擊Auto Capture/Play等待整個仿真過程結束。

圖5 交換機的泛洪功能的驗證
(7)在各PC之間相互執行ping操作,使得交換機建立起完整的MAC地址表。這時點擊Edit Filter,只選擇其中的ICMP,再點擊Auto Capture/Forward開啟數據幀的自動捕獲,然后在PC0上執行ping 192.168.10.12,可以發現當ICMP數據幀到達交換機之后,交換機不是向所有端口轉發,而是直接傳遞到交換機的Fa0/3端口,這就是交換機的轉發功能。
(8)當步驟7中的數據幀模擬結束后,在PC3上執行ping命令來向PC4發送數據幀,這時可以發現交換機收到Hub發送來的數據幀后會直接將其丟棄,如圖6所示。因為在交換機的MAC地址表中,PC3和PC4的MAC對應的是同一個端口,所以就不進行轉發,這正是交換機的過濾功能。同時,注意到在Hub轉發ICMP數據幀的時候,總是向所有端口進行廣播,而交換機在學習到了MAC地址和端口的映射關系之后,只會采取單播的方式向目標端口轉發(如步驟6所示),這正是集線器和交換機工作原理的差異所在。

圖6 交換機的過濾功能的驗證
為了對交換機原理和功能進行深入理解,本文設計了比較合理的實驗流程和步驟,并通過Packet Tracer進行模擬仿真,形象地展示了交換機的工作過程,但由于受限于模擬器的限制,沒有能驗證交換機的更新功能。通過實際的教學反饋,基于Packet Tracer的實驗設計不僅可以降低硬件設備的投資成本,還能增強學生對理論知識的理解,提高實驗效率,達到甚至超過在真機上的實驗效果。