了解生成樹協(xié)議
1.STP:bridges之間交換BPDU信息來檢測(cè)循環(huán),并通過關(guān)閉接口的方式來破壞循環(huán)
2.根橋(root bridge):擁有最好的bridge ID即為根橋,網(wǎng)絡(luò)中的一些諸如哪些端口被堵塞(block)哪些端口作為轉(zhuǎn)發(fā)模式的決定都由根橋來決定
3.BPDU:Bridge Protocol Data Unit,所有的switches通過交換這些信息來選擇根switch
4.bridge ID:用于STP跟蹤網(wǎng)絡(luò)中的所有switches,這個(gè)ID由bridge優(yōu)先級(jí)(priority)和MAC地址符合而成,優(yōu)先級(jí)默認(rèn)為32768,ID最低的即為根橋
5.非根橋(nonroot bridge):不是根橋的全為非根橋,非根橋交換BPDUs來更新STP拓?fù)鋽?shù)據(jù)庫(kù)
6.
根端口(root port):與根橋直接相連的端口,或者是到根橋最短的接口.如果到根橋的連接不止1條,將比較每條連接的帶寬,耗費(fèi)(cost)低的作為
根端口;如果耗費(fèi)
相同就比較bridge ID,ID低的將被選用
7.指定端口(designated port):耗費(fèi)低的端口,作為轉(zhuǎn)發(fā)端口
8.端口耗費(fèi)(port cost):帶寬來決定
9.非指定端口(nondesignated port):耗費(fèi)較高,為堵塞模式(blocking mode),即不轉(zhuǎn)發(fā)幀
10.轉(zhuǎn)發(fā)端口(forwarding port):轉(zhuǎn)發(fā)端口用來轉(zhuǎn)發(fā)幀
11.堵塞端口(blocked port):不轉(zhuǎn)發(fā)幀,用來防止循環(huán)的產(chǎn)生,雖然不轉(zhuǎn)發(fā),但是它可以監(jiān)聽(listen)幀
Spanning Tree Operations 之前說過:STP的任務(wù)就是查找出網(wǎng)絡(luò)中的所有連接,并關(guān)閉些會(huì)造成循環(huán)的冗余連接.STP首先選舉1個(gè)根橋,用來對(duì)網(wǎng)絡(luò)中的拓?fù)浣Y(jié)構(gòu)做決定.當(dāng)所有的switches認(rèn)同了選舉出來的根橋后,所有的bridge開始查找
根端口.假如在switches之間有許多連接,只能有1個(gè)端口作為指定端口
Selecting the Root Bridge
bridge ID用來在STP域里選舉根橋和決定
根端口,這個(gè)ID是8字節(jié)長(zhǎng),包含優(yōu)先級(jí)和設(shè)備的MAC地址,IEEE版本的STP的默認(rèn)優(yōu)先級(jí)是32768.決定誰(shuí)是根橋,假如優(yōu)先級(jí)一樣,那就比較MAC地址,MAC地址小的作為根橋
Selecting the Designated Port
假如不止1個(gè)連接到根橋,那就開始比較端口耗費(fèi),耗費(fèi)低的作為
根端口,下面是一些典型的耗費(fèi)標(biāo)準(zhǔn):
1.10Gbps:2
2.1Gbps:4
3.100Mbps:19
4.10Mbps:100
Spanning-Tree Port States
運(yùn)行STP的bridges和switches的5種狀態(tài):
1.堵塞(blocking):不轉(zhuǎn)發(fā)幀,只接受BPDUs,主要目的是防止循環(huán)的產(chǎn)生.默認(rèn)情況下,當(dāng)switch啟動(dòng)時(shí)所有端口均為blocking狀態(tài),一般為20s
2.監(jiān)聽(listening):端口接受和發(fā)送BPDUs監(jiān)聽數(shù)據(jù)幀,不轉(zhuǎn)發(fā)數(shù)據(jù)幀,來決定在傳送數(shù)據(jù)幀之前沒有循環(huán)會(huì)發(fā)生,一般為15s
3.學(xué)習(xí)(learning):監(jiān)聽BPDUs和學(xué)習(xí)所有路徑,學(xué)習(xí)MAC地址表,不轉(zhuǎn)發(fā)幀,一般為15s
4.轉(zhuǎn)發(fā)(forwarding):轉(zhuǎn)發(fā)和接收數(shù)據(jù)幀,讀取MAC地址,更新橋的CAM表。
5.禁用(disabled):不參與幀的轉(zhuǎn)發(fā)和STP,一般在這個(gè)狀態(tài)的都是不可操作的
生成樹”資料交換機(jī)內(nèi)的生成樹算法(STA)使你可以創(chuàng)建一條備用鏈路(當(dāng)網(wǎng)絡(luò)中存在多臺(tái)交換機(jī)時(shí))。在主鏈路正常工作時(shí),備用鏈路處于空閑狀態(tài)(不工作);只有在主鏈路出現(xiàn)問題時(shí),備用鏈路才不需要任何人工干預(yù)自動(dòng)地接替主鏈路。這種自動(dòng)重構(gòu)的功能,使得網(wǎng)絡(luò)上的用戶能夠最大限度地與網(wǎng)絡(luò)保持正常的連接。生成樹算法較復(fù)雜,所以,建議最好在充分研究理解其之后,再更改其一些設(shè)置。請(qǐng)仔細(xì)閱讀并理解下述內(nèi)容之后,再去更改交換機(jī)上的生成樹的默認(rèn)設(shè)置。
網(wǎng)絡(luò)環(huán)路的偵測(cè)和預(yù)防(Network loop detection and prevention):任何兩個(gè)局域網(wǎng)之間應(yīng)該只有一條路徑,否則,網(wǎng)絡(luò)中將出現(xiàn)環(huán)路。如果存在著多于一條的路徑,那么生成樹算法將會(huì)偵測(cè)到環(huán)路的發(fā)生,并自動(dòng)選擇
開銷值(c ost)最低的那條路徑作為可使用的路徑(主鏈路),而阻斷其它路徑,將它們作為備用路徑(備用鏈路)。
自動(dòng)拓?fù)渲貥?gòu)(Automatic topology re-configuration):當(dāng)主鏈路出現(xiàn)故障時(shí),生成樹算法將自動(dòng)啟用備用鏈路,重構(gòu)網(wǎng)絡(luò)結(jié)構(gòu)。
生成樹的級(jí)別(STA Operation Levels)
生成樹有兩種工作級(jí)別:橋級(jí)別(bridge level)和端口級(jí)別(port level)。在橋一級(jí)上,生成樹算法為每臺(tái)交換機(jī)計(jì)算橋的標(biāo)志級(jí)數(shù)(Bridge Identifier),然后設(shè)定根橋(Root Bridge)和指定橋(Designated Bridges)。而在端口一級(jí)上,生成樹算法設(shè)定
根端口(Root Port)和指定端口(Designated Ports)。詳述如下:
在橋一級(jí)上(On the Bridge Level):
根橋(Root Bridge):具有最小橋標(biāo)志級(jí)數(shù)的(lowest Bridge Identifier)交換機(jī)是根橋(Root Bridge)。當(dāng)然,你希望根橋是環(huán)路中所有交換機(jī)當(dāng)中最好的一臺(tái)(交換機(jī)),以保證能夠提供最好的網(wǎng)絡(luò)性能和可靠性。
橋標(biāo)志級(jí)數(shù)(Bridge Identifier):橋標(biāo)志級(jí)數(shù)是橋的優(yōu)先級(jí)(Bridge Priority)和交換機(jī)的MAC地址的綜合數(shù)值,其中橋的優(yōu)先級(jí)(Bridge Priority)是一個(gè)你可以設(shè)定的參數(shù)。例如,“4 00 80 C8 00 01 00”中的“4”是橋的優(yōu)先級(jí),“00 80 C8 00 01 00”是交換機(jī)的MAC地址。交換機(jī)的橋標(biāo)志級(jí)數(shù)越低,則交換機(jī)的優(yōu)先級(jí)越高,這樣可以增加其成為根橋的可能性。
指定橋(Designated Bridge):在每個(gè)網(wǎng)段中,到根橋(Root Bridge)的路徑
開銷最低的(lowest Root Path Cost)橋?qū)⒊蔀橹付颍―esignated Bridge),數(shù)據(jù)包將通過它轉(zhuǎn)發(fā)到網(wǎng)段。一旦所有的交換機(jī)具有
相同的根路徑
開銷(Root Path Cost),那么具有最低的橋標(biāo)志級(jí)數(shù)的(lowest Bridge Identifier)交換機(jī)才會(huì)被定為指定橋(Designated Bridge)。
根路徑開銷(Root Path Cost):一臺(tái)交換機(jī)的根路徑
開銷(Root Path Cost)是
根端口(Root Port)的路徑
開銷(Path Cost)與數(shù)據(jù)包經(jīng)過的所有交換機(jī)的根路徑
開銷(Root Path Cost)之和。根橋(Root Bridge)的根路徑
開銷(Root Path Cost)是零。
橋的優(yōu)先級(jí)(Bridge Priority):是一個(gè)用戶可以設(shè)定的參數(shù)。設(shè)定的值越小,優(yōu)先級(jí)越高。交換機(jī)具有越高的優(yōu)先級(jí),才越有可能成為根橋。
在端口一級(jí)上(On the Port Level):
根端口(Root Port):每臺(tái)交換機(jī)都有一個(gè)
根端口(Root Port),這個(gè)端口到根橋的路徑
開銷最低。一旦多個(gè)端口具有
相同的到根橋的路徑
開銷時(shí),那么具有最低的端口標(biāo)志級(jí)別的才會(huì)成為
根端口。
指定端口(Designated Port):指定端口就是指定橋(Designated Bridge)上的端口。
端口優(yōu)先級(jí)(Port Priority):數(shù)值越小,端口的優(yōu)先級(jí)就越高。具有越高端口優(yōu)先級(jí),才越有可能成為
根端口。
路徑開銷(Path Cost):這是一個(gè)可變的參數(shù),它將隨著生成樹中的設(shè)定值的變化而變化。依據(jù)STA的默認(rèn)參數(shù)值,每個(gè)1000Mbps網(wǎng)段有一個(gè)指定的路徑
開銷值為4 ,100Mbps網(wǎng)段的路徑
開銷值19,10Mbps網(wǎng)段的路徑
開銷值100。
生成樹參數(shù)(STA Parameters)
生成樹的參數(shù)用戶可以根據(jù)自己的需要進(jìn)行修改,但是建議最好使用出廠時(shí)的默認(rèn)設(shè)置。除非確實(shí)需要對(duì)出廠設(shè)置值進(jìn)行變動(dòng)時(shí),再去改動(dòng)默認(rèn)值。用戶可以改動(dòng)的生成樹參數(shù)有如下幾個(gè):
橋優(yōu)先級(jí)(Bridge Priority):數(shù)值范圍從0到65535。“0”的優(yōu)先級(jí)最高。
呼叫時(shí)間(Bridge Hello Time):數(shù)值范圍從1秒到10秒。是指根橋向其它所有交換機(jī)發(fā)出BPDU數(shù)據(jù)包的時(shí)間間隔,以告知其它所有交換機(jī)它是根橋。如果你的交換機(jī)還未是根橋時(shí)為其設(shè)置了呼叫時(shí)間,那么,一旦你的交換機(jī)成為根橋,該呼叫時(shí)間就會(huì)派上用處。
注意:呼叫時(shí)間不能大于橋的最大老化時(shí)間(Max. Age),否則,將出現(xiàn)錯(cuò)誤信息。
最大的橋老化時(shí)間(Bridge Max. Age):數(shù)值范圍從6秒到40秒。如果在超出最大老化時(shí)間之后,還沒有收到根橋發(fā)出的BPDU數(shù)據(jù)包,那么,在允許的條件下你的交換機(jī)將充當(dāng)根橋向其它所有的交換機(jī)發(fā)出B PDU數(shù)據(jù)包。如果交換機(jī)確實(shí)具有最小的橋標(biāo)志級(jí)數(shù),那么,它將隨之成為根橋。
橋轉(zhuǎn)發(fā)時(shí)延(Bridge Forward Delay):數(shù)值范圍從4秒到30秒。是指交換機(jī)的端口從阻塞狀態(tài)轉(zhuǎn)為轉(zhuǎn)發(fā)狀態(tài)所用的監(jiān)聽時(shí)間。
當(dāng)你欲變動(dòng)生成樹參數(shù)時(shí),請(qǐng)一定記住下述公式:
最大的橋老化時(shí)間≤ 2 x(橋轉(zhuǎn)發(fā)時(shí)延 – 1秒)
即:Max. Age ≤ 2 x (Forward Delay - 1 second)
最大的橋老化時(shí)間≥ 2 x(呼叫時(shí)間 + 1秒)
即:Max. Age ≥ 2 x (Hello Time + 1 second)
端口優(yōu)先級(jí)(Port Priority):數(shù)值范圍從0到255。數(shù)值越小,那么該端口越可能成為
根端口。
生成樹協(xié)議(STP)
1. 冗余鏈路:冗余連接可以防止網(wǎng)絡(luò)中的單點(diǎn)失效的問題;冗余連接也導(dǎo)致了交換回路的出現(xiàn)。
2. 交換回路引發(fā)的問題:廣播風(fēng)暴;同一幀的多拷貝;不穩(wěn)定的MAC地址表。
3. STP介紹:通過阻塞一個(gè)或多個(gè)冗余端口,維護(hù)一個(gè)無回路的網(wǎng)絡(luò)(IEEE802.1d)
4. 工作過程:運(yùn)行生成樹算法(STA)的交換機(jī)定期發(fā)送BPDU;選取唯一一個(gè)根網(wǎng)橋;在每個(gè)非根網(wǎng)橋選取唯一一個(gè)
根端口;在每網(wǎng)段選取唯一一個(gè)標(biāo)志端口。
(1). 選取唯一一個(gè)根網(wǎng)橋:BPDU中包含Bridge ID;Bridge ID(8B)=優(yōu)先級(jí)(2B)+交換機(jī)MAC地址(6B);一些交換機(jī)的優(yōu)先級(jí)默認(rèn)為32768,可以修改;優(yōu)先級(jí)值最小的成為根網(wǎng)橋;優(yōu)先級(jí)值最小的成為根網(wǎng)橋;優(yōu)先級(jí)值
相同,MAC地址最小的成為根網(wǎng)橋;Bridge ID值最小的成為根網(wǎng)橋;根網(wǎng)橋缺省每2秒發(fā)送一次BPDU;
(2). 在每個(gè)非根網(wǎng)橋選取唯一一個(gè)
根端口:根網(wǎng)橋上沒有
根端口;端口代價(jià)最小的成為
根端口;端口代價(jià)
相同,Port ID最小端口的成為端口;Port ID通常為端口的MAC地址;MAC地址最小的端口成為
根端口;
(3). 在每網(wǎng)段選取唯一一個(gè)標(biāo)志端口:端口代價(jià)最小的成為標(biāo)識(shí)端口;根網(wǎng)橋端口到各網(wǎng)段的代價(jià)最??;通常只有根網(wǎng)橋端口成為標(biāo)識(shí)端口;被選定為
根端口和標(biāo)識(shí)端口的進(jìn)行轉(zhuǎn)發(fā)狀態(tài);落選端口進(jìn)入阻塞狀態(tài),只偵聽BPDU;
(4). 阻塞端口在指定的時(shí)間間隔(缺省20秒)收不到BPDU時(shí),會(huì)重新運(yùn)行生成樹算法進(jìn)行選舉;缺點(diǎn):在運(yùn)行生成樹算法的過程中,網(wǎng)絡(luò)處理阻斷狀態(tài),所有端口都不進(jìn)行轉(zhuǎn)發(fā)。計(jì)算過程缺省為50秒。
生成樹相關(guān)的幾個(gè)概念STP/RSTP/MSTP
STP:IEEE Std 802.1D-1998定義,不能快速遷移。即使是在點(diǎn)對(duì)點(diǎn)鏈路或邊緣端口,也必須等待2倍的forward delay的時(shí)間延遲,網(wǎng)絡(luò)才能收斂。
RSTP:IEEE Std 802.1w定義,可以快速收斂,卻存在以下缺陷:
局域網(wǎng)內(nèi)所有網(wǎng)橋共享一棵生成樹,不能按vlan阻塞冗余鏈路。
MSTP可以彌補(bǔ)這樣缺陷,它允許不同vlan的流量沿各自的路徑分發(fā),從而為冗余鏈路提供了更好的負(fù)載分擔(dān)機(jī)制。
MSTP:Multiple Spanning Tree Protocol多生成樹協(xié)議在規(guī)范IEEE Std 802.1s中第13節(jié)描述。
MSTP算法通過應(yīng)用MSTP、STP或RSTP的橋任意互連的橋接網(wǎng)絡(luò),為分配給任一個(gè)特定VLAN的幀提供了簡(jiǎn)單而完備的連通性。
MSTP允許不同VLAN的數(shù)據(jù)從各自的路徑分發(fā)。各條路徑建立在由LAN和MST橋組成的MST域中的各個(gè)獨(dú)立的多生成樹實(shí)例的基礎(chǔ)上。
當(dāng)STP和RSTP混用
當(dāng)STP和RSTP混用時(shí),STP會(huì)丟棄RSTP的BPU,當(dāng)RSTP收到STP的BPDU的時(shí)候會(huì)在經(jīng)過一個(gè)hello周期后(防止端口頻繁切換),適配未STP模式!
當(dāng)網(wǎng)絡(luò)中支持STP的設(shè)備被拿走后,RSTP的設(shè)備不會(huì)自動(dòng)切換為RSTP狀態(tài),因?yàn)樵O(shè)備不能察覺這種情況!
MSTP和PVST的區(qū)別!
PVST會(huì)為每一個(gè)VLAN維護(hù)一個(gè)STP 的進(jìn)程,發(fā)送BPUD,但是會(huì)給交機(jī)和鏈路帶來很大的負(fù)擔(dān)!
但是在實(shí)際組網(wǎng)中并不需要為每個(gè)VLAN生成獨(dú)立的VLAN,可以給一組VLAN采用
相同的STP!
因此MSTP,對(duì)此進(jìn)行了改進(jìn)!提出了region的概念!
詳細(xì)可以參考RFC!
MSTP和RSTP的互通
MSTP上存在一個(gè)IST(Internal Spanning Tree),相當(dāng)于一個(gè)RSTP的進(jìn)程,通過該IST和其它RSTP設(shè)備互通!整個(gè)MSTP的Region 對(duì)于CST(Common Spanning Tree)來說是一個(gè)虛擬的交換機(jī)!