STP--spanning tree protocol--生成樹協議,是IEEE定義的一個802.1d標準,用於解決交換機中得人一系列環路問題。網絡
爲何要使用STP?
在大型的網絡當中,爲了不單點故障和實現網絡的高可用性以及負載均衡,一般會在兩臺交換機之間以網線相連,造成冗餘的鏈路環境。可是冗餘的鏈路環境爲造成環路,會對整個網絡中的資源消耗和設備損耗形成很大的負擔。因此提出了STP來解決這一系列問題。負載均衡
冗餘的鏈路會引起什麼問題?
①會造成廣播風暴(環路)
②幀的多個副本
③形成MAC地址表的不穩定ide
交換機之間一開始互相發送BPDU,相似於OSPF的hello包
BPDU:網橋協議數據單元 每隔2s發送一次。
幾個參數:
①橋ID:優先級+背板MAC地址 優先級默認是32768
②本身認爲到到達根橋的開銷
③本身認爲根橋的ID
生成樹的開銷:是經過鏈路速度來衡量
10G=2 1G=4 100M=19 10M=100學習
背板MAC地址:每臺設備惟一,出廠前就記錄在設備上。
Switch#show version ——能夠用來查看背板MAC地址spa
幾個重要角色和端口code
根橋:二層網絡的一個核心,網絡中的阻塞端口是以根橋爲核心來進行選舉的。(是在交換機之間進行選舉的)
注意:是經過選舉獲得,在網絡一開始的時候,全部的交換機都認爲本身是根橋,都會向網路中發送BPDU,而且都會接收到對方發送的BPDU。此時,雙方就會進行相應參數的對比,選擇出網絡中的根橋。
(一旦網絡中選舉出新的根橋,那麼整個網絡中就只有根橋會發送BPDU,其餘交換機只能轉發來自根橋的BPDU)
選舉規則:
①首先比較優先級大小,優先級小的成爲根橋。
②若是優先級一致,就比較背板MAC地址的大小,一樣是越小越好blog
指定端口:在網絡中的每條鏈路上都須要選舉出一個指定端口。指定端口到達根橋的開銷必定是最小,指定端口對應的橋ID必定最小。(注意:根橋上的全部端口都是指定端口)
做用:用於發送BPDU和轉發來自根橋的BPDU
選舉規則:
①到達根橋的開銷最小
②橋ID越小越優
③端口ID,一樣是越小越好接口
端口ID:端口優先級+端口號(默認的端口優先級是128)
e0/0 128.5
e0/1 128.6
f0/0 128.3
f0/1 128.4
g0/0 128.1
g0/1 128.2資源
根端口:一臺交換機上只有一個根端口,根端口到達根橋的開銷 必定是最小的。因此根端口到達根橋的路徑必定是最優路徑。
做用:接收來自根橋的BPDU
選舉規則:
①到達根橋的開銷最小
②橋ID越小越優
③端口ID,一樣是越小越好it
阻塞端口:邏輯的阻塞一個端口,該端口並非真正的關閉,一旦最優路徑出現故障後,阻塞端口就會自動開啓。
Switch#show spanning-tree——查看STP生成樹
生成樹的端口狀態:
①阻塞狀態:處於阻塞狀態的端口,不會轉發來自根橋的BPDU,可是會接收BPDU,以此來避免環路。
最大老化時間:20s,網絡中的BPDU每隔兩秒發送一次,一樣的阻塞端口也是每隔2秒接受一次BPDU,若是阻塞端口在20s內沒有接收到BPDU的話,那麼就會跳出阻塞狀態,進入偵聽狀態。
②偵聽狀態:處於偵聽狀態的接口,會偵聽網絡中的BPDU,而且進行MAC地址的學習。
最大轉發延遲時間:15s,15s內沒有接收到來自對方的BPDU,就會跳出偵聽狀態,進入學習狀態。
③學習狀態:處於學習狀態的接口,會進行MAC地址的學習,而且準備轉發數據幀。
最大轉發延遲時間:15s,15s內沒有接收到來自對方的BPDU,就會跳出學習狀態,進入轉發狀態。
④轉發狀態:已經進行了MAC地址的學習,而且開始轉發數據。
注意:端口從阻塞狀態到達正常轉發數據的學習狀態須要多久---30-50s
①若是出現問題端口是在本臺設備上:30s
②若是出現問題端口再也不本臺設備上:50s
Portfast--快速端口
在網絡中,交換機和PC等終端設備相連的接口,因爲不須要進行冗餘備份處理,因此不會產生環路問題,所以通常狀況下,取消交換機之間端口切換的50s時間,此時就能夠經過配置快速端口來實現。
注意:快速端口只能使用在交換和pc等終端設備的接口上,而且快速端口默認狀況下只能配置在access口,不能配置在trunk口。
①將某一個接口配置成快速端口
Switch(config)#int f0/4-- Switch(config-if)#spanning-tree portfast
②同時將多個接口配置成快速的端口
Switch(config)#in range f0/1-3 Switch(config-if-range)#spanning-tree portfast
③將交換機上的全部接口都配置成快速端口
Switch(config)#spanning-tree portfast default
④在某些特殊狀況下,須要將trunk配置成快速端口
Switch(config-if)#spanning-tree portfast trunk
PVST--per-VLAN spanning tree
在網絡中,能夠針對某一個特定的vlan,設置一個特定根橋
①經過更改優先級來選舉成爲根橋,若是網絡中加入優先級更高級別發,會被搶奪根橋地位。
Switch(config)#spanning-tree vlan 10 priority 28672
②直接指定
Switch(config)#spanning-tree vlan 10 root primary --
使得vlan成爲絕對根橋,不會隨着網絡拓撲的變化而發生改變
Switch(config)#spanning-tree vlan 10 root secondary --成爲絕對的備份根橋
快速生成樹:
傳統的生成樹雖然可以解決冗餘鏈路所帶來的的環路問題,可是傳統生成樹的做用是基於4個狀態和時間的,這樣所須要的時間比較久。可是快速生成樹徹底避免了這一個問題。
端口角色:指定端口、根端口、替換端口
端口做用:發送、接收、丟棄