STP 生成樹原理【
STP 的介紹】STP的全稱是spanning-tree protocol。STP協(xié)議是一個二層的鏈路管理協(xié)議,它在提供鏈路冗余的同時防止網絡產生環(huán)路。STP協(xié)議(Spanning tree protocol)的本質就是實現(xiàn)在交換網絡中鏈路的備份和負載的分擔.STP是 生成樹協(xié)議,主要功能是從拓撲中清除第2層 環(huán)路。【 BPUD 與生成樹原理分析】一。BPDU里有什么?二。每個字段做什么用? 協(xié)議ID和版本號:目前都 是0,表示的是這是個STP協(xié)議。 BPDU類型:表示的是配置BPDU還是TCN的BPDU。 標志域:第一位和最后一位有用到,用來表示這是一個拓撲變更幀,還是拓撲變更確認 幀。 根網橋ID: 路徑成本:4個字節(jié),計算 到根橋的路徑成本。 橋ID:8個字節(jié)。由2個字節(jié)優(yōu)先級和6個字節(jié)MAC地址構成。2個字節(jié)里前4bits表示優(yōu)先級,后12bits表示擴展位(vlan數(shù))。默認優(yōu)先級是32768,最大是65535。 端口ID:由優(yōu)先級加端口 出廠編號構成,優(yōu)先級可以修改,但是一般不推薦修改。 消息老化時間: 消息壽命:消息最多存活時間。 hello時間:默認是兩秒,可以修改。 轉發(fā)延遲:默認是15秒, 可以修改。 實例圖分析: 實驗環(huán)境:在宿舍用wireshark抓的包。 先看1的部分:看到目的MAC地址是01:80:c2:00:00:00,這是個組播地址。 再看2的STP部分: 協(xié)議標識和版本都是0. 類型:是配置BPDU。 根標識:這里優(yōu)先級是0。(不是很清楚,或許是被改過了) 路徑開銷是:220020 (這 個是累加的) 橋ID:優(yōu)先級32768。 端口標識:0x800e 消息老化時間:3 hello 時間是2s。 轉發(fā)延遲是15s。 三。BPDU里的字段怎么 用? (生成樹的原理) 浩哥說:“我們只看BPDU”。 現(xiàn)在就看看怎么用BPDU來 解釋STP原理。 首先看幾個術語: 根橋:具有最小橋ID的 交換機。 根路徑開銷:一臺交換機的根路徑開銷是根端口的路徑開銷與數(shù)據(jù)包經過的所有交換機的根路徑開銷之和。根橋的根路徑開銷是零。 根端口:每臺交換機都有一個根端口,這個端口到根橋的路徑開銷最低。一旦多個端口具有相同的到根橋的路徑開銷時,那么具有最低的端口ID的才會成為根端口。 指定端口:為每個交換LAN網段選定的轉發(fā)端口。 現(xiàn)在正式開始: 用一個拓撲圖來說明:(這是NA時聰哥引以為豪的拓撲) 假設:他們的優(yōu)先級默認都一樣,都是32768. 帶寬都一樣,是100M的。 1.根橋的選舉: 在交換機開機后,每個接口都會發(fā)送出BPDU信息,將自己的橋ID填入根網橋ID字段,然后進行協(xié)商。發(fā)現(xiàn)別人的橋ID比自己大,就把根網橋換成別人 的,如此迭代到根網橋選出為止。這里協(xié)商后根網橋為:sw1。因為他的mac地址最小。(二層取小,三層取大原則)。 總結:一個VLAN里只有一個根網橋。 2.根端口的選舉: 根網橋選舉后,只有根網橋會發(fā)送BPDU信 息,其它交換機不會發(fā)送,但是會轉發(fā)BPDU信息。首先從接受到的BPDU中查看cost of path字段,將自己到鏈路的開銷加上里面的BPDU的值,形成新的cost of path值傳出去。例如:sw2和sw3,sw2從1口看到BPDU中cost of path的值是0,因為是 根橋發(fā)來的,由于自己知道自己的接口是100M的,所以將19加上0等于19, 填入那個字段。同理sw3的1口也一樣。這 時候sw2和sw3分別各從1口收到的BPDU的開銷值都是19.現(xiàn)在來分析sw2上2口的鏈路開銷值。2口的cost of path的值為19加上sw3的19,即是38.同理分析sw2和sw3的其它接口,所以sw2和sw3選擇1口 作為根端口。 如果開銷值一樣,就比較發(fā)送BPDU的橋ID。例如:sw4的端口1和2, 由于到根網橋的鏈路開銷一樣,所以現(xiàn)在比較發(fā)送BPDU的橋ID,從1口接受到發(fā)送的橋ID比較小,所以1是根端口。 如果開銷值和發(fā)送BPDU的 橋ID都一樣,那就比較發(fā)送BPDU端口ID字段。例如sw5中1和2端口,由于BPDU是sw4發(fā)送過來的,所以看sw4的端口號,3比4小, 所以和3相連的sw5端口2是根端口(注意這里不是端口1,因為要看發(fā)送BPDU的端口號)。 總結:一個交換機只有一個根端口。 3.指定端口的選舉。 1)根橋上的端口都是指定端口。(根橋要向外發(fā)BPDU和數(shù)據(jù),所以一定端口一定都是指定端口) 2)根端口對應的都是指定端口。 3)其他的選擇跟選根端口的原則基本一樣。但是第二步,開銷值一樣時,選擇橋ID的時候不一樣。 這里的橋ID是本交換機的 橋ID。其實指的也是發(fā)送BPDU的橋ID。 例如:sw2和sw3的2端口,因為選擇的指定端口是用來轉發(fā)BPDU的,所以比較后,sw2的橋ID比較低,成為指定端口。 總結:一個網段上,只有一個指定端口。 4.非指定端口。 除了上述說的,剩下的端口就是非指定端口,也就是要被阻塞掉的端口。 【小小總結】 STP防止環(huán)路的機制是將某些端口阻塞掉,。選根端口,就是選路徑,選指定端口就 是決定要在網段上要將兩個口的哪個口給阻塞掉,從而達到目的。 關于STP的目的是 防環(huán)路還是為了冗余的理解: STP是為了更好地冗余。兩個方面來理解: 1)環(huán)路產生的原因的是冗余。 2)后面發(fā)展RSTP,MSTP都不僅僅是為了防環(huán)路,如果是的話,802.1D就可以了。引用第一 段的話,STP協(xié)議的本質就是實現(xiàn)在交換網絡 中鏈路的備份和負載的分擔,也就是為了更好的冗余。 友情提示: 1.根據(jù)發(fā)送的BPDU來判斷,只有根網橋才能發(fā)送BPDU。 2.理解根端口和指定端口的區(qū)別,根端口是用來接受BPDU信息,而指定端口是用來轉發(fā)BPDU等信息的,一個是接受方, 一個是發(fā)送方,所以當鏈路開銷一樣時,在選擇指定端口和根端口時候是相反的。 最后啰唆一下,“我們只看BPDU“。 浩哥這話真是經典。(責任編輯:admin) |
|