華為設(shè)備二層交換技術(shù)ˉ多生成樹(shù)MSTP(華為交換機(jī) 生成樹(shù))
前面提到的STP協(xié)議以及Cisco的私有協(xié)議PVST+都屬于單生成樹(shù)(SST)協(xié)議,也就是對(duì)于支持多VLAN的設(shè)備只能運(yùn)行單一的生成樹(shù)。可以參考博文:Cisco設(shè)備二層交換技術(shù)——STP協(xié)議詳解
MSTP是IEEE 802.1s中提出的一種STP和VLAN結(jié)合使用的新協(xié)議,它既繼承了RSTP端口快速遷移的優(yōu)點(diǎn),又解決了RSTP中不同VLAN必須運(yùn)行在同一棵生成樹(shù)上的問(wèn)題。接下來(lái)我們?cè)敿?xì)了解一下MSTP協(xié)議。
MSTP協(xié)議是一個(gè)公有的生成樹(shù)協(xié)議,在實(shí)際生產(chǎn)環(huán)境中得到了廣泛的應(yīng)用。
一、MSTP概述
傳統(tǒng)的生成樹(shù)只能運(yùn)行一個(gè)實(shí)例,且收斂速度慢,RSTP在傳統(tǒng)STP基礎(chǔ)上通過(guò)改進(jìn)達(dá)到了加速網(wǎng)絡(luò)拓補(bǔ)收斂的目的,但是目前依然存在一些缺陷。由于STP和RSTP在整個(gè)局域網(wǎng)中,所有的VLAN共享一個(gè)生成樹(shù)實(shí)例,因此無(wú)法實(shí)現(xiàn)基于VLAN的負(fù)載均衡,網(wǎng)絡(luò)環(huán)境穩(wěn)定狀態(tài)下備份鏈路始終不能轉(zhuǎn)發(fā)數(shù)據(jù)流量,造成帶寬的浪費(fèi)!如圖:
當(dāng)交換機(jī)S1為根網(wǎng)橋時(shí),S2和S3之間的鏈路將處于阻塞狀態(tài),不能轉(zhuǎn)發(fā)任何流量。即使網(wǎng)絡(luò)出現(xiàn)擁塞時(shí),S2和S3之間的鏈路也不可以被使用,造成資源的浪費(fèi)!
學(xué)過(guò)Cisco的朋友都知道Cisco的PVST技術(shù)是一種基于VLAN的生成樹(shù)技術(shù)。每個(gè)VLAN運(yùn)行一個(gè)生成樹(shù),可以重復(fù)使用所有的鏈路,但是當(dāng)企業(yè)生產(chǎn)環(huán)境中,有很多VLAN(比如100個(gè)VLAN時(shí)),交換網(wǎng)絡(luò)中就需要運(yùn)行100多個(gè)生成樹(shù)實(shí)例,從而將大量占用交換設(shè)備的硬件資源及網(wǎng)絡(luò)開(kāi)銷。
PVST和MSTP的比較圖:
下面詳細(xì)介紹一下——MSTP
MSTP是多生成樹(shù)技術(shù),允許在一個(gè)交換環(huán)境中運(yùn)行多個(gè)生成樹(shù),每個(gè)生成樹(shù)成為一個(gè)實(shí)例。實(shí)例之間的生成樹(shù)彼此獨(dú)立,比如一個(gè)實(shí)例下的阻塞接口在另一個(gè)實(shí)例中可能是轉(zhuǎn)發(fā)接口。和PVST不同的是:MSTP允許多個(gè)VLAN運(yùn)行一個(gè)生成樹(shù)實(shí)例。大部分情況下,運(yùn)行多個(gè)生成樹(shù)實(shí)例的好處就在于鏈路的負(fù)載分擔(dān),但是當(dāng)只有一個(gè)冗余鏈路時(shí),運(yùn)行兩個(gè)生成樹(shù)實(shí)例完全可以實(shí)現(xiàn)負(fù)載均衡,同時(shí)又能節(jié)約系統(tǒng)開(kāi)銷。如圖:
現(xiàn)實(shí)企業(yè)環(huán)境中,網(wǎng)絡(luò)環(huán)境中運(yùn)行多個(gè)實(shí)例是非常常見(jiàn)的情況。因?yàn)檫@樣可以實(shí)現(xiàn):不同實(shí)例的根網(wǎng)橋在不同物理交換機(jī)上,不但可以實(shí)現(xiàn)負(fù)載分擔(dān),而且不會(huì)因?yàn)檫^(guò)多的實(shí)例而占用系統(tǒng)資源。
MSTP將環(huán)形網(wǎng)絡(luò)修剪成一個(gè)無(wú)環(huán)的樹(shù)形網(wǎng)絡(luò),避免廣播風(fēng)暴的發(fā)生,同時(shí)還提供了數(shù)據(jù)轉(zhuǎn)發(fā)的多個(gè)冗余路徑,在數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程中實(shí)現(xiàn)VLAN數(shù)據(jù)的負(fù)載均衡。MSTP還兼容STP和RSTP。
MSTP把一個(gè)交換網(wǎng)絡(luò)劃分成多個(gè)域,每個(gè)域內(nèi)形成多棵生成樹(shù),生成樹(shù)之間彼此獨(dú)立。每棵生成樹(shù)成為一個(gè)多生成樹(shù)實(shí)例(MSTI),每個(gè)域稱為一個(gè)MST域。
MSTP通過(guò)設(shè)置VLAN映射表,把VLAN和MSTI聯(lián)系起來(lái)。每個(gè)VLAN只能對(duì)應(yīng)一個(gè)MSTI,即同一VLAN的數(shù)據(jù)只能在一個(gè)MSTI中傳輸,而一個(gè)MSTI可以對(duì)應(yīng)多個(gè)VLAN。這樣就可以充分的利用網(wǎng)絡(luò)帶寬,有效避免資源浪費(fèi)!
二、MSTP的基本原理
在MSTP中。通過(guò)把整個(gè)互聯(lián)的二層以太網(wǎng)劃分成若干域。在域內(nèi),把其中的VLAN分成若干組,每組具有相同的拓補(bǔ)結(jié)構(gòu),然后定義若干MSTI,并把這些生成樹(shù)實(shí)例和不同的VLAN映射起來(lái)!
所謂實(shí)例就是多個(gè)VLAN的一個(gè)集合。通過(guò)將多個(gè)VLAN映射到一個(gè)實(shí)例,可以節(jié)省通信開(kāi)銷和資源占用率。MSTP各個(gè)實(shí)例拓補(bǔ)的計(jì)算相互獨(dú)立,在這些實(shí)例上可以實(shí)現(xiàn)負(fù)載均衡??梢园讯鄠€(gè)相同拓補(bǔ)結(jié)構(gòu)的VLAN映射到一個(gè)實(shí)例中,這些VLAN在接口上的轉(zhuǎn)發(fā)狀態(tài)取決于接口在對(duì)應(yīng)MSTP實(shí)例的狀態(tài)。
如果僅僅是為了防止廣播風(fēng)暴等環(huán)路問(wèn)題,運(yùn)行CST已經(jīng)可以實(shí)現(xiàn)。運(yùn)行多實(shí)例的主要目的在于使其負(fù)載分擔(dān)鏈路負(fù)載。所以運(yùn)行的生成樹(shù)實(shí)例數(shù)量一般取決于冗余線路的數(shù)量,如果只有一條冗余線路,那么最好運(yùn)行兩個(gè)實(shí)例。如果有兩條冗余鏈路,那么運(yùn)行三個(gè)實(shí)例將是最好的選擇,并盡可能保證每個(gè)實(shí)例中流量相差不大。
1.MSTP的網(wǎng)絡(luò)層次
一個(gè)二層交換網(wǎng)絡(luò)可以劃分多個(gè)MSTP域,每個(gè)生成樹(shù)域可以劃分成多個(gè)MSTI,每個(gè)實(shí)例中可以映射多個(gè)VLAN。為了讓朋友更加詳細(xì)的了解,請(qǐng)看下圖:
圖中的MSTP網(wǎng)絡(luò)中包含3個(gè)MST域,分別是A、B、C,每個(gè)MST域中包含一個(gè)或多個(gè)MSTI。以MSTP域B為例,包含兩個(gè)MSTI,分別是Instance1和Instance2。Instance1和VLAN15映射;Instance2和VLAN610映射。
2.MST域
MST域是多生成樹(shù)域,由局域網(wǎng)中的多臺(tái)交換機(jī)及它們之間的網(wǎng)段構(gòu)成。一個(gè)局域網(wǎng)可以存在多個(gè)MST域,各MST域之間在物理上直接或間接相連。用戶可以通過(guò)MSTP配置命令把多臺(tái)交換機(jī)劃分在同一個(gè)MST域內(nèi)。MST域中的交換機(jī)都啟用了MSTP,配置相同的域名及VLAN映射表。
3.MSTI
一個(gè)MST域內(nèi)可以運(yùn)行多個(gè)MSTI,MSTI之間彼此獨(dú)立,MSTI可以與一個(gè)或者多個(gè)VLAN對(duì)應(yīng)。但一個(gè)VLAN只能與一個(gè)MSTI對(duì)應(yīng)。
4.端口角色
為了更好的理解端口的角色,請(qǐng)看下圖:
MSTP中的角色主要有以下幾種:**根端口:**非根交換機(jī)上到根交換機(jī)開(kāi)銷最小的端口就是該交換機(jī)的根端口。根端口能夠轉(zhuǎn)發(fā)數(shù)據(jù)流量到根交換機(jī);圖中P3、P4、P8為根端口。**指定端口:**該交換機(jī)向下游交換機(jī)發(fā)送BPDU或者數(shù)據(jù)流量的端口;圖中的P1、P2、P6(R3優(yōu)先級(jí)高于R2)端口為指定端口。**邊緣端口:**位于網(wǎng)絡(luò)最邊緣處,不參與生成樹(shù)計(jì)算,一般作為連接非交換機(jī)設(shè)備;如終端服務(wù)器、PC等。**預(yù)備端口:**從轉(zhuǎn)發(fā)流量的角度來(lái)看,預(yù)備端口提供了到達(dá)根交換機(jī)的一個(gè)備份鏈路。其接口狀態(tài)為阻塞,不轉(zhuǎn)發(fā)數(shù)據(jù)流量。當(dāng)根端口被阻塞時(shí),預(yù)備端口將成為新的根端口,主要是為了備份根端口;圖中P5為預(yù)備端口。**備份端口:**當(dāng)同一臺(tái)交換機(jī)的兩個(gè)端口互相連接時(shí)就會(huì)形成一個(gè)環(huán)路,此時(shí)交換機(jī)會(huì)將其中一個(gè)端口堵塞,備份端口就是被堵塞的端口;從發(fā)送BPDU來(lái)看,備份端口就是由于學(xué)習(xí)到本設(shè)備上的其他端口發(fā)送的BPDU而被堵塞的端口;從轉(zhuǎn)發(fā)用戶流量來(lái)看,備份端口作為指定端口的備份,提供了一條從根交換機(jī)到葉節(jié)點(diǎn)(非根交換機(jī))的備份鏈路;主要是備份指定端口;圖中P7為指定端口。
MSTP中的端口角色除了邊緣端口外,其他端口角色都參與MSTP的計(jì)算過(guò)程。同一端口在不同的MSTI可以擔(dān)任搞不同的角色。
5.MSTP的端口狀態(tài)
MSTP的端口有以下三種:
Forwarding:在這種狀態(tài)下,端口既轉(zhuǎn)發(fā)用戶流量,又接收/發(fā)送BPDU報(bào)文,稱為轉(zhuǎn)發(fā)狀態(tài);
Learning:這是一種過(guò)渡狀態(tài)。在Learning狀態(tài)下,交換機(jī)會(huì)根據(jù)收到的用戶流量,學(xué)習(xí)MAC地址表,但不轉(zhuǎn)發(fā)用戶流量,所以稱為學(xué)習(xí)狀態(tài)。Learning狀態(tài)的端口接收/發(fā)送BPDU報(bào)文,但不轉(zhuǎn)發(fā)用戶流量;
Discarding:在這種狀態(tài)下,端口只接收BPDU報(bào)文,稱為丟棄狀態(tài);
三、MSTP的保護(hù)功能
1.BPDU保護(hù)
在交換機(jī)上,通常將直接與用戶終端或文件服務(wù)器等非交換機(jī)設(shè)備相連的端口配置為邊緣端口,以實(shí)現(xiàn)這些端口的快速收斂。正常情況下,這些端口不會(huì)收到BPDU。如果有人偽造BPDU惡意操作交換機(jī),當(dāng)這些端口接收到BPDU是,交換機(jī)會(huì)自動(dòng)將這些端口設(shè)置為非邊緣端口,并重新進(jìn)行生成樹(shù)計(jì)算,從而引起網(wǎng)絡(luò)震蕩。
啟用BPDU保護(hù)功能后,如果接口收到BPDU報(bào)文,那么該接口將被自動(dòng)shutdown,從而避免了后續(xù)的非法操作及由此帶來(lái)的網(wǎng)絡(luò)震蕩。配置的命令如下:
[SW1]stp bpdu-protection
//啟用BPDU保護(hù)
12
2.根保護(hù)
由于管理失誤或人為惡意操作,網(wǎng)絡(luò)中的合法交換機(jī)的端口可能會(huì)接收到優(yōu)先級(jí)更高的BPDU,這將使目前網(wǎng)絡(luò)中的根失去根的地位,之后將重新計(jì)算生成樹(shù),引起網(wǎng)絡(luò)震蕩,還有可能造成網(wǎng)絡(luò)擁塞。為了防止以上情況的發(fā)生,交換機(jī)提供根保護(hù)功能。根保護(hù)功能維持端口的角色來(lái)保護(hù)根交換機(jī)的地位。配置了根保護(hù)功能的端口,在所有實(shí)例上的端口角色都保持為指定端口。當(dāng)端口收到優(yōu)先級(jí)更高的BPDU時(shí),端口的角色不會(huì)變?yōu)榉侵付ǘ丝?,而是進(jìn)入偵聽(tīng)狀態(tài),不再轉(zhuǎn)發(fā)報(bào)文。經(jīng)過(guò)足夠長(zhǎng)的時(shí)間,如果端口一直沒(méi)有再收到優(yōu)先級(jí)較高的BPDU,端口則會(huì)恢復(fù)原本的正常狀態(tài)。配置命令如下:
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]stp root-protection
//開(kāi)啟根保護(hù)功能
123
3.環(huán)路保護(hù)
根端口和其他阻塞端口狀態(tài)會(huì)周期性地接收來(lái)自上游交換機(jī)的BPDU。當(dāng)鏈路擁塞或者單向鏈路故障時(shí),這些端口無(wú)法接收來(lái)自上游交換機(jī)的BPDU,交換機(jī)會(huì)重新選擇根端口。原先的根端口會(huì)轉(zhuǎn)變?yōu)橹付ǘ丝冢茸枞亩丝跁?huì)變成轉(zhuǎn)發(fā)狀態(tài),從而造成交換網(wǎng)絡(luò)中可能產(chǎn)生環(huán)路。環(huán)路保護(hù)功能會(huì)抑制這種環(huán)路的產(chǎn)生。在啟動(dòng)了環(huán)路保護(hù)功能后,如果根端口收不到來(lái)自上游的BPDU,根端口會(huì)被設(shè)置進(jìn)入阻塞狀態(tài);而阻塞端口則會(huì)一直保持在阻塞狀態(tài),不再轉(zhuǎn)發(fā)報(bào)文,從而不會(huì)在網(wǎng)絡(luò)中形成環(huán)路。收到拓補(bǔ)變更的BPDU時(shí),端口才會(huì)被激活。配置命令如下:
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]stp loop-protection
//啟用環(huán)路保護(hù)功能
123
4.TC保護(hù)
交換機(jī)在接收到TC-BPDU報(bào)文后,會(huì)執(zhí)行MAC地址表項(xiàng)和ARP表項(xiàng)的刪除操作。如果有人偽造TC-BPDU報(bào)文非法操作交換機(jī),交換機(jī)短時(shí)間內(nèi)會(huì)收到很多TCP-BPDU報(bào)文,頻繁的刪除操作會(huì)給設(shè)備造成很大的負(fù)擔(dān),給網(wǎng)絡(luò)的穩(wěn)定帶來(lái)很大的隱患,啟用TC保護(hù)功能后,在單位時(shí)間內(nèi),MSTP進(jìn)程收到TC類型BPDU報(bào)文的數(shù)量大于配置的閾值,那么MSTP進(jìn)程只會(huì)處理閾值指定的次數(shù)。對(duì)于其他超出閾值的TC類型BPDU報(bào)文,定時(shí)器到期后,MSTP進(jìn)程只對(duì)其統(tǒng)一處理一次,這樣可以避免頻繁的刪除MAC地址表項(xiàng)和ARP表項(xiàng),從而達(dá)到保護(hù)交換機(jī)的目的。配置命令如下:
[SW1]stp tc-protection threshold 3
//啟用TC保護(hù),并設(shè)置的閾值為3
12
四、MSTP的相關(guān)配置
1.案例環(huán)境如下:
2.案例要求
1.所有交換機(jī)啟用MSTP協(xié)議,區(qū)域名稱改為huawei,修改版本級(jí)別為1;2.利用MSTP協(xié)議VLAN10和VLAN20的互訪;3.VLAN10的流量走向:PC1→S3→S1→R1;4.VLAN20的流量走向:PC2→S3→S2→R1;
3.案例實(shí)施
(1)配置客戶端及路由器IP地址
配置客戶端地址過(guò)程過(guò)程略!配置路由器地址如下:
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 10.1.10.254 24
[R1-GigabitEthernet0/0/1]int g0/0/0
[R1-GigabitEthernet0/0/2]ip add 10.1.20.254 24
//華為設(shè)備接口默認(rèn)是開(kāi)啟的,也可以使用undo shutdown開(kāi)啟一下!
12345
(2)配置VLAN及Trunk
本次實(shí)驗(yàn)中,客戶機(jī)與交換機(jī)連接口為Access接口,二層交換機(jī)與交換機(jī)連接口為Trunk接口,二層交換機(jī)和路由器連接口為Hybrid接口。常識(shí):路由器不可以識(shí)別帶VLAN標(biāo)簽的數(shù)據(jù)幀。
S1的配置如下:
[S1]vlan batch 10 20
[S1]int g0/0/2
[S1-GigabitEthernet0/0/2]port link-type hybrid
[S1-GigabitEthernet0/0/2]port hybrid untagged vlan 10
[S1-GigabitEthernet0/0/2]port hybrid pvid vlan 10
[S1-GigabitEthernet0/0/2]int g0/0/1
[S1-GigabitEthernet0/0/1]port link-type trunk
[S1-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[S1-GigabitEthernet0/0/1]int g0/0/3
[S1-GigabitEthernet0/0/3]port link-type trunk
[S1-GigabitEthernet0/0/3]port trunk allow-pass vlan all
//基礎(chǔ)指令這里就不介紹什么意思了!
123456789101112
S2的配置如下:
[S2]vlan batch 10 20
[S2]int g0/0/2
[S2-GigabitEthernet0/0/2]port link-type hybrid
[S2-GigabitEthernet0/0/2]port hybrid untagged vlan 20
[S2-GigabitEthernet0/0/2]port hybrid pvid vlan 20
[S2-GigabitEthernet0/0/2]int g0/0/1
[S2-GigabitEthernet0/0/1]port link-type trunk
[S2-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[S2-GigabitEthernet0/0/1]int g0/0/3
[S2-GigabitEthernet0/0/3]port link-type trunk
[S2-GigabitEthernet0/0/3]port trunk allow-pass vlan all
1234567891011
S3的配置如下:
[S3]vlan batch 10 20
[S3]int g0/0/1
[S3-GigabitEthernet0/0/1]port link-type trunk
[S3-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[S3-GigabitEthernet0/0/1]int g0/0/2
[S3-GigabitEthernet0/0/2]port link-type trunk
[S3-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[S3-GigabitEthernet0/0/2]int g0/0/3
[S3-GigabitEthernet0/0/3]port link-type access
[S3-GigabitEthernet0/0/3]port default vlan 10
[S3-GigabitEthernet0/0/3]int g0/0/4
[S3-GigabitEthernet0/0/4]port link-type access
[S3-GigabitEthernet0/0/4]port default vlan 20
12345678910111213
(3)配置MSTP
根據(jù)實(shí)驗(yàn)要求,實(shí)驗(yàn)命令如下:
S1的配置如下:
[S1]stp mode mstp
//將交換機(jī)配置成MSTP模式
[S1]stp region-configuration
//進(jìn)入MSTP配置模式
[S1-mst-region]region-name huawei
//配置域名為huawei
[S1-mst-region]revision-level 1
//配置版本等級(jí)為1
[S1-mst-region]instance 1 vlan 10
//將VLAN10加入實(shí)例1中
[S1-mst-region]instance 2 vlan 20
//將VLAN20加入實(shí)例2中
[S1-mst-region]active region-configuration
//激活配置(必須配置)
[S1-mst-region]quit
[S1]stp instance 1 root primary
//配置此交換機(jī)為實(shí)例1的主根
[S1]stp instance 2 root secondary
//配置此交換機(jī)為實(shí)例2的備根
12345678910111213141516171819
S2的配置如下:
[S2]stp mode mstp
[S2]stp region-configuration
[S2-mst-region]region-name huawei
[S2-mst-region]revision-level 1
[S2-mst-region]instance 1 vlan 10
[S2-mst-region]instance 2 vlan 20
[S2-mst-region]active region-configuration
[S2]stp instance 1 root secondary
[S2]stp instance 2 root primary
//命令與S1基本相似,這里就不多說(shuō)了!
12345678910
S3的配置如下:
[S3]stp mode mstp
[S3]stp region-configuration
[S3-mst-region]region-name huawei
[S3-mst-region]revision-level 1
[S3-mst-region]instance 1 vlan 10
[S3-mst-region]instance 2 vlan 20
[S3-mst-region]active region-configuration
1234567
(4)驗(yàn)證
在S3上使用一下命令查看效果!
[S3]display stp brief
//查看STP接口角色及狀態(tài)信息
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING NONE
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
0 GigabitEthernet0/0/3 DESI FORWARDING NONE
0 GigabitEthernet0/0/4 DESI FORWARDING NONE
1 GigabitEthernet0/0/1 ROOT FORWARDING NONE
1 GigabitEthernet0/0/2 ALTE DISCARDING NONE
//運(yùn)行實(shí)例1時(shí),g0/0/2接口阻塞
1 GigabitEthernet0/0/3 DESI FORWARDING NONE
2 GigabitEthernet0/0/1 ALTE DISCARDING NONE
//運(yùn)行實(shí)例2時(shí),g0/0/1接口阻塞
2 GigabitEthernet0/0/2 ROOT FORWARDING NONE
2 GigabitEthernet0/0/4 DESI FORWARDING NONE
123456789101112131415
可以自行驗(yàn)證效果!PC1和PC2是可以通信的,不管任何交換機(jī)之間任意一條線路故障,也不會(huì)影響通信(模擬線路故障后,稍微等一下再測(cè)試通信)!