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