STP(Spanning Tree Protocol)是用來避免數據鏈路層出現邏輯環路的協議(現實中,我們為了給通信做備份,交換機之間多條鏈路互連 有些物理環路是無法避免的)
STP是交換機的功能::交換機之間多條鏈路互連時,造成環路,,環路會引起 廣播風暴,
網絡中的主機會收到重復數據幀,,而STP通過阻塞端口,,來消除網絡環路,並實現鏈路備份的作用。
STP配置的過程:
1.交換機上運行的STP通過BPUD信息的交互,選擇跟交換機,(BPUD包括橋ID、路徑開銷、端口ID、計時器參數。)
2.然后每台非交換機選擇與跟交換機通信的根端口,
3.之后,每個網段選擇用來轉發數據至跟交換機的指定端口,
4.最后剩余端口被阻塞
非根橋(ALTE:替代(阻塞)端口,DESI:指定端口,ROOT:指定端口)
接下來,通過實驗來進一步了解:
實驗拓撲:
實驗步驟:
1.基本配置
根據實驗拓撲圖,,在交換機上啟用STP(華為交換機默認啟用MSTP),將交換機的STP模式更改為普通生成樹STP。
S2、S3、S4同S1。
配置完成后,默認情況下虛等30s(生成樹重新計算的時間15s Forward Delay加上15s Learning狀態時間),在使用display stp命令查看S1的生成樹狀態。
可以看到S1的E 0/0/1端口為丟棄狀態、端口角色Alternate,即替代端口,,E 0/0/2端口為轉發狀態、端口角色為ROOT(根端口)。
還可以使用display stp brief命令在S2,S3,S4上僅查看摘要信息。
在交換機S2上所有端口 為轉發狀態,,觀察到E 0/0/1和E 0/0/3端口角色為指定端口,,
E 0/0/2位根端口,
在交換機S3上 所有端口,角色都為指定端口,,且端口狀態都為轉發。
交換機S4上 E 0/0/2端口角色為Altenate端口,,且狀態為丟棄狀態,,該端口將不會轉發數據流量。
可以初步判定4台交換機中S3為根交換機,應為該交換機所有端口都為指定端口。
根網橋上沒有根端口,,,非根橋上才有
通過display stp命令查看生成樹詳細信息
看到“CIST Root”和 “CIST Bridge”相同,即目前根交換機與自身的交換機ID相同,,說明S3為根交換機。
生成樹運算第一步就是通過比較每台交換機的ID選舉跟交換機。
交換機ID有交換機優先級和MAC地址組成,,首先比較交換機優先級,,數值最低的為根交換機;若優先級相同(我們這4台交換機的生成樹剛剛開始運行,,都為默認值32768)則會比較MAC地址,,同樣是數值最低的選舉為根交換機。
2.配置網絡中的根交換機
跟交換機在網絡中的位置是非常重要的,,若選擇了性能較差的交換機,或者是部署在接入層的交換機作為跟交換機,,,會影響整個網絡的通信質量及數據傳輸。
根交換機的選擇依據是::根交換機ID,,數值越小越優先,默認值為32768,可修改。
現在將S1配置為主根交換機,,S2為備份根交換機,,將S1的優先級改為0,S2的優先級該為4096
配置完后查看S1和S2的STP狀態信息
通過觀察發現S1的優先級變為啦0,,為跟交換機;;而S2的優先級變成啦4096,為備份交換機。
這里還有另一種方式配置主根交換機和備份交換機,
首先刪除S1上所配置的優先級,,再使用stp root primary命令,
S2上刪除后,使用stp root secondary
配置完后,,查看STP狀態信息,與一種方法的得到的一致,,此時S1自動更改優先級為0,而S2更改為4096
其中CIST Bridge是自身交換機,,,,,CIST Root/ERPC 是根交換機
3.理解根端口的選舉
生成樹在選擇出跟交換機之后,,將在每台非根交換機上選擇根端口,,,選擇時首先比較該交換機上每個端口到達跟交換機的 根路徑開銷,,路徑開銷最小的端口將成為根端口。如果根路徑開銷值相同,,則比較每個端口所在鏈路上的上行交換機ID,,如果該交換機ID 也相同,,則比較每個端口所在鏈路上的上行端口ID。每台交換機上只能擁有一個根端口。
根端口的比較:到達根交換機的路徑開銷——端口所在鏈路上的上行交換機ID——端口所在鏈路上的上行端口ID。
目前S1為主根交換機,而S2為備份根交換機,查看S4上生成樹信息。
可以看到,,S4的 E 0/0/2為根端口,,狀態為轉發狀態。S4在選舉根端口時,,首先比較根路徑開銷,,由於拓撲中所有鏈路都是相同的百兆以太網鏈路,,S4經過S3到S1與經過S2到S1的開銷值相同;接下來比較S4的兩台上行鏈路的交換機S2和S3的交換機標識,,S2目前的交換機優先級為4096,,而S3為默認的32768,,所以與S2連接的
E 0/0/2接口被選為根端口。。
查看S4的E 0/0/2接口開銷值。
可以看到,,接口路徑開銷采用的是Dot1T的計算方法,,Config是指手工配置的路徑開銷,,Active是實際使用的路徑開銷,,開銷值為1。
配置S4的E 0/0/2接口的代價值為2000,減少該接口默認的代價值。
配置完后再次查看S4的E 0/0/2接口開銷值。
同樣的將E 0/0/1端口的默認代價值修改為200 000。
這時,查看STP狀態的摘要信息
發現此時E 0/0/1端口變成了根端口,,而E0/0/2變成啦 Alternate端口。。這時由於在選舉根端口時,,其到根路徑大於E 0/0/1的根路徑開銷。
4.理解指定端口的選舉
生成樹協議在每台非根交換機選擇出根端口之后,將在每個網段上選舉指定端口,,選擇的比較規則和選擇根端口類似。
現在網絡管理員需要確保S2連接S3的E0/0/3接口被選擇為指定端口,,可以通過修改端口開銷值來實現。
為了模擬該場景,,將S2的優先級恢復為默認的32768
查看S2的STP狀態信息
查看S2與S3的STP狀態摘要信息。
通過觀察發現在S2與S3間的鏈路上,,,選擇啦S3的E 0/0/3位指定端口,,而S2的E 0/0/3為Alternate(替代)端口。。這是由於在選舉指定端口時,,首先比較兩個端口的根路徑開銷,,目前相同,接着比較上行交換機的ID,,此時S2和S3的交換機優先級相同,,故比較MAC地址,,最后通過比較MAC地址得出。
查看S2和S3的接口信息。
看到S2上E 0/0/3接口的MAC地址大於S3的,,,所以該網段上的S3E 0/0/3接口為指定接口。
修改S3的 E0/0/2接口的開銷值,,將該值曾達(默認為200 000),,即增大該端口上的根路徑開銷值,確保S2的E 0/0/3接口成為指定端口。
配置完后查看S2的STP狀態摘要信息。
根據STP計算規則選擇指定端口時,,最終選擇S2的 E0/0/3接口作為指定端口。
為啦驗證現在能夠確保S2的E 0/0/3成為指定端口,西面將S3 的優先級調整為4096,並查看
再次查看S2和S3的STP狀態
可以看到,即使將S3的優先級修改的比S2的優先級值更低,,但是S2的E 0/0/3接口仍然為指定端口,,而S3的E 0/0/3接口還是Alternate端口,,再次驗證啦選舉指定端口時首先比較根路徑開銷規則。
思考:
解答:當進行生存樹BPUD比較是,,根橋ID、開銷值、發送橋ID前三個參數依次都相同時,,這時就需要比較發送者的端口ID。