端口角色
- 根端口(RP):
非根橋收到最優的BPDU配置信息的端口為根端口,(到根橋開銷最小的端口),根橋沒有根端口。
- 指定端口(DP):
兩非根交換機之間連接的兩個端口必有一個為指定端口,比較兩個非根交換機的根端口到達根橋的鏈路開銷,開銷低的交換機的端口就是指定端口,開銷一樣比較橋ID。發送BPDU的口;根橋上所有端口都是指定端口。
- 替代端口(AP):
收到其他網橋更優的bpdu,然后進入阻塞狀態的口,是根端口的備份端口,指定從橋到根的另一套條路。
- 備份端口(bp):
收到本地的更好的bpdu的口,是指定端口的備份端口,指定從根到橋的另一套條路。
端口狀態:
learing狀態可丟棄(當雙方協議都為RSTP可以丟棄,當一方為STP一方為RSTP會保存)
RSTP只有倆個狀態:Forwarding,Discarding
配置BPDU - RST BPDU
配置BPDU
(1)拓撲穩定后,配置BPDU報文的發送方式
STP:拓撲穩定后,根橋按照Hello Time規定的時間間隔發送配置BPDU。其他非根橋設備在收到上游設備發送過來的配置BPDU后,才會觸發發出配置BPDU,此方式使得STP計算復雜且緩慢。
RSTP:在拓撲穩定后,無論非根橋設備是否接收到根橋傳來的配置BPDU報文,非根橋設備仍然按照Hello Time規定的時間間隔發送配置BPDU,該行為完全由每台設備自主進行。
(2)更短的BPDU超時時間
STP:BPDU超時時間20S
RSTP:超時時間6S(三個Hello Time時間)沒有收到上游設備發送過來的配置BPDU,那么該設備認為與此鄰居之間的協商失敗。
(3)處理次優BPDU
STP:STP協議只有指定端口會立即處理次優BPDU。
RSTP:當一個端口收到上游的指定橋發來的RST BPDU報文時,該端口會將自身緩存的RST BPDU與收到的RST BPDU進行比較。(如果端口緩存的RST BPDU優於收到的RST BPDU,那么端口會直接丟棄收到的RST BPDU,立即回應自身緩存的RST BPDU,從而加快收斂速度)\
P/A機制
STP中,該端口至少要等待一個Forward Delay(Learning)時間才會進入到Forwarding狀態
1,RSTP通過P/A機制加快了上游端口進入Forwarding狀態的速度。
2,在RSTP中,當一個端口被選舉成為指定端口之后,會先進入Discarding狀態,再通過P/A機制快速進入Forwarding狀態。
例:
同步狀態:收到根橋發來的P位置位后進入同步
意義:防止臨時環路(P/A機制在1S內立刻完成容易引發臨時環路)
拓撲變更機制
拓撲變更:非邊緣端口遷移到Forwarding
1,拓撲變化(鏈路故障)
2,開啟計時器(2倍Hellow time),並清空Mac地址(保證Mac地址有效)
3,發TC置位
4,接受TC置位的端口除外,其他口清空Mac
5,同步2,3(RST BPDU泛洪)
學MAC:從幀的源Mac映射到接口端口
Mac不清空:1,包被丟棄 2,Mac地址錯誤
Mac不自動刷新,300S老化時間
RSTP保護
BPDU保護:(100%EP,只能接主機)
- 正常情況下,邊緣端口不會收到RST BPDU。如果有人偽造RST BPDU惡意攻擊交換設備,當邊緣端口接收到RST BPDU時,交換設備會自動將邊緣端口設置為非邊緣端口,並重新進行生成樹計算,從而引起網絡震盪。
- 交換設備上啟動了BPDU保護功能后,如果邊緣端口收到RST BPDU,邊緣端口將被error-down,但是邊緣端口屬性不變,同時通知網管
根保護:
- 啟用根保護功能的指定端口收到優先級更高的RST BPDU時,端口將進入Discarding狀態,不再轉發報文。經過一段時間(通常為兩倍的Forward Delay),如果端口一直沒有再收到優先級較高的RST BPDU,端口會自動恢復到正常的Forwarding狀態。
- 根保護功能確保了根橋的角色不會因為一些網絡問題而改變。
- 根保護:
環路保護:
- 啟動了環路保護功能后,如果根端口或Alternate端口長時間收不到來自上游設備的BPDU報文時,則向網管發出通知信息(此時根端口會進入Discarding狀態,角色切換為指定端口),而Alternate端口則會一直保持在Discarding狀態(角色也會切換為指定端口),不轉發報文,從而不會在網絡中形成環路。
- 直到鏈路不再擁塞或單向鏈路故障恢復,端口重新收到BPDU報文進行協商,並恢復到鏈路擁塞或者單向鏈路故障前的角色和狀態。
防TC-BPDU攻擊:
- 啟用防TC-BPDU報文攻擊功能后,在單位時間內,交換設備處理TC BPDU報文的次數可配置。
- 如果在單位時間內,交換設備在收到TC BPDU報文數量大於配置的閾值,那么設備只會處理閾值指定的次數。
- 對於其他超出閾值的TC BPDU報文,定時器到期后設備只對其統一處理一次。這樣可以避免頻繁的刪除MAC地址表項,從而達到保護設備的目的
配置命令:
Stp mode rstp //改為rstp模式
Display stp brief //查看端口狀態
Stp priority o //改優先級為0(主根)
Stp root primary //改為主根
Stp root secondary //改為備根
Stp priority 4096 //改優先級為4096(備根)
Port link-type access //設置端口鏈路類型為access
Stp edged-port default //配置EP,接口下配置只有接口生效,全局下所有端口生效
Stp edged-port disable //在接口下配置,用於關掉全局下配置下變為EP的接口
Stp bpdu-protection //BPDU保護(EP收到BPDU立刻shutdown)
Restart //用於打開BPDU保護下導致關閉的接口
Stp root-protection //保護根不變(如果新接入的SW會成為新的根那么會丟棄接口)
Stp tc-protection threshold x //系統視圖配置,限制每一次2S收到的tc數量為x,超過的忽略
Stp loop-protection //開啟環路保護