STP/RSTP/MSTP 精华详解
STP/RSTP/MSTP 精華詳解:
STP 概述 :
- 因?yàn)槎釉O(shè)備的互聯(lián),并因?yàn)榻粨Q機(jī)的轉(zhuǎn)發(fā)原理,會(huì)導(dǎo)致物理環(huán)路的產(chǎn)生。這時(shí)就會(huì)使用到STP協(xié)議
- STP:在有環(huán)的拓?fù)淅锩嫘纬梢粋€(gè)無環(huán)的邏輯拓?fù)?從有環(huán)(物理)到無環(huán)(邏輯))
- STP:將環(huán)路網(wǎng)絡(luò)修剪成一個(gè)無環(huán)的樹形網(wǎng)絡(luò),通過生成樹計(jì)算,阻塞某個(gè)接口,使得數(shù)據(jù)到達(dá)目的只有邏輯上的一條鏈路可以走,運(yùn)行該協(xié)議的設(shè)備通過彼此交互BPDU來進(jìn)行STP的計(jì)算。
- 二層環(huán)路會(huì)帶來的問題:廣播風(fēng)暴,MAC地址表偏移,MAC地址震蕩。
- MAC地址漂移:
- 一個(gè)MAC映射一個(gè)接口,
- 一個(gè)接口可以映射多個(gè)MAC。
- 設(shè)備上一個(gè)從一個(gè)兩個(gè)接口學(xué)習(xí)到兩個(gè)MAC地址,后學(xué)習(xí)到MAC地址表項(xiàng)會(huì)覆蓋原MAC表項(xiàng)的現(xiàn)象。
- 如何防止:提高接口MAC地址學(xué)習(xí)優(yōu)先級(jí)。不允許相同接口mac地址進(jìn)行表項(xiàng)覆蓋。
BPDU:
-
橋協(xié)議數(shù)據(jù)單元。
-
屬于二層協(xié)議。用于在交換機(jī)與交換機(jī)之間發(fā)送,構(gòu)建無環(huán)網(wǎng)絡(luò),
| Flags | 8bit,STP只用一個(gè)最高位和一個(gè)最低位,最高位置位為TCA BPDU,最低位置位為 TC BPDU |
| Root-id | 根橋ID,根橋設(shè)備的BID,由優(yōu)先級(jí)+mac地址組成 |
| Cost of path | 根路徑開銷,描述到達(dá)根橋的開銷值 |
| Bridge-id | 轉(zhuǎn)發(fā)橋id,描述發(fā)送該BPDU的設(shè)備BID. |
| Port-id | 端口id,發(fā)送給BPDU的端口id |
| Message age | 配置BPDU能夠在網(wǎng)絡(luò)中存活的最大生存時(shí)間 |
| Max age | 接口緩存BPDU的老化時(shí)間,默認(rèn)為20s |
| hello time | 根橋發(fā)送配置BPDU的發(fā)送周期,默認(rèn)為2s |
| Forward delay | Listening,Learning狀態(tài)的持續(xù)時(shí)間,默認(rèn)為15s |
-
BID:BID一共8個(gè)字節(jié),其中優(yōu)先級(jí)2個(gè)字節(jié),MAC地址6個(gè)字節(jié),優(yōu)先級(jí)又分為兩部分組成,一個(gè)是優(yōu)先級(jí)字段,一個(gè)是system id字段,system id實(shí)質(zhì)就是vlan id,華為默認(rèn)為0,所以設(shè)置優(yōu)先級(jí)實(shí)質(zhì)還是從高4位開始進(jìn)行,高四位為2^12,為4096,所以優(yōu)先級(jí)必須設(shè)置為4096的倍數(shù)。
-
Message age 如果是根橋發(fā)出的配置,那么值為0,否則為根橋發(fā)出到達(dá)當(dāng)前橋接收BPDU的總時(shí)間,華為實(shí)現(xiàn),每經(jīng)過一個(gè)交換機(jī),值加1
端口狀態(tài):
| Disabled | 關(guān)閉狀態(tài) |
| Blocking | 阻塞狀態(tài),接收BPDU,不發(fā)送,不學(xué)習(xí)MAC,不轉(zhuǎn)發(fā)數(shù)據(jù) |
| Listening | 偵聽狀態(tài),接收并發(fā)送BPDU,不學(xué)習(xí)MAC,不轉(zhuǎn)發(fā)數(shù)據(jù),停留一個(gè)forward delay的時(shí)間 15s |
| Learning | 學(xué)習(xí)狀態(tài),接收并發(fā)送BPDU,學(xué)習(xí)MAC,不轉(zhuǎn)發(fā)數(shù)據(jù),停留一個(gè)forward delay的時(shí)間 15s |
| Forwrading | 轉(zhuǎn)發(fā)狀態(tài),接收并發(fā)送BPDU,學(xué)習(xí)MAC,轉(zhuǎn)發(fā)數(shù)據(jù) |
STP快速收斂會(huì)造成臨時(shí)環(huán)路
- STP因?yàn)闆]有快速收斂機(jī)制,所以要設(shè)計(jì)forwead delay的時(shí)間,等待所有設(shè)備BPDU報(bào)文交互的完成
- 不然就會(huì)造成拓?fù)渥兏?#xff0c;端口角色轉(zhuǎn)換完成后快速進(jìn)入轉(zhuǎn)發(fā)狀態(tài),而莫端設(shè)備還沒有收到TC置位的BPDU,造成網(wǎng)絡(luò)中所有端口都處于轉(zhuǎn)發(fā)狀態(tài),造成一個(gè)臨時(shí)環(huán)路的產(chǎn)生,
- 再比較自己的r-id
- DP對(duì)象:逐鏈路
- stp:慢,無冗余、
STP拓?fù)渥兏ㄖ?#xff1a;
- 發(fā)送TCN BPDU必須滿足一下任意條件:
- 必須有一個(gè)接口狀態(tài)處于Forwarding。
- 只有DP接口才處理TCN BPDU
- 當(dāng)交換機(jī)有鏈路故障后,會(huì)像上游交換機(jī)發(fā)送TCN BPDU,上游交換機(jī)收到后,會(huì)回復(fù)一個(gè)TCA 置位的BPDU,用于告訴下游我已經(jīng)收到了,并向上游逐跳發(fā)送,直至發(fā)送到根橋,根橋收到之后,會(huì)向下游發(fā)送TCA,TC同時(shí)置位的BPDU,然后朝其他接口發(fā)送TC置位的bpdu,所有運(yùn)行STP的交換機(jī)均可以收到TC置位的BPDU。然后會(huì)立即重置自己的MAC地址表項(xiàng)。
- TC置位BPDU的發(fā)送時(shí)間為2s,不受hello time時(shí)間的影響
- 周期為35s(Forward delay+Max age),會(huì)一直發(fā)送TC置位的BPDU,那么就會(huì)一直清空MAC地址表項(xiàng),但是
RSTP 概述:
-
雖然有STP的獨(dú)特的破環(huán)機(jī)制,但是端口進(jìn)入轉(zhuǎn)發(fā)狀態(tài)的時(shí)間最少依舊還是等待30s的時(shí)間,很顯然滿足不了現(xiàn)在的業(yè)務(wù)需求,所以在STP的基礎(chǔ)上,改良開發(fā)出了RSTP
-
STP/RSTP對(duì)比
STP/RSTP對(duì)比STPRSTP 端口角色 RP/DP/BP-AP RP/DP/BP/AP/EP 端口狀態(tài) 五種 三種,(將STP前三種合為了一種-Discarding) 快速收斂機(jī)制 無 P/A機(jī)制、EP端口,AP端口特性,
RSTP端口狀態(tài):
-
端口狀態(tài)描述 Discarding 禁用狀態(tài),接收并發(fā)送BPDU,不學(xué)習(xí)MAC,不轉(zhuǎn)發(fā)數(shù)據(jù),停留一個(gè)forward delay的時(shí)間 15s Listening 偵聽狀態(tài),接收并發(fā)送BPDU,不學(xué)習(xí)MAC,不轉(zhuǎn)發(fā)數(shù)據(jù),停留一個(gè)forward delay的時(shí)間 15s Forwrading 轉(zhuǎn)發(fā)狀態(tài),接收并發(fā)送BPDU,學(xué)習(xí)MAC,轉(zhuǎn)發(fā)數(shù)據(jù) -
由STP的五種端口裝換為了三種端口,這是因?yàn)樵萐TP的前兩個(gè)端口,都不能發(fā)送BPDU,所以就將兩個(gè)直接替代了,是的三種端口合為了一種,端口狀態(tài)數(shù)據(jù)少,以便于人工管理
RSTP新增屬性:
-
EP端口,用于連接交換機(jī)。
-
BP端口,用于做DP的備份端口
-
AP端口,用于做RP的備份端口
-
報(bào)文 flags字段,8位全部占用:
TCA置位A置位端口狀態(tài)標(biāo)識(shí)符P置位P置位TC置位 高7位,RSTP不再使用 高6位,置位標(biāo)識(shí)A置位的BPDU 高5,4位同時(shí)置位,01表示DIS狀態(tài),10表示lear狀態(tài),11表示for狀態(tài) 低2,3位同時(shí)置位,01代表AP/BP,10代表RP,11代表DP. 低1位,置位表示P置位的BPDU 低0位,置位表示為TC置位的BPDU
邊緣端口:
- 可以接收、發(fā)送BPDU,
- EP端口接入終端立即變?yōu)镈P+Forwarding。
- EP端口收到BPDU后,會(huì)失去邊緣端口特性。變?yōu)槠胀ǘ丝谥匦聟⑴cSTP計(jì)算
- EP為什么會(huì)發(fā)送BPDU?
- 當(dāng)兩個(gè)EP端口自環(huán)了,EP端口收到了自己的BPDU,就會(huì)知道下面有環(huán)路產(chǎn)生
- 發(fā)送BPDU來防止自環(huán)的產(chǎn)生。(BPDU 2s發(fā)送一次,所以BPDU會(huì)存在2s的臨時(shí)環(huán)路,)
- 接口Up/Down.不會(huì)發(fā)送TC置位的BPDU.不會(huì)影響拓?fù)渥兏?/li>
- TC BPDU不會(huì)向EP端口轉(zhuǎn)發(fā)。
- 收到TC BPDU、P/A置位BPDU時(shí),不會(huì)清空EP端口的MAC地址表項(xiàng),PA協(xié)商時(shí)會(huì)強(qiáng)制為sysc同步成功
邊緣端口保護(hù):
- 配置EP端口保護(hù)后,如果邊緣端口收到BPDU報(bào)文,邊緣端口會(huì)被down掉,邊緣端口屬性不變
- 被關(guān)閉的端口默認(rèn)不會(huì)自動(dòng)恢復(fù),需要執(zhí)行命令手動(dòng)恢復(fù),或者重啟端口,或者配置一個(gè)自動(dòng)恢復(fù)的時(shí)間。
快速收斂:
-
P/A機(jī)制:
- 在交換機(jī)與交換機(jī)之間進(jìn)行的,
- 交換機(jī)認(rèn)為自己是Root 接口想為DP,處于Discarding 狀態(tài),就發(fā)送P/A置位的BPDU
- 雙方都認(rèn)為自己的Root,都會(huì)發(fā)送P/A置位的BPDU,雙方通過比較優(yōu)劣,劣勢(shì)的一方,主動(dòng)發(fā)起A置位的BPDU
- 當(dāng)鏈路類型為點(diǎn)到點(diǎn),全雙工,接口想為RP端口,處于Discarding狀態(tài),并進(jìn)行P/A同步(sync),就會(huì)發(fā)送A置位的BPDU。
- P/A同步過程:將交換機(jī)除AP,EP,BP,端口以外的所有端口處于Discarding狀態(tài),
- 當(dāng)將A置位的BPDU,發(fā)送出去后,該端口立馬進(jìn)入Forwarding狀態(tài),
- 當(dāng)收到A置位的BPDU后,該端口立馬進(jìn)入Forwarding狀態(tài)。
- P/A機(jī)制是當(dāng)上游是DP端口,下游是RP端口是,才進(jìn)行P/A機(jī)制,若下游是AP短褲,則不會(huì)產(chǎn)生A置位的BPDU進(jìn)行回復(fù),那么對(duì)端DP端口進(jìn)入到轉(zhuǎn)發(fā)狀態(tài),就需要等待兩個(gè)Forward Delay的時(shí)間。
- 什么時(shí)候端口才會(huì)認(rèn)為自己是DP?
- 剛加入網(wǎng)絡(luò),認(rèn)為自己是根橋
- 什么時(shí)候端口才會(huì)認(rèn)為自己的RP?
- 通過比較BPDU后,發(fā)現(xiàn)別人的比較優(yōu)。
- 什么時(shí)候端口才會(huì)認(rèn)為自己是AP?
- 收到的BPDU,沒有自身其優(yōu)。
- 什么時(shí)候端口才會(huì)認(rèn)為自己是BP?
- 收到自己發(fā)出的BPDU,但是比自己優(yōu)。
-
AP端口特性:
- 當(dāng)RP端口Down掉后,交換機(jī)會(huì)從多個(gè)AP端口中選擇最優(yōu)的AP端口替代成RP,AP會(huì)直接轉(zhuǎn)換為RP,并立即進(jìn)入轉(zhuǎn)發(fā)狀態(tài)。
-
BP端口特性:
- 若DP端口Down后,BP會(huì)立即轉(zhuǎn)變成為RP狀態(tài),等待兩個(gè)Forward Delay的時(shí)間進(jìn)入轉(zhuǎn)發(fā)狀態(tài)
- 若DP端口鏈路被阻塞,BP收不到了RP發(fā)送過來的BPDU,會(huì)等待hold time的超時(shí)時(shí)間(默認(rèn)為18s),就認(rèn)為DP掛掉了,BP會(huì)立即轉(zhuǎn)變成為RP狀態(tài),等待兩個(gè)Forward Delay的時(shí)間進(jìn)入轉(zhuǎn)發(fā)狀態(tài),總共為(18+30=48)
拓?fù)渥兏ㄖ?#xff1a;
-
觸發(fā)條件:交換機(jī)端口狀態(tài)由Discarding狀態(tài)轉(zhuǎn)換為Forarading狀態(tài)(說明就是有端口角色的切換),該接口Down會(huì)影響其他接口角色的切換,
-
交換機(jī)會(huì)跟除EP端口外所有端口啟動(dòng) Tc While time,這個(gè)計(jì)時(shí)器是hello time的兩倍,
-
在這個(gè)時(shí)間內(nèi),清空除EP端口外所有端口映射學(xué)習(xí)來的MAC地址,同時(shí)由端口發(fā)送RST BPDU,其中TC置位,一旦Tc While 計(jì)時(shí)器超時(shí),就不再發(fā)送
-
交換機(jī)收到RST BPDU后,清空除接受端口,和EP端口以外的所有的MAC地址條目,
-
并開啟Tc While time,繼續(xù)朝著DP/RP端口進(jìn)行轉(zhuǎn)發(fā)。
優(yōu)點(diǎn):1.不用清空所有的MAC地址條目,保留了一些有效的,有效的避免了過多單播報(bào)文的泛洪
? 2.以拓?fù)渥兓邽樵?#xff0c;向外擴(kuò)散TC置位的BPDU,不必到達(dá)根橋,節(jié)省了收斂時(shí)間。
華為實(shí)現(xiàn):
- 華為實(shí)現(xiàn):在收到比自己次優(yōu)的BPDU時(shí),會(huì)將自己的優(yōu)的BPDU發(fā)給對(duì)方。這就不用等待Max Age的超時(shí)時(shí)間。
- 華為實(shí)現(xiàn):STP/MSTP/RSTP都只有三種狀態(tài),
- 華為實(shí)現(xiàn):STP只比RSTP少了一個(gè)快速收斂 P/A機(jī)制
- 華為實(shí)現(xiàn):設(shè)備有自己的超時(shí)時(shí)間,在超時(shí)時(shí)間內(nèi)沒有收到BPDU,就會(huì)重新進(jìn)行生成樹的計(jì)算,Max Age在華為交換機(jī)中的意義不大,超時(shí)時(shí)間為 hello time時(shí)間 x 3 x 時(shí)間因子(默認(rèn)為3,取值1-10),默認(rèn)位18s,最小為6s。
- 華為實(shí)現(xiàn),當(dāng)收到TC置位的BPDU時(shí),會(huì)將交換機(jī)的MAC清空,這樣可以及時(shí)清除錯(cuò)誤的MAC表項(xiàng),但是TC置位的BPDU會(huì)持續(xù)發(fā)送35s,每2s發(fā)送一次。會(huì)發(fā)送大概17次,就會(huì)一直刷新交換機(jī)的MAC地址表項(xiàng)。同時(shí)會(huì)產(chǎn)生過多的單播泛洪報(bào)文。
MSTP概述:
- STP/RSTP在交換機(jī)上有且僅有一個(gè)實(shí)例,所有vlan映射到一個(gè)實(shí)例上,RSTP雖然可以實(shí)現(xiàn)網(wǎng)絡(luò)的快速收斂,但是仍然會(huì)出現(xiàn)閑置鏈路,沒有達(dá)到負(fù)載均衡的目的
- MSTP可以自定義多個(gè)生成樹實(shí)例,允許多個(gè)vlan映射到不同的實(shí)例
- 實(shí)現(xiàn)負(fù)載均衡,避免閑置鏈路
- 實(shí)現(xiàn)冗余備份,各實(shí)例之間的單獨(dú)進(jìn)行RSTP計(jì)算的,互不影響
- 不同的vlan流量根據(jù)不同的路徑進(jìn)行轉(zhuǎn)發(fā)。
MSTP標(biāo)識(shí):
-
MST交換機(jī)使用MST configuration id來標(biāo)識(shí)自己
-
MST configuration id包含三個(gè)參數(shù):
- 區(qū)域名字(region name)
- 修訂級(jí)別 (region level)
- vlan和實(shí)例(instance)的映射。MSTP會(huì)將vlan與實(shí)例的映射關(guān)系進(jìn)行hash計(jì)算。然后讓BPDU進(jìn)行攜帶,雙方通過比較hash值來確定是不是屬于同一實(shí)例。
- 只有以上三種參數(shù)全部相同,才說明他們屬于同一實(shí)例。
-
MSTP實(shí)例:
-
MSTI:用戶自定義多生出實(shí)例
-
MSTP通過設(shè)置VLAN映射表(即VLAN和MSTI的對(duì)應(yīng)關(guān)系表)把VLAN和MSTI聯(lián)系起來
-
MSTI可以與一個(gè)或多個(gè)vlan對(duì)應(yīng)。
-
各MSTI之間單獨(dú)進(jìn)行RSTP計(jì)算,互不干擾、
-
每個(gè)MSTI進(jìn)行802.1W算法
-
每個(gè)端口在每個(gè)MSTI中的端口角色,狀態(tài),參數(shù)不一樣
-
-
ISTl:默認(rèn)實(shí)例0,他是特殊的MST實(shí)例缺省情況下,所有vlan都屬于該實(shí)例。
-
CITI:MSTP 多域。MST實(shí)例僅出現(xiàn)在每個(gè)區(qū)域內(nèi),并不出現(xiàn)在區(qū)域間,如果把每一個(gè)區(qū)域看做是一臺(tái)大的交換機(jī),則連接這些交換機(jī)的樹被稱為CSI,
-
每個(gè)區(qū)域中的IST和區(qū)域間的CST一起構(gòu)成CIST
-
STP保護(hù)技術(shù):
BPDU保護(hù):
-
EP端口如果收到BPDU后,會(huì)喪失特性,那么如果有人惡意的跟EP端口發(fā)送BPDU。是EP端口喪失特性
-
使用在EP端口上,EP端口如果收到BPDU后,不會(huì)使其失去邊緣端口特性,而是直接關(guān)閉,需要手動(dòng)開啟,或者手動(dòng)配置自動(dòng)恢復(fù)的時(shí)間,
根保護(hù):
-
如果在現(xiàn)有的拓?fù)渲?#xff0c;新加入一各交換機(jī),并惡意的將優(yōu)先級(jí)設(shè)置最低,使之網(wǎng)絡(luò)受到優(yōu)先級(jí)更高的BPDU,從而引起網(wǎng)絡(luò)拓?fù)溴e(cuò)誤變更,會(huì)導(dǎo)致原來應(yīng)該通過高速鏈路轉(zhuǎn)發(fā)的數(shù)據(jù)朝著低速鏈路進(jìn)行轉(zhuǎn)發(fā),造成網(wǎng)絡(luò)擁塞
-
啟用ROOT保護(hù)的RP端口,端口角色一致保持在RP端口。如果指定端口收到優(yōu)先級(jí)更高的報(bào)文,端口進(jìn)入Discarding狀態(tài),不在轉(zhuǎn)發(fā)BPDU,在經(jīng)過兩倍的Forwrad delay時(shí)間后,如果端口一直沒有收到更優(yōu)的BPDU,則自動(dòng)恢復(fù)到正常的Forwarding狀態(tài)。
環(huán)路保護(hù):
- 在AP和DP相連的全雙工鏈路上,如果單方向鏈路故障的話,會(huì)造成AP收不到DP發(fā)送過來的BPDU,認(rèn)為DP失效,自己切換狀態(tài)為DP,并等待兩個(gè)Forward delay的時(shí)間進(jìn)入轉(zhuǎn)發(fā)狀態(tài),那么就會(huì)造成網(wǎng)絡(luò)環(huán)路。
- 配置環(huán)路保護(hù)后,如果AP/RP端口長(zhǎng)時(shí)間沒有收到BPDU,則向網(wǎng)關(guān)發(fā)出通知消息,如果是根端口則進(jìn)入Discarding狀態(tài),如果是AP端口進(jìn)入阻塞狀態(tài),不轉(zhuǎn)發(fā)報(bào)文,從而不會(huì)形成環(huán)路,直到收到BPDU,才會(huì)進(jìn)入Fowarding狀態(tài)。
TC保護(hù):
- 交換設(shè)備在收到TC置位的BPDU時(shí),會(huì)清除MAC地址表項(xiàng),那么如果網(wǎng)絡(luò)中有偽造的TC置位的BPDU頻繁發(fā)送,那么MAC地址就會(huì)一直被清空,導(dǎo)致有過多的單播泛洪報(bào)文,直至廣播風(fēng)暴。
- 配置TC保護(hù)后,可以設(shè)置在接收TC置位的BPDU后多少秒內(nèi)進(jìn)行清空MAC地址表項(xiàng),還可以設(shè)置接收的最大閾值,超過閾值就不在接收。
BPDU過濾:
- 因?yàn)镋P端口不參與STP計(jì)算,但是仍然會(huì)發(fā)送BPDU報(bào)文,這些BPDU可能會(huì)發(fā)送到其他網(wǎng)絡(luò),造成網(wǎng)絡(luò)震蕩,配置BPDU過濾可以使端口不發(fā)不收BPDU,過濾BPDU報(bào)文,但是這樣會(huì)結(jié)局不掉兩個(gè)EP端口互聯(lián)的環(huán)路問題,所以這個(gè)要慎用。
總結(jié)
以上是生活随笔為你收集整理的STP/RSTP/MSTP 精华详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在线免费接口
- 下一篇: 安卓修改大师 反编译