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