第四章 管理交換網絡中的冗餘鏈路

 

第四章 管理交換網絡中的冗餘鏈路
4.1生成樹協議概述
對二層以太網來說,兩個LAN間只能有一條活動着的通路,否則就會產生廣播風暴。但是爲了加強一個局域網的可靠性,建立冗餘鏈路又是必要的,其中的一些通路必須處於備份狀態,如果當網絡發生故障,另一條鏈路失效時,冗餘鏈路就必須被提升爲活動狀態。
手工控制這樣的過程顯然是一項非常艱苦的工作,STP協議就自動的完成這項工作。它能使一個局域網中的交換機起下面作用:
發現並啓動局域網的一個最佳樹型拓樸結構。
發現故障並隨之進行恢復,自動更新網絡拓樸結構,使在任何時候都選擇了可能的最佳樹型結構。
局域網的拓樸結構是根據管理員設置的一組網橋配置參數自動進行計算的。使用這些參數能夠生成最好的一棵拓樸樹。只有配置得當,才能得到最佳的方案。
RSTP協議完全向下兼容802.1D STP協議,除了和傳統的STP協議一樣具有避免迴路、提供冗餘鏈路的功能外,最主要的特點就是“快”。如果一個局域網內的網橋都支持RSTP協議且管理員配置得當,一旦網絡拓樸改變而要重新生成拓樸樹只需要不超過1秒的時間(傳統的STP需要大約50秒)。
Bridge Protocol Data Units(簡寫爲BPDU):
要生成一個穩定的樹型拓樸網絡需要依靠以下元素:
 每個網橋唯一的橋ID(bridge ID),由橋優先級和Mac地址組合而成。
 網橋到根橋的路徑花費(root path cost),以下簡稱根路徑花費。
 每個端口ID(port ID),由端口優先級和端口號組合而成。
網橋之間通過交換BPDU(Bridge Protocol Data Units,網橋協議數據單元)幀來獲得建立最佳樹形拓樸結構所需要的信息。這些幀以組播地址01-80-C2-00-00-00(十六進制)爲目的地址。
每個BPDU由以下這些要素組成:
 Root Bridge ID(本網橋所認爲的根橋ID)。
 Root Path cost(本網橋的根路徑花費)。
 Bridge ID(本網橋的橋ID)。
 Message age(報文已存活的時間)
 Port ID(發送該報文端口的ID)。
 Forward-Delay Time、Hello Time、Max-Age Time 三個協議規定的時間參數。
 其他一些諸如表示發現網絡拓樸變化、本端口狀態的標誌位。
當網橋的一個端口收到高優先級的BPDU(更小的bridge ID,更小的root path cost,等),就在該端口保存這些信息,同時向所有端口更新並傳播信息。如果收到比自己低優先級的BPDU,網橋就丟棄該信息。
這樣的機制就使高優先級的信息在整個網絡中傳播開,BPDU的交流就有了下面的結果:
 網絡中選擇了一個網橋爲根橋(Root Bridge)。
 除根橋外的每個網橋都有一個根口(Root Port),即提供最短路徑到Root Bridge的端口。
 每個網橋都計算出了到根橋(Root Bridge)的最短路徑。
 每個LAN都有了指派網橋(Designated Bridge),位於該LAN與根橋之間的最短路徑中。指派網橋和LAN相連的端口稱爲指派端口(Designated port)。
 根口(Root port)和指派端口(Designated port)進入Forwarding狀態。
 其他不在生成樹中的端口就處於Discarding狀態
Bridge ID
按IEEE 802.1W標準規定,每個網橋都要有單一的網橋標識(Bridge ID),生成樹算法中就是以它爲標準來選出根橋(Root Bridge)的。Bridge ID由8個字節組成,後6個字節爲該網橋的mac地址,前2個字節如果下表所示,前4 bit表示優先級(priority),後8 bit表示System ID,爲以後擴展協議而用,在RSTP中該值爲0,因此給網橋配置優先級就要是4096的倍數。

 
Priority value
System ID
Bit位
16
15
14
13
12
11
10 9
 
8
7
6
5
4 3
2
1
 
32768
16384
8192
4096
2048
1024
512
256
128
64
32
16 8
 
4
2
1
Spanning-Tree Timers(生成樹的定時器)
以下描述影響到整個生成樹性能的三個定時器。
 Hello timer:定時發送BPDU報文的時間間隔。
 Forward-Delay timer:端口狀態改變的時間間隔。當RSTP協議以兼容STP協議模式運行時,端口從listening轉變向learning,或者從learning轉向forwarding狀態的時間間隔。
 Max-Age timer:BPDU報文消息生存的最長時間。當超出這個時間,報文消息將被丟棄。
Port Roles and Port States
每個端口都在網絡中有扮演一個角色(Port Role),用來體現在網絡拓樸中的不同作用。
 Root port:提供最短路徑到根橋(Root Bridge)的端口。
 Designated port:每個LAN的通過該口連接到根橋。
 Alternate port:根口的替換口,一旦根口失效,該口就立該變爲根口。
 Backup port:Designated port的備份口,當一個網橋有兩個端口都連在一個LAN上,那麼高優先級的端口爲Designated port,低優先級的端口爲Backup port。
 Disable port:當前不處於活動狀態的口,即operState爲down的端口都被分配了這個角色。
以下爲各個端口角色的示意圖R1w-2-1、R1w-2-2、R1w-2-3:
R = Root port D = Designated port A = Alternate port B = Backup port
在沒有特別說明情況下,端口優先級從左到右遞減
每個端口有三個狀態(port state)來表示是否轉發數據包,從而控制着整個生成樹拓樸結構。
 Discarding:既不對收到的幀進行轉發,也不進行源Mac地址學習。
 Learning:不對收到的幀進行轉發,但進行源Mac地址學習,這是個過渡狀態。
 Forwarding:既對收到的幀進行轉發,也進行源Mac地址的學習。
對一個已經穩定的網絡拓樸,只有Root port和Designated port纔會進入Forwarding狀態,其它端口都只能處於Discarding狀態。
網絡拓樸樹的生成(典型應用方案)
現在就可以說明STP、RSTP協議是如何把雜亂的網絡拓樸生成一個樹型結構了。如下圖R1w-3-1所示,假設Switch A、B、C的bridge ID是遞增的,即Switch A的優先級最高。A與B間是千兆鏈路,A和B間爲百兆鏈路,B和C間爲十兆鏈路。Switch A做爲該網絡的骨幹交換機,對Switch B和Switch C都做了鏈路冗餘,顯然,如果讓這些鏈路都生效是會產生廣播風暴的。
而如果這三臺Switch都打開了Spanning Tree協議,它們通過交換BPDU選出根橋(root bridge)爲Switch A。Switch B發現有兩個端口都連在Switch A上,它就選出優先級最高的端口爲root port,另一個端口就被選爲Alternate port。而Switch C發現它既可以通過B到A,也可以直接到A,但由於交換機通過計算髮現:就算通過B到A的鏈路花費(path cost)也比直接到A的低(各種鏈路對應的鏈路花費請查看章節《配置Path Cost的缺省計算方法》中附錄的表),於是Switch C就選擇了與B相連的端口爲Root port,與A相連的端口爲Alternate port。都選擇好端口角色(port role)了,就進入各個端口相應的狀態了,於是就生成了相應的圖R1w-3-2。
如果Switch A和Switch B之間的活動鏈路出了故障,那備份鏈路就會立即產生作用,於是就生成了相應的圖R1w-3-3。
如果Switch B和Switch C之間的鏈路出了故障,那Switch C就會自動把Alternate port轉爲Root port,就生成了圖R1w-3-4的情況。
 
RSTP協議可以與STP協議完全兼容,RSTP協議會根據收到的BPDU版本號來自動判斷與之相連的網橋是支持STP協議還是支持RSTP協議,如果是與STP網橋互連就只能按STP的forwarding方法,過30秒再forwarding,無法發揮RSTP的最大功效。
另外,RSTP和STP混用還會遇到這樣一個問題。如圖R1w-1-1所示,Switch A是支持RSTP協議的,Switch B只支持STP協議,它們倆互連,Switch A發現與它相連的是STP橋,就發STP 的BPDU來兼容它。但後來如果換了臺Switch C(如圖R1w-1-2),它支持RSTP協議,但Switch A卻依然在發STP的BPDU,這樣使Switch C也認爲與之互連的是STP橋了,結果兩臺支持RSTP的交換機卻以STP協議來運行,大大降低了效率。
爲此RSTP協議提供了protocol-migration功能來強制發RSTP BPDU,這樣Switch A強制發了RSTP BPDU,Switch C就發現與之互連的網橋是支持RSTP的,於是兩臺交換機就都以RSTP協議運行了。
 
4.2 配置STP、RSTP
下面列出Spanning Tree的缺省配置
項目缺省值Enable State Disable,不打開STP STP Priority 32768 STP port Priority 128
STP port cost 根據端口速率自動判斷Hello Time 2秒Forward-delay Time 15秒Max-age Time 20秒Path Cost的缺省計算方法長整型Tx-Hold-Count 3 Link-type 根據端口雙工狀態自動判斷
您可通過spanning-tree reset命令讓spanning tree參數恢復到缺省配置
打開、關閉Spanning Tree協議
打開Spanning-tree協議,交換機即開始運行生成樹協議。
交換機的缺省狀態是關閉Spanning-tree協議。
進入特權模式,按以下步驟打開Spanning Tree協議:
命令含義步驟1 configure terminal 進入全局配置模式。步驟2 spanning-tree 打開Spanning tree協議步驟3 end 退回到特權模式。步驟4 show spanning-tree 覈對配置條目步驟5 copy running-config startup-config 保存配置。
如果您要關閉Spanning Tree協議,可用no spanning-tree 全局配置命令進行設置。
配置交換機優先級(Switch Priority)
設置交換機的優先級關係着到底哪個交換機爲整個網絡的根,同時也關係到整個網絡的拓樸結構。建議管理員把核心交換機的優先級設得高些(數值小),這樣有利於整個網絡的穩定。
優先級的設置值有16個,都爲4096的倍數,分別是0,4096,8192,12288,16384,20480,24576,28672,32768,36864,40960,45056,49152,53248,57344,61440。缺省值爲32768。
進入特權模式,按以下步驟配置交換機優先級:
命令含義步驟1 configure terminal 進入全局配置模式。步驟2 spanning-tree priority priority 配置交換機的優先級,取值範圍爲0到61440,按4096的倍數遞增,缺省值爲32768。步驟3 end 退回到特權模式。
步驟4 show spanning-tree 覈對配置條目步驟5 copy running-config startup-config 保存配置。
您如果要恢復到缺省值,可用no spanning-tree priority全局配置命令進行設置。
配置端口優先級(Port Priority)
當有兩個端口都連在一個共享介質上,交換機會選擇一個高優先級(數值小)的端口進入forwarding狀態,低優先級(數值大)的端口進入discarding狀態。如果兩個端口的優先級一樣,就選端口號小的那個進入forwarding狀態。
和交換機的優先級一樣,可配置的優先級值也有16個,都爲16的倍數,分別是0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240。缺省值爲128。
進入特權模式,按以下步驟配置端口優先級:
命令含義步驟1 configure terminal 進入全局配置模式。步驟2 interface interface-id 進入該interface的配置模式,合法的interface包括物理端口和Aggregate Link。步驟3 spanning-tree port-priority priority 配置該interface的優先級,取值範圍爲0到240,按16的倍數遞增,缺省值爲128。步驟4 end 退回到特權模式。步驟5 copy running-config startup-config 保存配置。
您如果要恢復到缺省值,可用no spanning-tree port-priority接口配置命令進行設置。
配置端口的路徑花費(Path Cost)
交換機是根據哪個端口到根橋(root bridge)的path cost總和最小而選定Root port的,因此port path cost的設置關係到本交換機root port。它的缺省值是按interface的鏈路速率(the media speed)自動計算的,速率高的花費小,如果管理員沒有特別需要可不必更改它,因爲這樣算出的path cost最科學。
進入特權模式,按以下步驟配置端口路徑花費:
命令含義步驟1 configure terminal 進入全局配置模式。步驟2 interface interface-id 進入該interface的配置模式,合法的interface包括物理端口和Aggregate Link。步驟3 spanning-tree cost cost 配置該端口上的花費,取值範圍爲
1到200,000,000。缺省值爲根據interface的鏈路速率自動計算。步驟4 end 退回到特權模式。步驟5 copy running-config startup-config 保存配置。
您如果要恢復到缺省值,可用no spanning-tree cost接口配置命令進行設置。
配置Path Cost的缺省計算方法(path cost method)
當該端口Path Cost爲缺省值時,交換機會自動根據端口速率計算出該端口的path cost。但IEEE 802.1d和IEEE 802.1t對相同的鏈路速率規定了不同path cost值,802.1d的取值範圍是短整型(short)(1—65535),802.1t的取值範圍是長整型(long)(1—200,000,000)。請管理員一定要統一好整個網絡內path cost的標準。缺省模式爲長整型模式(IEEE 802.1t模式)。
下表列出兩種方法對不同鏈路速率自動設置的path cost。
端口速率Interface IEEE 802.1d(short) IEEE 802.1t
(long) 10M 普通端口100 2000000 Aggregate Link 95 1900000 100M 普通端口19 200000 Aggregate Link 18 190000 1000M 普通端口4 20000 Aggregate Link 3 19000
進入特權模式,按以下步驟配置端口路徑花費的缺省計算方法:
命令含義步驟1 configure terminal 進入全局配置模式。步驟2 spanning-tree pathcost method long/short 配置端口路徑花費的缺省計算方法,設置值爲長整型(long)或短整型(short),缺省值爲長整型(long)。步驟3 end 退回到特權模式。步驟4 copy running-config startup-config 保存配置。
您如果要恢復到缺省值,可用no spanning-tree pathcost method全局配置命令進行設置。
配置Hello Time
配置交換機定時發送BPDU報文的時間間隔。缺省值爲2秒。
進入特權模式,按以下步驟配置Hello Time:
命令含義步驟1 configure terminal 進入全局配置模式。步驟2 spanning-tree hello-time seconds 配置hello time,取值範圍爲1到10秒,缺省值爲2秒。步驟3 end 退回到特權模式。步驟4 copy running-config startup-config 保存配置。
您如果要恢復到缺省值,可用no spanning-tree hello-time全局配置命令進行設置。
配置Forward-Delay Time
配置端口狀態改變的時間間隔。缺省值爲15秒。
進入特權模式,按以下步驟配置Forward-Delay Time:
命令含義步驟1 configure terminal 進入全局配置模式。步驟2 spanning-tree forward-time seconds 配置forward delay time,取值範圍爲4到30秒,缺省值爲15秒。步驟3 end 退回到特權模式。步驟4 copy running-config startup-config 保存配置。
您如果要恢復到缺省值,可用no spanning-tree forward-time全局配置命令進行設置。
配置Max-Age Time
配置BPDU報文消息生存的最長時間。缺省值爲20秒。
進入特權模式,按以下步驟配置Max-Age Time:
命令含義步驟1 configure terminal 進入全局配置模式。步驟2 spanning-tree max-age seconds 配置max age time,取值範圍爲6到40秒,缺省值爲20秒。步驟4 end 退回到特權模式。步驟5 copy running-config startup-config 保存配置。
您如果要恢復到缺省值,可用no spanning-tree max-age全局配置命令進行設置。
配置Tx-Hold-Count
配置每秒種最多發送的BPDU個數,缺省值爲3個。
進入特權模式,按以下步驟配置Max-Age Time:
命令含義步驟1 configure terminal 進入全局配置模式。步驟2 spanning-tree tx-hold-count numbers 配置每秒最多發送BPDU個數,取值範圍爲1到10個,缺省值爲3個。步驟4 end 退回到特權模式。步驟5 copy running-config startup-config 保存配置。
配置link-type
配置該端口的連接類型是不是“點對點連接”,這一點關係到RSTP是否能快速的收斂。請參照1.7 RSTP的快速收斂。當您不設置該值時,交換機會根據端口的“雙工”狀態來自動設置的,全雙工的端口就設link type爲point-to-point,半雙工就設爲shared。您也可以強制設置link type來決定端口的連接是不是“點對點連接”。
進入特權模式,按以下步驟配置端口的link type:
命令含義步驟1 configure terminal 進入全局配置模式。步驟2 interface interface-id 進入該interface的配置模式,合法的interface包括物理端口和Aggregate Link。步驟3 spanning-tree link-type point-to-point/shared配置該interface的連接類型,缺省值爲根據端口“雙工”狀態來自動判斷是不是“點對點連接”。步驟4 end 退回到特權模式。步驟5 copy running-config startup-config 保存配置。
您如果要恢復到缺省值,可用no spanning-tree link-type接口配置命令進行設置。
配置protocol migration處理
該設置是讓該端口強制發RSTP BPDU,強制進行版本檢查。相關說明請參看1.8 RSTP與STP的兼容。
您可以在普通用戶模式下用clear spanning-tree detected-protocols對所有端口強制版本檢查,也可以用clear spanning-tree detected-protocols interface interface-id針對一個端口進行版本檢查。
STP、RSTP信息顯示
本章節將解釋STP的顯示命令:
命令含義show spanning-tree 顯示Spanning Tree的全局信息show spanning-tree interface interface-id 顯示指定interface的信息
其中show spanning-tree顯示出:
Switch#sh sp
SysStpStatus : Enabled
BridgeAddr : ffff.ffff.f7ff
BaseNumPorts : 24
StpPriority : 32768
StpTimeSinceTopologyChange : 0d:0h:25m:48s
StpTopologyChanges : 0
StpDesignatedRoot : 80000008A3731040
StpRootCost : 2000000
StpRootPort : Fa0/18
StpMaxAge : 20
StpHelloTime : 2
StpForwardDelay : 15
StpBridgeMaxAge : 20
StpBridgeHelloTime : 2
StpBridgeForwardDelay : 15
StpTxHoldCount : 3
StpPathCostMethod : Long
StpBPDUGuard : Disabled
StpBPDUFilter : Disabled
show spanning-tree interface interface-id將顯示出:
Switch#sh sp int f 0/18
StpPortPriority : 128
StpPortState : forwarding
StpPortDesignatedRoot : 80000008A3731040
StpPortDesignatedCost : 0
StpPortDesignatedBridge : 80000008A3731040
StpPortDesignatedPort : 8002
StpPortForwardTransitions : 1
StpPortAdminPathCost : 0
StpPortOperPathCost : 2000000
StpPortRole : rootPort
StpPortAdminPortfast : Disabled
StpPortOperPortfast : Disabled
StpPortAdminLinkType : auto
StpPortOperLinkType : shared
StpPortBPDUGuard: Disabled
StpPortBPDUFilter: Disabled
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章