生成树协议算法
生成樹協(xié)議存在算法:
802.1D 根本,后面都是基于該算法的升級改變
PVST PVST+(CISCO)
RSTP(802.1w)
MSTP(802.1S)
上一篇整理了生成樹協(xié)議解決交換機(jī)備份中環(huán)路的基本原理,現(xiàn)在整理具體是如何做的。
一、802.1D
1)BPDU:橋協(xié)議數(shù)據(jù)單元–就是交換機(jī)間溝通互動收發(fā)的數(shù)據(jù)
B-網(wǎng)橋 PDU-協(xié)議數(shù)據(jù)單元
網(wǎng)橋可以理解為現(xiàn)在的交換機(jī),根網(wǎng)橋就是當(dāng)根的交換機(jī)
1.BPDU中有包含 :
協(xié)議ID 版本號 信息類型 標(biāo)記位 根ID 路徑開銷 橋ID 端口ID
消息老化 最大老化 hello時(shí)間 轉(zhuǎn)發(fā)延時(shí)
2.BPDU種類:
第一種BPDU
配置BPDU—只有根網(wǎng)橋可以發(fā)送,在交換網(wǎng)絡(luò)初始狀態(tài)時(shí),所有交換機(jī)均定義本地為根網(wǎng)橋,進(jìn)行BPDU的發(fā)送;使得網(wǎng)絡(luò)中所有交換機(jī)均收到其他設(shè)備的BPDU,之后基于數(shù)據(jù)中的參數(shù)進(jìn)行比對,選舉出根網(wǎng)橋;之后所有非根網(wǎng)橋不再發(fā)送BPDU,而是僅接收和轉(zhuǎn)發(fā)根網(wǎng)橋的BPDU;周期2s發(fā)送,hold time 20s;
第二種BPDU
TCN—拓?fù)渥兏?#xff08;也是BPDU): 本地交換機(jī)鏈路故障后,STP重新收斂,為了快速刷新全網(wǎng)所有交換機(jī)的MAC表,將向本地所有STP接口發(fā)送TCN(標(biāo)記位中的TCN位置1,正常為0),鄰居交換機(jī)收到TCN后,先標(biāo)記為ACK位為回復(fù),用于可靠傳輸消息;之后將TCN逐級轉(zhuǎn)發(fā)到根網(wǎng)橋處,由根網(wǎng)橋回復(fù)TC消息來逐級回復(fù)到所有交換機(jī);使所有交換機(jī)臨時(shí)將MAC表的老化時(shí)間修改為15s(默認(rèn)的,轉(zhuǎn)發(fā)延時(shí))
2)生成樹協(xié)議中的端口角色和端口狀態(tài)
1.交換機(jī)角色
根網(wǎng)橋–也叫根交換機(jī)
非根交換機(jī)
2.端口角色
根端口
指定端口
非指定端口
3.狀態(tài)
down:(還沒有運(yùn)行stp)沒有BPDU收發(fā),一旦可以進(jìn)行BPDU收發(fā)進(jìn)入下一狀態(tài)
偵聽:強(qiáng)制15s;所有交換機(jī)進(jìn)行BPDU收發(fā),選舉所有角色;接口角色為非指定端口直接進(jìn)入阻塞狀態(tài);
若為指定端口和根端口進(jìn)入下一狀態(tài);
學(xué)習(xí):強(qiáng)制15s; 指定端口和根端口學(xué)習(xí)所有接口連接設(shè)備的MAC地址,生成MAC表;之后進(jìn)入下一狀態(tài);
轉(zhuǎn)發(fā):指端端口和根端口進(jìn)入,可以轉(zhuǎn)發(fā)用戶報(bào)文;
阻塞:邏輯阻塞;
注: 只有到接口進(jìn)入到轉(zhuǎn)發(fā)狀態(tài)后,才能為用戶轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文,之前的30s不能轉(zhuǎn)發(fā)任何數(shù)據(jù);
3)角色如何選舉
【1】根網(wǎng)橋 – 在一棵生成樹實(shí)例中,有且僅有一臺交換機(jī)為root;
參數(shù):BID(橋ID)
BID=網(wǎng)橋優(yōu)先級 + MAC地址
網(wǎng)橋優(yōu)先級(取值范圍0-65535公有) 默認(rèn)32768 + 修改必須以4096的倍數(shù)去更改
規(guī)則:先比較優(yōu)先級,小優(yōu); 若優(yōu)先級相同,比較mac,小優(yōu)
實(shí)際比較看的是RID,但是RID也是從BID哪里來的,當(dāng)選擇出根交換機(jī)時(shí),非根交換機(jī)的RID成為根交換機(jī)的RID,BID還是自己的。
【2】根端口—在每臺非根網(wǎng)橋上,有且僅有一個(gè)接口;本地離根網(wǎng)橋最近的接口(最短、星型),接收來自根網(wǎng)橋的BPDU,轉(zhuǎn)發(fā)用戶的流量(該接口不阻塞)
參數(shù):1.cost 2.BID 3.PID
規(guī)則:
1、比較從根網(wǎng)橋發(fā)出后,通過該接口進(jìn)入時(shí)最小的cost值;
2、入向cost值相同,比較該接口對端設(shè)備的BID,小優(yōu)
3、對端BID也相同,比較該接口對端設(shè)備的接口的PID;優(yōu)先級小,若優(yōu)先級一致,接口編號小優(yōu)
PID(端口ID)=接口優(yōu)先級 + 接口編號
接口優(yōu)先級(端口優(yōu)先級取值范圍0-240,步長16,即取值必須為16的整數(shù)倍,默認(rèn)128)
注意: BID相同情況就是當(dāng)交換機(jī)優(yōu)先級相同情況下,而且mac地址一樣所以是一個(gè)設(shè)備
如上面的根交換機(jī)0/2接口大于0/1接口編號,所以下面的交換機(jī)根端口為0/2
4、連對端PID也相同,比較本地PID,小優(yōu);(構(gòu)成條件,兩臺交換機(jī)之間連接一臺集線器或者透明交換機(jī))
【3】指定端口,在每一段存在STP協(xié)議的物理鏈路上,有且僅有一個(gè)接口;轉(zhuǎn)發(fā)來自根網(wǎng)橋的BPDU,同時(shí)可以轉(zhuǎn)發(fā)用戶流量(不阻塞);默認(rèn)根網(wǎng)橋上所有接口為指定端口;根端口對端為指定端口(必須每臺交換機(jī)都支持STP協(xié)議,透明交換機(jī)上的接口就不行)
1、比較從根網(wǎng)橋發(fā)出BDPU后,通過該接口進(jìn)入這段鏈路時(shí)的cost值最小(出向)
所以cost=20000的接口為指定端口
2、若出向cost值相同,必須本地的BID,小優(yōu);
3、本地BID相同,比較本地的PID;
4、本地PID,相同,直接阻塞該端口;
【4】非指定端口(阻塞端口)當(dāng)以上所有角色全部選舉完成后,剩余沒有任何角色的接口為非指定;
該接口邏輯阻塞,實(shí)際可以接收到信息,但不轉(zhuǎn)發(fā);
4)收斂時(shí)間
初次收斂 30s = 15偵聽+15s學(xué)習(xí)
如果發(fā)生結(jié)果變化
1.存在直連檢測
本地存在阻塞端口,若其他端口斷開,該阻塞端口馬上進(jìn)入15是偵聽(選舉);結(jié)果若為啟用,那么將再進(jìn)入15s學(xué)習(xí)—總30s
2.沒有直連檢測
本地不存在阻塞端口,若某個(gè)端口斷開,將發(fā)送次優(yōu)BPDU(以本地為根)給其他鄰居交換機(jī),其他交換機(jī)無視該數(shù)據(jù),進(jìn)行20s hold time計(jì)時(shí),到時(shí)阻塞接口進(jìn)入15s偵聽,15s學(xué)習(xí)=總50s,然后再把根網(wǎng)橋與斷開的該交換機(jī)連接起來。
5)802.1D缺點(diǎn)
1、收斂慢 – 因?yàn)樯鲜鲇残缘挠?jì)時(shí)器規(guī)則
2、鏈路利用率低–備份閑置 (接口堵塞后,鏈路閑置不用)
6)802.1配置命令
[sw1]stp mode stp 修改為802.1d算法,當(dāng)下華為默認(rèn)為MSTP;
[sw1]stp priority 4096 修改網(wǎng)橋優(yōu)先級 必須以4096的倍數(shù)去更改
[sw1-GigabitEthernet0/0/1]stp cost ? 修改接口cost值
INTEGER<1-200000000> Port path cost
[sw1-GigabitEthernet0/0/1]stp port priority ? 修改接口優(yōu)先級
INTEGER<0-240> Port priority, in steps of 16
二、PVST
cisco私有 基于vlan的生成樹協(xié)議
在每個(gè)vlan內(nèi),存在一棵樹,每個(gè)樹的工作原理同802.1d一致;不同vlan的BPDU區(qū)別在于優(yōu)先級;
優(yōu)先級=4096倍數(shù)+vlan id 人為僅可修改4096倍數(shù)備份,且只能修改為4096的整倍
僅支持 trunk干道封裝為ISL(cisco私有封裝)
缺點(diǎn):1.收斂慢 2.樹多(但是有獨(dú)立芯片)
三、PVST+
優(yōu)點(diǎn):在PVST的基礎(chǔ),兼容802.1q的trunk封裝;且設(shè)計(jì)了部分的加速;
1.端口加速(進(jìn)入層連接用戶的接口)
圖中所指端口 15s偵聽+15s學(xué)習(xí)=30s才能啟動,30s之后結(jié)果如下
2.上行鏈路加速-針對直連檢測–這個(gè)命令會使 優(yōu)先級和cost的值增大,只能在接入層設(shè)備配置
3.骨干加速—針對次優(yōu)BPDU,去除20秒,但是剩下的30秒必須進(jìn)行
缺點(diǎn):
1、收斂慢(加速不徹底)
2、樹多(僅cisco存在單獨(dú)的芯片,友商無法負(fù)荷)
四、快速生成樹RSTP
cisco的RSTP 基于vlan的快速生成樹 - 一個(gè)vlan一棵樹 pvst+的升級
公有RSTP(802.1w)整個(gè)交換網(wǎng)絡(luò)一棵樹 802.1d的升級
1)快速的原理
1、取消了計(jì)時(shí)器,而是在一個(gè)狀態(tài)工作完成后,直接進(jìn)入下一狀態(tài);
2、分段式同步,兩臺設(shè)備間逐級收斂;使用請求和同意標(biāo)記;依賴標(biāo)記位的第1和第6位
3、BPDU的保活為6s;hello time 2s;
4、將端口加速(邊緣接口)、上行鏈路加速、骨干加速集成了
5、兼容802.1d和PVST,但802.1d和PVST沒有使用標(biāo)記位中的第1-6位,故不能快速收斂;因此如果網(wǎng)絡(luò)中有一臺設(shè)備不支持快速收斂,那么其他開啟快速收斂的設(shè)備也不能快速;
當(dāng)tcn消息出現(xiàn)時(shí),不需要等待根網(wǎng)橋的BPDU,就可以刷新本地的cam表;
切記: 接口默認(rèn)為半雙工時(shí),即便允許RSTP,依然基于慢速的802.1D算法來收斂;
RSTP與STP的區(qū)別在于:
2)變化
接口狀態(tài)變化
1.STP的阻塞狀態(tài) Blocking 是不收也不轉(zhuǎn)發(fā)BPDU,但是知道有BPDU,和DOWN狀態(tài)不一樣,DOWN是不收不發(fā)也不知道
2.RSTP有個(gè)接口狀態(tài)是 Discarding 融合了堵塞狀態(tài) blocking 偵聽狀態(tài)
該狀態(tài)只收BPDU,不轉(zhuǎn)發(fā)也不學(xué)習(xí)BPDU,因?yàn)槟苁盏紹PDU,所以肯定會知道誰是根,只要知道根信息,就不用花費(fèi)后面的20秒,但是前邊的15+15秒還得進(jìn)行。
角色變化
1.將非指定端口分為 AP–替代端口 BP–備份端口,無論是AP還是BP,其實(shí)都是802.1D中的阻塞端口
AP端口(替代端口):如果因?yàn)楦偁幐丝谑?#xff0c;那么該端口就是替代接口
BP端口(備份端口):如果因?yàn)楦偁幹付ǘ丝谑?#xff0c;那么該端口就是備份接口
當(dāng)根端口或者某個(gè)指定端口掛了的時(shí)候,替代端口或者備份端口直接就補(bǔ)上,不用再參加選舉,節(jié)省了15s
最后的15s能不能省?learning狀態(tài)強(qiáng)制15s學(xué)習(xí)MAC地址!?
基于P/A機(jī)制:
先是discarding狀態(tài) 節(jié)省20s次優(yōu)BPDU發(fā)送時(shí)延
RP–AP DP–BP 節(jié)省15s選舉時(shí)間
1.P/A機(jī)制為主動,SWA主動發(fā)送P置位的BPDU
2.SWB同步變量(為了防止成環(huán),先阻塞邊緣端口之外的其他端口)
3.SWB覺得該BPDU好,發(fā)送A置位的確認(rèn)BPDU
4.SWA收到A置位的BPDU,端口立即進(jìn)入轉(zhuǎn)發(fā)狀態(tài)
這個(gè)過程幾乎是秒級 1-2s
但是如果是根網(wǎng)橋掛了,就15s+15s不能缺少重新選舉+學(xué)習(xí) 這個(gè)也是生成樹沒有徹底解決速度慢的缺點(diǎn)。
五、MSTP(簡稱MST,802.1S)
華為設(shè)備默認(rèn)使用該協(xié)議(Cisco研發(fā)出思路捐出來公用)
不同組間的BPDU中的優(yōu)先級= 4096倍數(shù)+組號
1)產(chǎn)生原因:
STP和RSTP存在缺陷:由于局域網(wǎng)內(nèi)所有的VLAN共享一棵生成樹,因此無法在VLAN間實(shí)現(xiàn)數(shù)據(jù)流量的負(fù)載均衡,鏈路如果被阻塞之后,將不承載任何流量,還有可能造成部分VLAN的報(bào)文無法轉(zhuǎn)發(fā)。
隨著網(wǎng)絡(luò)規(guī)模的變大,企業(yè)對RSTP的時(shí)間算是滿意,但是對它不能夠利用閑置的資源是有意見的。
2)解決辦法
MSTP對STP和RSTP的改進(jìn):
1.MSTP把一個(gè)交換網(wǎng)絡(luò)劃分成多個(gè)域,每個(gè)域內(nèi)形成多顆生成樹,生成樹之間彼此獨(dú)立;
也可理解為
2.每棵生成樹叫做一個(gè)多生成樹實(shí)例MSTI
每個(gè)域叫做一個(gè)MST域
3)MSTP概念
劃區(qū)域 如何在同一個(gè)區(qū)域 都得支持MST 參數(shù)配置一樣:1.name 2.等級 3.交換機(jī)上的實(shí)例劃分
區(qū)域形成之后,就會圍繞這個(gè)區(qū)域
區(qū)域內(nèi)形成內(nèi)部的生成樹
一個(gè)區(qū)域可生成多個(gè)生成樹,一個(gè)生成樹對應(yīng)一個(gè)實(shí)例 每個(gè)區(qū)域默認(rèn)存在實(shí)例0
區(qū)域間 由實(shí)例0統(tǒng)一管理區(qū)域間的成環(huán)問題,又區(qū)域內(nèi)的實(shí)例0的根來相互選舉區(qū)域間總根,總根選舉出來后,就正常選舉那個(gè)端口角色
CST 區(qū)域間的那顆大樹
IST 區(qū)域內(nèi)的那些實(shí)例的生成樹
CIST 大樹+小樹
SST 如若有一個(gè)設(shè)備不支持MST,那么這個(gè)設(shè)備自己形成一個(gè)區(qū)域(上下兼容就行了)
4)MSTP配置
以上四種算法的生成樹,是以802.1D為基礎(chǔ)不斷升級優(yōu)化的
整理下來總結(jié)生成樹的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):1.防環(huán) 2.備份
缺點(diǎn):
1.對鏈路利用率低這個(gè)問題優(yōu)化不夠徹底。
2.沒有徹底解決速度慢的缺點(diǎn)。
各類端口速度問題被解決,但是當(dāng)根交換機(jī)掛掉,就15s+15s不能缺少重新選舉+學(xué)習(xí)
3.生成樹線路是相對優(yōu) 不會絕對優(yōu) 不太適合大型企業(yè)網(wǎng),因?yàn)榇笮推髽I(yè)網(wǎng)需要橫向流量盡快速度到達(dá)目標(biāo)。
總結(jié)
- 上一篇: Vue按钮封装防抖功能
- 下一篇: 对待新技术的看法