STP:SpanningTree Protocol,生成樹協議。算法
做用:在實際的網絡環境當一個物理環路能夠提升網絡的可靠性,當一條線路斷掉的時候,另一條鏈路仍然能夠傳輸數據。可是在交換的網絡中,當交換機接受到一個未知的目的地址的數據幀的時候,交換機的操做是將這個數據幀廣播出去,這樣,在存在物理環路的交換機網絡中,就會產生一個雙向的廣播環,甚至產生廣播風暴,致使交換機死機。STP協議在邏輯上斷開網絡的環路,防止廣播風暴的產生,而一旦正在用的線路出現故障,被邏輯上斷開的線路又被連通,繼續傳輸數據。網絡
原理:主要是生成樹的算法(STA),能夠概括3個步驟:ide
1、選擇根網橋(RootBrige),網橋id是一個8字節的字段,前兩個是十幾只數值是網橋的優先級(取值範圍是0-65535,默認爲32768,值越小優先級越高),後6個字節是網橋的MAC地址(交換機的MAC地址)。學習
結論:在選擇根網橋的時候,優先相同級的狀況下,那個MAC地址小,誰就是根網橋。spa
2、選擇根端口(Root Ports),依照的順序依次是:到根網橋最低的根路徑成本(根路徑成本是兩個網橋間的路徑上全部鏈路的成本之和,鏈路傳輸的速率越大,傳輸數據的成本越低,10=100,100=19,1000=4,10000=2);直連的網橋ID最小;端口ID最小。端口ID是一個2字節的STP參數,由一個字節的端口優先級(取值範圍0-255,默認是128)和一個本身的端口編號組成。接口
結論:當根路徑成本相同的時候,比較鏈接的交換機的網橋ID值,值小的做爲根端口;當網橋ID相同的時候,比較端口ID值,選擇值小的做爲根端口。進程
3、選擇指定端口(DesignatedPorts),爲了消除橋接賄賂造成的可能,STP進行最後的計算,在每個網段上選擇一個指定端口,選擇指定的端口依據與根端口的相同。順序也有三個:根路徑成本較低;所在的交換機的網橋ID的值較小;端口ID的值較小。ci
結論:根網橋沒有根端口,根網橋上的端口都是指定端口,根端口和指定端口都是轉發端口。it
BPDU:橋協議數據單元,交換機使用該接口的MAC地址做爲源地址,利用一個STP組播地址01-80-C2-00-00做爲目的地址發送BPDU,每隔2秒,交換機向全部的交換機端口發送一個BPDU報文,經過BPDU來交換網橋ID/根路徑成本信息。io
BPDU的分類:配置BPDU用於生成樹計算,TCN BPDU通告,用於通告網絡拓撲的變化。
生成樹的狀態分爲5種:禁用disable/阻塞blocking/偵聽listening/學習learning/轉發forwarding,hello時間2s,轉發延遲15s,最大老化時間20s。從阻塞到偵聽20s,從偵聽到學習15s,從學習到轉發15s。
vlan與生成樹的關係:
IEEE的通用生成樹CST;cisco的每vlan生成樹PVST;cisco的能兼容CST的PVST(PVST+);還有RSTP和MST(在進程裏給不一樣的vlan作樹)。
PVST的配置命令: |
switch(config)#spanning-tree vlan 1 switch(config)#spanning-tree vlan 1 root primary|secondary switch(config)#spanning-tree vlan 1 priority 小於<24576 switch(config-if)#spanning-tree vlan 1 cost cost switch(config-if)#spanning-tree vlan 1 port-priority <24576 switch(config)#spanning-tree uplinkfast switch(config)#spanning-tree portfast |
以太網通道的配置: |
switch(config)#interface range fastEthernet 0/1 - 2 switch(config-if-range)#channel-group 1 mode on |
查看命令: |
switch#show spanning-tree switch#show spanning-tree vlan 1 detail |