簡介
本文說明如何使用跨距樹狀目錄通訊協定(STP)來確保在網路中有備援路徑時不會建立回圈。
必要條件
需求
本文件沒有特定需求。
採用元件
本文中的資訊係根據以下軟體和硬體版本:
本文檔介紹的生成樹原則適用於幾乎所有支援STP的裝置。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
生成樹通訊協定(STP)是在橋接器和交換器上執行的第2層通訊協定。STP規範是IEEE 802.1D。STP的主要目的是確保在網路中具有冗餘路徑時不會建立環路。環路對網路是致命的。
本檔案中的組態適用於執行Catalyst OS(CatOS)的Catalyst 2926G、2948G、2980G、4500/4000、5500/5000和6500/6000交換器。有關在其他交換機平台上配置STP的資訊,請參閱以下文檔:
網路圖表
此文件使用以下網路設定:
概念
STP在符合802.1D規範的橋接器和交換機上運行。STP有多種不同的形式,但802.1D是最受歡迎且實施最廣泛的。您可以在網橋和交換機上實施STP,以防止網路中出現環路。在需要冗餘鏈路(而不是環路)的情況下使用STP。在網路中發生故障切換時,冗餘鏈路與備份一樣重要。主鏈路發生故障時,會啟用備份鏈路,以便使用者可以繼續使用網路。如果橋接器和交換機上沒有STP,此類故障可能會導致環路。如果兩台連線的交換機運行不同的STP型別,則它們需要不同的控制才能收斂。當交換機中使用不同型別時,會在阻塞和轉發狀態之間產生控制問題。因此,建議使用同一種形式的STP。請考慮以下網路:
在此網路中,計畫在交換機A和交換機B之間建立冗餘鏈路。但是,此設定可能會產生橋接環路。例如,從站M傳送且目的地為站N的廣播或組播資料包僅在兩台交換機之間繼續循環。
但是,當STP在兩台交換機上運行時,網路在邏輯上如下所示:
此資訊適用於網路圖表中的案例:
為了提供此所需的路徑冗餘並避免環路情況,STP定義了一個跨擴展網路中所有交換機的樹。STP強制某些冗餘資料路徑進入備用(阻塞)狀態,而讓其他路徑處於轉發狀態。如果處於轉發狀態的鏈路不可用,STP將重新配置網路並通過啟用適當的備用路徑重新路由資料路徑。
技術說明
使用STP時,關鍵是讓網路中的所有交換機選舉成為網路焦點的根網橋。網路中的所有其他決定(例如要封鎖哪個連線埠和將哪個連線埠置於轉送模式)都是從該根橋的角度做出的。交換環境(與網橋環境不同)很可能處理多個VLAN。在交換網路中實施根網橋時,通常將根網橋稱為根交換機。每個VLAN都必須有自己的根網橋,因為每個VLAN都是獨立的廣播域。不同VLAN的根可以全部駐留在單個交換機或各種交換機中。
附註:特定 VLAN 的根交換器選擇非常重要。您可以選擇根交換機,也可以讓交換機來決定,這樣做有風險。如果不控制根目錄選擇過程,則網路中可能存在次優路徑。
所有交換機都交換資訊,用於根交換機的選擇和網路的後續配置。橋接通訊協定資料單元(BPDU)傳輸此資訊。每台交換機將交換機傳送到鄰居的BPDU中的引數與交換機從鄰居接收的BPDU中的引數進行比較。
在STP根選擇過程中,越少越好。如果交換機A通告的根ID比交換機B通告的根ID小,則來自交換機A的資訊更好。交換機B停止通告其根ID,並接受交換機A的根ID。
請參閱選用 STP 功能以瞭解更多有關部分選用 STP 功能的資訊,例如:
STP操作
工作
必要條件
配置STP之前,請選擇一台交換機作為生成樹的根。此交換機不需要是最強大的交換機,而是選擇網路中最集中的交換機。從交換機的角度來看網路中的所有資料流。此外,選擇網路中受干擾最小的交換機。主幹交換機通常充當生成樹根節點,因為這些交換機通常不連線到終端站。此外,網路中的移動和更改不太可能影響這些交換機。
決定根交換機之後,設定適當的變數以指定該交換機作為根交換機。您必須設定的唯一變數是 bridge priority
.如果交換機的網橋優先順序低於所有其他交換機,其他交換機將自動選擇交換機作為根交換機。
交換器連線埠上的使用者端(終端站)
您也可以發出 set spantree portfast
命令。當您啟用 portfast
變數時,連線埠會立即從封鎖模式切換到轉送模式。支援 portfast
幫助防止使用Novell Netware或使用DHCP來獲取IP地址的客戶端超時。但是,建立交換器到交換器連線時,不要使用此命令。在這種情況下,此命令可能會導致回圈。從阻塞模式轉換到轉發模式期間發生的30到60秒延遲可防止連線兩台交換機時網路中出現臨時環路情況。
將大多數其他STP變數保留為預設值。
操作規則
本節列出有關STP工作方式的規則。當交換機首次啟動時,它們會啟動根交換機選擇過程。每台交換機在每個VLAN上向直連交換機傳輸BPDU。
當BPDU通過網路傳出時,每台交換機都會將交換機傳送的BPDU與交換機從鄰居收到的BPDU進行比較。然後,交換機就哪台交換機是根交換機達成一致意見。網路中橋接器ID最小的交換器會在此選擇過程中獲勝。
附註:請記住,每個 VLAN 都會識別一部根交換器。完成根交換器識別後,交換器會遵守這些規則。
-
STP規則2 — 必須將根埠設定為轉發模式。
此外,每個LAN網段上的交換機還相互通訊,以確定哪台交換機最適合用於將資料從該網段移動到根網橋。此交換器稱為指定交換器。
-
STP規則3 — 在單個LAN網段中,連線到該LAN網段的指定交換機的埠必須處於轉發模式。
-
STP規則4 — 所有交換機(特定於VLAN)中的所有其他埠必須置於阻塞模式。規則僅適用於連線到其他橋接器或交換機的埠。STP不會影響連線到工作站或PC的埠。這些埠仍保持轉發狀態。
附註:STP 在每個 VLAN 擴充樹 (PVST/PVST+) 模式下執行時,新增或移除 VLAN 會觸發該 VLAN 執行個體的擴充樹重新計算,而且僅會針對該 VLAN 中斷流量。中繼鏈路的其他VLAN部分可以正常轉發流量。為已存在的多個生成樹(MST)例項新增或刪除VLAN會觸發該例項的生成樹重新計算,並且該MST例項的所有VLAN部分的流量都會中斷。
附註:依照預設,擴充樹會在每個連接埠上執行。不能在交換器上針對每個連線埠關閉跨距樹狀目錄功能。雖然不建議使用,但您可以針對每個VLAN或在交換機上全域性關閉STP。禁用生成樹時必須特別小心,因為這會導致網路中出現第2層環路。
逐步說明
請完成以下步驟:
-
發出 show version
命令以顯示交換器執行的軟體版本。
Switch-15> (enable)show version
WS-C5505 Software, Version McpSW: 4.2(1) NmpSW: 4.2(1)
Copyright (c) 1995-1998 by Cisco Systems
NMP S/W compiled on Sep 8 1998, 10:30:21
MCP S/W compiled on Sep 08 1998, 10:26:29
System Bootstrap Version: 5.1(2)
Hardware Version: 1.0 Model: WS-C5505 Serial #: 066509927
Mod Port Model Serial # Versions
--- ---- ---------- --------- ----------------------------------------
1 0 WS-X5530 008676033 Hw : 2.3
Fw : 5.1(2)
Fw1: 4.4(1)
Sw : 4.2(1)
在此案例中,交換機15是所有VLAN的網路根交換機的最佳選擇,因為交換機15是主幹交換機。
-
發出 set spantree root vlan_id
命令,將交換機的VLAN或VLAN的優先順序設定為8192。 vlan_id
指定。
註:交換機的預設優先順序為32768。使用此命令設定優先順序時,將強制選擇交換機15作為根交換機,因為交換機15的優先順序最低。
Switch-15> (enable)set spantree root 1
VLAN 1 bridge priority set to 8192.
VLAN 1 bridge max aging time set to 20.
VLAN 1 bridge hello time set to 2.
VLAN 1 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 1.
Switch-15> (enable)
Switch-15> (enable)set spantree root 200
VLAN 200 bridge priority set to 8192.
VLAN 200 bridge max aging time set to 20.
VLAN 200 bridge hello time set to 2.
VLAN 200 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 200.
Switch-15> (enable)
Switch-15> (enable)set spantree root 201
VLAN 201 bridge priority set to 8192.
VLAN 201 bridge max aging time set to 20.
VLAN 201 bridge hello time set to 2.
VLAN 201 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 201.
Switch-15> (enable)
Switch-15> (enable)set spantree root 202
VLAN 202 bridge priority set to 8192.
VLAN 202 bridge max aging time set to 20.
VLAN 202 bridge hello time set to 2.
VLAN 202 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 202.
Switch-15>
Switch-15> (enable)set spantree root 203
VLAN 203 bridge priority set to 8192.
VLAN 203 bridge max aging time set to 20.
VLAN 203 bridge hello time set to 2.
VLAN 203 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 203.
Switch-15>
Switch-15> (enable)set spantree root 204
VLAN 204 bridge priority set to 8192.
VLAN 204 bridge max aging time set to 20.
VLAN 204 bridge hello time set to 2.
VLAN 204 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 204.
Switch-15> (enable)
命令的較短版本具有相同的效果,如以下示例所示:
Switch-15> (enable)set spantree root 1,200-204
VLANs 1,200-204 bridge priority set to 8189.
VLANs 1,200-204 bridge max aging time set to 20.
VLANs 1,200-204 bridge hello time set to 2.
VLANs 1,200-204 bridge forward delay set to 15.
Switch is now the root switch for active VLANs 1,200-204.
Switch-15> (enable)
其 set spantree priority
命令提供了指定根交換機的第三種方法:
Switch-15> (enable)set spantree priority 8192 1
Spantree 1 bridge priority set to 8192.
Switch-15> (enable)
附註:在此情境中,所有交換器一開始都已清除組態。因此,所有交換機的網橋優先順序均為32768。如果您不確定網路中的所有交換機的優先順序是否大於8192,請將所需根網橋的優先順序設定為1。
-
發出 set spantree portfast mod_num/port_num enable
命令,以在交換機12、13、14、16和17上配置PortFast設定。
附註:請僅在連線到工作站或電腦的連接埠上進行此設定。請勿在連線到另一台交換器的任何連線埠上啟用PortFast。
-
埠2/1連線到交換機13。
-
埠2/2連線到交換機15。
-
埠2/3連線到交換機16。
-
埠3/1至3/24連線到PC。
-
埠4/1至4/24連線到UNIX工作站。
以該資訊為基礎,發出 set spantree portfast
在連線埠3/1至3/24和連線埠4/1至4/24發出命令:
Switch-12> (enable)set spantree portfast 3/1-24 enable
Warning: Spantree port fast start should
only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc.
to a fast start port can cause temporary spanning-tree loops. Use with caution. Spantree ports 3/1-24 fast start enabled.
Switch-12> (enable) Switch-12> (enable)set spantree portfast 4/1-24 enable Warning: Spantree port fast start should
only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc.
to a fast start port can cause temporary spanning-tree loops. Use with caution. Spantree ports 4/1-24 fast start enabled. Switch-12> (enable)
-
發出 show spantree vlan_id
命令,確認交換機15是所有相應VLAN的根。
從此命令的輸出中,將作為根交換機的交換機的MAC地址與發出該命令的交換機的MAC地址進行比較。如果地址匹配,則您所在的交換機是VLAN的根交換機。1/0的根埠也表示您位於根交換機。以下是命令輸出範例:
Switch-15> (enable)show spantree 1
VLAN 1
spanning-tree enabled
spanning-tree type ieee
Designated Root 00-10-0d-b1-78-00
!--- This is the MAC address of the root switch for VLAN 1.
Designated Root Priority 8192
Designated Root Cost 0
Designated Root Port 1/0
Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
Bridge ID MAC ADDR 00-10-0d-b1-78-00
Bridge ID Priority 8192
Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
此輸出顯示,交換機15是VLAN 1的生成樹上的指定根。指定根交換機的MAC地址00-10-0d-b1-78-00與交換機15、00-10-0d-b1-78-00的網橋ID MAC地址相同。表明此交換機是指定根的另一種指標是指定根埠為1/0。
在交換機12的輸出中,交換機將交換機15識別為 Designated Root
對於VLAN 1:
Switch-12> (enable)show spantree 1
VLAN 1
spanning-tree enabled
spanning-tree type IEEEDesignated Root 00-10-0d-b1-78-00
!--- This is the MAC address of the root switch for VLAN 1.
Designated Root Priority 8192
Designated Root Cost 19
Designated Root Port 2/3
Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
Bridge ID MAC ADDR 00-10-0d-b2-8c-00
Bridge ID Priority 32768
Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
附註:其他交換器和 VLAN 之 show spantree vlan_id 命令的輸出,也可能會指出交換器 15 是所有 VLAN 的指定根。
驗證
本節提供的資訊可用於確認您的組態是否正常運作。
疑難排解
本節提供的資訊可用於對組態進行疑難排解。
當連線埠速度/雙工改變時,STP路徑成本會自動變更
STP根據交換機之間鏈路的介質速度(頻寬)和每個埠轉發幀的埠開銷計算路徑開銷。生成樹根據路徑開銷選擇根埠。到根網橋的路徑開銷最低的埠將成為根埠。根埠始終處於轉發狀態。
如果連線埠的速度/雙工變更,跨距樹狀目錄會自動重新計算路徑成本。路徑開銷的改變可能會改變生成樹拓撲。
有關如何計算埠開銷的詳細資訊,請參閱配置生成樹的計算和分配埠開銷部分。
指令疑難排解
附註:使用 debug 指令之前,請先參閱有關 Debug 指令的重要資訊。
-
show spantree vlan_id
— 從發出命令的交換機的角度顯示此VLAN ID的生成樹的當前狀態。
-
show spantree summary
— 提供按VLAN連線的生成樹埠的摘要。
-
show spantree statistics
— 顯示生成樹統計資訊。
-
show spantree backbonefast
— 顯示是否已啟用生成樹BackboneFast收斂功能。
-
show spantree blockedports
— 僅顯示阻塞埠。
-
show spantree portstate
— 確定生成樹中令牌環埠的當前生成樹狀態。
-
show spantree portvlancost
— 顯示埠上VLAN的路徑開銷。
-
show spantree uplinkfast
— 顯示UplinkFast設定。
命令摘要
語法: |
show version |
如本檔案所用: |
show version |
語法: |
set spantree root [vlan_id] |
如本檔案所用: |
set spantree root 1 |
|
set spantree root 1,200-204 |
語法: |
set spantree priority [vlan_id] |
如本檔案所用: |
set spantree priority 8192 1 |
語法: |
set spantree portfast mod_num/port_num {enable | disable} |
如本檔案所用: |
set spantree portfast 3/1-24 enable |
語法: |
show spantree [vlan_id] |
如本檔案所用: |
show spantree |
相關資訊