STP 讓人最容易混的就是根交換機、根端口、指定端口還有堵塞端口的選取。下面讓我來簡單介紹一下吧!
1.選舉根交換機:
判斷對象:所有運行STP協議的交換機中選出一個;
判斷依據:交換機中選擇網橋ID值(交換機優先級+MAC)最小的交換機作為網絡中的根網橋;
確定根交換機后,該交換機所有端口都為指定端口DP;
2.確定非根交換機的根端口RP,每個非根交換機有且只有一個RP:
判斷對象:非根網橋交換機上的不同端口之間;
判斷依據:
(1)端口到根網橋路徑開銷最小
(2)發送方網橋ID最小
(3)發送方端口ID最小(端口ID有16位,它是由8位端口優先級和8位端口編號組成的,其中端口優先級的取值范圍是0-240,缺省值是128,可以修改,但必須是16的倍數)
3.確定非根交換機的指定端口:
判定對象:在每一個物理網段的不同端口之間選舉出一個指定端口。
判斷依據:
(1)網橋到根網橋路徑開銷最小
(2)發送方網橋ID最小
(3)發送方端口ID最小
4.既非根端口又非指定端口的為阻塞端口AP
這些搞明白了,STP就容易多了!
接下來讓我們來介紹一下實驗吧!
下面的是我繪制的拓撲圖:各個交換機的ID都一一標明來了。
首先我們進行一下基本的配置!
在四個交換機上啟用STP,將交換機的STP模式更改為普通生成樹STP,接下來我們查看一下生成樹的狀態。
stp enable
stp mode stp
可以觀察到e0/0/1端口為轉發狀態、端口角色為根端口,E0/0/2端口為丟棄端口狀態,端口角色Alternate,即代替端口。
我們還可以查看一下其他的交換機端口的狀態。
觀察到S2上所有的端口都為轉發狀態,觀察到e/0/0/1和e0/0/3端口角色為指定端口,e0/0/2為根端口。
S3上e0/0/3端口的角色為Alternate端口,且為丟棄狀態,該端口將不會轉發數據流量。
S4上的所有端口都為指定端口,且端口狀態為轉發。
因此可以初步斷定s4交換機就是根交換機。所有端口都為指定端口。並且我們也可以看到生成樹的詳細信息,CLST Root和CLST Bridge相同,也可以說明。
生成樹運算的第一步就是通過比較每台交換機id選舉根交換機。交換機id由交換機優先級和mac地址組成,首先比較兩台交換機的優先級,數值最低的為根交換機;如果優先級一樣,則比較mac地址組成,同樣是值最低的選舉為根交換機。目前在這個二層拓撲圖中,交換機優先級默認是一樣的,則比較mac地址選舉。
2.配置網絡中的根交換機。
根交換機在網絡中的地位十分重要,最好選擇性能較強交換機擔任,最好不要選擇部署在接入層的交換機,否則會影響網絡的通信質量及信息傳輸。我們說的,根交換機的選舉依據是根交換機的id,值越小越優先,交換機默認的優先級為32768,可以修改的喲。
現在我們就來將s1 配置成根交換機,s2 為備份交換機,將s1的優先級改為0,s2的優先級改為4096.
S1:
stp priority 0
S2:
stp priority 4096
讓我們查看一下:
我們發現優先級變了,s1的為0,s2 的為4096,為備份交換機。我們還有另外一種方法進行配置。
首先刪除在S1 S2上面的配置優先級:undo stp priority
S1:stp root primary
S2: stp root secondary
配置完得到的結果與上圖所示,即上一種方法的結果一樣。
3,理解根端口的選舉。
生成樹在選舉出根交換機后,將在每台非根交換機上選一個根端口,有且只有一個,選舉時會比較根路徑的開銷值,小的為根端口,若是相同,則比較每個端口在鏈路上的上行交換機的id。若是交換機的id也想通,則比較每個端口所在鏈路上的上行端口id。
目前S1為主交換機,S2為備份交換機,查看S4的生成樹狀態。
可以看到現在S4e0/0/2為根端口。狀態位轉發。S4在選舉根端口時,首先比較路徑開銷,由於拓撲圖中所有的鏈路都是相同的以太網鏈路,s4經過s3到s1與經過s2到s1的開銷值相同;接下來比較s4的兩台上行鏈路的交換機S2和S3的交換機標識,S2目前的交換機優先級默認為4096,而S3為默認的32768,所以與S2連接的E0/0/2接口被選為根端口。
接下來讓我們看一下S4e0/0/2接口的開銷值:200000
可以觀察到,接口路徑開銷采用的是Dot1T的計算方法,config是手工配置的路徑開銷,Active是實際接口使用的路徑開銷,開銷為200000.
接下來就讓我么改變一下端口的開銷值,使S4交換機的eo0/0/1端口成為根端口吧!
interface ebthernet 0/0/1
stp cost “修改的開銷值“
要想1 端口成為根端口,只需要其端口的開銷值小於2 端口就行了
我要進行的是減小e0/0/1的端口開銷值。
看我已經將e0/0/1端口的開銷值手動變為20000,相比默認200000小,我么來看一下結果吧!
看下圖,端口e0/0/1變為了根端口。成功!
4,理解指定端口的選舉。
根交換機就好說了,全部都是指定端口,但是非根交換機就不一定了,選取方法上面介紹了好幾次,接下來就讓我們人工選取指定端口吧。
(1)網橋到根網橋路徑開銷最小
(2)發送方網橋ID最小
(3)發送方端口ID最小
實驗的要求是確保S2連接S3的e0/0/3接口被選為指定端口,可以通過修改端口的開銷值來實現。
首先將S2的優先級回復默認32768.
undo stp root 我們發現已經修改過來了。
我們看一下S2 S3上e0/0/3接口的狀態
通過觀察,在S2 與S3鏈路上,選擇了S2的e0/0/3為指定端口,而S2的e0/0/3接口為Alternate端口。路徑開銷相同,比較交換機的id,優先級也相同,就比較mac地址,最后得出結果。(拓撲圖中標識了)
接下來讓我們指定端口吧!
現在將S3的e0/0/3接口改為指定端口
我為了更好地理解,和實驗做的不一樣:我是將S2e0/0/1端口的開銷值加大了,也就是根路徑的開銷。
看,我,們成功了。
接下來我們改變一下優先級,看看能否影響指定端口的選取。S3的優先級調整為4096.
看了一下結果,發現並無影響。選取端口是首先比較路徑開銷。