0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

生成樹(shù)協(xié)議將冗余鏈路自動(dòng)切換為轉(zhuǎn)發(fā)狀態(tài)恢復(fù)網(wǎng)絡(luò)連通性

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來(lái)源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 作者:圈圈 ? 2022-11-02 16:30 ? 次閱讀

在組網(wǎng)中,很可能會(huì)出現(xiàn)環(huán)路或者稱(chēng)冗余鏈路,為避免形成廣播風(fēng)暴,需要一種方法來(lái)避免形成環(huán)路,并且在主鏈路故障中斷時(shí)候,可以將冗余鏈路自動(dòng)切換為轉(zhuǎn)發(fā)狀態(tài),以恢復(fù)網(wǎng)絡(luò)的連通性。生成樹(shù)協(xié)議(STP、RSTP、MSTP)就可以實(shí)現(xiàn)這樣的功能。

STP(802.1D,Spanning Tree Protocol,生成樹(shù)協(xié)議)

基本思想

將網(wǎng)絡(luò)的拓?fù)湫藜魹闃?shù)形拓?fù)?,拓?fù)鋱D形狀與一棵樹(shù)相似,這樣就不會(huì)產(chǎn)生環(huán)路了。

在每個(gè)運(yùn)行STP協(xié)議的設(shè)備上依據(jù)一定的準(zhǔn)則選舉出一個(gè)樹(shù)根節(jié)點(diǎn)作為網(wǎng)絡(luò)中的根橋,其他節(jié)點(diǎn)為非樹(shù)根節(jié)點(diǎn)。

每一個(gè)非樹(shù)根節(jié)點(diǎn),會(huì)選擇最優(yōu)的路徑和根橋相連,每個(gè)非樹(shù)根節(jié)點(diǎn)上位于最優(yōu)路徑的端口,為該非樹(shù)根節(jié)點(diǎn)的根端口。

如果非樹(shù)根節(jié)點(diǎn)存在冗余鏈路,則會(huì)對(duì)相應(yīng)端口進(jìn)行阻塞

基本概念介紹

根橋(Root Bridge):是整個(gè)生成樹(shù)的根節(jié)點(diǎn),所有網(wǎng)橋中優(yōu)先級(jí)最高的橋。

指定橋(Designate Bridge):負(fù)責(zé)一個(gè)物理段(相對(duì)于兩個(gè)網(wǎng)橋而言是一個(gè)物理段)上數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù)的橋。

根端口(Root Port):指一個(gè)網(wǎng)橋上距離跟橋最近的端口。根橋上沒(méi)有根端口,只有非根橋上有且僅有一個(gè)根端口。

指定端口(Designate Port):指定橋上的端口,就是用于轉(zhuǎn)發(fā)生成樹(shù)信息報(bào)文的端口。根橋上全是指定端口。

候補(bǔ)端口(Alternate Port):用來(lái)為根端口或指定端口做備份的端口,即為最終需要阻塞的端口。

橋ID(Bridge ID):每一個(gè)運(yùn)行STP協(xié)議的網(wǎng)橋都會(huì)有一個(gè)橋ID,用于在網(wǎng)絡(luò)中唯一標(biāo)識(shí)一個(gè)橋,由橋優(yōu)先級(jí)和橋MAC地址組成,橋優(yōu)先級(jí)占2字節(jié),橋MAC地址占6個(gè)字節(jié)。橋優(yōu)先級(jí)只能是4096的整數(shù)倍,最大為61440,默認(rèn)為32768。

路徑開(kāi)銷(xiāo)(Path Cost):STP中每條鏈路都具有開(kāi)銷(xiāo)值,默認(rèn)的開(kāi)銷(xiāo)值取決于鏈路的帶寬,帶寬越大,開(kāi)銷(xiāo)越小。例如IEEE標(biāo)準(zhǔn)的開(kāi)銷(xiāo),鏈路速度為10Gbps開(kāi)銷(xiāo)為2,速度為100Mbps時(shí)開(kāi)銷(xiāo)為19,速度為10Mbps時(shí)候開(kāi)銷(xiāo)為100。

BPDU(Bridge Protocol Data Unit,橋協(xié)議數(shù)據(jù)單元):用于網(wǎng)橋之間傳遞BPDU來(lái)交互協(xié)議信息。BPDU分為配置BPDU和TCN BPDU。配置BPDU用來(lái)進(jìn)行生成樹(shù)的計(jì)算和維護(hù)生成樹(shù)拓?fù)涞膱?bào)文。TCN BPDU是當(dāng)拓?fù)浣Y(jié)構(gòu)改變時(shí)候,用來(lái)通知相關(guān)橋設(shè)備網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)生變化的報(bào)文。

5285dd78-3e0e-11ed-9e49-dac502259ad0.png

BPDU報(bào)文分析

52a5883a-3e0e-11ed-9e49-dac502259ad0.png

Protocol Identifier:固定為0x0000,表示是生成樹(shù)協(xié)議

Protocol Version Identifier:協(xié)議版本號(hào),STP版本號(hào)為0x00

BPDU Type:配置BPDU類(lèi)型為0x00,TCN BPDU類(lèi)型為0x80

Flags:由8位組成,最低位為T(mén)C標(biāo)志位,最高位為T(mén)CA標(biāo)志位,其他6位保留。當(dāng)拓?fù)浣Y(jié)構(gòu)變化時(shí)候,下游網(wǎng)橋?qū)?huì)從根端口發(fā)送TCN BPDU報(bào)文,TC標(biāo)志位置為1,上游網(wǎng)橋收到后進(jìn)行相應(yīng)處理,回復(fù)配置BPDU報(bào)文,TCA標(biāo)志位置為1.

Root Identifier:根橋ID,包含優(yōu)先級(jí)和MAC地址,標(biāo)識(shí)網(wǎng)絡(luò)中的根橋。

Root Path Cost:根路徑開(kāi)銷(xiāo),指從發(fā)送該配置BPDU的網(wǎng)橋到根網(wǎng)橋的最小路徑開(kāi)銷(xiāo),是所有鏈路開(kāi)銷(xiāo)的代數(shù)和。

Bridge Identifier:發(fā)送該配置BPDU的網(wǎng)橋ID,即該指定橋的ID。

Port Identifier:發(fā)送該配置BPDU的網(wǎng)橋的發(fā)送端口ID。

Message Age:從根橋生成配置BPDU開(kāi)始,到當(dāng)前時(shí)間為止配置BPDU的存活時(shí)間。

Max Age:配置BPDU存活的最大時(shí)間。

Hello Time:根橋生成并發(fā)送配置BPDU的周期,默認(rèn)為2s

Forward Delay:配置BPDU傳播到全網(wǎng)的最大時(shí)延,默認(rèn)為15s

接口狀態(tài)

狀態(tài)名稱(chēng) 狀態(tài)描述
禁用(Disable) 不能收發(fā)BPDU,也不能收發(fā)數(shù)據(jù)幀
阻塞(Blocking) 該接口被STP阻塞。不能發(fā)送BPDU,但是會(huì)持續(xù)偵聽(tīng)BPDU。不能收發(fā)數(shù)據(jù)幀
偵聽(tīng)(Listening) 表明STP初步認(rèn)定該接口為根接口或指定接口,但STP還在計(jì)算過(guò)程中,可以收發(fā)BPDU,但不能收發(fā)數(shù)據(jù)幀,也不能進(jìn)行MAC地址學(xué)習(xí)
學(xué)習(xí)(Learning) 會(huì)偵聽(tīng)業(yè)務(wù)數(shù)據(jù)幀,但不能轉(zhuǎn)發(fā)數(shù)據(jù)幀,并可以學(xué)習(xí)MAC
轉(zhuǎn)發(fā)(Forwarding) 正常收發(fā)數(shù)據(jù)幀,也會(huì)進(jìn)行BPDU處理,只有根端口或指定端口才能進(jìn)行轉(zhuǎn)發(fā)態(tài)

當(dāng)交換機(jī)的一個(gè)接口被激活后,該接口會(huì)從禁用狀態(tài)自動(dòng)進(jìn)入阻塞狀態(tài)。阻塞狀態(tài)的接口如果被選舉為根接口或者指定接口,那么它將從阻塞狀態(tài)進(jìn)入偵聽(tīng)狀態(tài),并在偵聽(tīng)狀態(tài)停留15s(轉(zhuǎn)發(fā)延遲時(shí)間),為了讓STP完成整個(gè)網(wǎng)絡(luò)的計(jì)算。15s后如果還是根接口或者是指定接口,就會(huì)進(jìn)入學(xué)習(xí)狀態(tài),因?yàn)榇藭r(shí)交換機(jī)沒(méi)有學(xué)習(xí)到任何MAC地址,這個(gè)狀態(tài)也要停留15秒,之后才會(huì)變成轉(zhuǎn)發(fā)態(tài)。

計(jì)算過(guò)程

確定跟橋

每一個(gè)交換機(jī)啟動(dòng)stp服務(wù),都會(huì)認(rèn)為自己是跟橋,并向外發(fā)送以自己為根橋的配置BPDU報(bào)文。

交換機(jī)接收到BPDU報(bào)文,會(huì)和自己的橋ID對(duì)比,橋ID由優(yōu)先級(jí)和mac地址組成,先比較優(yōu)先級(jí),優(yōu)先級(jí)相同,再比較mac地址,值越小就會(huì)認(rèn)為更優(yōu)。比如接收到BPDU報(bào)文的root id為8192-0000.0000.0001,自己的橋id為32768-0000.0000.0002,因?yàn)橄缺容^優(yōu)先級(jí),優(yōu)先級(jí)8192優(yōu)于32768,則認(rèn)為自己不是根橋,就不發(fā)送認(rèn)為自己是根橋的BPDU了,并通過(guò)接收到的BPDU報(bào)文更新自身的配置BPDU。直到網(wǎng)絡(luò)中所有的交換機(jī)都達(dá)成一致,認(rèn)為某一個(gè)交換機(jī)為根橋,根橋的選舉結(jié)束,從而確認(rèn)唯一根橋。

確定端口角色

當(dāng)確認(rèn)自己本身不是根橋的同時(shí)就開(kāi)始確認(rèn)端口角色了。

確定根端口

當(dāng)一個(gè)交換機(jī)多個(gè)接口同時(shí)接收到了根橋發(fā)來(lái)的配置BPDU報(bào)文,會(huì)獲取Root Path Cost,也就是根路徑開(kāi)銷(xiāo),與接收端口的鏈路開(kāi)銷(xiāo)相加,得到此端口到根橋的根路徑開(kāi)銷(xiāo),對(duì)比,根路徑開(kāi)銷(xiāo)值最小的作為根端口。

如果根路徑開(kāi)銷(xiāo)相同,對(duì)比BPDU報(bào)文中的Bridge Identifier,也就是發(fā)送該BPDU報(bào)文指定橋的ID,ID小的作為根端口。

如果指定橋ID也相同,則對(duì)比Port Identifier,發(fā)送口的端口ID,ID小的作為根端口

確定指定端口和Alternate備份端口

當(dāng)確定根端口后,會(huì)將通過(guò)自己從根端口收到的BPDU報(bào)文計(jì)算生成的配置BPDU報(bào)文與非根端口接收到的配置BPDU進(jìn)行比較,依次對(duì)比根路徑開(kāi)銷(xiāo)、指定橋和端口id,自己計(jì)算產(chǎn)生的BPDU優(yōu)于接收到的,則將此接收到的端口設(shè)置為指定端口,否則設(shè)置為Alternate端口(即阻塞起來(lái))。

拓?fù)浣Y(jié)構(gòu)發(fā)生改變時(shí)

當(dāng)有端口斷開(kāi)或新網(wǎng)橋加入時(shí),拓?fù)浒l(fā)生了改變,就會(huì)使用到TCN BPDU報(bào)文,目的是讓STP能快速的收斂。

產(chǎn)生BPDU報(bào)文的條件:

網(wǎng)橋上有端口轉(zhuǎn)變?yōu)镕orwarding轉(zhuǎn)發(fā)狀態(tài),且該網(wǎng)橋至少包含一個(gè)指定端口。

網(wǎng)橋上有端口從Forwarding狀態(tài)或Learning狀態(tài)轉(zhuǎn)變?yōu)锽locking狀態(tài)。

拓?fù)涓淖儠r(shí)候STP處理步驟:

會(huì)從該發(fā)生變化的交換機(jī)的根端口發(fā)送TCN BPDU報(bào)文

上游交換機(jī)收到TCN BPDU報(bào)文,會(huì)將下一個(gè)配置BPDU報(bào)文中的TCA置為1,發(fā)送給下游交換機(jī),來(lái)確保通往根橋的鏈路有效性

重復(fù)1,2步驟,直到根橋交換機(jī)收到TCN BPDU報(bào)文,并將下一個(gè)配置BPDU報(bào)文中的TC置為1,發(fā)送給下游所有的交換機(jī),各網(wǎng)橋收到TC置為1的配置BPDU報(bào)文后,會(huì)將MAC地址老化時(shí)間縮短為15秒

STP的不足

為避免環(huán)路,每一個(gè)端口在確認(rèn)為根端口或指定端口后仍需要等待30s才能進(jìn)入轉(zhuǎn)發(fā)狀態(tài)。

對(duì)于網(wǎng)絡(luò)中有大量主機(jī)時(shí)候,頻繁上下線會(huì)導(dǎo)致頻繁發(fā)送TCN BPDU報(bào)文,導(dǎo)致網(wǎng)橋MAC地址老化時(shí)間長(zhǎng)期為15s。

RSTP(802.1W,Rapid Spanning Tree Protocol,快速生成樹(shù)協(xié)議)

STP與RSTP區(qū)別概要

STP RSTP
端口狀態(tài) 禁用、阻塞、偵聽(tīng)、學(xué)習(xí)、轉(zhuǎn)發(fā) 丟棄、學(xué)習(xí)、轉(zhuǎn)發(fā)
端口角色 根端口、指定端口、備份端口(Alternate) 根端口、指定端口、根備份端口(Alternate)、指定端口備份端口(Backup)
BPDU 協(xié)議版本號(hào)為0x00
配置BPDU類(lèi)型為0x00,TCN BPDU類(lèi)型為0x80
協(xié)議版本號(hào)為0x02
類(lèi)型為0x02
使用Flags字段的全部8位
最后增加了Versionl Length字段

STP與RSTP的接口狀態(tài)對(duì)應(yīng)關(guān)系

STP的接口狀態(tài) RSTP的接口狀態(tài)
禁用(Disabled) 丟棄(Discarding)
阻塞(Blocking)
偵聽(tīng)(Listening)
學(xué)習(xí)(Learning) 學(xué)習(xí)(Learning)
轉(zhuǎn)發(fā)(Forwarding) 轉(zhuǎn)發(fā)(Forwarding)

RSTP端口會(huì)在Discarding狀態(tài)完成角色的確定,當(dāng)端口確定為根端口或指定端口后,經(jīng)過(guò)Forward Delay時(shí)間會(huì)進(jìn)入Learning狀態(tài),比STP就少一個(gè)Forward Delay時(shí)間,并且有P/A快速機(jī)制,可以直接從Discarding直接到Forwarding狀態(tài)。不是根端口或指定端口就會(huì)維持Discarding狀態(tài)。

端口角色

根端口和指定端口角色的定義和STP相同,就不說(shuō)了。

較STP新增了兩個(gè)端口概念,替代接口和備份接口。但同樣都是阻塞起來(lái)的,只是為了指定端口出故障時(shí)可以快速收斂。

替代接口(Alternate)

可以理解為根接口的備份接口,是由于收到了其他設(shè)備發(fā)送的BPDU且優(yōu)于自身所要發(fā)送的BPDU從而被阻塞的接口。當(dāng)根端口進(jìn)入阻塞狀態(tài)時(shí),會(huì)選擇優(yōu)先級(jí)最高的替代接口作為新的根端口。當(dāng)對(duì)端端口是Forwarding狀態(tài),則可以立即進(jìn)入轉(zhuǎn)發(fā)狀態(tài)。

備份接口(Backup)

一臺(tái)設(shè)備上收到了自己所發(fā)送的BPDU從而被阻塞的接口。

如圖,LSW2上的GE 0/0/3阻塞,因?yàn)槭鞘盏搅薒SW3的BPDU報(bào)文,形成了環(huán)路,且收到的BPDU報(bào)文比自己的優(yōu),從而阻塞,就變成了替代接口。而LSW2上的GE 0/0/5,因?yàn)槭盏降氖亲约喊l(fā)送過(guò)來(lái)的BPDU報(bào)文且端口id較大被阻塞,從而變成備份接口。

52c96372-3e0e-11ed-9e49-dac502259ad0.png

BPDU報(bào)文

52df9818-3e0e-11ed-9e49-dac502259ad0.png

與STP BPDU相比較

Protocol Version Identifier為2

BPDU Type為0x02,表示為RST BPDU

BPDU flags使用全部的8位

在報(bào)文的最后增加了Versionl Length字段,值為0,表示本BPDU中不包含Versionl內(nèi)容。

最高位和最低位TCA和TC與STP相同。Agreement(同意)及Proposal(提議)用于RSTP的P/A機(jī)制,會(huì)大大提高RSTP的收斂速度。Port Role(接口角色)兩個(gè)bit位,01表示根接口,10表示替代接口,11表示指定接口,00保留。Forwarding(轉(zhuǎn)發(fā))和Learning(學(xué)習(xí))用于表示該RST BPDU發(fā)送接口的接口狀態(tài)。

RSTP與STP不同,在網(wǎng)絡(luò)穩(wěn)定后,STP的非根橋之會(huì)轉(zhuǎn)發(fā)根橋發(fā)來(lái)的BPDU報(bào)文,而RSTP無(wú)論是非根橋還是根橋都會(huì)周期性的發(fā)送BPDU。

在STP中只有在指定端口收到低優(yōu)先級(jí)的配置BPDU時(shí)才會(huì)立即回應(yīng)(發(fā)送自己計(jì)算的配置BPDU報(bào)文),阻塞狀態(tài)端口不會(huì)對(duì)低優(yōu)先級(jí)的配置BPDU做出回應(yīng)。

在RSTP中,指定端口或阻塞狀態(tài)的端口收到低優(yōu)先級(jí)的RST BPDU,也可以立即對(duì)其做出回應(yīng)。

P/A快速收斂機(jī)制

當(dāng)網(wǎng)絡(luò)中增加新的鏈路或故障鏈路恢復(fù)時(shí),鏈路兩端必有一個(gè)端口的角色是指定端口,在STP中,該指定端口需要等待30s才能進(jìn)入Forwarding狀態(tài)。

P/A機(jī)制是指定端口可以通過(guò)與對(duì)端網(wǎng)橋進(jìn)行一次握手,即可快速進(jìn)入轉(zhuǎn)發(fā)狀態(tài),無(wú)需任何定時(shí)器

前提條件是必須是點(diǎn)到點(diǎn)的鏈路。

當(dāng)新鏈路連接時(shí)候,鏈路兩端的端口初始都為指定端口并處于阻塞的狀態(tài)。

當(dāng)指定端口處于Discarding和Learning狀態(tài)時(shí),所發(fā)送的BPDU中的Proposal位將被置為1,端口的角色位11,是指定端口。(都是指定端口發(fā)的喲)

收到Proposal置位的RST BPDU報(bào)文后,交換機(jī)會(huì)判斷接收端口是否為根端口,如果是根端口,會(huì)進(jìn)行同步過(guò)程,同步過(guò)程是阻塞除邊緣端口(直接與用戶(hù)終端相連,沒(méi)有連接到其他交換機(jī)或者網(wǎng)橋,一般需要手動(dòng)配置為邊緣端口,可以忽略Forward Delay時(shí)間直接進(jìn)入Forwarding狀態(tài),無(wú)時(shí)延)之外的所有端口,為了消除本交換機(jī)產(chǎn)生環(huán)路的可能。

完成同步過(guò)程后,根端口進(jìn)入轉(zhuǎn)發(fā)狀態(tài)并從根端口回發(fā)Agreement置為1的RST BPDU報(bào)文,內(nèi)容復(fù)制收到的Proposal置為的RST BPDU報(bào)文,唯一不同的就是Flags字段的Agreement也置為1。

收到Agreement置1的BPDU報(bào)文后,該接口會(huì)立即進(jìn)入轉(zhuǎn)發(fā)狀態(tài)。

同步過(guò)程阻塞的接口也會(huì)繼續(xù)往下進(jìn)行這個(gè)過(guò)程。

如果指定端口發(fā)出Proposal置位的BPDU后沒(méi)有收到Agreement BPDU報(bào)文,則該端口需要等待30s(兩個(gè)延遲時(shí)間)才會(huì)進(jìn)入轉(zhuǎn)發(fā)狀態(tài)。

拓?fù)涓淖兲幚?/p>

在STP中,端口變?yōu)镕orwarding狀態(tài)或從Forwarding變?yōu)锽locking狀態(tài)均會(huì)觸發(fā)拓?fù)涓淖兲幚磉^(guò)程,而RSTP只在非邊緣端口轉(zhuǎn)為Forwarding狀態(tài)時(shí)才會(huì)觸發(fā)處理過(guò)程。

當(dāng)交換機(jī)由非邊緣端口轉(zhuǎn)變?yōu)镕orwarding狀態(tài)時(shí),網(wǎng)橋會(huì)在兩倍的Hello Time時(shí)間內(nèi)向根端口以及指定端口發(fā)送TC置位為1的RST BPDU,同時(shí)清除這些端口學(xué)習(xí)到的MAC地址。

其他交換機(jī)收到TC置位的RST BPDU時(shí)候,會(huì)清除接收TC報(bào)文的端口以及邊緣端口之外的其余端口MAC地址,并同樣會(huì)在兩倍的Hello Time時(shí)間內(nèi)向根端口以及指定端口發(fā)送TC置位為1的RST BPDU報(bào)文。

交換機(jī)收到TC置位的RST BPDU后不需要在Max Age+Forward Delay時(shí)間內(nèi)將MAC地址老化時(shí)間設(shè)置為Forward Delay,而是直接清除端口MAC地址,重新進(jìn)行學(xué)習(xí),從而實(shí)現(xiàn)更快的收斂。

注:本人使用華為模擬器,拓?fù)涓淖兪盏酵負(fù)涓淖兊膱?bào)文,并沒(méi)有立即清除端口mac,好像是一個(gè)Foreard Delay時(shí)間后才清除mac。

RSTP和STP的兼容

當(dāng)運(yùn)行RSTP的交換機(jī)連續(xù)3次接收到配置BPDU時(shí)候,認(rèn)為改端口和STP相連,該端口將切換到STP協(xié)議運(yùn)行。

MSTP(802.1S,Multiple Spanning Tree Protocol,多生成樹(shù)協(xié)議)

基本思想

基于實(shí)例(Instance)計(jì)算出多棵生成樹(shù),每個(gè)實(shí)例都會(huì)生成自己的生成樹(shù),并且每個(gè)實(shí)例可以包含一個(gè)或多個(gè)VLAN,每一個(gè)VLAN只能映射到一個(gè)實(shí)例。交換機(jī)可以通過(guò)配置多個(gè)實(shí)例,實(shí)現(xiàn)不同VLAN組之間的負(fù)載分擔(dān)。

基本概念解釋

MST域是一個(gè)具有相同域名、修訂級(jí)別和摘要信息的網(wǎng)橋或交換機(jī)構(gòu)成的集合,一個(gè)域可以包含多個(gè)實(shí)例。

域名,本域的名稱(chēng),MSTP中每一個(gè)域都有一個(gè)獨(dú)一無(wú)二的名稱(chēng),配置不同域名會(huì)被認(rèn)為屬于不同的域。

修訂級(jí)別,目前保留,默認(rèn)為0。

配置摘要,由網(wǎng)橋的vlan和實(shí)例映射關(guān)系生成的長(zhǎng)度為16字節(jié)的HMAC-MD5簽名。

IST是MST域內(nèi)的一顆生成樹(shù),每顆生成樹(shù)對(duì)應(yīng)一個(gè)實(shí)例。實(shí)例號(hào)為0,一定存在的

MSTI是多生成樹(shù)實(shí)例,實(shí)例號(hào)從1開(kāi)始,為0的實(shí)例號(hào)是IST

MSTI域根,是每一個(gè)MSTI實(shí)例上優(yōu)先級(jí)最高的網(wǎng)橋

CST(公共生成樹(shù))是網(wǎng)絡(luò)內(nèi)所有MST域通過(guò)計(jì)算得到的一棵樹(shù)。

CIST(公共和內(nèi)部生成樹(shù))是整個(gè)網(wǎng)絡(luò)所有設(shè)備經(jīng)過(guò)生成樹(shù)計(jì)算得到的一棵樹(shù)。由IST和CST共同構(gòu)成。

CIST總根,是整個(gè)網(wǎng)絡(luò)中優(yōu)先級(jí)最高的橋,是CIST的根橋。

CIST域根,IST的根橋即為CIST的域根,是MST域內(nèi)距離總根最近的橋,也稱(chēng)為Master橋。

端口角色

相較RSTP,橋的角色上,MSTP增加了Master橋。端口角色上,增加了域邊界端口以及Master端口。根端口、指定端口、Alternate端口、Backup端口定義和RSTP一樣。

IST(實(shí)例號(hào)為0網(wǎng)絡(luò))中距離總根最近的橋?yàn)镸aster橋,該橋?yàn)镮ST的根,Master橋指向總根(整個(gè)網(wǎng)絡(luò)中優(yōu)先級(jí)最高的橋)的端口為Master端口。

MST域內(nèi)網(wǎng)橋和其他MST域或STP/RSTP網(wǎng)橋相連的端口稱(chēng)為域邊界端口,Master端口也是域邊界端口。

如下圖創(chuàng)建了三個(gè)區(qū)域,暫時(shí)都只有IST(實(shí)例0),優(yōu)先級(jí)和MAC都是我編的,然后下圖標(biāo)注了MSTP所有的概念,更方便理解吧。

5309c28c-3e0e-11ed-9e49-dac502259ad0.png

BPDU報(bào)文

532bc102-3e0e-11ed-9e49-dac502259ad0.png

BPDU Type:0x02

BPDU flags:CIST標(biāo)志字段

Root Identifier:CIST總根交換機(jī)ID

Root Path Cost:CIST外部路徑開(kāi)銷(xiāo),指從本交換機(jī)所屬的MST域到CIST根交換機(jī)的累計(jì)路徑開(kāi)銷(xiāo)。

Bridge Identifier:CIST的域根交換機(jī)ID(每個(gè)域距離根橋最近的交換機(jī),域根并不是只有一個(gè),每個(gè)域都有一個(gè)域根,很多資料上也稱(chēng)為CIST域根,我理解一半天),即IST Master的ID。如果總根在這個(gè)域內(nèi),那么域根交換機(jī)ID就是總根交換機(jī)ID。

Port Identifier:CIST的指定端口ID(當(dāng)前報(bào)文的上游交換機(jī)發(fā)送端口)

Version 3 Length:表示MST專(zhuān)有字段的長(zhǎng)度,用于接收到BPDU后進(jìn)行校驗(yàn)。

MST Config ID:格式選擇字符固定為0x00。

MST Config name:域名

MST Config revision:修訂級(jí)別,為0

MST Config digest:配置摘要

CIST Internal Root Path Cost:CIST內(nèi)部路徑開(kāi)銷(xiāo),表示發(fā)送此BPDU的網(wǎng)橋到達(dá)CIST域根的路徑開(kāi)銷(xiāo)。

CIST Bridge Identifier:發(fā)送此BPDU的網(wǎng)橋ID

CIST Remaining hops:CIST剩余跳數(shù),限制MST域的規(guī)模,從域根開(kāi)始,BPDU每經(jīng)過(guò)一個(gè)網(wǎng)橋,跳數(shù)就減一,網(wǎng)橋會(huì)丟棄收到的跳數(shù)為0的BPDU,從而限制MST域的規(guī)模。默認(rèn)為20

MSTI配置信息中的內(nèi)容只在各自實(shí)例中有效,且每個(gè)實(shí)例中這些字段值是獨(dú)立的

MSTI flag:一個(gè)字節(jié),從第一位到第七位的定義和RSTP相同,第八位為Master標(biāo)志位

Region Root:表示該實(shí)例的域根ID

Internal root path cost:表示發(fā)送此BPDU的網(wǎng)橋到達(dá)MSTI域根的路徑開(kāi)銷(xiāo)

Bridge Identifier priority:表示發(fā)送此BPDU的網(wǎng)橋,即指定橋的優(yōu)先級(jí),其中高4位為優(yōu)先級(jí)位,第四位固定為0

Port Identifier priority:表示發(fā)送此BPDU的端口的優(yōu)先級(jí),其中高4位為優(yōu)先級(jí)位,第四位固定為0

Remaining hops:表示BPDU在該MST實(shí)例中的剩余跳數(shù)。

優(yōu)先級(jí)向量

MSTP計(jì)算可以分為CIST和MSTI計(jì)算兩部分

CIST優(yōu)先級(jí)向量

用于計(jì)算生成CIST生成樹(shù)和CST生成樹(shù),總根,域根等

{CIST總根ID、外部路徑開(kāi)銷(xiāo)、域根ID、內(nèi)部路徑開(kāi)銷(xiāo)、指定交換設(shè)備ID、指定端口ID、接收端口ID}

再次注意(怕你已經(jīng)被弄暈了),

外部路徑開(kāi)銷(xiāo)是當(dāng)前域的Master橋到總根的路徑開(kāi)銷(xiāo)

內(nèi)部路徑開(kāi)銷(xiāo)是當(dāng)前交換機(jī)到當(dāng)前域根的路徑開(kāi)銷(xiāo)

指定交換設(shè)備ID就是發(fā)送這個(gè)報(bào)文的交換機(jī)的ID

指定端口ID就是發(fā)送這個(gè)報(bào)文的交換機(jī)的端口ID

對(duì)比是按照從左往右的順序,值小者為優(yōu),給個(gè)報(bào)文的圖直觀一些

536a5ebc-3e0e-11ed-9e49-dac502259ad0.png

MSTI優(yōu)先級(jí)向量用于計(jì)算生成區(qū)域內(nèi)的生成樹(shù)和端口狀態(tài)等,計(jì)算范圍僅限區(qū)域內(nèi)

{域根ID、內(nèi)部路徑開(kāi)銷(xiāo)、指定交換設(shè)備ID、指定端口ID、接收端口ID}

MSTP計(jì)算方法

每個(gè)BPDU既包含CIST計(jì)算所需的信息,也包含MSTI計(jì)算所需要的信息。

計(jì)算生成樹(shù)時(shí)候和RSTP類(lèi)似,在進(jìn)行CST計(jì)算時(shí),會(huì)把MST域看做邏輯上的一個(gè)網(wǎng)橋,網(wǎng)橋ID為IST域根的ID也就是Master橋ID(距離總根最近的橋)。

當(dāng)網(wǎng)橋收到BPDU并判斷不是同一個(gè)域后,不會(huì)解析MST專(zhuān)有字段的信息。

初始時(shí)每個(gè)網(wǎng)橋都認(rèn)為自己是總根,發(fā)送以自己為總根、域根和指定橋的BPDU。

計(jì)算端口角色和交換機(jī)角色過(guò)程與RSTP相同。

CST(公共生成樹(shù))的計(jì)算過(guò)程

需要對(duì)比的優(yōu)先級(jí)向量為{總根、外部路徑開(kāi)銷(xiāo)、域根、指定端口ID、接收端口ID},因?yàn)樯蒀ST時(shí)候把相同的域當(dāng)做一個(gè)網(wǎng)橋了,網(wǎng)橋ID為MST域的Master橋ID,所以自然無(wú)需對(duì)比內(nèi)部路徑開(kāi)銷(xiāo)和指定橋ID了。

初始時(shí),每個(gè)域根向其他域根發(fā)送以自己為總根的BPDU。

確定“根網(wǎng)橋”(一個(gè)域看成一個(gè)網(wǎng)橋),也是CIST的總根。

確定端口角色“根端口”也就是一個(gè)域的Master端口,“根端口”的網(wǎng)橋也就是域根。

確定指定端口、Alternate端口或者Backup端口。

阻塞域之間的Alternate端口和Backup端口。

IST(內(nèi)部生成樹(shù))和MSTI(內(nèi)部生成樹(shù)實(shí)例)的計(jì)算過(guò)程

經(jīng)過(guò)CST的計(jì)算生成了域內(nèi)的根橋(即Master橋)

所需要比較的優(yōu)先級(jí)向量為MSTI優(yōu)先級(jí)向量,即{域根ID、內(nèi)部路徑開(kāi)銷(xiāo)、指定交換設(shè)備ID、指定端口ID、接收端口ID}

域內(nèi)網(wǎng)橋通過(guò)比較內(nèi)部路徑開(kāi)銷(xiāo)來(lái)確定根端口。

通過(guò)比較BPDU的優(yōu)先級(jí)確定指定端口、Alternate端口或者Backup端口。

阻塞IST上的Alternate端口和Backup端口。

MSTP與RSTP交互

RSTP網(wǎng)橋收到MSTP的BPDU時(shí),會(huì)將MSTP的BPDU報(bào)文里的CIST總根ID,外部路徑開(kāi)銷(xiāo),域根ID,指定端口ID分別與RSTP的BPDU報(bào)文里的根橋ID,根橋開(kāi)銷(xiāo),指定橋ID,指定端口ID對(duì)應(yīng)。

MSTP網(wǎng)橋收到RSTP的BPDU時(shí),會(huì)將RSTP的BPDU報(bào)文里的根橋ID,根橋開(kāi)銷(xiāo),指定橋ID,指定端口ID分別與MSTP的BPDU報(bào)文里的CIST總根ID,外部路徑開(kāi)銷(xiāo),域根ID,指定端口ID對(duì)應(yīng)。

P/A快速收斂機(jī)制

MSTP支持RSTP的快速收斂機(jī)制,但有不同點(diǎn)。詳細(xì)的可以看上面的RSTP的P/A機(jī)制,這里只寫(xiě)區(qū)別。

RSTP是上游交換機(jī)指定端口發(fā)送Proposal置位的BPDU,下游網(wǎng)橋執(zhí)行同步操作之后回應(yīng)Agreement置位的BPDU,上游網(wǎng)橋收到Agreement置位的BPDU后其指定端口可以立即進(jìn)入轉(zhuǎn)發(fā)狀態(tài)。

MSTP是上游交換機(jī)指定端口發(fā)送Proposal置位和Agreement置位的BPDU,下游網(wǎng)橋收到BPDU后執(zhí)行同步操作然后回應(yīng)Agreement置位的BPDU,上游網(wǎng)橋收到Agreement置位的BPDU后其指定端口可以立即進(jìn)入轉(zhuǎn)發(fā)狀態(tài)。

補(bǔ)充

MSTP和實(shí)例相關(guān)的講的較少,因?yàn)橥粋€(gè)MST域中可以有多個(gè)實(shí)例,每個(gè)實(shí)例可以運(yùn)行通過(guò)一個(gè)或n個(gè)VLAN,但是一個(gè)VLAN只能存在一個(gè)實(shí)例中,然后每個(gè)實(shí)例都會(huì)各自生成生成樹(shù),除了IST(實(shí)例為0)的根節(jié)點(diǎn)是Master橋,其余實(shí)例都是按照RSTP類(lèi)似方法計(jì)算出各自實(shí)例自己的根橋,指定橋,根端口和指定端口的。

MSTP因?yàn)橛卸鄠€(gè)實(shí)例,每個(gè)端口上對(duì)實(shí)例的狀態(tài)可能不一樣,比如在實(shí)例1端口為根端口,實(shí)例2上這個(gè)端口為指定端口,所以會(huì)出現(xiàn)端口既會(huì)發(fā)BPDU報(bào)文也會(huì)收BPDU報(bào)文。

拓?fù)涓淖兊奶幚砗蚏STP相同。

MSTP比RSTP就是多了分區(qū)域多實(shí)例,細(xì)化看,每個(gè)實(shí)例運(yùn)行的都是RSTP。

RSTP和MSTP啟動(dòng)時(shí)簡(jiǎn)單介紹

當(dāng)一臺(tái)交換設(shè)備啟動(dòng)RSTP和MSTP時(shí)候,會(huì)默認(rèn)自己為根橋,且所有使能RSTP或者M(jìn)STP的端口都為指定端口Discarding狀態(tài),這樣就會(huì)觸發(fā)P/A快速機(jī)制,當(dāng)一個(gè)指定端口發(fā)送P/A機(jī)制報(bào)文沒(méi)收到對(duì)端發(fā)送過(guò)來(lái)的回復(fù)報(bào)文,則需要經(jīng)過(guò)2倍的Forward delay時(shí)間才能到轉(zhuǎn)發(fā)態(tài)。假如下游有一個(gè)交換設(shè)備同時(shí)開(kāi)啟了RSTP或者M(jìn)STP,則都會(huì)發(fā)送P/A機(jī)制報(bào)文,收到報(bào)文后兩個(gè)指定端口會(huì)對(duì)比報(bào)文確定自己的角色從而繼續(xù)P/A快速機(jī)制。P/A會(huì)阻塞除邊緣端口和根端口外的其他所有端口,端口兩兩進(jìn)行這種操作從而生成整個(gè)生成樹(shù)。

MSTP啟動(dòng)時(shí),多個(gè)實(shí)例都會(huì)在互不干擾的生成對(duì)應(yīng)的生成樹(shù),類(lèi)似多線程一樣。

MSTP收到其他區(qū)域報(bào)文時(shí)候,只會(huì)對(duì)比CIST的信息,MIST內(nèi)容會(huì)忽略。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 交換機(jī)
    +關(guān)注

    關(guān)注

    20

    文章

    2610

    瀏覽量

    99098

原文標(biāo)題:MSTP(802.1S,Multiple Spanning Tree Protocol,多生成樹(shù)協(xié)議)

文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    IR615如何實(shí)現(xiàn)VPN備份?

    網(wǎng)絡(luò)連通性,可以看到模擬故障后丟失三個(gè)數(shù)據(jù)包。 模擬故障恢復(fù),連接wan口網(wǎng)線,查看路由表??梢钥吹铰酚梢呀?jīng)恢復(fù)到wan口。 OpenServer端查看看,可以看到
    發(fā)表于 07-25 08:27

    IR915作為OpenVPN服務(wù)器實(shí)現(xiàn)客戶(hù)端子網(wǎng)互聯(lián)的過(guò)程

    openvpn server 子網(wǎng)地址的連通性. 7.配置IR615連接openvpn . 8.查看openvpn連接狀態(tài) 9.測(cè)試IR615后端子網(wǎng)到其它子網(wǎng)的連通性. 9.1測(cè)試到openvpn serve
    發(fā)表于 07-25 08:10

    IG網(wǎng)關(guān)產(chǎn)品實(shí)現(xiàn)備份的方法

    查看到實(shí)時(shí)狀態(tài)。 四:設(shè)定SIM卡或網(wǎng)口、無(wú)線三者的備份,既可以通過(guò)SIM卡連接也可以通過(guò)網(wǎng)口連接也可以通過(guò)WiFi的方式接入網(wǎng)絡(luò)。 1.登錄跳轉(zhuǎn)進(jìn)入高級(jí)功能設(shè)定模塊: 2、選
    發(fā)表于 07-24 08:25

    PLC冗余系統(tǒng)的相互切換機(jī)制

    在工業(yè)自動(dòng)化控制系統(tǒng)中,PLC(可編程邏輯控制器)的冗余設(shè)計(jì)是確保系統(tǒng)高可靠性和穩(wěn)定性的重要手段。PLC冗余系統(tǒng)通過(guò)配置兩個(gè)或多個(gè)功能相同的PLC控制器,實(shí)現(xiàn)主備用的自動(dòng)
    的頭像 發(fā)表于 06-19 10:42 ?1327次閱讀

    多功能網(wǎng)絡(luò)測(cè)試儀怎么用

    。 一、多功能網(wǎng)絡(luò)測(cè)試儀的功能 網(wǎng)絡(luò)連通性測(cè)試:測(cè)試儀可以檢測(cè)網(wǎng)絡(luò)中的連通性問(wèn)題,包括線路斷開(kāi)、信號(hào)衰減等。
    的頭像 發(fā)表于 05-27 15:32 ?1031次閱讀

    如何辨別光纖的好壞?

    辨別光纖的好壞,通常涉及一系列測(cè)試和檢查步驟。以下是一些主要的方法: 光學(xué)連通性測(cè)試:檢查光纖的光學(xué)
    的頭像 發(fā)表于 04-11 11:48 ?889次閱讀

    關(guān)于PLC數(shù)據(jù)采集上傳,系統(tǒng)平臺(tái)對(duì)接、設(shè)備數(shù)據(jù)轉(zhuǎn)發(fā)

    。 ◆ 功能切換: 多種通訊協(xié)議和功能同時(shí)具備,根據(jù)應(yīng)用場(chǎng)景設(shè)置切換,達(dá)成現(xiàn)場(chǎng)所需功能; ◆ 緩存數(shù)據(jù): 數(shù)據(jù)上報(bào)功能在碰到網(wǎng)絡(luò)異常時(shí),可先將數(shù)據(jù)緩存,
    發(fā)表于 03-26 14:15

    什么是聚合?LACP是如何工作的?

    靜態(tài)聚合不運(yùn)行LACP協(xié)議,由于無(wú)法檢測(cè)到對(duì)端端口的狀態(tài),如果對(duì)端端口down,但只要本端端口up,仍然會(huì)往這個(gè)對(duì)端端口轉(zhuǎn)發(fā)流量,可能會(huì)
    的頭像 發(fā)表于 02-28 10:47 ?5347次閱讀
    什么是<b class='flag-5'>鏈</b><b class='flag-5'>路</b>聚合?LACP是如何工作的?

    交換機(jī)冗余的連接方式

    連接進(jìn)行數(shù)據(jù)交換。這種方式的優(yōu)點(diǎn)是簡(jiǎn)單、成本低,但缺點(diǎn)是一旦該連接出現(xiàn)故障,網(wǎng)絡(luò)通信中斷,導(dǎo)致網(wǎng)絡(luò)不可用。因此,在關(guān)鍵網(wǎng)絡(luò)中不推薦使用無(wú)冗余
    的頭像 發(fā)表于 02-20 14:25 ?2184次閱讀

    無(wú)線控制協(xié)議和作用

    無(wú)線控制協(xié)議是一種用于在無(wú)線通信系統(tǒng)中控制數(shù)據(jù)傳輸和管理無(wú)線協(xié)議。它定義了在無(wú)線
    的頭像 發(fā)表于 02-01 10:51 ?823次閱讀

    Eth-Trunk聚合技術(shù)的原理與配置

    隨著網(wǎng)絡(luò)中部署的業(yè)務(wù)不斷增長(zhǎng),對(duì)于全雙工點(diǎn)對(duì)點(diǎn),單條物理的帶寬可能已經(jīng)不能滿(mǎn)足正常業(yè)務(wù)流量的需求,而且單條
    的頭像 發(fā)表于 01-02 09:40 ?916次閱讀
    Eth-Trunk<b class='flag-5'>鏈</b><b class='flag-5'>路</b>聚合技術(shù)的原理與配置

    淺析STP/RSTP協(xié)議(一)

    生成樹(shù)協(xié)議STP(Spanning Tree Protocol)環(huán)形網(wǎng)絡(luò)修剪成為一個(gè)無(wú)環(huán)的樹(shù)
    的頭像 發(fā)表于 12-08 13:37 ?1140次閱讀
    淺析STP/RSTP<b class='flag-5'>協(xié)議</b>(一)

    狀態(tài)路由協(xié)議的基本概念和原理解析

    狀態(tài)路由選擇協(xié)議又被稱(chēng)為最短路徑優(yōu)先協(xié)議,它基SPF(shortest path first )算法。他比距離矢量
    的頭像 發(fā)表于 12-07 09:52 ?2597次閱讀
    <b class='flag-5'>鏈</b><b class='flag-5'>路</b><b class='flag-5'>狀態(tài)</b>路由<b class='flag-5'>協(xié)議</b>的基本概念和原理解析

    網(wǎng)絡(luò)冗余是什么?網(wǎng)絡(luò)冗余備份如何實(shí)現(xiàn)?

    冗余備份主要是通過(guò)以下幾種方式實(shí)現(xiàn): 1. 聚合:這是一種多個(gè)網(wǎng)絡(luò)
    的頭像 發(fā)表于 12-01 17:29 ?2117次閱讀

    網(wǎng)絡(luò)工程師常用的命令整理

    ping是個(gè)使用頻率極高的實(shí)用程序,主要用于確定網(wǎng)絡(luò)連通性pi,如果ping通一個(gè)地址,那么基本可以排除物理層數(shù)據(jù)鏈路層的故障等。
    的頭像 發(fā)表于 11-21 09:42 ?1939次閱讀
    <b class='flag-5'>網(wǎng)絡(luò)</b>工程師常用的命令整理