王麗娜, 劉 炎
(江蘇省氣象探測(cè)與信息處理重點(diǎn)實(shí)驗(yàn)室,江蘇省氣象傳感網(wǎng)技術(shù)工程中心,南京信息工程大學(xué)電子與信息工程學(xué)院,江蘇南京210044)
隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,各企事業(yè)單位對(duì)網(wǎng)絡(luò)的依賴越來越大,網(wǎng)絡(luò)的可用性已與企事業(yè)單位的生產(chǎn)效益息息相關(guān),構(gòu)建高可用性的網(wǎng)絡(luò)的需求越來越迫切,因而研究提高網(wǎng)絡(luò)的可靠性具有重要意義。在實(shí)際網(wǎng)絡(luò)工程設(shè)計(jì)中,可以考慮使用高端路由器和高端交換機(jī),這些路由器和交換機(jī)可靠性較高,其硬件本身性能較好,且其引擎和電源都有備份,如果主引擎或主電源出現(xiàn)故障,能夠自動(dòng)啟用備份引擎和電源。但是,這種方案也存在以下不足:①費(fèi)用昂貴,一臺(tái)高端路由器或者交換機(jī)的價(jià)格往往是幾臺(tái)甚至幾十臺(tái)中低端路由器或交換機(jī)的價(jià)格,不適應(yīng)經(jīng)費(fèi)相對(duì)短缺的用戶;②備份引擎的倒換速度不夠理想,往往需要幾min或更長(zhǎng)[1],滿足不了實(shí)時(shí)應(yīng)用程序的要求。
鑒于以上原因,一個(gè)可行的解決方案是部署兩臺(tái)或多臺(tái)中低端路由器和交換機(jī),并在網(wǎng)絡(luò)中同時(shí)聯(lián)合實(shí)施 HSRP[2-3]和 STP[4-6],分別提供網(wǎng)關(guān)冗余備份和二層鏈路冗余備份,以此來構(gòu)建高可用性網(wǎng)絡(luò)。和部署高端路由器或交換機(jī)相比,本方案性價(jià)比更高,適用用戶廣泛,并且故障時(shí)切換速度相對(duì)較快。利用各種仿真軟件組建虛擬通信網(wǎng)絡(luò),進(jìn)行虛擬網(wǎng)絡(luò)設(shè)備的配置和仿真成為網(wǎng)絡(luò)通信技術(shù)學(xué)習(xí)的主要研究方向[7-13]。本文結(jié)合實(shí)際IP網(wǎng)絡(luò)工程設(shè)計(jì),設(shè)計(jì)了網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),基于GNS3給出了這一解決方案的仿真模擬,并驗(yàn)證了方案的正確性和可行性。
GNS3是一款圖形界面的網(wǎng)絡(luò)環(huán)境模擬器,整合了Dynamips(用以支持用戶直接運(yùn)行Cisco系統(tǒng)的模擬機(jī))[14]、Dynagen(Dynamips的文字顯示前端)、Pemu(PIX防火墻設(shè)備模擬器)和Winpcap(Windows系統(tǒng)下公共網(wǎng)絡(luò)訪問組件)軟件[15],可在包括 Windows、Linux、MacOS等系統(tǒng)下運(yùn)行,提供了友好的操作界面,用戶可以方便地構(gòu)建各種復(fù)雜的網(wǎng)絡(luò)拓?fù)洌虞d不同CISCO IOS,仿真真實(shí)的網(wǎng)絡(luò)環(huán)境。
熱備份路由器協(xié)議(Hot Standby Router Protocol,HSRP)是思科開發(fā)的私有首跳冗余協(xié)議(First Hop Redundancy Protocol,F(xiàn)HRP),用來提供網(wǎng)關(guān)的冗余性。HSRP在一組路由器間虛擬一個(gè)網(wǎng)關(guān),管理員把網(wǎng)段中主機(jī)的默認(rèn)網(wǎng)關(guān)配置為虛擬網(wǎng)關(guān)的地址,發(fā)往虛擬網(wǎng)關(guān)的數(shù)據(jù)會(huì)被路由器中的一個(gè)活躍路由器轉(zhuǎn)發(fā)。
HSRP路由器默認(rèn)會(huì)向組播地址224.0.0.2 UDP 1985端口每隔3 s發(fā)送Hello消息,該消息中包含HSRP路由器的優(yōu)先級(jí)。搶占模式下優(yōu)先級(jí)最高的路由器成為活躍路由器,次高的成為備份路由器,優(yōu)先級(jí)相同則比較HSRP路由器發(fā)送Hello消息的端口IP地址,地址大的成為活躍路由器,次大的成為備份路由器。默認(rèn)10 s內(nèi)備用路由器沒有收到活躍路由器的Hello消息時(shí),自動(dòng)切換為活躍路由器,開始轉(zhuǎn)發(fā)流量。
生成樹協(xié)議(Spanning Tree Protocol,STP)被用來在數(shù)據(jù)鏈路層建立、維持一個(gè)無(wú)環(huán)回路。STP通過阻塞一些二層端口,使到達(dá)任何目標(biāo)好、只有一條邏輯鏈路。運(yùn)行STP的交換機(jī)相互交換橋接數(shù)據(jù)單元(Bridge Protocol Data Unit,BPDU)來選舉根網(wǎng)橋、根端口和指定端口。根端口和指定端口參與流量轉(zhuǎn)發(fā),既不是根端口又不是指定端口的端口將被阻塞。
(1)根網(wǎng)橋。最低優(yōu)先級(jí)的交換機(jī)成為根網(wǎng)橋,優(yōu)先級(jí)相同時(shí)比較交換機(jī)MAC地址,最小MAC地址的交換機(jī)成為根網(wǎng)橋。
(2)根端口。非根交換機(jī)到根交換機(jī)花費(fèi)最小的端口成為根端口,花費(fèi)相同時(shí)比較端口ID,端口ID低的成為指定端口。
(3)指定端口。每個(gè)網(wǎng)段都有一個(gè)指定端口,到根橋路徑花費(fèi)最低的交換機(jī)上網(wǎng)段端口為指定端口。
網(wǎng)絡(luò)拓?fù)淙鐖D1所示。
圖1 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
其中Multiswitch1和Multiswitch2是兩臺(tái)三層交換機(jī),Switch1和Switch2是兩臺(tái)以太網(wǎng)交換機(jī),Router是一臺(tái) CISCO 3640路由器。PC1、PC2是兩臺(tái)主機(jī)。Router上有環(huán)回口 loopback 0 ,被分配202.1.1.0/24網(wǎng)段,模擬外網(wǎng)。Multiswitch1,Multiswitch2,Router之間運(yùn)行RIP version2路由協(xié)議,保持內(nèi)部網(wǎng)絡(luò)的連通性。Switch1、Switch2均使用兩條鏈路分別和Multiswitch1和Multiswitch2相連,這兩條鏈路其中一條作為備份鏈路,以確保在某一條上行鏈路失效后網(wǎng)絡(luò)仍然能繼續(xù)運(yùn)行,同時(shí)Switch1和Switch2之間也有鏈路連接。
由于Switch1和Switch2上的備份上行鏈路和兩者之間鏈路的存在,并且 Multiswitch1、Multiswitch2、Switch1、Switch2之間的鏈路全部運(yùn)行在Trunk模式下,使得該網(wǎng)絡(luò)存在多個(gè)二層環(huán)路,因此必須實(shí)施STP來消除二層環(huán)路。
Multiswitch1,Multiswitch2是該局域網(wǎng)的兩個(gè)網(wǎng)關(guān),其中Multiswitch2作為備份網(wǎng)關(guān),這樣在主網(wǎng)關(guān)Multiswitch1出現(xiàn)故障后備用網(wǎng)關(guān)可以繼續(xù)維持局域網(wǎng)到外部的數(shù)據(jù)流轉(zhuǎn)發(fā)。為達(dá)到這一目的,在Multiswitch1和Multiswitch2上部署HSRP,以實(shí)現(xiàn)網(wǎng)關(guān)的備份和故障時(shí)自動(dòng)倒換。
值得注意的是應(yīng)充分考慮STP和HSRP同時(shí)運(yùn)行的一致性,即HSRP活躍路由器最好是STP中的根橋,這樣才能保證局域網(wǎng)所有流量均可到達(dá)活躍路由器,再由活躍路由器轉(zhuǎn)發(fā)。否則,HSRP活躍路由器和STP根橋的不一致有可能導(dǎo)致活躍路由器參與轉(zhuǎn)發(fā)流量的物理端口被STP阻塞,從而形成轉(zhuǎn)發(fā)黑洞,丟棄合法流量。
因此,本實(shí)驗(yàn)中把Multiswitch1的STP優(yōu)先級(jí)設(shè)置為較低值8192,HSRP優(yōu)先級(jí)設(shè)置為較高值105,確保在Multiswitch1正常運(yùn)行時(shí)既是HSRP活躍路由器又是STP根橋。同時(shí),把Multiswitch2的STP優(yōu)先級(jí)設(shè)置為 16384,HSRP優(yōu)先級(jí)設(shè)置為 100,這 樣Multiswitch1出現(xiàn)故障后,Multiswitch2會(huì)自動(dòng)切換成STP根橋和HSRP活躍路由器,繼續(xù)轉(zhuǎn)發(fā)局域網(wǎng)流量。
各設(shè)備端口的IP地址如表1所示。
表1 設(shè)備端口IP地址分配
以下是各設(shè)備的配置命令及簡(jiǎn)要解釋。
(1)Multiswitch1
Multiswitch1(config)spanning-tree vlan 1 priority 8192!修改優(yōu)先級(jí)為8192
Multiswitch1(config)interface FastEthernet0/0
Multiswitch1(config-if)switchport mode trunk!設(shè)置端口為trunk模式
Multiswitch1(config)interface FastEthernet0/1
Multiswitch1(config-if)switchport mode trunk
Multiswitch1(config)interface FastEthernet1/0
Multiswitch1(config-if)ip address 200.1.1.2 255.255.255.0!設(shè)置IP地址
Multiswitch1(config-if)no shutdown!開啟接口
Multiswitch1(config)interface Vlan1!進(jìn)入vlan1的網(wǎng)關(guān),此接口為虛擬三層接口,默認(rèn)關(guān)閉
Multiswitch1(config-if)ip address 100.1.1.1 255.255.255.0
Multiswitch1(config-if)no shutdown
Multiswitch1(config-if)standby 1 ip 100.1.1.3!啟用 HSRP并設(shè)置虛擬IP地址
Multiswitch1(config-if)standby 1 priority 105!設(shè)置優(yōu)先級(jí)為105,使成為活躍路由器
Multiswitch1(config-if)standby 1 preempt!允許搶占
Multiswitch1(config)router rip!啟用RIP
Multiswitch1(config-router)version 2!使用版本2
Multiswitch1(config-router)passive-interface Vlan1!禁止從vlan 1發(fā)送更新,節(jié)省資源
Multiswitch1(config-router)network 100.0.0.0!宣告主類網(wǎng)絡(luò)
Multiswitch1(config-router)network 200.1.1.0
Multiswitch1(config-router)no auto-summary!關(guān)閉自動(dòng)匯總
(2)Multiswitch2
Multiswitch2(config)interface FastEthernet0/0
Multiswitch2(config-if)switchport mode trunk
Multiswitch2(config)interface FastEthernet0/1
Multiswitch2(config-if)switchport mode trunk
Multiswitch2(config)interface FastEthernet1/0
Multiswitch2(config-if)ip address 201.1.1.2 255.255.255.0
Multiswitch2(config-if)no shutdown
Multiswitch2(config)interface Vlan1
Multiswitch2(config-if)ip address 100.1.1.2 255.255.255.0
Multiswitch2(config-if)no shutdown
Multiswitch2(config-if)standby 1 ip 100.1.1.3!啟用 HSRP并配置虛擬IP地址
Multiswitch2(config-if)standby 1 preempt
Multiswitch2(config)router rip
Multiswitch2(config-router)version 2
Multiswitch2(config-router)passive-interface Vlan1
Multiswitch2(config-router)network 100.0.0.0
Multiswitch2(config-router)network 201.1.1.0
Multiswitch2(config-router)no auto-summary
(3)Switch1
Switch1(config)no ip routing!關(guān)閉路由功能,模擬交換設(shè)備
Switch1(config)interface FastEthernet0/0
Switch1(config-if)switchport mode trunk
Switch1(config)interface FastEthernet0/1
Switch1(config-if)switchport mode trunk
Switch1(config)interface FastEthernet0/3
Switch1(config-if)switchport mode trunk
(4)Switch2
Switch2(config)no ip routing
Switch2(config)interface FastEthernet0/0
Switch2(config-if)switchport mode trunk
Switch2(config)interface FastEthernet0/1
Switch2(config-if)switchport mode trunk
Switch2(config)interface FastEthernet0/3
Switch2(config-if)switchport mode trunk
(5)Router
Router(config)interface Loopback0!啟用環(huán)回口,模擬外網(wǎng)
Router(config-if)ip address 202.1.1.1 255.255.255.0
Router(config-if)no shutdown
Router(config)interface FastEthernet0/0
Router(config-if)ip address 200.1.1.1 255.255.255.0
Router(config-if)no shutdown
Router(config)interface FastEthernet1/0
Router(config-if)ip address 201.1.1.1 255.255.255.0
Router(config-if)no shutdown
Router(config)router rip
Router(config-router)version 2
Router(config-router)passive-interface Loopback0
Router(config-router)network 200.1.1.0
Router(config-router)network 201.1.1.0
Router(config-router)network 202.1.1.0
Router(config-router)no auto-summary
(6)PC1
PC1(config)no ip routing!關(guān)閉路由功能,模擬主機(jī)
PC1(config)ip default-gateway 100.1.1.3!設(shè)置 PC 網(wǎng)關(guān)為虛擬網(wǎng)關(guān)地址
PC1(config)interface FastEthernet0/0
PC1(config-if)ip address 100.1.1.253 255.255.255.0
PC1(config-if)no shutdown
(7)PC2
PC2(config)no ip routing
PC2(config)ip default-gateway 100.1.1.3
PC2(config)interface FastEthernet0/0
PC2(config-if)ip address 100.1.1.254 255.255.255.0
PC2(config-if)no shutdown
配置完以上命令后,PC1,PC2均可Ping通Router的環(huán)回口loopback 0,同理可檢驗(yàn)其他設(shè)備之間都可以通信。根據(jù)STP特性分析拓?fù)鋱D可以知道正常情況Multiswitch1的優(yōu)先級(jí)最低(8192),被選舉為根網(wǎng)橋,所以端口f0/0和端口f0/1都是指定端口,處在轉(zhuǎn)發(fā)狀態(tài),使用show spanning-tree brief可以查看驗(yàn)證,如圖2所示。
圖2 交換機(jī)Multiswitch1的端口狀態(tài)
Multiswitch2上的端口f0/1是根端口,處在轉(zhuǎn)發(fā)狀態(tài),端口f0/0既不是指定端口又不是根端口,被阻塞。使用命令show spanning-tree brief驗(yàn)證,如圖3所示。
圖3 交換機(jī)Multiswithc2的端口狀態(tài)
Switch1上的端口f0/0是根端口,端口f0/1和端口f0/3是指定端口,三者都處在轉(zhuǎn)發(fā)狀態(tài);Switch2上端口f0/1是根端口,端口f0/0是指定端口,兩者都處在轉(zhuǎn)發(fā)狀態(tài),端口f0/3是阻塞端口。同樣可以使用命令驗(yàn)證,不再贅述。
由于Multiswitch1的VLAN1接口運(yùn)行HSRP,配置了優(yōu)先級(jí)105,比Multiswitch2的優(yōu)先級(jí)100高,且設(shè)置為搶占模式,所以Multiswitch1應(yīng)該為活躍路由器,處在active狀態(tài),參與轉(zhuǎn)發(fā)流量;而Multiswitch2為備份路由器,處在standby狀態(tài)。Multiswitch1上使用命令show standby驗(yàn)證。
為模擬Multiswitch1上的網(wǎng)關(guān)失效,現(xiàn)執(zhí)行接口模式命令 shutdown將Multiswitch1的物理接口f0/0和f0/1手動(dòng)關(guān)閉,模擬實(shí)際網(wǎng)絡(luò)環(huán)境中的網(wǎng)關(guān)故障。
關(guān)閉Multiswitch1的物理接口 f0/0、f0/1后,STP重新計(jì)算生成樹。此時(shí)由于Multiswitch2的優(yōu)先級(jí)較低,所以Multiswitch2成為根橋,Multiswitch2的物理接口f0/0和f0/1都會(huì)切換成指定端口,參與流量轉(zhuǎn)發(fā)。
由前文 HSRP協(xié)議的介紹可以知道,當(dāng)Multiswitch1上的網(wǎng)關(guān) interface vlan 1失效后,Multiswitch1不再向組播地址224.0.0.2發(fā)送Hello消息,一旦Multiswitch2的保持計(jì)時(shí)器(默認(rèn)是10 s)超時(shí)后,Multiswitch2會(huì)自動(dòng)切換到活躍路由器模式。此時(shí)Multiswitch2既是活躍路由器又是根橋。由于PC仍將流量發(fā)往HSRP進(jìn)程的虛擬網(wǎng)關(guān) 100.1.1.3,再由活躍路由器的物理接口轉(zhuǎn)發(fā)。即以上倒換過程對(duì)PC是透明的,故不需要修改PC的網(wǎng)關(guān),PC仍可以ping通Router的環(huán)回口,以PC1為例使用命令 traceroute驗(yàn)證。從圖4中輸出可以看到,Multiswitch1失效后,PC1去往 202.1.1.1 的流量由 Multiswitch2(100.1.1.2)轉(zhuǎn)發(fā)到Router(201.1.1.1)。同理可以測(cè)試 PC2的連通性。可見,在單一網(wǎng)關(guān)失效后,STP和HSRP協(xié)同運(yùn)作,自動(dòng)切換網(wǎng)關(guān)和根橋,仍然維持了網(wǎng)絡(luò)的可用性。
圖4 驗(yàn)證PC1到Router環(huán)回口的可達(dá)性
為提高網(wǎng)絡(luò)可用性,網(wǎng)絡(luò)冗余是部署網(wǎng)絡(luò)所必須考慮的一個(gè)重要環(huán)節(jié),而STP和HSRP是部署冗余網(wǎng)絡(luò)時(shí)應(yīng)用極其廣泛的兩個(gè)協(xié)議。因此,探究二者的結(jié)合使用具有重要的現(xiàn)實(shí)意義。本文結(jié)合工程實(shí)踐常用的拓?fù)浣Y(jié)構(gòu),提出了HSRP和STP的聯(lián)合應(yīng)用的解決方案,并在GNS3中實(shí)現(xiàn)仿真,測(cè)試了單一網(wǎng)關(guān)故障后網(wǎng)絡(luò)仍可正常轉(zhuǎn)發(fā)流量,方案的可行性得到驗(yàn)證。本方案也可在實(shí)際網(wǎng)絡(luò)部署中可以予以參考、借鑒。
[1] 吳 剛.HSRP協(xié)議在IP網(wǎng)絡(luò)設(shè)計(jì)中的研究與應(yīng)用[J].綿陽(yáng)師范學(xué)院學(xué)報(bào),2011,30(8):83-89.
[2] 崔北亮.CCNA認(rèn)證指南(640-802)[M]北京:電子工業(yè)出版社,2009.
[3] Richard Froom ,Balaji Sivasubramanian,Erum Frahim .CCNP SWITCH(642-813)[M].北京:人民郵電出版社,2011.
[4] 李志潔,姜 楠,王存睿,等.生成樹協(xié)議分析及其實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)科學(xué)與技術(shù),2010,8(2):48-50,133.
[5] 劉衛(wèi)斌.以太網(wǎng)環(huán)路保護(hù)協(xié)議STP研究[D].南京:南京理工大學(xué).2008:5-13.
[6] 王麗娜,馬杰良,夏景明.基于DynamipsGUI的小型局域網(wǎng)仿真[J].南京信息工程大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,3(3):265-269.
[7] 宋焱宏.利用Packet Tracer軟件實(shí)現(xiàn)交換機(jī)工作原理的模擬[J].電腦知識(shí)與技術(shù),2009,5(12):3142-3143.
[8] 程勇軍.利用模擬軟件改進(jìn)中高職網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)的探索[J].廣州廣播電視大學(xué)學(xué)報(bào),2008,8(2):52-55.
[9] 李領(lǐng)治,陸建德,徐建國(guó).基于NetSim的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)方案[J].實(shí)驗(yàn)技術(shù)與管理,2009,26(2):150-153.
[10] 王麗娜,何 軍,侯健敏,等.基于DynamipsGUI的兩類路由協(xié)議仿真通信實(shí)驗(yàn)[J].實(shí)驗(yàn)室研究與探索,2010,29(6):72-75,83.
[11] 顧春峰,李偉斌,蘭秀風(fēng).基于VMware、GNS3實(shí)現(xiàn)虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室[J].實(shí)驗(yàn)室研究與探索,2012,31(1):73-75,100.
[12] 劉雪飛,閆 欣,吳伯橋.GNS3搭建網(wǎng)絡(luò)虛擬環(huán)境實(shí)踐[J].電腦知識(shí)與技術(shù),2012,8(13):3019-3021.
[13] 姜恩華,竇德召.Packet Tracer軟件在無(wú)線網(wǎng)絡(luò)技術(shù)實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(10):88-90,99.
[14] Greg Anuzelli.Dynamips/Dynagen Tutorial[EB/OL].http://dynagen.org/tutorial.htm.
[15] 費(fèi)紹敏,龔曉峰,李 賓,等.基于Winpcap的網(wǎng)絡(luò)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].通信技術(shù),2009,42(11):206-207,210.