STP協議
1.交換機的工作原理
根據源MAC地址構建MAC地址表,根據MAC地址表的記錄轉發數據幀,如果MAC地址表中沒有目標地址,交換機就向除接收到該數據幀的端口外的其他所有端口廣播該數據幀。
如上圖所示,當PC0發送一個目標地址爲交換機未知的數據幀,交換機0會向1和2廣播該數據幀,交換機2和3在自己的MAC地址表中也找不到該表項,同樣會向外廣播,這樣,在這個網絡中就形成了雙向的廣播環,而且該廣播永遠不會停止,除非切斷物理鏈路。最終,由於這個環路,整個網絡會因爲廣播風暴導致交換機宕機。交換機發生廣播風暴的表現是所有端口的指示燈都閃爍,CPU的利用率不斷升高,網絡中主機不能正常通信。
但是環狀的物理鏈路能夠爲網絡提供備份線路,增強網絡的可靠性,是必要的,因此就出現了STP協議,不斷掉物理鏈路,而是在邏輯上斷開環路,防止廣播風暴的產生。
2.STP協議
STP爲生成樹協議,就是把一個環形的結構改變成一個樹型的結構。STP協議就是用來將物理上存在環路的網絡,通過一種算法,在邏輯上斷開一些端口,來生成一個邏輯上的樹型結構。
3.STP工作原理
生成樹協議運行生成樹算法,其過程可以歸納爲以下三個步驟:
選擇根網橋(root bridge)
選擇根端口(root ports )
選擇指定端口(designated ports)
(1)選擇根網橋
選擇根網橋實際上就是爲網絡選出一個樹根,選擇根網橋的依據是網橋ID,網橋ID由8個字節,前2個字節的十進制數爲網橋優先級,後6個字節爲網橋的MAC地址。
網橋優先級是用於衡量網橋在生成樹算法中優先級的十進制數,取值範圍爲0---65535,默認爲32768。
網橋ID中的MAC地址是交換機的MAC地址之一,當使用命令查看交換機的MAC地址表的時候,顯示在最前面的MAC地址就是STP計算用的交換機的MAC地址。
按照生成樹算法的定義,當比較某個STP參數的取值時,值小的優先級高,因此,選擇根網橋的時候,比較的方法是看哪臺交換機的網橋ID的值最小,優先級小的被選擇爲根網橋,在優先級相同的情況下,MAC地址小的爲根網橋。
(2)選擇根端口
根端口位於非根網橋上,每個非根網橋上選擇一個根端口。
選擇根端口的依據按順序依次是:
到根網橋最低的根路徑成本
直連的網橋ID最小
端口ID最小
根路徑成本是兩個網橋之間的路徑上所有鏈路的成本之和,也就是某個網橋到達根網橋的中間所有鏈路的路徑成本之和。
路徑成本用來代表一條鏈路的帶寬高低,一條鏈路的帶寬越大,它傳輸數據的成本就越低。
端口ID是一個2字節的STP參數,由一個字節的端口優先級和一個字節的端口編號組成。
在STP選擇根端口的時候,首先比較交換機端口的根路徑成本,根路徑成本低的爲根端口。當根路徑成本相同的時候,比較連接的交換機的網橋ID值,選擇網橋ID值小的作爲根端口,當網橋ID相同的時候,比較端口ID值,選擇較小的作爲根端口。
(3)選擇指定端口
選擇指定端口的順序有3個:
根路徑成本較低(與其他的交換機相比)
所在的交換機的網橋ID的值最小(可能性較低)
端口ID的值較小(可能性較低)
根網橋上的接口都是指定端口,因爲根網橋上端口的根路徑成本爲0。
4.BPDU(橋協議數據單元)
交換機之間通過BPDU來交換網橋ID、根路徑成本等信息。交換機從端口發送出一個BPDU幀,使用該端口本身的MAC地址作爲源地址。交換機本身並不知道它周圍是否還有其他的交換機存在。因此,BPDU幀利用了一個STP組播地址 01-80-C2-00-00-00作爲它的一個目的地址,使之能到達相鄰的並處於STP偵聽狀態的交換機。
每隔2S,BPDU報文便向所有的交換機端口發送一次,以便交換機(或網橋)能交換當前最新的拓撲信息,並迅速識別和檢測其中的環路。
BPDU有兩種類型:
一種是配置BPDU,用於生成樹計算
一種是拓撲變更通告(TCN)BPDU,用於通告網絡拓撲的變化。
5.生成樹端口的狀態
在STP運算過程中,交換機的每一個端口都必須依次經歷好幾種狀態。
如果一個端口允許轉發數據,它首先從disabled狀態開始,經過幾個被動狀態,最後進入active狀態。
Disabled(禁用):由網絡管理員設定或因網絡故障使系統的端口處於disabled狀態,這個狀態並不是端口正常的STP狀態的一部分。
Blocking(阻塞):既不能接收或發送數據,也不能向它的地址表添加MAC地址。這個端口僅允許接收BPDU報文,選出指定端口後非指定端口也處於此狀態。
Listening(偵聽):一個交換機的一個端口可選爲根端口或指定端口,它就將端口從blocking狀態變爲listening狀態。在此狀態,端口仍不能接收或發送數據幀。但可以接收發送BPDU報文,如果該端口失去根端口或指定端口的地位,那麼就會回到blocking狀態。
Learning(學習):該端口發送和接收BPDU報文,可以學習新的MAC地址,並將該地址加入到交換機的地址表中。
Forwarding(轉發):既可以發送和接收數據幀,也可以收集MAC地址加入到它的地址表,還可以發送和接收BPDU報文。
從阻塞到偵聽(20S)
從偵聽到學習(15S)
從學習到轉發(15S)
6.VLAN 與生成樹
VLAN與生成樹之間的關係有以下幾種:
IEEE的通用生成樹 CST
CISCO的每VLAN 生成樹 PVST
CISCO的能兼容CST的PVST PVST+
CST不考慮VLAN,以交換機爲單位運行STP。
PVST是CISCO私有的協議,PVST爲每個虛擬局域網運行單獨的生成樹實例。
7.PVST配置的意義:
(1)配置網絡中比較穩定的交換機爲根網橋。
(2)利用PVST實現網絡的負載分擔。
(3)配置上行速鏈路,實現備份的上行鏈路快速恢復。
企業網絡的結構主要包含3個層次:核心層、匯聚層和接入層,其中上行鏈路主要配置在匯聚層和接入層的交換機上。
配置上行速鏈路,當接入層或匯聚層的交換機主用的上行鏈路斷開的時候,被阻塞的端口迅速轉換到轉發狀態,不需要經過偵聽和學習狀態。
(4)配置速端口,使連接終端的端口快速進入到轉發狀態。
配置速端口不經過偵聽和學習狀態,直接進入轉發狀態,速端口只能配置在連接終端的接口上。
8.PVST配置命令
(1)啓用生成樹命令
交換機默認情況下啓用生成樹,一般情況下,儘量不要關閉生成樹。
switch(config)#spanning-tree vlan vlan-list
(2)指定根網橋:如果配置爲primary,交換機的優先級變爲24576,配置爲secondary,優先級變爲28672
switch(config)#spanning-tree vlan vlan-list root primary | secondary
(3)修改網橋的優先級:配置一個交換機爲根網橋,可以通過修改網橋優先級的命令來實現。
switch(config)#spanning-tree vlan vlan-list priority bridge-priority
(4)修改端口成本
switch(config)#spanning-tree vlan vlan-list cost cost
(5)修改端口優先級
switch(config)#spanning-tree vlan vlan-list port-priority priority
(6)配置上行速鏈路
switch(config)#spanning-tree uplinkfast
(7)配置速端口
switch(config-if)#spanning-tree portfast
(8)查看生成樹的配置
switch#show spanning-tree
(9)查看某個VLAN的生成樹詳細信息
Switch#show spanning-tree vlan vlan-list
9.ethernetchannel (以太網通道)
以太網通道通過捆綁多條以太鏈路來提高鏈路帶寬,並運行一種機制,將多個以太網通道捆綁成一條邏輯鏈路。以太網通道最多可以捆綁8條物理鏈路。
以太網通道必須遵循以下一些規則:
(1)參與捆綁的端口必須屬於同一個VLAN,如果是在中繼模式下,要求所以參加捆綁的端口都是在中繼模式下。
(2)如果端口配置的模式是中繼模式,那麼,應該在鏈路兩端將通道中的所有端口配置成相同的中繼模式。
(3)所有參與捆綁的端口的物理參數設置必須相同,應該有同樣的速度和全/半雙工模式設置。
(4)三層端口不能配以太通道,沒有這個命令。
10.實驗
實驗任務:在交換機上配置VLAN,啓用STP,實現不同的VLAN選擇不同的根網橋,實現負載分擔。在接入交換機上配置上行速鏈路。配置接入交換機連接主機的端口爲速端口。在兩臺核心交換機之間配置以太網通道。
實驗拓撲:
Switch1 F0/15 <----> Switch2 F0/15
Switch1 F0/14 <----> Switch2 F0/14
Switch1 F0/13 <----> Switch3 F0/13
Switch2 F0/13 <----> Switch4 F0/13
Switch1 F0/12 <----> Switch4 F0/12
Switch2 F0/12 <----> Switch3 F0/12
VPCS V0/1 <----> Switch3 F0/1
VPCS V0/2 <----> Switch4 F0/1
實驗步驟:
在交換機1上配置VTP域名爲benet,VTP模式爲SERVER,並且創建2、3、4三個VLAN,保存退出
配置交換機2的VTP 域名爲benet,VTP模式爲server
配置交換機3的VTP域名爲benet,VTP模式爲client
配置交換機4的VTP域名爲benet,VTP模式爲client
開啓交換機1上的F0/12到F0/15端口爲TRUNK,並封裝爲DOT1Q
開啓交換機2上的F0/12到F0/15端口爲TRUNK,並封裝爲DOT1Q
開啓交換機3上的F0/12到F0/13端口爲TRUNK,並封裝爲DOT1Q
開啓交換機4上的F0/12到F0/13端口爲TRUNK,並封裝爲DOT1Q
配置完成後,我們就會在交換機2、3和4上的VLAN信息內查看到創建的VLAN信息
配置交換機1爲VLAN 1和VLAN 2的根網橋
查看驗證
配置交換機2爲VLAN 3和VLAN 4的根網橋
查看驗證
在交換機3上配置速鏈路
在交換機4上配置速鏈路
將交換機3上連接客戶端的端口配置爲速端口
將交換機4上連接客戶端的端口配置爲速端口
在交換機1上配置交換機1和2之間的以太網通道
在交換機2上配置交換機1和2之間的以太網通道
查看以太網通道的配置
實驗完成