什么是STP? STP是二層網(wǎng)絡(luò)中用于消除環(huán)路的協(xié)議。
1.通過阻斷冗余鏈路來消除橋接網(wǎng)絡(luò)中可能存在的路徑回環(huán)。
2.當(dāng)前活動(dòng)路徑發(fā)生故障時(shí),激活冗余備份鏈路,恢復(fù)網(wǎng)絡(luò)連通性。
STP在IEEE制定的802.1D標(biāo)準(zhǔn)中定義,用于在局域網(wǎng)中消除數(shù)據(jù)鏈路層環(huán)路。STP可以通過計(jì)算,動(dòng)態(tài)的阻斷冗余鏈路。而當(dāng)活動(dòng)鏈路發(fā)生故障時(shí),STP又可以激活冗余鏈路,恢復(fù)網(wǎng)絡(luò)的連通,避免網(wǎng)絡(luò)中斷。
STP的不足
1.收斂時(shí)間長(zhǎng):缺省情況下一個(gè)端口從Blocking狀態(tài)過渡到Forwarding狀態(tài)至少需要30秒鐘(兩倍的Forward Delay)。對(duì)于一個(gè)拓?fù)洳环€(wěn)定網(wǎng)絡(luò),會(huì)導(dǎo)致網(wǎng)絡(luò)的長(zhǎng)時(shí)間中斷。
2.拓?fù)渥兓諗繖C(jī)制不靈活:STP定義了TCN BPDU,可以使得網(wǎng)絡(luò)拓?fù)渥兓瘯r(shí),在50秒內(nèi)實(shí)現(xiàn)收斂。當(dāng)網(wǎng)絡(luò)中有大量主機(jī),主機(jī)位置不固定,可能會(huì)頻繁的上下線,這樣會(huì)使得交換機(jī)頻繁發(fā)送TCN BPDU,導(dǎo)致網(wǎng)橋mac地址老化時(shí)間長(zhǎng)期保持為15秒。MAC地址頻繁的刷新會(huì)導(dǎo)致網(wǎng)絡(luò)充斥大量未知單播造成的廣播報(bào)文,嚴(yán)重影響網(wǎng)絡(luò)中的應(yīng)用。
RSTP
RSTP(快速生成樹協(xié)議)的IEEE標(biāo)準(zhǔn)為802.1w,其消除環(huán)路的基本思想和STP保持一致。RSTP具備了STP的所有功能,支持RSTP的網(wǎng)橋可以和支持STP的網(wǎng)橋一同運(yùn)行。
和STP相比,RSTP的改進(jìn)之處包括:
- RSTP減少了端口的狀態(tài);
- RSTP增加了端口的角色;
- RSTP配置BPDU的格式和發(fā)送方式有所改變;
- 當(dāng)網(wǎng)絡(luò)拓?fù)浒l(fā)生變化時(shí),RSTP處理方式不同,可以實(shí)現(xiàn)更為快速的收斂。
邊緣端口
當(dāng)端口直接與用戶終端相連,而沒有連接到其他網(wǎng)橋或局域網(wǎng)網(wǎng)段上時(shí),該端口即為邊緣端口。 邊緣端口連接的是終端,當(dāng)網(wǎng)絡(luò)拓?fù)渥兓瘯r(shí),邊緣端口不會(huì)產(chǎn)生臨時(shí)的環(huán)路,所以邊緣端口可以略過兩個(gè)Forward Delay時(shí)間,直接進(jìn)入Forwarding狀態(tài),無需任何延時(shí)。 由于網(wǎng)橋無法自動(dòng)判斷端口是否直接與終端相連,所以用戶需要手工將于終端連接的端口配置為邊緣端口。
RSTP和STP的兼容運(yùn)行
RSTP的端口連續(xù)三次接收到配置BPDU,則網(wǎng)橋認(rèn)為該端口和STP網(wǎng)橋相連,該端口將切換到STP協(xié)議運(yùn)行。切換到STP運(yùn)行的RSTP端口將失去快速收斂特性。將STP設(shè)備放在網(wǎng)絡(luò)邊緣,將影響范圍降到最小。
當(dāng)運(yùn)行STP的網(wǎng)橋移除后,由RSTP模式切換到STP模式的的端口仍將運(yùn)行在STP模式。可以持續(xù)穩(wěn)定的運(yùn)行,方式模式的頻繁切換,但是犧牲了收斂時(shí)間。如果要將STP模式切換回RSTP模式需要手工進(jìn)行配置
RSTP的配置
開啟全局生成樹特性
[h3c]stp global enable
選擇生成樹運(yùn)行模式
[h3c]stp mode rstp # stp | rstp | mstp | pvst
如果確定某個(gè)端口連接的部門不存在回路,則可關(guān)閉該端口的生成樹功能
[h3c-GigabitEthe.NET1/0/1]undo stp enable
配置優(yōu)先級(jí)和端口開銷
橋ID(Bridge-priority)由橋優(yōu)先級(jí)和MAC地址組成,默認(rèn)優(yōu)先級(jí)為32768,數(shù)值越小優(yōu)先級(jí)越高,最小的為根橋。取值范圍0~61440,步長(zhǎng)為4096
[h3c]stp priority 4096
根路徑開銷是STP確定根端口角色時(shí)用到的重要的參數(shù)。鏈路開銷是由端口配置的cost值決定的。
[h3c-GigabitEthernet1/0/1]stp cost 200
IEEE 802.1D和802.1t定義了不同速率和工作模式下的以太網(wǎng)鏈路(端口)開銷,根據(jù)實(shí)際情況的網(wǎng)絡(luò)運(yùn)行狀況優(yōu)化了開銷的數(shù)值定義,指定了私有標(biāo)準(zhǔn)。可以通過命令改變?cè)O(shè)備支持的端口開銷標(biāo)準(zhǔn)
[h3c]stp pathcost-standard dot1 #dot1d-1998 dot1t Legacy
配置端口優(yōu)先級(jí)
端口ID由兩部分組成:PortPriority(端口優(yōu)先級(jí))+ PortIndex(端口索引)
通過配置命令可以改變端口優(yōu)先級(jí),改變端口優(yōu)先級(jí)可以改變端口ID的優(yōu)劣,數(shù)值越小表示優(yōu)先級(jí)越高。
取值范圍為0~240,且步長(zhǎng)為16。默認(rèn)優(yōu)先級(jí)為128。
[h3c-GigabitEthernet1/0/1]stp port priority 16
配置端口的Hello Time
STP中 Hello Time(發(fā)送配置BPDU的周期) 的配置需要注意:
- 較長(zhǎng)的Hello Time可以降低生成樹計(jì)算的消耗;
- 過長(zhǎng)的Hello Time會(huì)導(dǎo)致對(duì)鏈路故障的反應(yīng)遲緩;
- 較短的Hello Time可以增強(qiáng)生成樹的健壯性;
- 過短的Hello Time會(huì)導(dǎo)致頻繁發(fā)送配置消息,加重CPU和網(wǎng)絡(luò)負(fù)擔(dān);
通過命令改變Hello Time值,其中單位厘秒(1秒=100厘秒),默認(rèn)值2秒。
[h3c]stp timer hello 200
配置端口的Max Age
STP中配置 BPDU 的生存期為 Max Age 時(shí)需要注意:
- 配置過長(zhǎng)的Max Age 會(huì)導(dǎo)致鏈路故障不能被及時(shí)發(fā)現(xiàn);
- 配置過短的Max Age 可能會(huì)在網(wǎng)絡(luò)擁塞的時(shí)候使交換機(jī)誤認(rèn)為鏈路故障,造成頻繁的生成樹計(jì)算。
通過命令改變Max Age值,單位為厘秒(1秒=100厘秒),默認(rèn)值為20秒。
[h3c]stp timer max-age 1000
配置端口的Forward Delay
STP為了防止臨時(shí)環(huán)路,在端口由阻塞狀態(tài)轉(zhuǎn)向轉(zhuǎn)發(fā)狀態(tài)時(shí)設(shè)置了中間狀態(tài),并在狀態(tài)切換需等待一定的時(shí)間,以保持與遠(yuǎn)端的設(shè)備狀態(tài)切換同步。根橋的Forward Delay時(shí)間確定了狀態(tài)遷移的時(shí)間間隔值。
如果當(dāng)前設(shè)備是根橋,該設(shè)備會(huì)按照該設(shè)置值確定狀態(tài)遷移時(shí)間間隔;非根橋采用根橋設(shè)置的Forward Delay參數(shù)。
配置時(shí)需要注意:
- 配置過長(zhǎng)的Forward Delay會(huì)導(dǎo)致生成樹的收斂太慢;
- 配置過短的Forward Delay可能會(huì)在拓?fù)涓淖兊臅r(shí)候,引入暫時(shí)的路徑回環(huán);
通過命令改變Forward Delay值,其中單位厘秒(1秒=100厘秒),默認(rèn)值為15秒。
[h3c]stp timer forward-delay 2000
配置網(wǎng)絡(luò)直徑
網(wǎng)絡(luò)直徑指網(wǎng)絡(luò)中任意兩臺(tái)終端設(shè)備之間通過的交換機(jī)數(shù)目的最大值。當(dāng)用戶配置設(shè)備的網(wǎng)絡(luò)直徑后,STP自動(dòng)根據(jù)配置的網(wǎng)絡(luò)直徑將Hello Time、Forward Delay與Max Age設(shè)置為一個(gè)較優(yōu)的值。當(dāng)網(wǎng)絡(luò)直徑為默認(rèn)值7時(shí),對(duì)應(yīng)的三個(gè)時(shí)間參數(shù)也分別為它們的默認(rèn)值。
通過命令設(shè)定交換網(wǎng)絡(luò)的網(wǎng)絡(luò)直徑,如設(shè)定交換網(wǎng)絡(luò)的網(wǎng)絡(luò)直徑為5。
[h3c]stp bridge-diameter 5
RSTP高級(jí)配置
當(dāng)端口直接與用戶終端連接,該端口即為邊緣端口。網(wǎng)絡(luò)拓?fù)浒l(fā)生變化時(shí),邊緣端口不會(huì)產(chǎn)生臨時(shí)環(huán)路。
通過命令配置端口為邊緣端口:
[h3c-GigabitEthernet1/0/1]stp edged-port
運(yùn)行RSTP(或MSTP)的設(shè)備的端口連接著運(yùn)行STP的設(shè)備,該端口會(huì)自動(dòng)遷移到STP兼容模式下工作; 但是如果運(yùn)行STP協(xié)議的設(shè)備被拆離,該端口不能自動(dòng)恢復(fù)RSTP(或MSTP)模式下,需要手動(dòng)操作迫使其遷移到RSTP模式下運(yùn)行。
在系統(tǒng)視圖下執(zhí)行以下命令,使配置在全局生效;
[h3c]stp global mcheck
在端口視圖執(zhí)行以下命令,則該配置只在當(dāng)前端口生效;
[h3c-GigabitEthernet1/0/1]stp mcheck
RSTP維護(hù)調(diào)試命令
顯示STP統(tǒng)計(jì)和狀態(tài)信息:
[h3c]dis stp [interface interface_list] [brief]
[h3c]dis stp interface G1/0/1 brief
打開STP調(diào)試開關(guān)
debugging stp packet