一、為什么要用STP
為了提高網(wǎng)絡(luò)可靠性,交換網(wǎng)絡(luò)中通常會使用冗余鏈路。然而,冗余鏈路會給交換網(wǎng)絡(luò)帶來環(huán)路風(fēng)險,并導(dǎo)致廣播風(fēng)暴以及MAC地址表不穩(wěn)定等問題,進(jìn)而會影響到用戶的通信質(zhì)量。生成樹協(xié)議STP(Spanning Tree Protocol)可以在提高可靠性的同時又能避免環(huán)路帶來的各種問題。a)Stp通過阻塞端口來消除環(huán)路,并能夠?qū)崿F(xiàn)鏈路備份目的c)物理鏈路冗余,網(wǎng)絡(luò)變成了層次化結(jié)構(gòu)的網(wǎng)絡(luò)

-
根橋:生成樹里面的‘老大’,橋id最小
-
備份根橋:生成樹里面的“二把手”,老大掛了的時候,我當(dāng)老大,橋ID第二小。
-
非根交換機:干活的小弟,都有一個根端口
-
根端口:離根橋最近的端口
-
指定端口:根橋所有參與生成樹選舉的端口,都一定是指定端口
-
非根非指定端口:被阻塞的端口---備用鏈路的端口
-
路徑開銷:是端口Cost值,可以用來選擇最優(yōu)的路徑,值越小越優(yōu)。根路徑開銷是端口到達(dá)根橋的過程中累計的路徑開銷。
-
BID:橋ID:是由橋優(yōu)先級和橋MAC地址構(gòu)成,橋優(yōu)先級為高16位,MAC地址是低48位。
-
PID:端口ID:是由端口優(yōu)先級和端口號構(gòu)成,端口優(yōu)先級為高4位,端口號
2.根端口,指定端口,非根非指定端口(阻塞端口/預(yù)備端口)1.第一種根橋選舉因素:優(yōu)先級,MAC地址2.第二種端口選舉因素:路徑開銷>橋ID>對端端口ID>本端端口ID3.如果我們要改變根橋直連端口的接口屬性,要修改 路徑開銷。1.剛啟動STP時,每臺交換機都認(rèn)為自己是根橋2.根橋所有參與生成樹選舉的端口,都一定是指定端口3.根橋交換機指定端口直連的交換機端口,都一定是指定端口 4.根橋:在參與生成樹選舉的網(wǎng)絡(luò)里面 橋id肯定是最小的5.備份根橋:在參與生成樹選舉的網(wǎng)絡(luò)里面 橋id肯定是次優(yōu)的存在影響根橋選舉的因素:
1)優(yōu)先級(交換機默認(rèn)優(yōu)先級是32768)越小越優(yōu)先,0的優(yōu)先級最高。 2)優(yōu)先級一樣,看MAC地址表,最小的就是根橋。
3)兩種方式:優(yōu)先級最小、MAC地址最小
1.非根交換機在選舉根端口時分別依據(jù)該端口的根路徑開銷、橋ID、對端PID和本端PID(接了hub的情況才會用到本端PID)1.disable(端口未啟用狀態(tài)或初始狀態(tài),端口不處理任何數(shù)據(jù)端口狀態(tài)為down)2.blocking(阻塞狀態(tài),維持20秒)3.listening(監(jiān)聽狀態(tài),參與生成樹計算,接受并發(fā)送BPDU報文維持15秒)4.learning(學(xué)習(xí)狀態(tài),端口不轉(zhuǎn)發(fā)用戶流量,學(xué)習(xí)MAC表,參與生成樹計算,接受并發(fā)送BPDU報文,防止環(huán)路維持15秒)5.forwarding(轉(zhuǎn)發(fā)狀態(tài))

a)Hello Time:指允許STP的設(shè)備發(fā)送BPDU的時間間隔。當(dāng)網(wǎng)絡(luò)拓?fù)浞€(wěn)定之后,若要修改該定時器,只有在根橋修改才能生效。b)Forward Delay:指接口進(jìn)行狀態(tài)更換的延遲時間。也就是在處于Listening和Learning的持續(xù)時間,缺省值為15秒。c)Max Age: 指接口的BPDU老化時間。BPDU從根橋被發(fā)出的時候,Message Age值為0,每經(jīng)過一個橋設(shè)備,其值加1。當(dāng)非根橋設(shè)備收到BPDU后,會比較Message Age和Max Age的大小。如果前者小于等于后者,該非根橋設(shè)備繼續(xù)轉(zhuǎn)發(fā)該BPDU;如果前者大于后者,該BPDU將被丟棄,此時可以認(rèn)為網(wǎng)絡(luò)直徑過大,根橋連接失敗。在同一個拓?fù)渲?,Max Age是相同的,可在根橋上修改該值。1. 根橋故障恢復(fù)時間是max age+2*forwading Delay=20+15*2=50s(發(fā)送TCPBDU)2.直連鏈路故障回復(fù)時間是2*forwading Delay=15*2=30s3.間接鏈路故障恢復(fù)時間是max age+2*forwading Delay=20+15*2=50s2.技術(shù)層面,交換機不能拒接廣播,當(dāng)收到廣播時,會進(jìn)行泛洪

為了計算生成樹,交換機之間需要交換相關(guān)的信息和參數(shù),這些信息和參數(shù)被封裝在BPDU ( Bridge Protocol Data Unit )中。
BPDU 有兩種類型:配置 BPDU 和 TCN BPDU 。 配置BPDU 包含了橋 ID 、路徑開銷和端口 ID 等參數(shù)。STP 協(xié)議通過在交換機之間傳遞配置 BPDU 來選舉根交換機,以及確定每個交換機端口的角色和狀態(tài)。在初始化過程中,每個橋都主動發(fā)送配置 BPDU 。在網(wǎng)絡(luò)拓?fù)浞€(wěn)定以后,只有根橋主動發(fā)送配置 BPDU ,其他交換機在收到上游傳來的配置 BPDU 后,才會發(fā)送自己的配置 BPDU 。 TCN BPDU是指下游交換機感知到拓?fù)浒l(fā)生變化時向上游發(fā)送的拓?fù)渥兓ㄖ?/section>

注意:想要一個交換機一定為根橋,修改優(yōu)先級,優(yōu)先級可以為0。在后面加入新設(shè)備時,要使原根橋不變可以增大加入的新設(shè)備的優(yōu)先級。交換機默認(rèn)情況下直連的路徑開銷最小,但人工修改后則修改的可以為最小。