1.交換機如何傳播BPDU
1.1 Root ID
在生成樹拓撲穩定時,下游交換機收到BPDU後,不會修改其中的信息
1.2 Root Path Cost
該字段值類似於OSPF中的cost,是在接收消息時,累加其中的值
1.3 Bridge ID
交換機收到BPDU後,在對其進行轉發時,將其中內容替換爲本地的BID
1.4 Port ID
交換機從各端口轉發上游的BPDU時,將其中內容替換爲發送端口的PID
1.5 Message Age
交換機收到上游的BPDU時,將其中的值加1
1.6 Max Age、Hello Time、Forward Delay
這三個字段都是根橋的信息,下游設備不進行修改
注意:
如果接收BPDU的交換機不關心該VLAN的STP,則不會修改BPDU中的任何值,僅僅轉發
2.交換機接收Configuration BPDU依次比較的4個參數
2.1 Root ID
(1)作用
用於選舉根橋
(2)比較參數
①Priority
Priority = Root Bridge Priority + RootBridge System Extension ID
②Root Bridge System ID
即爲根橋參與STP的所使用的MAC地址
2.2 Cost
(1)作用
①Root Port選舉
②Designated Port選舉
(2)比較參數
比較Configuration BPDU中Root Path Cost字段,但是RootPort與Designated Port選舉時有所不同
選舉Root Port時,比較的是本地端口到根橋的“距離”
選舉Designated Port時,比較的是當前交換機與同一個segment內另一臺交換機,誰離根橋最近
2.3 Bridge ID
(1)作用
與Cost相同
(2)比較參數
①Priority
②Bridge System ID
Root Port與DesignatedPort選舉時有所不同
2.4 Port ID
(1)作用
與Cost相同
(2)比較參數
①Port Priority
②Port Number
注意:
①在STP選舉中,所有參數都是越小越優
②交換機某個端口收到本地其它端口發送的BPDU時,並不會丟棄,而是同樣會與當前端口相關參數進行比較
看上去就好像交換機在參與STP競選時還會比較本地端口一樣
3.交換機3個選舉步驟
3.1 選舉一個Root Bridge
比較Root ID,初始化時,交換機認爲當前設備就是Root Bridge
3.2 選舉Root Port
(1)概述
①根端口的選舉發生在非根橋上
②每臺非根橋本地,都將選舉出一個距離根橋“最近”的端口,作爲根端口
(2)選舉Root Port時在意的信息
①當前交換機上,哪個端口離根橋最近
②當前交換機的上游,哪臺交換機更優
③上游交換機哪個端口更優
④本地端口中哪個端口更優
(3)比較參數
①Root Path Cost
當前端口收到上游的BPDU後,將本地端口對應的cost累加後得到新的Root PathCost,反應了當前端口到根橋的開銷
在選舉根端口時,本地交換機比較各個端口到根橋的開銷(新的Root Path Cost值)
②Bridge ID
當Root Path Cost值相同時,表明有多個端口距離根橋距離相同,此時比較這些端口的上游設備哪個是STP中更優的
此時將比較各個端口接收到的BPDU中的BID,BID優的,說明其上游設備更優
③Port ID
當BID相同時,表明對個端口對應了同一臺上遊設備,此時比較上游設備的哪個端口在STP看來是最優的
此時將比較各個端口接收到的BPDU中的PID
④Local PID
Root Port選舉的前三個參數可以認爲是首先比較本地哪個端口離根橋最近,如果多個端口擁有相同的距離,則比較其上游的優劣
而如果依然無法比較出結果,此時就將比較本地這幾個端口的優劣了
3.3 選舉Designated Port
(1)概述
①指定端口選舉發生在每個Segment內
②Designated Port所對應的端口,是被認爲是該Segment內的上游設備,也就是距離根橋最近的設備
來自根橋的Configuration BPDU由上游設備傳播
③Designated Port所對應的下游端口,可能是Root Port,也可能是non-DesignatedPort
(2)選舉Designated Port時在意的信息
①在一個Segment內,哪臺設備離根橋最近
②在一個Segment內,哪臺交換機最優
③在一個Segment內,哪個端口最優
(3)什麼樣的端口會成爲指定端口
①無法成爲根端口
②在當前segment內BPDU參數最優
(4)比較參數
此時不像選舉根端口時那樣,收到BPDU後進行累加,而是比較接收到的BPDU與本地向該Segment發送的BPDU中的參數
①Root Path Cost
收到的BPDU中的Root Path Cost優於本地發送的BPDU中的Root Path Cost,則表明該發送設備離根橋更近,是當前設備的上游
反之,同理
②Bridge ID
③Port ID
4.STP選舉示例
4.1 示例1
(1)拓撲
說明:
優先級取值均爲默認
鏈路交換機參與STP競選使用的MAC地址、端口、開銷均在途中表示
(2)選舉描述
①三臺交換機開機初始化
a.進入Blocking狀態,都不發送BPDU
b.Max Age時間後,進入Listening狀態
c.由於交換機始終都沒有收到BPDU,此時三臺交換機都認爲自己是Root Bridge
②交換機間相互發送BPDU,選舉根橋
a.交換機向所有激活端口發送BPDU
RID:與BID相同
Root Path Cost:由於認爲本地是Root Bridge,其值爲0
PID:與發送BPDU的交換機端口對應
Message Age:取值爲0
b.SW1兩個端口都收到來自SW2的BPDU
由於其中參數不如本地優,SW1忽視此BPDU
c.SW2的兩個端口收到來自SW1的BPDU
其中的RID優於本地,SW2不再向接收到該BPDU的端口發送BPDU
SW2通過這些BPDUs選舉出根端口
③選舉根端口
a.SW2
由於SW2的兩個端口收到的BPDU的RID、BID相同,Root Path Cost在累加後也相同,因此比較PID
SW1發送端口分別爲fa0/1與fa0/2,fa0/1更優,因此在SW2上,fa0/2成爲根端口
fa0/1由於無法成爲根端口,通過從根橋接收到的BPDU與本地端口參數比較,顯然根橋的BPDU參數更優(Cost),因此fa0/1被阻塞
注意:
fa0/1是在指定端口選舉中被阻塞,而不是在根端口選舉中被阻塞
fa0/3以及fa0/4收到下游的BPDU都沒有本地參數優,因此繼續發送BPDU
b.SW3
SW3的三個端口都能收到來自SW2的BPDU
RID:SW1
Cost:19
BID:SW2
由於前三個參數都相同,因此通過PID選舉出根端口
SW3的fa0/3對應SW2的fa0/4,是PID最大的,因此該端口一定不能成爲根端口
SW3的fa0/1、fa0/2對應SW2的fa0/3,對於來自SW2fa0/3的BPDU,PID相同
此外,SW3的fa0/1會收到自己本地fa0/2的BPDU,fa0/2也會收到fa0/1的BPDU,由於fa0/1的PID小於fa0/2,因此fa0/1成爲根端口
④指定端口選舉
a.SW1
SW1本地端口的BPDU中Cost值爲0,是最優的,因此,SW1的端口都成爲指定端口
b.SW2
SW2的fa0/2成爲了根端口,fa0/1所在segment由於直連SW1,因此,fa0/1被阻塞
fa0/3所在segment,fa0/3是距離根橋最近的端口,因此,fa0/3爲指定端口
fa0/4同理
c.SW3
fa0/1在之前選舉中成爲了根端口,fa0/2由於其參數並不及SW2的fa0/3優,因此被阻塞
SW3的fa0/3在無法成爲根端口的情況下,BPDU參數沒有SW2的fa0/4優,因此也被阻塞
(3)選舉結果