STP詳解
Write From YangWj
Wednesday, March 5, 2014
一、 生成樹協議
STP的主要任務是阻止在第2層網絡(網橋或交換機)產生網絡環路,它警惕的監視着網絡中所有的鏈路,通過關閉任何冗余的接口來確保在網絡中不會產生環路。STP采用生成樹算法,它首先創建一個拓撲數據庫,然后搜集並破壞掉冗余的鏈路
二、 生成樹術語
根橋:根橋是橋ID最低的網橋
非根橋:除根橋外其他的網橋都是非根橋。
BPDU(橋協議數據單元):交換機之間用來交互的信息,使用BPDU里面的參數進行對比,然后再傳給某個鄰居,並且放入他們從另外鄰居收到的BPDU。
橋ID:橋ID是由優先級和MAC地址組合來決定的,STP利用橋ID來跟蹤網絡中所有的交換機。
根端口:直接連到根橋的鏈路所在端口,或者到根橋路徑最短的端口。
指定端口:有最低開銷的端口就是指定端口,指定端口被標記為轉發端口。在根交換機上的每個端口都是指定端口。
非指定端口:開銷比指定端口高的端口,它被置為阻塞狀態。
轉發端口:能夠轉發幀的端口。
阻塞端口:不能轉發幀,但始終監聽幀。
端口開銷:兩台交換機之間有多條鏈路且都不是根端口時,就根據端口開銷來決定最佳路徑,鏈路的開銷取決於鏈路的帶寬。
三、 根橋選舉
橋ID用來選舉根橋,,並決定根端口。橋ID為8個字節長,包括設備的優先級和MAC地址,默認所有的優先級都是32768 。若更改則要求為4096的倍數。
網絡中的交換機默認都是每2秒發送一次BPDU,被發送到網橋/交換機的所有活動的端口上。橋ID最小的網橋就被選舉為根橋。一般我們會手動將要作為根橋的交換機的優先級降低,這樣會比較有效率。
四、 生成樹端口狀態
阻塞:無法轉發幀,但是會監聽。
偵聽:偵聽BPDU,確保在傳送數據幀之前,網絡上沒有環路產生。處於此狀態在沒有形成mac地址表時,就准備轉發數據幀。
學習:交換機端口偵聽BPDU時並學習交換式網絡中的所有路徑。此時形成了mac地址表,但不能轉發數據幀。轉發延遲意味着將端口從偵聽狀態轉換到學習狀態所花費的時間,默認15秒。
轉發:發送並能接收所有的數據幀,如果在學習狀態結束時,端口仍然是制定端口或根端口,它就進入轉發狀態。
五、 實驗部分
(一) 根橋的選舉
實驗拓撲圖
連接好了之后我們可以清楚的看到S3的F0/12被阻塞了
1. 查看S1
2. 查看S2(它是根橋)
3. 查看S3
4. 查看S4
5. 修改S1的優先級,使其成為根橋
6. 此時的網絡選舉結果如下
7. 查看S1的信息(它已作為根橋)
8. 實驗結論如下
a) 選舉根橋時用優先級和mac地址作為依據。
b) 優先使用優先級作為選舉依據。
c) 優先級小的被選舉為根橋。
d) 優先級相同時mac值小的被選舉成根橋。
(二) 探索1——優先級與阻塞端口
實驗拓撲圖
首先右圖是左圖的復制,照理說他們的阻塞端口(S4上)應該都是一樣的,那么為什么在復制過去之后就成了這樣的呢?
1. 查看有圖中的CopyS1信息(它還是根橋,這個肯定的)
2. 查看右圖CopyS2的信息
3. 查看右圖CopyS3中的信息
4. 查看右圖CopyS4中的信息
5. 通過將CopyS2和CopyS3的信息分析對比得到
6. 再次分析左圖中S2和S3的信息
7. 修改左圖S3的優先級(但要小於S1,因為它是根橋)
8. 同理修改右圖CopyS2的優先級
9. 查看左圖S3和右圖CopyS2的信息
10. 實驗結論
a) 端口阻塞的選擇與上層交換機的優先級有關聯
b) 優先比較的是上層優先級,優先級大的被阻塞
c) 上層優先級等同時比較mac地址,mac大的被阻塞
(三) 探索2——端口號與阻塞端口
實驗拓撲圖
上圖中S1與S2連接,分別對應的端口為F0/1,F0/11,圖中已經將根橋選舉出來,並且阻塞了S2的F0/11端口。那么它又是如何進行選擇的呢?
1. 為了使實驗得以穩定,將S1手動指定為根橋,即修改它的優先級
2. 查看S2的信息
3. 借助探索1的結論,上層的優先級完全一樣,我們先復制一份
4. 對比CopyS2和CopyS1(或者S1和S2),發現只有Prio.Nbr的值異樣
5. 更換右圖中S2的F0/1為F0/15,得下(無變化)
6. 更換左圖中S1的F0/1為F0/15,如下(阻塞端口被改變了)
7. 實驗結論可得
a) 端口阻塞的選擇與根橋的接口有關系。
b) 在優先級等同的時候才會用上層交換機端口號做選擇。(不一定是根橋)
c) 根橋接口號大的對應鏈路到下層交換機的端口會被阻塞。