一,STP
STP定義:生成樹協議(Spanning Treee Protocol)
做用:邏輯上斷開環路,阻止廣播風暴產生,當線路故障,阻塞接口被激活,恢復通訊,起備份線路的做用
STP的工做過程:
一、肯定交換機的角色
根交換機:整個交換網絡中,有且只有一個;
非根交換機:剩餘的其餘交換機,都稱之爲非根交換機
注意:
每個非根交換機都會計算出一條去往根交換機的最短的、無環、2層數據轉發路徑,而且最終該路徑是「轉發」狀態;
選舉原則:
比較每一個交換機的 BID (bridge ID):優先級+MAC地址
優先級:默認值爲 32768 ; 2個字節;
MAC地址:使用的是交換機的主板MAC;6個字節;
比較原則 -
首先比較優先級,越小越好;
其次比較MAC地址,越小越好;
二、肯定端口的角色
根端口:在每個非根交換機上,有且只有一個。 距離根交換機最近的端口;
指定端口:在每個"網段/segment"中,有且只有一個;距離根交換機最近的端口;
非指定端口:其餘全部端口,都叫作「非指定端口」
三、肯定端口的狀態
#down -關閉(指的是當前端口沒有啓動STP)
#listening -偵聽,此時偵聽的是網絡中的全部的BPDU
目的是爲了肯定交換機和端口的角色;
端口在該狀態停留15s
#learning -學習,該階段主要是學習端口上收到的數據幀
的源MAC地址,從而造成 MAC地址表;
端口在該狀態停留15s;
#forwarding -轉發(最終狀態),該狀態實現數據包的發送和接收
#blocking -阻塞(最終狀態),該狀態不能發送和接收數據包;只能接收 BPDU。前端
二,BPDU
BPDU:橋協議數據單元(Bridge Protocol Data Unit)
使用的是(組播)發送BPDU
BPDU類型:
一、配置BPDU
用於建立和維護 STP 無環轉發路徑樹
二、TCN BPDU (拓撲變動通告)
只有當 STP 無環轉發路徑樹(拓撲)變化的時候,纔會產生併發送
而且是:感知到該變化的交換機,產生 TCN BPDU ,只發送給根交換機,而後再由根交換機轉發給其餘的全部非根交換機;
BPDU包含的字段:api
交換機端口的5種STP狀態:網絡
STP計時器:
#hell 交換機週期性發送 BPDU 的時間間隔,默認是 2s ;
#forward-delay : 轉發延遲,默認時間爲15s ;
#max-age:最大老化時間,默認時間爲 20s ;併發
STP參數修改(思科):
一、修改交換機的 STP 優先級 (確保網絡中有主根交換機和輔根交換機)負載均衡
二、修改交換機的 STP 模式 (必須確保網絡的全部交換機的STP模式相同)ide
三、修改交換機的 端口 cost # interface fas0/22 (該鏈路指的是 trunk 鏈路) # spanning-tree vlan 3 cost {value} 四、針對某個 VLAN ,關閉 STP 功能 # no spanning-tree vlan x
驗證命令:
#show spanning-tree vlan x ->能夠查看交換機上關於 VLAN x 的 STP 信息學習
STP參數修改(華爲):注意:交換機上的 STP 功能,默認都是開啓的;能夠人工關閉;
1 修改交換機的 STP 優先級: this
2修改交換機的 STP 模式 # [SW] stp mode {stp | rstp | mstp } 3修改交換機的端口的 STP cost : # [SW]interface fas0/13 # [sw-fas0/13]stp cost {value} 4在交換機上關閉/開啓 STP : # [sw]stp disable -> 關閉 STP ; #[sw]stp enable -> 開啓 STP ,默認是開啓的;
驗證命令:
#display stp
#display stp brief
二,MSTP
MSTP:多實例生成樹
是基於STP協議的加強性技術
(1)將二層交換設備上的端口綁定到不一樣的進程中,並以進程爲單位進行STP協議計算
(2)不在同一進程的端口不參與計算,從而實現各個進程內的生成樹計算獨立、互補影響
(3)MSTP網絡中包含一個或多個MST域(包含一個或多個MSTI) spa
配置 MST region
#[SW]stp region-configuration
#[sw-mstp-region]region-name {string} //配置 region 的名字;
#[sw-mstp-region]instance {id} vlan x y z m n //配置關聯的VLAN
#[sw-mstp-region]active region-configuration # [sw-mstp-region]display this
配置 MSTI
#[sw1]stp instance {id} priority {value} <-將 SW1設置爲 實例id 的根;code
端口角色細化:
#根端口(root port ) #指定端口 (designated port ) #替代端口(alternative port ):是根端口的備胎;
#備份端口(bakcup port ):是指定端口的備胎
(邊緣端口:通常都建議關閉 STP ;或者將鏈接非交換機的端口,設置非邊緣端口)
端口狀態精簡化:
#learning :學習
#forwarding :轉發
#discarding :丟棄,至關於以前 STP 中的 down / blocking / listening