STP分類
api
IEEE | CISCO |
802.1D STP 收斂30-50s | PVST(ISL only);PVST+(ISL & 802.1Q) |
802.1W Rapid-STP 收斂 1s之內 | rapid-PVST |
802.1s mst | MIST/MST |
802.1D STP===========PVST+(ISL & 802.1Q)併發
收斂緩慢 收斂緩慢ide
基於交換機 基於 vlan
學習
(冗餘鏈路被切斷,防環同時形成兩份鏈路) (配置不一樣vlan走不一樣鏈路,防環且不浪費)ui
- 802.1W Rapid-STP與rapid-PVST區別是基於交換機和基於vlan的spa
當交換機vlan數量巨大時,基於vlan的生成樹就會對應增多,更新bpdu(2s刷新)時就佔用大量交換機資源;3d
MST,就是將多個vlan劃分爲一個實例,一個實例對應一棵樹,從而防環同時,減小更新bpduorm
BPDU
blog
兩種 1,配置BPDU
接口
2,TCN 拓撲發生改變時使用
Protocol ID: 保留,老是0
version:802.1d=0 ;802.1w ;802.1s
message type: 配合版本=0;TCN = 80。TCN報文最後只到這裏,flag之後的字段都是針對配置報文
FLAG : 802.1d使用flag的第一和最後兩位
root ID: 根標識
cost path:開銷,用來決定block哪一個端口
bridge ID:惟一標示一臺交換機,用來選舉根
port ID:惟一標示交換機一個端口
message age:
max age : 20s刷新
hello time:2s 刷新
forward delay:15s
-------------------------------------------------------------------------------------------
STP四大流程
1,選根口(整個網選一個)
2,選根端口(從全部非跟橋選,每臺有一個)
3,選指定端口(每一個鏈路有一個)
4,blok剩下的口
根橋選舉:
根據 bridge ID (優選小的)
bride priority 2byte | MAC address 5byte |
cisco bridge ID
bridge priority 4bit 範圍0-15 默認=8 | extend systemID 12bit區分vlan | 48bit MAC |
上面結構 優先級可變可是vlan號不能變,因此整個以4096倍數增長 2~12=4096,因bride priority默認=8,全部整個默認=32768
0 0
1 4097
. .
8 32768
實際工程中不會讓設備本身選舉根,都要人爲設置
全局下:spanning-tree vlan 1 root primary 設置這臺交換機爲根
全局下:spanning-tree vlan 1 root secondary 設置這臺交換機爲備份根
全局下:spanning-tree vlan 1 primary xx=4096倍數 設置優先級
選舉根端口:
1,最小的根網橋的ID(root ID,也是個bride ID)
2,到根網橋最下的cost
3,最小的發送方brideID
4,最小的發送方portID
5,最小的接收方的portID
STP 端口的狀態種類
端口狀態 | 端口能力 |
desabled | 不發生任何報文 |
blocking | 不接收或轉發數據,接收但不發送BPDU,不進行地址學習 |
listening | 不接收或轉發數據,接收併發送BPDU,不進行地址學習 |
learning | 不接收或轉發數據,接收發送BPDU,開始MAC地址學習cam |
forwarding | 接收並轉發數據,接收併發送BPDU,進行地址學習 |
TCN
做用:通知根橋拓撲發生變化,觸發根橋通知全網拓撲變化
上圖,SW4-SW7斷開時,SW4會想根發送BPDU,同時SW2會將flag字段最後一位置1,使用配置版本BPDU做爲確認回覆SW4。而後SW2繼續發送給根,根回覆確認給SW2。
根收到SW4 SW7斷開的信息後,將FLAG字段第一位置1,發送給全部交換機通知,拓撲改變,收到該BPDU的交換機將mac表存活時間300s置爲15s加速老化時間,以加快更新。
STP收斂:直連鏈路收斂 30s
直連斷開,接口立刻down掉,立刻把原來block的up,接口down掉,同時BPDU立刻 老化;被up的block口經歷listen 15s-》learn 15s 開始forward
非直連鏈路收斂 50s
非直連斷開,可是接口依然UP的,不會2s收到更新的BPDU,可是原來的BPDU依然存在,在 經歷20s老化時間後,纔會消失,此時,接口down掉,up被block的端口,而後listen 15s-》learn 15s而後forward
不重要鏈路的收斂
上圖,最下PC 鏈接交換機的端口,up down都會使SWC 發送TCP給根,致使全網的MAC表老化時間從300->15s,使得終端接口的變化擾亂全網交換機的MAC表。
######### 使用portfast解決: ###########
portfast配置在交換機鏈接終端設備(例如PC)的接口上,不要配置在交換機之間。
做用:1,配置portfast後,不會觸發交換機發送TCN 報文,從而不會致使全網MAC表的重複收斂。
2,接口在從down->up不會經歷 listen和learn,而知之間forward,節省30s轉發延時
配置(2種方法)
1,接口下--只有access 口才生效,因此不會影響交換機之間的接口
int f0/1
spanning-tree portfast
2, 全局下--只有access 口才生效,因此不會影響交換機之間的接口
spanning-tree portfast default
查看
show spanning-tree int f0/1 portfast
###### uplinkfast ########
用於當有兩條鏈路到根的時候
如圖。A有兩條去往根D1的鏈路,在A上配置uplinkfast,當A根端口down掉,A的block口不會等待30s,而會之間forward
注意:配置uplinkfast後,該交換機必定不能是transit交換機,只能是做爲接入層的交換機使用。
因此配置uplinkfast後,該交換機優先級自動升爲高於缺省值,確保不會成爲根
同時該交換機的全部端口的 cost 都會增長3000.確保該交換機的端口不會成爲指定端口
實驗:
SW1爲根 spanning-tree root primary
SW2爲備份根 spanning-tree root secondary
全部SW3的 f0/2被 block
SW3:全局下 spanning-tree uplinkfast
sho spann uplinkfast
此時down掉f0/1,無需等30s,f0/2立刻forward
可是 f0/2 no shut後 要經歷30s延時,才能恢復F0/1up
擴展理解uplinkfast:
上圖,SW3配置uplinkfast後,本地接口是會立刻forward,可是SW2會經歷 15s的mac表老化時間,因此仍是不會立刻通訊,可是uplinkfast會以本地源MCA多播給其餘交換機,加快刷新mac表,能夠手動設置
全局下 spanning-tree uplinkfast max-update-rate 1000 (每秒發送1000個mac)
根據本身mac表中的mac數量,實際而定。
#########################################################################################
backbone fast
做用:上圖,R爲根,S的一個口被block,當R B之間斷開,S要經歷50s才能up.使用backbone能夠節省30s
過程:R B斷開後,S會收到B的次優BPDU,S向R發送RLQ,根收到後會向S回覆RLQ表示根仍是無缺的,而後S告訴B根仍是好的,B就會贊成,並把端口變爲根端口,S經歷30s UP
配置,上圖要配置在R和S上,三臺都配置也能夠
全局下,spanning-tree backbonefast