STP(生成樹(shù)協(xié)議)、RSTP(快速生成樹(shù)協(xié)議)、MSTP(多生成樹(shù)協(xié)議),這三個(gè)協(xié)議都是二層交換網(wǎng)絡(luò)中為了防止環(huán)路和實(shí)現(xiàn)鏈路冗余而設(shè)計(jì)的,他們之間有什么區(qū)別與聯(lián)系呢?本文為您詳細(xì)介紹。
STP、RSTP、MSTP基本概念
1、STP(802.1d)
STP協(xié)議生來(lái)就是為了冗余而存在的,單純樹(shù)型的網(wǎng)絡(luò)無(wú)法提供足夠的可靠性,由此我們引入了額外的鏈路,這才出現(xiàn)了環(huán)路這樣的問(wèn)題。但單純是標(biāo)準(zhǔn)的802.1D STP協(xié)議并不能實(shí)現(xiàn)真正的冗余與負(fù)載分擔(dān)。
STP為IEEE 802.1D標(biāo)準(zhǔn),它內(nèi)部只有一棵STP tree,因此必然有一條鏈路要被blocking,不會(huì)轉(zhuǎn)發(fā)數(shù)據(jù),只有另外一條鏈路出現(xiàn)問(wèn)題時(shí),這條被blocking的鏈路才會(huì)接替之前鏈路所承擔(dān)的職責(zé),做數(shù)據(jù)的轉(zhuǎn)發(fā)。無(wú)論怎樣,總會(huì)有一條鏈路處于不被使用的狀態(tài),冗余是有了,但是負(fù)載分擔(dān)是不可想象的。
cisco對(duì)STP做了改進(jìn),它使得每個(gè)VLAN都運(yùn)行一棵stp tree,這樣第一條鏈路可以為vlan 1 2 3服務(wù),對(duì)vlan 4 5 6 blocking,第二條鏈路可以為vlan 4 5 6 forwarding,對(duì)vlan 1 2 3關(guān)閉,無(wú)形中實(shí)現(xiàn)了鏈路的冗余,負(fù)載分擔(dān)。這種技術(shù)被稱(chēng)之為PVST+隨著網(wǎng)絡(luò)的發(fā)展,人們發(fā)現(xiàn)傳統(tǒng)的STP協(xié)議無(wú)法滿足主備快速切換的需求,因?yàn)镾TP協(xié)議將端口定義了5種狀態(tài),分別為:blocking listening learning forwarding disabling,想要從blocking切換至forwarding狀態(tài),必需要經(jīng)過(guò)50秒的周期,這50秒我們只能被動(dòng)地去等待。20秒的blocking狀態(tài)下,如果沒(méi)有檢測(cè)到鄰居發(fā)來(lái)的BPDU包,則進(jìn)入listening,這時(shí)要做的是選舉Root Bridge、Designate Port、Root Port,15秒后,進(jìn)入learning,learning狀態(tài)下可以學(xué)習(xí)MAC地址,為最后的forwarding做準(zhǔn)備,同樣是15秒,最后到達(dá)轉(zhuǎn)發(fā)狀態(tài)。這樣的延時(shí)在現(xiàn)代網(wǎng)絡(luò)環(huán)境下是讓人極為難以忍受的。
2、RSTP(802.1w)
RSTP的出現(xiàn)解決了延時(shí)的問(wèn)題,它的收斂速度很快,當(dāng)然CISCO也針對(duì)這種技術(shù)推出了自已的RPVST+技術(shù)。RSTP在STP基礎(chǔ)上額外定義了兩種port role(注意這里的概念,端口角色),分別是alternate與backup。另外重新規(guī)定了port state(端口狀態(tài)),分別為discarding、Learning、Forwarding.
STP的一大失敗之處在于混淆了port role與port state兩種概念,在RSTP上,這樣的問(wèn)題不再存在了,port state與port role無(wú)關(guān)了。alternate port責(zé)任是為另一臺(tái)交換機(jī)上的鏈路作備份,而backup port是為本交換機(jī)上的端口作備。
RSTP最重要的變化在于對(duì)BPDU中type字段的利用上,之前STP只使用了其中的兩個(gè)位,另外6個(gè)位中實(shí)現(xiàn)了很多的功能,包括不再需要去等待50秒的時(shí)間完成主備切換,直接利用proposal與agreement協(xié)商即可,這樣大大縮短了收斂時(shí)間。
RSTP還定義了兩個(gè)新的概念:edge port與link type,如果是edge port,表明下面接的只能是主機(jī),環(huán)路的存在是不可能的,所以我們可以直接將其從discarding切換到forwarding狀態(tài),類(lèi)似于STP中的port fast技術(shù)。而link type定義了這條鏈路是point-to-point的還是shared。如果有pt-pt環(huán)境下,我們就可以做快速的切換了。
3、MSTP(802.1s)
STP和RSTP都采用了一棵STP tree,負(fù)載分擔(dān)不可實(shí)現(xiàn),而CISCO的PVST+與RPVST+采用了每個(gè)VLAN一棵生成樹(shù),雖然實(shí)現(xiàn)了負(fù)載分擔(dān),但是會(huì)占用非常多的CPU時(shí)間。這也正是MSTP(802.1s)產(chǎn)生的原因
MSTP可以將多個(gè)VLAN的生成樹(shù)映射為一個(gè)實(shí)例,即vlan map to a instance,我們不需要那么多的生成樹(shù),只需要按照冗余鏈路的條數(shù)來(lái)得出需要幾棵生成樹(shù)。
如果只有兩條鏈路,并且有1-1000個(gè)VLAN,我們可以將1-500定義為instance 1,將501-1000定義到instance 2。只生成兩棵樹(shù)1和2,同樣實(shí)現(xiàn)了冗余與負(fù)載分擔(dān)。
MSTP是基于RSTP的,沒(méi)有RSTP,MSTP是無(wú)法運(yùn)行的。
STP、RSTP、MSTP的對(duì)比分析總結(jié)
1、STP不能使端口狀態(tài)快速遷移,即使是在點(diǎn)對(duì)點(diǎn)鏈路或邊緣端口,也必須等待2 倍的Forward delay 的時(shí)間延遲,端口才能遷移到轉(zhuǎn)發(fā)狀態(tài)。
2、RSTP可以快速收斂,但是和STP 一樣存在以下缺陷:局域網(wǎng)內(nèi)所有網(wǎng)橋共享一棵生成樹(shù),不能按VLAN 阻塞冗余鏈路,所有VLAN 的報(bào)文都沿著一棵生成樹(shù)進(jìn)行轉(zhuǎn)發(fā)。
3、MSTP將環(huán)路網(wǎng)絡(luò)修剪成為一個(gè)無(wú)環(huán)的樹(shù)型網(wǎng)絡(luò),避免報(bào)文在環(huán)路網(wǎng)絡(luò)中的增生和無(wú)限循環(huán),同時(shí)還提供了數(shù)據(jù)轉(zhuǎn)發(fā)的多個(gè)冗余路徑,在數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程中實(shí)現(xiàn)VLAN 數(shù)據(jù)的負(fù)載均衡。
4、MSTP兼容STP 和RSTP,并且可以彌補(bǔ)STP 和RSTP的缺陷。它既可以快速收斂,也能使不同VLAN的流量沿各自的路徑分發(fā),從而為冗余鏈路提供了更好的負(fù)載分擔(dān)機(jī)制