BPDU報文(傳統STP)

 

BPDU字段包含的信息:編程

Protocol ID   協議ID緩存

Version    STP版本(三種)spa

STP(802.1D)傳統生成樹    值爲0

RSTP(802.1W)快速生成樹    值爲2

MSTP(802.1S)多生成樹    值爲3

Message Type   消息類型(常見的兩種)3d

   配置BPDU:負責創建,維護STP拓撲     

   TCN BPDU:傳達拓撲變動        

Root ID    根橋IDcode

Cost of Path   路徑開銷blog

Bridge ID      橋ID接口

Port ID     端口ID同步

Message Age    當前消息年齡(STP每通過一臺交換機,該字段+1,同步不一樣位置的設備根橋超時)io

Max Age           最大消息年齡(超過則表明根橋故障)class

Hello Time    問候時間(根橋經過不斷髮送STP維持本身的地位,Hello time 是發送的間隔時間)

Forward Delay   端口從listening -> learning  或 learning -> forwarding 的轉態須要時間

 

STP 選舉流程:

1.選舉根橋

2.非根交換機選舉根端口

3.每一個線路選舉指定端口

4.阻塞非根,非指定端口

 

選舉根橋,根端口,指定端口,阻塞端口都如下面的規則來選,都是越小越好

這些信息在BPDU中都有。

 

比較規則:

1.bridge ID:   優先級(默認32768) + MAC地址

2.Cost路徑開銷   根據接口帶寬比例計算

3.port ID:    優先級 (默認128)+ 端口號

 

 

根橋選舉:

1.選根橋:每一個交換機假設本身爲根,互相發送BPUD報文,而後經過比較規則競選根橋

2.選根端口:每一個交換機根據接收由根橋發送的BPDU中的開銷來選舉根端口(最優路徑),交換機接收累加開銷,轉發不累加

3.選指定端口:每條鏈路根據比較規則來選出指定端口,每條鏈路必須有指定端口。

4.選阻塞端口:除了根端口,指定端口,剩下的爲阻塞端口

 

 

下面是華爲設備STP  的配置BPDU

從這裏能夠分析出,該端口的端口號是2,據開銷20000可知千兆口,因此爲G0/0/2

很明顯該端口所屬的交換機不是根橋,而且是根橋的鄰居。BPDU類型是配置BPDU。

 

下面看下當某條鏈路斷開時,發生了拓撲變化的BPDU報文

 

好比有一臺交換機,一個端口爲根端口,另外一個爲阻塞端口。若是根端口被關閉了

那麼阻塞端口會發送一個拓撲變動BPDU的報文給相鄰的交換機,這個BPDU類型爲:TCN

 

而相鄰的交換機會向這個阻塞端口發送一個確認拓撲變動的BPDU,這樣阻塞端口就知道本身的消息被收到並將會傳達。

這個BPDU類型爲 TCA,同時相鄰的交換機就會把繼續把 TCN 向根端口方向轉發,以後也會收到上層交換機發來的TCA確認接收報文

若是根橋收到了這個由阻塞端口傳來的TCN,便會下發拓撲變動BPDU其類型爲TC,每臺收到此TC報文的交換機都會將本身的MAC緩存表刷新或減低過時時間。

而後再向下傳達這個TC報文。

 

 

看下下面的拓撲圖

 

在交換機 LSW5中 GE0/0/1本來爲阻塞狀態,GE0/0/0爲根端口

可是有一天GE0/0/2端口down掉了

若是沒有上述的拓撲變動BPDU的話,那麼會發生以下狀況

 

client6 發送 數據 給 client4

緩存表裏client6的mac地址對應的倒是GE0/0/2的接口(已經down掉了)

這樣致使client6沒法與外界通訊,除非要等mac緩存表的過時時間300s也就是5min

這個時間實在太長了,解決的辦法就是發送拓撲變動給根橋,根橋贊成變動後向下發送

TC BPDU,全部收到此報文的交換機都把MAC緩存表刷新或減小過時時間來避免收斂速度慢

 

與根橋的直連鏈路發生故障

LSW8交換機上的G0/0/1爲根端口,G0/0/2爲指定端口,

G0/0/1發生故障後,G0/0/2會的端口角色會編程根端口

當是狀態要從 listening->learning->forwarding須要30秒的時間

 

 

與根橋的非直連鏈路發生故障

在LSW8中GE 0/0/1爲根端口,由於HUB集線器與根設備的線down掉了

因此LSW8 會在Max Age 的時間內不能收到根橋發送的BPDU,因而他會以

自身爲根橋向周圍發送 BPDU,當LSW9收到兩邊的BPDU則會對比,發現LSW7

才適合作根橋,因而又會通知LSW8,這樣GE0/0/3就會轉變成根端口。

所用的時間爲50s(MAX Age +Forward Delay)

相關文章
相關標籤/搜索