在組網(wǎng)中,很可能會出現(xiàn)環(huán)路或者稱冗余鏈路,為避免形成廣播風暴,需要一種方法來避免形成環(huán)路,并且在主鏈路故障中斷時候,可以將冗余鏈路自動切換為轉(zhuǎn)發(fā)狀態(tài),以恢復網(wǎng)絡的連通性。生成樹協(xié)議(STP、RSTP、MSTP)就可以實現(xiàn)這樣的功能。
STP(802.1D,Spanning Tree Protocol,生成樹協(xié)議)
基本思想
將網(wǎng)絡的拓撲修剪為樹形拓撲,拓撲圖形狀與一棵樹相似,這樣就不會產(chǎn)生環(huán)路了。
在每個運行STP協(xié)議的設備上依據(jù)一定的準則選舉出一個樹根節(jié)點作為網(wǎng)絡中的根橋,其他節(jié)點為非樹根節(jié)點。
每一個非樹根節(jié)點,會選擇最優(yōu)的路徑和根橋相連,每個非樹根節(jié)點上位于最優(yōu)路徑的端口,為該非樹根節(jié)點的根端口。
如果非樹根節(jié)點存在冗余鏈路,則會對相應端口進行阻塞
基本概念介紹
根橋(Root Bridge):是整個生成樹的根節(jié)點,所有網(wǎng)橋中優(yōu)先級最高的橋。
指定橋(Designate Bridge):負責一個物理段(相對于兩個網(wǎng)橋而言是一個物理段)上數(shù)據(jù)轉(zhuǎn)發(fā)任務的橋。
根端口(Root Port):指一個網(wǎng)橋上距離跟橋最近的端口。根橋上沒有根端口,只有非根橋上有且僅有一個根端口。
指定端口(Designate Port):指定橋上的端口,就是用于轉(zhuǎn)發(fā)生成樹信息報文的端口。根橋上全是指定端口。
候補端口(Alternate Port):用來為根端口或指定端口做備份的端口,即為最終需要阻塞的端口。
橋ID(Bridge ID):每一個運行STP協(xié)議的網(wǎng)橋都會有一個橋ID,用于在網(wǎng)絡中唯一標識一個橋,由橋優(yōu)先級和橋MAC地址組成,橋優(yōu)先級占2字節(jié),橋MAC地址占6個字節(jié)。橋優(yōu)先級只能是4096的整數(shù)倍,最大為61440,默認為32768。
路徑開銷(Path Cost):STP中每條鏈路都具有開銷值,默認的開銷值取決于鏈路的帶寬,帶寬越大,開銷越小。例如IEEE標準的開銷,鏈路速度為10Gbps開銷為2,速度為100Mbps時開銷為19,速度為10Mbps時候開銷為100。
BPDU(Bridge Protocol Data Unit,橋協(xié)議數(shù)據(jù)單元):用于網(wǎng)橋之間傳遞BPDU來交互協(xié)議信息。BPDU分為配置BPDU和TCN BPDU。配置BPDU用來進行生成樹的計算和維護生成樹拓撲的報文。TCN BPDU是當拓撲結(jié)構改變時候,用來通知相關橋設備網(wǎng)絡拓撲結(jié)構發(fā)生變化的報文。
BPDU報文分析
Protocol Identifier:固定為0x0000,表示是生成樹協(xié)議
Protocol Version Identifier:協(xié)議版本號,STP版本號為0x00
BPDU Type:配置BPDU類型為0x00,TCN BPDU類型為0x80
Flags:由8位組成,最低位為TC標志位,最高位為TCA標志位,其他6位保留。當拓撲結(jié)構變化時候,下游網(wǎng)橋?qū)母丝诎l(fā)送TCN BPDU報文,TC標志位置為1,上游網(wǎng)橋收到后進行相應處理,回復配置BPDU報文,TCA標志位置為1.
Root Identifier:根橋ID,包含優(yōu)先級和MAC地址,標識網(wǎng)絡中的根橋。
Root Path Cost:根路徑開銷,指從發(fā)送該配置BPDU的網(wǎng)橋到根網(wǎng)橋的最小路徑開銷,是所有鏈路開銷的代數(shù)和。
Bridge Identifier:發(fā)送該配置BPDU的網(wǎng)橋ID,即該指定橋的ID。
Port Identifier:發(fā)送該配置BPDU的網(wǎng)橋的發(fā)送端口ID。
Message Age:從根橋生成配置BPDU開始,到當前時間為止配置BPDU的存活時間。
Max Age:配置BPDU存活的最大時間。
Hello Time:根橋生成并發(fā)送配置BPDU的周期,默認為2s
Forward Delay:配置BPDU傳播到全網(wǎng)的最大時延,默認為15s
接口狀態(tài)
狀態(tài)名稱 | 狀態(tài)描述 |
禁用(Disable) | 不能收發(fā)BPDU,也不能收發(fā)數(shù)據(jù)幀 |
阻塞(Blocking) | 該接口被STP阻塞。不能發(fā)送BPDU,但是會持續(xù)偵聽BPDU。不能收發(fā)數(shù)據(jù)幀 |
偵聽(Listening) | 表明STP初步認定該接口為根接口或指定接口,但STP還在計算過程中,可以收發(fā)BPDU,但不能收發(fā)數(shù)據(jù)幀,也不能進行MAC地址學習 |
學習(Learning) | 會偵聽業(yè)務數(shù)據(jù)幀,但不能轉(zhuǎn)發(fā)數(shù)據(jù)幀,并可以學習MAC |
轉(zhuǎn)發(fā)(Forwarding) | 正常收發(fā)數(shù)據(jù)幀,也會進行BPDU處理,只有根端口或指定端口才能進行轉(zhuǎn)發(fā)態(tài) |
當交換機的一個接口被激活后,該接口會從禁用狀態(tài)自動進入阻塞狀態(tài)。阻塞狀態(tài)的接口如果被選舉為根接口或者指定接口,那么它將從阻塞狀態(tài)進入偵聽狀態(tài),并在偵聽狀態(tài)停留15s(轉(zhuǎn)發(fā)延遲時間),為了讓STP完成整個網(wǎng)絡的計算。15s后如果還是根接口或者是指定接口,就會進入學習狀態(tài),因為此時交換機沒有學習到任何MAC地址,這個狀態(tài)也要停留15秒,之后才會變成轉(zhuǎn)發(fā)態(tài)。
計算過程
確定跟橋
每一個交換機啟動stp服務,都會認為自己是跟橋,并向外發(fā)送以自己為根橋的配置BPDU報文。
交換機接收到BPDU報文,會和自己的橋ID對比,橋ID由優(yōu)先級和mac地址組成,先比較優(yōu)先級,優(yōu)先級相同,再比較mac地址,值越小就會認為更優(yōu)。比如接收到BPDU報文的root id為8192-0000.0000.0001,自己的橋id為32768-0000.0000.0002,因為先比較優(yōu)先級,優(yōu)先級8192優(yōu)于32768,則認為自己不是根橋,就不發(fā)送認為自己是根橋的BPDU了,并通過接收到的BPDU報文更新自身的配置BPDU。直到網(wǎng)絡中所有的交換機都達成一致,認為某一個交換機為根橋,根橋的選舉結(jié)束,從而確認唯一根橋。
確定端口角色
當確認自己本身不是根橋的同時就開始確認端口角色了。
確定根端口
當一個交換機多個接口同時接收到了根橋發(fā)來的配置BPDU報文,會獲取Root Path Cost,也就是根路徑開銷,與接收端口的鏈路開銷相加,得到此端口到根橋的根路徑開銷,對比,根路徑開銷值最小的作為根端口。
如果根路徑開銷相同,對比BPDU報文中的Bridge Identifier,也就是發(fā)送該BPDU報文指定橋的ID,ID小的作為根端口。
如果指定橋ID也相同,則對比Port Identifier,發(fā)送口的端口ID,ID小的作為根端口
確定指定端口和Alternate備份端口
當確定根端口后,會將通過自己從根端口收到的BPDU報文計算生成的配置BPDU報文與非根端口接收到的配置BPDU進行比較,依次對比根路徑開銷、指定橋和端口id,自己計算產(chǎn)生的BPDU優(yōu)于接收到的,則將此接收到的端口設置為指定端口,否則設置為Alternate端口(即阻塞起來)。
拓撲結(jié)構發(fā)生改變時
當有端口斷開或新網(wǎng)橋加入時,拓撲發(fā)生了改變,就會使用到TCN BPDU報文,目的是讓STP能快速的收斂。
產(chǎn)生BPDU報文的條件:
網(wǎng)橋上有端口轉(zhuǎn)變?yōu)镕orwarding轉(zhuǎn)發(fā)狀態(tài),且該網(wǎng)橋至少包含一個指定端口。
網(wǎng)橋上有端口從Forwarding狀態(tài)或Learning狀態(tài)轉(zhuǎn)變?yōu)锽locking狀態(tài)。
拓撲改變時候STP處理步驟:
會從該發(fā)生變化的交換機的根端口發(fā)送TCN BPDU報文
上游交換機收到TCN BPDU報文,會將下一個配置BPDU報文中的TCA置為1,發(fā)送給下游交換機,來確保通往根橋的鏈路有效性
重復1,2步驟,直到根橋交換機收到TCN BPDU報文,并將下一個配置BPDU報文中的TC置為1,發(fā)送給下游所有的交換機,各網(wǎng)橋收到TC置為1的配置BPDU報文后,會將MAC地址老化時間縮短為15秒
STP的不足
為避免環(huán)路,每一個端口在確認為根端口或指定端口后仍需要等待30s才能進入轉(zhuǎn)發(fā)狀態(tài)。
對于網(wǎng)絡中有大量主機時候,頻繁上下線會導致頻繁發(fā)送TCN BPDU報文,導致網(wǎng)橋MAC地址老化時間長期為15s。
RSTP(802.1W,Rapid Spanning Tree Protocol,快速生成樹協(xié)議)
STP與RSTP區(qū)別概要
STP | RSTP | |
端口狀態(tài) | 禁用、阻塞、偵聽、學習、轉(zhuǎn)發(fā) | 丟棄、學習、轉(zhuǎn)發(fā) |
端口角色 | 根端口、指定端口、備份端口(Alternate) | 根端口、指定端口、根備份端口(Alternate)、指定端口備份端口(Backup) |
BPDU |
協(xié)議版本號為0x00 配置BPDU類型為0x00,TCN BPDU類型為0x80 |
協(xié)議版本號為0x02 類型為0x02 使用Flags字段的全部8位 最后增加了Versionl Length字段 |
STP與RSTP的接口狀態(tài)對應關系
STP的接口狀態(tài) | RSTP的接口狀態(tài) |
禁用(Disabled) | 丟棄(Discarding) |
阻塞(Blocking) | |
偵聽(Listening) | |
學習(Learning) | 學習(Learning) |
轉(zhuǎn)發(fā)(Forwarding) | 轉(zhuǎn)發(fā)(Forwarding) |
RSTP端口會在Discarding狀態(tài)完成角色的確定,當端口確定為根端口或指定端口后,經(jīng)過Forward Delay時間會進入Learning狀態(tài),比STP就少一個Forward Delay時間,并且有P/A快速機制,可以直接從Discarding直接到Forwarding狀態(tài)。不是根端口或指定端口就會維持Discarding狀態(tài)。
端口角色
根端口和指定端口角色的定義和STP相同,就不說了。
較STP新增了兩個端口概念,替代接口和備份接口。但同樣都是阻塞起來的,只是為了指定端口出故障時可以快速收斂。
替代接口(Alternate)
可以理解為根接口的備份接口,是由于收到了其他設備發(fā)送的BPDU且優(yōu)于自身所要發(fā)送的BPDU從而被阻塞的接口。當根端口進入阻塞狀態(tài)時,會選擇優(yōu)先級最高的替代接口作為新的根端口。當對端端口是Forwarding狀態(tài),則可以立即進入轉(zhuǎn)發(fā)狀態(tài)。
備份接口(Backup)
一臺設備上收到了自己所發(fā)送的BPDU從而被阻塞的接口。
如圖,LSW2上的GE 0/0/3阻塞,因為是收到了LSW3的BPDU報文,形成了環(huán)路,且收到的BPDU報文比自己的優(yōu),從而阻塞,就變成了替代接口。而LSW2上的GE 0/0/5,因為收到的是自己發(fā)送過來的BPDU報文且端口id較大被阻塞,從而變成備份接口。
BPDU報文
與STP BPDU相比較
Protocol Version Identifier為2
BPDU Type為0x02,表示為RST BPDU
BPDU flags使用全部的8位
在報文的最后增加了Versionl Length字段,值為0,表示本BPDU中不包含Versionl內(nèi)容。
最高位和最低位TCA和TC與STP相同。Agreement(同意)及Proposal(提議)用于RSTP的P/A機制,會大大提高RSTP的收斂速度。Port Role(接口角色)兩個bit位,01表示根接口,10表示替代接口,11表示指定接口,00保留。Forwarding(轉(zhuǎn)發(fā))和Learning(學習)用于表示該RST BPDU發(fā)送接口的接口狀態(tài)。
RSTP與STP不同,在網(wǎng)絡穩(wěn)定后,STP的非根橋之會轉(zhuǎn)發(fā)根橋發(fā)來的BPDU報文,而RSTP無論是非根橋還是根橋都會周期性的發(fā)送BPDU。
在STP中只有在指定端口收到低優(yōu)先級的配置BPDU時才會立即回應(發(fā)送自己計算的配置BPDU報文),阻塞狀態(tài)端口不會對低優(yōu)先級的配置BPDU做出回應。
在RSTP中,指定端口或阻塞狀態(tài)的端口收到低優(yōu)先級的RST BPDU,也可以立即對其做出回應。
P/A快速收斂機制
當網(wǎng)絡中增加新的鏈路或故障鏈路恢復時,鏈路兩端必有一個端口的角色是指定端口,在STP中,該指定端口需要等待30s才能進入Forwarding狀態(tài)。
P/A機制是指定端口可以通過與對端網(wǎng)橋進行一次握手,即可快速進入轉(zhuǎn)發(fā)狀態(tài),無需任何定時器。
前提條件是必須是點到點的鏈路。
當新鏈路連接時候,鏈路兩端的端口初始都為指定端口并處于阻塞的狀態(tài)。
當指定端口處于Discarding和Learning狀態(tài)時,所發(fā)送的BPDU中的Proposal位將被置為1,端口的角色位11,是指定端口。(都是指定端口發(fā)的喲)
收到Proposal置位的RST BPDU報文后,交換機會判斷接收端口是否為根端口,如果是根端口,會進行同步過程,同步過程是阻塞除邊緣端口(直接與用戶終端相連,沒有連接到其他交換機或者網(wǎng)橋,一般需要手動配置為邊緣端口,可以忽略Forward Delay時間直接進入Forwarding狀態(tài),無時延)之外的所有端口,為了消除本交換機產(chǎn)生環(huán)路的可能。
完成同步過程后,根端口進入轉(zhuǎn)發(fā)狀態(tài)并從根端口回發(fā)Agreement置為1的RST BPDU報文,內(nèi)容復制收到的Proposal置為的RST BPDU報文,唯一不同的就是Flags字段的Agreement也置為1。
收到Agreement置1的BPDU報文后,該接口會立即進入轉(zhuǎn)發(fā)狀態(tài)。
同步過程阻塞的接口也會繼續(xù)往下進行這個過程。
如果指定端口發(fā)出Proposal置位的BPDU后沒有收到Agreement BPDU報文,則該端口需要等待30s(兩個延遲時間)才會進入轉(zhuǎn)發(fā)狀態(tài)。
拓撲改變處理
在STP中,端口變?yōu)镕orwarding狀態(tài)或從Forwarding變?yōu)锽locking狀態(tài)均會觸發(fā)拓撲改變處理過程,而RSTP只在非邊緣端口轉(zhuǎn)為Forwarding狀態(tài)時才會觸發(fā)處理過程。
當交換機由非邊緣端口轉(zhuǎn)變?yōu)镕orwarding狀態(tài)時,網(wǎng)橋會在兩倍的Hello Time時間內(nèi)向根端口以及指定端口發(fā)送TC置位為1的RST BPDU,同時清除這些端口學習到的MAC地址。
其他交換機收到TC置位的RST BPDU時候,會清除接收TC報文的端口以及邊緣端口之外的其余端口MAC地址,并同樣會在兩倍的Hello Time時間內(nèi)向根端口以及指定端口發(fā)送TC置位為1的RST BPDU報文。
交換機收到TC置位的RST BPDU后不需要在Max Age+Forward Delay時間內(nèi)將MAC地址老化時間設置為Forward Delay,而是直接清除端口MAC地址,重新進行學習,從而實現(xiàn)更快的收斂。
注:本人使用華為模擬器,拓撲改變收到拓撲改變的報文,并沒有立即清除端口mac,好像是一個Foreard Delay時間后才清除mac。
RSTP和STP的兼容
當運行RSTP的交換機連續(xù)3次接收到配置BPDU時候,認為改端口和STP相連,該端口將切換到STP協(xié)議運行。
MSTP(802.1S,Multiple Spanning Tree Protocol,多生成樹協(xié)議)
基本思想
基于實例(Instance)計算出多棵生成樹,每個實例都會生成自己的生成樹,并且每個實例可以包含一個或多個VLAN,每一個VLAN只能映射到一個實例。交換機可以通過配置多個實例,實現(xiàn)不同VLAN組之間的負載分擔。
基本概念解釋
MST域是一個具有相同域名、修訂級別和摘要信息的網(wǎng)橋或交換機構成的集合,一個域可以包含多個實例。
域名,本域的名稱,MSTP中每一個域都有一個獨一無二的名稱,配置不同域名會被認為屬于不同的域。
修訂級別,目前保留,默認為0。
配置摘要,由網(wǎng)橋的vlan和實例映射關系生成的長度為16字節(jié)的HMAC-MD5簽名。
IST是MST域內(nèi)的一顆生成樹,每顆生成樹對應一個實例。實例號為0,一定存在的
MSTI是多生成樹實例,實例號從1開始,為0的實例號是IST
MSTI域根,是每一個MSTI實例上優(yōu)先級最高的網(wǎng)橋
CST(公共生成樹)是網(wǎng)絡內(nèi)所有MST域通過計算得到的一棵樹。
CIST(公共和內(nèi)部生成樹)是整個網(wǎng)絡所有設備經(jīng)過生成樹計算得到的一棵樹。由IST和CST共同構成。
CIST總根,是整個網(wǎng)絡中優(yōu)先級最高的橋,是CIST的根橋。
CIST域根,IST的根橋即為CIST的域根,是MST域內(nèi)距離總根最近的橋,也稱為Master橋。
端口角色
相較RSTP,橋的角色上,MSTP增加了Master橋。端口角色上,增加了域邊界端口以及Master端口。根端口、指定端口、Alternate端口、Backup端口定義和RSTP一樣。
IST(實例號為0網(wǎng)絡)中距離總根最近的橋為Master橋,該橋為IST的根,Master橋指向總根(整個網(wǎng)絡中優(yōu)先級最高的橋)的端口為Master端口。
MST域內(nèi)網(wǎng)橋和其他MST域或STP/RSTP網(wǎng)橋相連的端口稱為域邊界端口,Master端口也是域邊界端口。
如下圖創(chuàng)建了三個區(qū)域,暫時都只有IST(實例0),優(yōu)先級和MAC都是我編的,然后下圖標注了MSTP所有的概念,更方便理解吧。
BPDU報文
BPDU Type:0x02
BPDU flags:CIST標志字段
Root Identifier:CIST總根交換機ID
Root Path Cost:CIST外部路徑開銷,指從本交換機所屬的MST域到CIST根交換機的累計路徑開銷。
Bridge Identifier:CIST的域根交換機ID(每個域距離根橋最近的交換機,域根并不是只有一個,每個域都有一個域根,很多資料上也稱為CIST域根,我理解一半天),即IST Master的ID。如果總根在這個域內(nèi),那么域根交換機ID就是總根交換機ID。
Port Identifier:CIST的指定端口ID(當前報文的上游交換機發(fā)送端口)
Version 3 Length:表示MST專有字段的長度,用于接收到BPDU后進行校驗。
MST Config ID:格式選擇字符固定為0x00。
MST Config name:域名
MST Config revision:修訂級別,為0
MST Config digest:配置摘要
CIST Internal Root Path Cost:CIST內(nèi)部路徑開銷,表示發(fā)送此BPDU的網(wǎng)橋到達CIST域根的路徑開銷。
CIST Bridge Identifier:發(fā)送此BPDU的網(wǎng)橋ID
CIST Remaining hops:CIST剩余跳數(shù),限制MST域的規(guī)模,從域根開始,BPDU每經(jīng)過一個網(wǎng)橋,跳數(shù)就減一,網(wǎng)橋會丟棄收到的跳數(shù)為0的BPDU,從而限制MST域的規(guī)模。默認為20
MSTI配置信息中的內(nèi)容只在各自實例中有效,且每個實例中這些字段值是獨立的
MSTI flag:一個字節(jié),從第一位到第七位的定義和RSTP相同,第八位為Master標志位
Region Root:表示該實例的域根ID
Internal root path cost:表示發(fā)送此BPDU的網(wǎng)橋到達MSTI域根的路徑開銷
Bridge Identifier priority:表示發(fā)送此BPDU的網(wǎng)橋,即指定橋的優(yōu)先級,其中高4位為優(yōu)先級位,第四位固定為0
Port Identifier priority:表示發(fā)送此BPDU的端口的優(yōu)先級,其中高4位為優(yōu)先級位,第四位固定為0
Remaining hops:表示BPDU在該MST實例中的剩余跳數(shù)。
優(yōu)先級向量
MSTP計算可以分為CIST和MSTI計算兩部分
CIST優(yōu)先級向量
用于計算生成CIST生成樹和CST生成樹,總根,域根等
{CIST總根ID、外部路徑開銷、域根ID、內(nèi)部路徑開銷、指定交換設備ID、指定端口ID、接收端口ID}
再次注意(怕你已經(jīng)被弄暈了),
外部路徑開銷是當前域的Master橋到總根的路徑開銷
內(nèi)部路徑開銷是當前交換機到當前域根的路徑開銷
指定交換設備ID就是發(fā)送這個報文的交換機的ID
指定端口ID就是發(fā)送這個報文的交換機的端口ID
對比是按照從左往右的順序,值小者為優(yōu),給個報文的圖直觀一些
MSTI優(yōu)先級向量用于計算生成區(qū)域內(nèi)的生成樹和端口狀態(tài)等,計算范圍僅限區(qū)域內(nèi)
{域根ID、內(nèi)部路徑開銷、指定交換設備ID、指定端口ID、接收端口ID}
MSTP計算方法
每個BPDU既包含CIST計算所需的信息,也包含MSTI計算所需要的信息。
計算生成樹時候和RSTP類似,在進行CST計算時,會把MST域看做邏輯上的一個網(wǎng)橋,網(wǎng)橋ID為IST域根的ID也就是Master橋ID(距離總根最近的橋)。
當網(wǎng)橋收到BPDU并判斷不是同一個域后,不會解析MST專有字段的信息。
初始時每個網(wǎng)橋都認為自己是總根,發(fā)送以自己為總根、域根和指定橋的BPDU。
計算端口角色和交換機角色過程與RSTP相同。
CST(公共生成樹)的計算過程
需要對比的優(yōu)先級向量為{總根、外部路徑開銷、域根、指定端口ID、接收端口ID},因為生成CST時候把相同的域當做一個網(wǎng)橋了,網(wǎng)橋ID為MST域的Master橋ID,所以自然無需對比內(nèi)部路徑開銷和指定橋ID了。
初始時,每個域根向其他域根發(fā)送以自己為總根的BPDU。
確定“根網(wǎng)橋”(一個域看成一個網(wǎng)橋),也是CIST的總根。
確定端口角色“根端口”也就是一個域的Master端口,“根端口”的網(wǎng)橋也就是域根。
確定指定端口、Alternate端口或者Backup端口。
阻塞域之間的Alternate端口和Backup端口。
IST(內(nèi)部生成樹)和MSTI(內(nèi)部生成樹實例)的計算過程
經(jīng)過CST的計算生成了域內(nèi)的根橋(即Master橋)
所需要比較的優(yōu)先級向量為MSTI優(yōu)先級向量,即{域根ID、內(nèi)部路徑開銷、指定交換設備ID、指定端口ID、接收端口ID}
域內(nèi)網(wǎng)橋通過比較內(nèi)部路徑開銷來確定根端口。
通過比較BPDU的優(yōu)先級確定指定端口、Alternate端口或者Backup端口。
阻塞IST上的Alternate端口和Backup端口。
MSTP與RSTP交互
RSTP網(wǎng)橋收到MSTP的BPDU時,會將MSTP的BPDU報文里的CIST總根ID,外部路徑開銷,域根ID,指定端口ID分別與RSTP的BPDU報文里的根橋ID,根橋開銷,指定橋ID,指定端口ID對應。
MSTP網(wǎng)橋收到RSTP的BPDU時,會將RSTP的BPDU報文里的根橋ID,根橋開銷,指定橋ID,指定端口ID分別與MSTP的BPDU報文里的CIST總根ID,外部路徑開銷,域根ID,指定端口ID對應。
P/A快速收斂機制
MSTP支持RSTP的快速收斂機制,但有不同點。詳細的可以看上面的RSTP的P/A機制,這里只寫區(qū)別。
RSTP是上游交換機指定端口發(fā)送Proposal置位的BPDU,下游網(wǎng)橋執(zhí)行同步操作之后回應Agreement置位的BPDU,上游網(wǎng)橋收到Agreement置位的BPDU后其指定端口可以立即進入轉(zhuǎn)發(fā)狀態(tài)。
MSTP是上游交換機指定端口發(fā)送Proposal置位和Agreement置位的BPDU,下游網(wǎng)橋收到BPDU后執(zhí)行同步操作然后回應Agreement置位的BPDU,上游網(wǎng)橋收到Agreement置位的BPDU后其指定端口可以立即進入轉(zhuǎn)發(fā)狀態(tài)。
補充
MSTP和實例相關的講的較少,因為同一個MST域中可以有多個實例,每個實例可以運行通過一個或n個VLAN,但是一個VLAN只能存在一個實例中,然后每個實例都會各自生成生成樹,除了IST(實例為0)的根節(jié)點是Master橋,其余實例都是按照RSTP類似方法計算出各自實例自己的根橋,指定橋,根端口和指定端口的。
MSTP因為有多個實例,每個端口上對實例的狀態(tài)可能不一樣,比如在實例1端口為根端口,實例2上這個端口為指定端口,所以會出現(xiàn)端口既會發(fā)BPDU報文也會收BPDU報文。
拓撲改變的處理和RSTP相同。
MSTP比RSTP就是多了分區(qū)域多實例,細化看,每個實例運行的都是RSTP。
RSTP和MSTP啟動時簡單介紹
當一臺交換設備啟動RSTP和MSTP時候,會默認自己為根橋,且所有使能RSTP或者MSTP的端口都為指定端口Discarding狀態(tài),這樣就會觸發(fā)P/A快速機制,當一個指定端口發(fā)送P/A機制報文沒收到對端發(fā)送過來的回復報文,則需要經(jīng)過2倍的Forward delay時間才能到轉(zhuǎn)發(fā)態(tài)。假如下游有一個交換設備同時開啟了RSTP或者MSTP,則都會發(fā)送P/A機制報文,收到報文后兩個指定端口會對比報文確定自己的角色從而繼續(xù)P/A快速機制。P/A會阻塞除邊緣端口和根端口外的其他所有端口,端口兩兩進行這種操作從而生成整個生成樹。
MSTP啟動時,多個實例都會在互不干擾的生成對應的生成樹,類似多線程一樣。
MSTP收到其他區(qū)域報文時候,只會對比CIST的信息,MIST內(nèi)容會忽略。
審核編輯:郭婷
-
交換機
+關注
關注
21文章
2642瀏覽量
99701
原文標題:MSTP(802.1S,Multiple Spanning Tree Protocol,多生成樹協(xié)議)
文章出處:【微信號:網(wǎng)絡技術干貨圈,微信公眾號:網(wǎng)絡技術干貨圈】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論