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