李 勇, 相中啟, 楊華芬, 王勝文
(1.曲靖師范學院 信息工程學院,云南 曲靖 655011;2.上饒師范學院 數學與計算機科學學院,江西 上饒 334001;3.六盤水師范學院 數學與信息工程學院, 貴州 六盤水 553004)
在實際網絡組建過程中,為了減少網絡故障,通常會在一些關鍵鏈路上增加備份冗余鏈路,然而備份冗余鏈路的存在卻會產生網環(huán)路、引起廣播風暴,極大地消耗了網絡帶寬資源[1-2]。生成樹協(xié)議是解決網絡中環(huán)路的有效技術手段,在實際網絡組建過程中被廣泛使用,需要學生很好地加以掌握。因此,近年來,生成樹協(xié)議受到了廣泛關注,成為實踐教學中的研究重點。文獻[3-6]中分析了生成樹協(xié)議的工作原理、介紹了其實驗設計與實現(xiàn)。文獻[7-8]中介紹了使用生成樹協(xié)議解決網絡環(huán)路的技術方案。文獻[9-10]中討論了生成樹協(xié)議在園區(qū)網絡設計中的應用。
然而,在傳統(tǒng)的實踐教學過程中,由于實驗室設備、環(huán)境等因素的限制,無法很好地開展生成樹協(xié)議的實驗教學。為了有效地輔助生成樹協(xié)議的實驗教學,加深學生對兩種生成樹協(xié)議工作原理的理解、掌握兩種生成樹協(xié)議的配置命令,使用思科分組跟蹤器設計網絡結構進行實驗仿真,該模擬器不受設備、環(huán)境等因素的限制,學生隨時隨地可以進行實驗仿真、觀察和分析,可有效地鍛煉學生的實踐動手能力和分析問題解決問題的能力[11-12]。
根據IEEE 802.1d的定義,基本生成樹協(xié)議(Spanning-Tree Protocol, STP)是一種網橋嵌套協(xié)議,主要用于解決冗余網絡中的廣播風暴問題。其工作原理是,定義一個用于通信的網橋協(xié)議數據單元(Bridge Protocol Data Unit, BPDU),并用BPDU的相關機制來動態(tài)選擇根網橋和備份網橋,由于中心網橋到任何網段只有一個路徑存在,達到了消除網絡環(huán)路的目的。BPDU在生成樹算法中扮演著重要角色,通過廣播BPDU包,啟用生成樹協(xié)議的交換機或網橋可以確定各端口的工作狀態(tài)、角色、轉發(fā)數據幀的路徑,有關端口的角色分類和狀態(tài)轉換詳情可參考文獻[13], BPDU數據包格式如圖1所示。
圖1 BPDU數據包格式
其中,DMA為目的MAC地址;SMA為源MAC地址;L/T為幀長;LLC Header為配置消息固定的鏈路頭;Payload為BPDU數據,主要包括內容有根網橋RootID、從指定網橋到根網橋的最小路徑開銷RootPathCost、指定網橋ID、指定網橋指定端口ID等。
基本生成樹協(xié)議為實現(xiàn)無環(huán)樹網絡的構建,網絡中的橋接設備之間需要不斷的相互轉發(fā)BPDU,以便確定應該阻塞哪些接口,從邏輯上斷開哪些冗余備份鏈路。BPDU攜帶有根橋ID、橋優(yōu)先級、端口優(yōu)先級、路徑代價等用于生成樹計算的所有數據信息[13-15]。其中,橋ID由網橋優(yōu)先級+網橋MAC地址兩部分組成,路徑代價是由網絡鏈路長度、帶寬等因素累加因素決定的權值?;旧蓸鋮f(xié)議算法的具體實現(xiàn)過程主要包括選取根橋、選取根端口、選取指定端口3個階段。下面以圖2所示的帶環(huán)路初始網絡為例分析基本生成樹協(xié)議的具體工作過程。
圖2 帶環(huán)路初始網絡
(1) 選取根橋。根橋的選取辦法是先比較網絡中各網橋的優(yōu)先級,然后再比較各網橋MAC地址,如果優(yōu)先級相同,則選擇MAC地址數最小的作為根網橋,圖2中橋接器B1的優(yōu)先級最小,因此,選取B1為根橋,根橋B1上的所有端口均為指定端口,B2、B3、B4、B5為非根橋,以根橋為起始點出發(fā),構造通向網絡中每一個網橋和局域網的無環(huán)樹狀網絡。
(2) 選取根端口。計算以根橋B1為起點連接非根橋B2、B3、B4、B5中各端口的通路路徑,選取連接到根橋通路路徑最短的端口為非根橋的根端口,如果有多個端口連接的通路路徑最短,則根據選擇順序產生根端口,最后,以根端口連接到根橋的通路路徑為非根橋到根橋的最佳路徑、路徑值為非根橋到根橋的路徑值。由此,計算出B2連接至B1的最佳路徑為LAN1,路徑值為4,根端口為端口2;B3連接至B1的最佳路徑為LAN2,路徑值為4,根端口為端口2;B4連接至B1的最佳路徑為LAN3、LAN1,路徑值為23,根端口為端口3;B5連接至B1的最佳路徑為LAN4、LAN2,路徑值為104,根端口為端口2。
(3) 選取指定端口。以選取根端口階段計算的結果為LAN1、LAN2、LAN3、LAN4、LAN5各網段指定橋接器,選取到根橋路徑值最小的橋接器為指定橋接器,如果有多個橋接器到根橋路徑值最小,則選擇優(yōu)先級較小的橋接器為指定橋接器,如果指定橋接器有多個端口與指定網絡相連,則進一步比較端口的優(yōu)先級,選擇優(yōu)先級較小的端口為指定端口,其他端口為阻塞口。由此得出LAN1、LAN2為根橋的直連網絡,指定橋接器即為根橋,指定端口分別為根橋的端口1、端口2;LAN3連接根橋的指定橋接器為B2、指定端口為端口1;LAN4連接根橋的橋接器B2、B3的路徑值都為4,但B3的優(yōu)先級小于B4的優(yōu)先級,因此,LAN4連接根橋的指定橋接器為B3、指定端口為端口1,阻塞B2的端口3;LAN5連接根橋的指定橋接器為B4,B4中兩端口選擇端口2為指定端口,阻塞端口1,原因是端口2的優(yōu)先級小端口1。
按上述生成樹算法工作到收斂狀態(tài)(所有網橋或交換機的端口都轉變?yōu)檗D發(fā)狀態(tài)或阻塞狀態(tài)稱為收斂)后,圖2所示的帶環(huán)路初始網絡即可轉變?yōu)閳D3所示的無環(huán)路樹狀網絡,圖3中虛擬線表示從邏輯上應該阻塞的鏈路。
圖3 無環(huán)樹狀網絡
快速生成樹協(xié)議(Rapid Spanning Tree Protocol, RSTP)由STP發(fā)展而來,在IEEE 802.1w標準中對其規(guī)范進行了詳細描述,實現(xiàn)的思想基本一致。RSTP相對于STP來講,STP通常需要30~50 s的收斂時間,而RSTP為了減少收斂時間,多了一些減少收斂時間的措施,具體措施為:①口接入的是計算機或者其他不運行STP的設備時,使接口立即進入轉發(fā)狀;②當接入層交換機連接到主干交換機上的主鏈路出現(xiàn)故障時,立即切換到備份鏈路,而不需再要經過30~50 s時間;③當主干交換機之間的鏈路出現(xiàn)故障時,只需經過30 s后即切換至備份鏈路,比原有的50 s少20 s。因此,當網絡結構改變時,RSTP可以快速恢復網絡的連通性,具有收斂速度快、端口進行轉發(fā)狀態(tài)需要的時間短等優(yōu)點,比STP使用更為廣泛。
下面重點介紹RSTP協(xié)議實驗的仿真實現(xiàn)過程,有關STP協(xié)議實驗仿真的詳細過程描述可見文獻[6]。
RSTP協(xié)議實驗的目的是:① 理解RSTP協(xié)議的工作原理;② 掌握RSTP協(xié)議的配置方法。在Cisco Packet Tracer模擬器中使用2臺Cisco 2960交換機、2臺PC主機、4根網線互相連接構成如圖4所示的實驗拓撲結構,其中PC1、PC2的IP地址分別配置為192.168.1.10/24、192.168.1.20/24。
圖4 RSTP協(xié)議實驗拓撲結構
實驗步驟如下:
步驟1配置交換機SwitchA、SwitchB之間的Trunk鏈路,命令如下:
SwitchA(config)#int fa0/1
SwitchA(config-if)#switchport mode trunk
SwitchA(config)#int fa0/2
SwitchA(config-if)#switchport mode trunk
SwitchB(config)#int fa0/1
SwitchB(config-if)#switchport mode trunk
SwitchB(config)#int fa0/2
SwitchB(config-if)#switchport mode trunk
步驟2配置交換機SwitchA為根橋,命令如下:
SwitchA(config)#spanning-tree vlan 1 priority 4096
上述命令執(zhí)行完后,分別在SwitchA、SwitchB上執(zhí)行“show spanning-tree”命令檢查STP信息,發(fā)現(xiàn)SwitchB中fa0/2端口處于阻塞狀態(tài),結果如圖5所示,主要原因是,配置SwitchA為根橋,則SwitchB為非根橋,SwitchB中端口fa0/1、fa0/2分別從SwitchA中fa0/1、fa0/2端口接收BPDU,兩條路徑的Cost值都為19,但是SwitchB中端口fa0/1接收的BPDU中發(fā)送者端口為1,優(yōu)先級更高,被選為根口,進行轉發(fā)狀態(tài),而SwitchB中端口fa0/2接收的BPDU中發(fā)送者端口為2,優(yōu)先級更低,因此被阻塞。
圖5 SwitchB中STP信息
步驟3在SwitchB中關閉fa0/1,重復執(zhí)行“show spanning-tree”命令檢查重新生成的STP信息,發(fā)現(xiàn)fa0/2經過30 s后進入了轉發(fā)狀態(tài)。
步驟4配置RSTP,命令如下:
SwitchA(config)#spanning-tree mode rapid-pvst
SwitchB(config)#spanning-tree mode rapid-pvst
步驟5在SwitchB中關閉fa0/1,重復執(zhí)行“show spanning-tree”命令檢查重新生成的STP信息,發(fā)現(xiàn)fa0/2很快進入了轉發(fā)狀態(tài),無需等待30 s,這說明RSTP的收斂時間比基本STP有很大改善。
為進一步驗證RSTP協(xié)議的工作原理及其消除網絡環(huán)路的作用,分別在打開SwitchB中Fa0/1端口和斷開SwitchB中Fa0/1端口兩種情況下進行測試驗證,在PC1中輸入命令ping 192.168.1.20測試到PC2的連通性,結果如圖6所示。
圖6 主機PC1 Ping 主機PC2的測試結果
上述實驗步驟及測試結果表明,當網絡存在環(huán)路時,RSTP可以自主的選擇優(yōu)先級較高的路徑轉發(fā)數據幀,而阻塞優(yōu)先級低的路徑,消除環(huán)路。當優(yōu)先級較高的轉發(fā)路徑出現(xiàn)故障斷開時,RSTP可以快速的選擇優(yōu)先級較低的備份鏈路轉發(fā)數據幀。驗證了RSTP協(xié)議的工作原理、作用,及其相比于基本STP的優(yōu)勢,達到了實驗的目的。
本文詳細分析了兩種生成樹協(xié)議的工作原理,并基于CPT模擬器設計了實驗網絡結構,對RSTP協(xié)議進行實驗仿真,通過對仿真實驗的研究與分析,進一步加深了學習者對兩種生成樹協(xié)議工作原理和算法執(zhí)行過程的理解、使其更容易掌握兩種生成樹協(xié)議的配置命令。同時,實驗仿真與分析過程表明,在CPT模擬器中進行仿真實驗操作簡單、方便,有效地克服了真實網絡環(huán)境下實驗可操作性差的問題。