2層環路導緻的問題:
1、廣播風暴,交換機轉發BUM封包的機制導緻,資料幀沒有防環機制。
B:Boardcost
U:未知的DMAC單點傳播幀
M:多點傳播
2、Mac位址表震蕩,生成錯誤MAC位址表項,導緻轉發出現錯誤。
3、重複資料幀接收,如果存在大量的廣播幀,導緻網絡性能下降甚至不可用,終端裝置也會消耗大量CPU資源處理廣播。
STP操作:
(1)在一個廣播域中有且隻有一個根橋
(2)每個非根交換機選舉一個根端口
(3)每個網段(沖突域)選舉一個指定端口(網段:交換機連接配接的每個鍊路都是一個網段)。
(4)阻塞非根、非指定端口。
标準STP(802.1D) -- Block Port
華為STP -- AP;AP源之于RSTP
STP協定的所有角色都是比較BPDU的參數選舉出來的
STP定義每個交換機都有一個BID來辨別自己。
BID = priority + mac
Pri預設值:32768
Pri取值有兩種标準:
(1)0-65535
(2)0-61440 華為采用0-61440,但pri取值必須是4096的倍數
stp priority xxx 修改stp優先級
ROOT橋:發送最好BPDU的交換機
RP(根端口):非根橋上接收最好BPDU的端口
DP(指定端口):鍊路上發送最好BPDU的端口
AP(備用端口):既不是根端口也不是DP的端口,被block。
DP端口要麼對着RP,要麼對着AP。
BPDU中四個選舉參數:
RID:根橋的BID
RPC:
對于根橋來說,RPC永遠等于0;
對于非根橋來說RPC是自己根端口到根橋的路徑開銷之和。
BID:交換機自身的BID
PID:由端口優先級+端口ID組成,優先級的取值為0-240,預設值128,取16的倍數。
最好BPDU的選舉機制:
1、比較RID,RID越小越優
2、如果RID相同,則比較RPC路徑和,越小越優
3、如果RPC路徑和相同,則比較BID,越小越優
4、BID相同,則比較PID,越小越優
5、如果PID相同,則比較自身PID(特殊場景下)
非根橋根據根端口的配置消息計算DP端口的配置消息。
DP對端要麼是RP要麼是AP
RP對端一定是DP
STP端口狀态:
1、forwarding:轉發狀态,學習MAC位址表,處理BPDU
2、learning:不轉發資料,學習MAC位址,處理BPDU
3、listening:不轉發資料,不學習MAC位址,處理BPDU
4、blocking:不轉發資料,不學習MAC位址,處理BPDU
5、disable:接口被禁用
穩定STP網絡隻有兩種狀态,即forwarding和blocking
一個blocking狀态的RP或者DP,至少需要30s進入到轉發狀态。
生成樹故障恢複:
1、非根橋的RP失效,并存在AP時,AP成為新的RP,并經曆30s進入轉發狀态。
2、非根橋的RP失效,但不存在AP時,此時交換機認為自己失去了到根橋的所有路徑。
于是該交換機将自身作為根橋,發送以自己為根的BPDU。下遊交換機需要等待20s将之前的BPDU老化,再處理該BPDU,此時需要50s恢複網絡。
---- 次級BPDU的處理機制
第1種情況:
RP失效,存在AP,AP會立即選舉新的RP
Blocking—>forwarding需要30s,網絡恢複
第2種情況:
當交換機B的RP失效,交換機B發現自己沒有端口接收根橋的BPDU;
交換機B以自己為根,發送次級BPDU,下遊交換機的AP端口,不會立即處理,
而是等待之前根橋BPDU失效(老化時間20s),20s過後處理這個次級BPDU,
AP端口會成為新的DP端口,blocking-->forwarding:30s,
共50s才會恢複正常。
STP協定MAC位址表重新整理機制:
當交換機收到TC BPDU後将自身所有端口(邊緣端口除外)的MAC位址表的老化時間強制設定為15s。
TC BPDU會持續由根橋發送35s的時間。
邊緣端口标準生成樹協定是不支援的,但是華為的STP協定支援邊緣端口的設定。
stp edged-port enable
STP協定最早認為任何端口進入到forwarding狀态或者進入disable狀态時認為STP拓撲發生變化。
後來STP協定對拓撲發生變化的定義做出了優化:
1、當端口進入到forwarding狀态,邊緣端口除外
2、RP失效或RP進入到forwarding狀态
3、DP端口失效不認為拓撲發生變化
STP BPDU:
(1)配置BPDU
TCA 配置BPDU
TC 配置BPDU
(2)TCN BPDU
TCA = 0, TC = 0 配置BPDU
TCA = 1, TC = 0 TCA 配置BPDU
TCA = 0, TC = 1 TC 配置BPDU
STP協定當接口up并過渡到forwarding狀态,會發生TCN BPDU,
逐跳傳給根橋,上遊向下遊發送TCA=1,TC=1的配置BPDU,用于确認TCN,并将TCN逐跳傳給根橋。
根橋在接收到TCN的端口上回送一個TCA=1,TC=1的配置BPDU,用于确認TCN,并通知網絡拓撲發生變化。
配置BPDU,在其他端口上則發送TCA=0,TC=1的配置BPDU。
BPDU重要字段:
Message age:已經存在的時間,根橋發出的為0,逐跳加1
Max age:最大年齡,預設20s
--當message age到達max age則認為該BPDU失效
Hello time:發送BPDU的周期性時間,預設2s發一次
Forward delay:
(1)确定監聽和學習狀态所需的時間
(2)收到TC BPDU後MAC位址老化時間
華為STP,根橋發送配置BPDU,非根橋也可以主動發送BPDU。
華為STP協定引入了大量RSTP的特點:
1、非根橋可以主動發送BPDU
2、收到次級BPDU立即老化
3、引入了邊緣端口
為什麼在監聽和學習狀态需要forward delay的等待時間:
監聽狀态15s是避免STP協定在收斂過程中産生臨時環路,讓BPDU有足夠的時間在整個網絡進行傳遞。
監聽狀态期間,MAC位址表受TC BPDU的影響會進行提前老化,清除錯誤的MAC位址資訊,導緻錯誤的MAC位址老化也導緻空閑MAC位址老化,
如果此時要轉發資料幀就會導緻大量未知DMAC的單點傳播幀泛洪的現象,影響網絡性能。那麼犧牲15s的時間,設計出學習狀态能讓交換機在此期間重新建構正确的MAC位址表項,減少單點傳播幀在STP收斂期間産生大量的泛洪行為。
STP的弊端:
STP協定的收斂是完全依賴計時器完成的,收斂速度慢,為了解決臨時環路和收斂期間單點傳播幀泛洪,需要等待30s;
STP(802.1d)/RSTP(802.1w)是單生成樹協定,在存在多個VLAN的網絡中,所有VLAN共享一棵樹,導緻鍊路使用率不高。
可能會産生部分vlan不通的情況。
為了解決STP的收斂慢,開發出了RSTP
為了解決RSTP單樹弊端,開發出了MSTP
RSTP針對STP的優化。
P/A機制,在點到點全雙工的鍊路上讓DP和RP端口快速進入到轉發狀态,同時也不會産生臨時環路。
P/A機制協商前提:
1、DP端口處于Discarding
2、點到點全雙工鍊路
3、DP端口對端是RP端口