win7系統(tǒng)下載
當(dāng)前位置: 首頁 > 網(wǎng)絡(luò)技術(shù)教程 > 詳細(xì)頁面

高級網(wǎng)絡(luò)工程師詳細(xì)說明二層最難理解的協(xié)議之一STP生成樹協(xié)議

發(fā)布時(shí)間:2024-04-08 文章來源:深度系統(tǒng)下載 瀏覽:

無論是弱電網(wǎng)絡(luò)工程師還是網(wǎng)絡(luò)工程師,在學(xué)習(xí)網(wǎng)絡(luò)技術(shù)的時(shí)候,都感覺STP很難理解,是一道漫不過的坎。今天通過本文,大家按照步驟仔細(xì)閱讀,相信大家就可以理解STP生成樹協(xié)議了。


STP英文全稱是Spanning tree protocol,中文解析為生成樹協(xié)議。生成樹協(xié)議可以簡單理解為生成樹協(xié)議根據(jù)相關(guān)參數(shù)從樹根開始,通過阻塞某些端口,往下生成一棵無環(huán)路的拓樸樹。

如下圖所示:

高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議

因?yàn)橛凶枞丝诘逆溌凡豢捎,所以根?jù)上圖可以畫出一棵無環(huán)路的拓?fù)錁淙缦聢D所示:

高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議

大家看完上面拓?fù)浜,可能會疑問,什么是樹根?,SW1為什么會成為樹根?、樹根的作用是什么?、哪些端口會被阻塞?、哪些端口不會被阻塞?、端口角色是什么?等等一系列問題。接下來我們就開始詳細(xì)學(xué)習(xí)STP生成樹的各個(gè)概念吧。

根橋:root bridge,也就是上圖所說的“樹根”。在一個(gè)STP網(wǎng)絡(luò)中,根橋只有一個(gè),它是整個(gè)網(wǎng)絡(luò)的邏輯中心。網(wǎng)絡(luò)收斂后,根橋會按照一定的時(shí)間間隔產(chǎn)生并向外發(fā)送配置BPDU,其他設(shè)備僅對該報(bào)文進(jìn)行轉(zhuǎn)發(fā),傳達(dá)拓?fù)渥兓涗洠瑥亩WC拓?fù)涞姆(wěn)定。


第一步:選舉根交換機(jī)

根橋的選舉規(guī)則是:交換機(jī)啟動時(shí)會相互發(fā)送配置BPDU,BPDU中包含bridge id(橋ID)字段,橋ID最小的將會成為全網(wǎng)的根橋。

高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議

BPDU報(bào)文格式

IEEE 802.1D標(biāo)準(zhǔn)中規(guī)定橋ID是由2字節(jié)的交換機(jī)優(yōu)先級(Bridge Priority)與6字節(jié)的交換機(jī)MAC地址構(gòu)成,即BID(8字節(jié)) = 交換機(jī)優(yōu)先級(2字節(jié)) + 交換機(jī)MAC(6字節(jié))。默認(rèn)交換機(jī)優(yōu)先級均為32768;交換機(jī)mac由24位固定廠商代碼(華為的廠家是4c:1f:cc)+24位自定義數(shù)字組成。

高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議

抓包顯示,交換機(jī)-2每隔2s會定期發(fā)送從啟動端口GE0/0/1發(fā)送配置BPDU(橋協(xié)議數(shù)據(jù)單元)。BPDU中包含橋ID,交換機(jī)通過對比橋ID的大小來選舉根交換機(jī)。

高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議

BPDU中包含的橋ID字段

高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議

接著我們把交換機(jī)-3(橋ID是32768+4c1f-cc1a-36d9)也接到hub上,驗(yàn)證一下根橋的選舉規(guī)則(交換機(jī)-3的橋ID比交換機(jī)-2的橋ID小,比較規(guī)則是:先比較根橋優(yōu)先級,再比較mac地址),驗(yàn)證命令是:display stp,結(jié)果如下圖所示:

高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議
高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議

從上圖可以看到,經(jīng)過比較,交換機(jī)-3成了交換機(jī)-2和交換機(jī)-3組成的網(wǎng)絡(luò)的根橋。


第二步:選舉根端口。

1.根橋選出來后,才會選擇根端口。根端口指的是非根交換機(jī)到達(dá)根交換機(jī)的根路徑開銷最小的端口。根路徑開銷指的是,交換機(jī)某端口到根橋累計(jì)的路徑開銷就是所經(jīng)過的各個(gè)橋上的各端口的路徑開銷累加而成,這個(gè)值叫做根路徑開銷(Root Path Cost)。如下圖所示:

高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議

SW4的2端口的路徑開銷=SW4的2端口的路徑開銷(10)+SW2的1端口的路徑開銷(10)=20。

SW4的1端口的路徑開銷=SW4的1端口的路徑開銷(100)+SW3的2端口的路徑開銷(100)。

兩者對比,SW4的根路徑開銷為20,根端口為2端口(因?yàn)樵摱丝诘礁粨Q機(jī)的路徑開銷最。。

2. 如果SW4的2端口和1端口到達(dá)根橋(SW1)的路徑開銷都一樣,SW4根據(jù)從2端口和1端口接收到的配置BPDU中的發(fā)送者橋ID來選舉根橋。端口接收到的BPDU中,發(fā)送者橋ID小的,該端口將會成為根端口


第三步:選舉指定端口

根交換機(jī)上的每個(gè)端口都是指定端口。每個(gè)交換機(jī)之間的鏈路都需要選出一個(gè)指定端口,指定端口抑制其它(交換機(jī)自身的端口或者其它交換機(jī)上的端口)端口發(fā)送配置BPDU。

高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議

如上圖所示,全網(wǎng)根據(jù)第一、二步選舉出了根橋以及跟端口。那么接下來如何選舉指定端口呢?

SW1-SW2之間選擇指定端口,因?yàn)镾W1為根橋,根橋上的所有端口都是指定端口,該段鏈路上,SW1的1端口為該網(wǎng)段的指定端口;SW2和SW4之間,因?yàn)镾W4的2端口為RP端口,所以,該鏈路上,SW2的2端口為指定端口(為什么呢?因?yàn)橹付ǘ丝跁蛳罗D(zhuǎn)發(fā)配置BPDU,根端口只接收配置BPDU);SW1和SW3之間,因?yàn)镾W1為根橋,SW1上的所有端口都是指定端口,該鏈路上指定端口為SW1的2號端口。

最后,SW4和SW3之間的鏈路上需要選出指定端口,選舉的規(guī)則是:1.比較根橋ID,越小越優(yōu)先、2.比較根路徑開銷,越小越優(yōu)先、3.比較發(fā)送者橋ID,越小越優(yōu)先。因?yàn)槿W(wǎng)根橋ID一致,SW4的1號端口到達(dá)根橋的路徑開銷是(10+10=20),SW3的1號端口到達(dá)根橋的路徑開銷為(100),所以SW4的1號端口成為該鏈路的指定端口,SW3的1號端口為AP阻塞端口(該端口不轉(zhuǎn)發(fā)數(shù)據(jù))。

如下圖所示:

高級網(wǎng)絡(luò)工程師詳解二層最難理解的協(xié)議之一STP生成樹協(xié)議