目標

本文的目標是在遷移到多生成樹(MSTP)時提供最佳實踐。 使用MSTP而不是其他生成樹變體可以提高網路效率和可靠性。

需求

- 需要在混合硬體環境中最佳化第2層

- Cisco Small Business交換器

- Sx250系列(管理指南)

- Sx300系列(管理指南)

- Sx350系列(管理指南)

- SG350X系列(管理指南)

- Sx550X系列(管理指南)

- Cisco Catalyst交換器

- 對生成樹的工作瞭解(瞭解更多)

- Wireshark（可選）

目錄

1. MSTP術語

2. 最佳實#1指南 — 驗證遷移到MSTP的必要性

3. 最佳實踐#2 — 為您的遷移制定戰略

4. 最佳實#3指南 — 最佳實#3指南 — 啟用點對點埠以使用PortFast

5. 最佳實踐#4法 — 在邊緣埠上啟用BPDU防護

6. 最佳實#5指南 — 將VLAN對映到MSTI，而不是IST(MST0)

7. 最佳實#6指南 — 將所有啟用MSTP的交換機置於同一區域

8. 最佳實#7策略 — 在主MST區域中嵌入CIST的根網橋

9. 遷移驗證 — 是否啟用此功能？

10. 結論

本指南的結構

本指南將省略通過SSH或管理介面登入裝置等步驟，而是重點介紹核心命令。每個最佳實踐將包含一個子任務，概述混合思科硬體（企業版和中小型企業）的相應步驟。 有關配置指南，請參閱以下兩個連結：

- 在SMB交換機上配置MSTP

- 在Catalyst交換機上配置MSTP

MSTP術語

本部分旨在為您提供一個易於理解的、關於正在運行的協定的心理模型。這些定義是MSTP協定的互鎖元件。進一步的細節見分文。

- BPDU — 網橋協定資料單元 — 這些是包含交換機繼續運行所需的所有資訊的組播幀。

- 附註：例項對映本身不在BPDU中。

- 區域 — (特定於MSTP) — 區域可解決每個VLAN傳送一個BPDU的其他STP型別遇到的問題。與每個VLAN生成樹一樣，傳送如此多的BPDU會導致CPU負載緊張，從而影響網路效能。相反，使用MSTP時，所有VLAN都對映到單個區域。

- 例項 — 例項是指特定區域的VLAN或許多VLAN的邏輯表集合。然後此例項對映到區域。作為遷移的一部分，您將完成這些步驟。

預設例項0（零）與以下術語MST0(內部生成樹(IST))同義。

- 您建立的任何例項都會作為多個生成樹例項或MSTI被引用。

- 這正是正確記錄網路VLAN的文檔可以讓您省去頭痛的地方。

- 如果例項失敗，將不會影響其它例項。

- MSTI — 多個生成樹例項 — 包含管理性建立的例項。這些對映包含在「MRecord」中，可通過Wireshark檢視。記錄包括管理例項拓撲所需的詳細資訊。

- IST — 內部生成樹 — 是參與MSTP區域的交換機的記錄。區域中包含的交換機（無論有多少台）以單個交換機的形式表示到區域外的區域。

- CST — 通用生成樹 — 由運行其自己的傳統生成樹的MSTP區域組成。CST在MSTP區域邊界使用交換機之間的鏈路。

- CIST — 通用和內部生成樹 — 由CST和IST組成，根據VLAN到例項的共用對映遍歷多個例項。

通用生成樹和內部生成樹不是通用生成樹。

現在我們已經確定了本文的目標和相關定義，讓我們來瞭解最佳實踐。

最佳實#1指南 — 驗證遷移到MSTP的必要性

第一種最佳做法是確認需要遷移到MSTP。瞭解您網路的現有生成樹效能是此決策的關鍵因素。遷移到MSTP是一個很好的選擇，原因有幾點：引入負載共用，對網路效率產生最大的影響。如果第2層流量比您的預測提前增加，則遷移到MSTP可以提高效能，從而提高裝置的實用性和使用壽命。其他考慮因素可能是：

- 現有STP效能不令人滿意 — 收斂時間或傳輸的BPDU數量會導致問題

- 分段生成樹 — 減少MSTP區域中包含的交換機上的資源負載。

- 混合硬體環境- MSTP是開放標準，這意味著它非常適合混合供應商環境。廣泛支援。

附註：一個常見的誤解是遷移到多生成樹時，必須為每個例項對映一個VLAN。

生成樹的風格不斷湧現，在以前的版本中不斷變化與扭曲。與每個VLAN生成樹(PVST+)相比，MSTP通過維護生成樹例項或生成樹的邏輯版本，使用更少的資源（BPDU、CPU週期、傳輸時間）。VLAN流量能夠流經網路的第2層網段。一個埠（和VLAN）的轉發也可能阻塞另一個VLAN。此外，如果一個例項中形成了循環，則不會影響其他例項。

最佳實踐#2 — 為您的遷移制定戰略

一旦您驗證了遷移的需要，理想的情況是，能夠以最少的中斷時間實現遷移，同時保持現有的連線。解決移民問題的小戰略將大大有助於確保順利實施。為了協助這一進程，我們建議採取下列戰術步驟。

1. 文檔、文檔、文檔 — 記下詳細記錄將減少遷移時間和可能出現的錯誤。

- 識別並記錄所有點對點埠，或通向另一台交換機或路由器的埠。

- 確定並記錄所有邊緣埠，或通向PC或印表機等端點的埠。

- 定義參與遷移的VLAN

- 實習生真擅長這一步！

2. 確定網路的操作順序。

瞭解一台交換機上的更改如何影響不同的VLAN。

- 安排網路停機，或者在週末進行遷移。

- 從網路的核心開始遷移，一直到分佈層，然後到接入層。

最佳實#3指南 — 啟用點對點埠以使用PortFast

本最佳實踐以及以下最佳實踐將充分利用所有埠文檔。管理員通過PortFast功能在邊緣埠上定義可選引數。PortFast會阻止該連線埠上執行跨距數狀目錄。面向交換機到裝置的埠可以包括伺服器、工作站和路由器。其用意是讓該連線埠永遠不會將網路橋接至另一組開放連線埠。如果交換機收到上級BPDU，則可能導致環路。給定連線到網路的埠會在埠上進行STP計算，通過提前分配阻塞狀態可以節省時間和CPU負載。它允許埠快速轉換到BPDU傳送 — 轉發狀態。因為提前給它分配了一個狀態

附註：確保將交換機上的埠配置為全雙工傳輸。

以下步驟將劃分為SMB交換機(CLI + GUI)和Enterprise catalyst交換機(CLI)。

在Catalyst交換機上啟用Portfast - CLI

CLI命令首先提供語法，然後提供即時命令示例。在#後面新增了一個額外空間，以便為copy > paste加亮顯示更輕鬆。以藍色突出顯示的文本表示變數，該變數將被替換為網路中的上下文詳細資訊。另請注意，為簡潔起見，我們使用的唯一許可權提升命令將用於MSTP配置。

Catalyst(config)# interface [range(optional)] [port-id]

Catalyst(config-if)# spanning-tree portfast [auto]

Catalyst(config)# interface range fa0/1 - 24

Catalyst(config-if)# spanning-tree portfast auto

在SMB交換機上啟用Portfast - CLI

SMBswitch(config)# interface [range(optional)] [port-id]

SMBswitch(config-if)#spanning-tree portfast

SMBswitch(config)# interface range gi1-15

SMBswitch(config-if)# spanning-tree portfast

在SMB交換機上啟用Portfast - GUI

需要注意的一點是，SMB交換機GUI使用PortFast的同義詞 — 它稱為Fast Link。

步驟1.按一下生成樹> STP介面設定。

步驟2.選擇介面，然後按一下Edit按鈕。

步驟3.按一下Enable Fast Link。

附註：請記住應用更改並將運行配置寫入啟動配置。

最佳實踐#4法 — 在邊緣埠上啟用BPDU防護

此最佳實踐是上一最佳實踐的擴展。如果啟用BPDU防護的連線埠看到接收任何上級、拓撲改變BPDU的連線埠，它會立即通過err-disable狀態關閉連接埠。會要求您存取交換器並解決這種情況。

附註：這似乎是您可以跳過的最佳實踐之一。你能逃脫嗎？也許吧，但為了你的未來自我，讓它這樣。一個錯誤交換機進入網路並輸出錯誤的BPDU，可能會破壞您的網路。

在Catalyst交換機上啟用BPDU防護 — CLI

Catalyst(config)# interface [range(optional)] [port-id]

Catalyst(config-if)# spanning-tree bpduguard enable

Catalyst(config)# interface range fa0/1 - 24

Catalyst(config-if)# spanning-tree bpduguard enable

在SMB交換機上啟用BPDU防護 — CLI

SMBswitch(config)# interface [range(optional)] [port-id]

SMBswitch(config-if)# spanning-tree bpduguard enable

SMBswitch(config)# interface range fa0/1 - 24

SMBswitch(config-if)# spanning-tree bpduguard enable

在SMB交換機上啟用BPDU防護 — GUI

步驟1.登入到Web配置實用程式以選擇生成樹> STP介面設定。將開啟STP介面設定頁面。

步驟2.從Interface Type下拉選單中選擇要編輯的介面型別。

步驟3.按一下Go以在該頁面上僅顯示埠或LAG。

步驟4.按一下連線到另一台交換機的埠或LAG的單選按鈕，然後按一下Edit。系統將顯示Edit STP Interface視窗。

步驟5.點選與Interface欄位中所需的介面型別對應的BPDU Guard Enable覈取方塊。

最佳實#5指南 — 將VLAN對映到MSTI，而不是IST(MST0)

現在，埠知道了它們的適當角色，讓我們轉到例項對映。為了獲得最佳結果，請限制您建立的例項數量 — 請注意，存在一些細微差別。這違背了最佳實踐，可能勸阻工程師將MSTP作為解決方案。對於多個例項，您可能具有有效的網路設計注意事項，但請注意，最佳做法是使用一個例項。確定要對映到例項的VLAN。 然後選擇網路中的所有交換機通用的配置名稱和修訂版號。

附註：編輯MSTI VLAN對映時，MSTP將重新啟動。

在Catalyst交換器上對映VLAN - CLI

Catalyst(config)# spanning-tree mst configuration

Catalyst(config-mst)# instance [instance-id] vlan [vlan-range]

Catalyst(config)# spanning-tree mst configuration

Catalyst(config-mst)# instance 1 vlan 1-11

在SMB交換機上對映VLAN - CLI

SMBswitch(config)# spanning-tree mst configuration

SMBswitch(config-mst)# instance [instance-id] vlan [vlan-range]

SMBswitch(config)# spanning-tree mst configuration

SMBswitch(config-mst)# instance 1 vlan 1-11

將VLAN對映到MSTI - GUI

步驟1。按一下Spanning Tree > VLAN to MSTP Instance。

VLAN到MSTP例項頁包含以下欄位：

- MST例項ID — 顯示所有MSTP例項。

- VLAN — 顯示屬於MST例項的所有VLAN。

步驟2.要將VLAN新增到MSTP例項，請選擇MST例項，然後按一下Edit。

- MST Instance ID — 選擇MST例項。

- VLAN — 定義對映到此MST例項的VLAN。

- Action — 定義是將VLAN新增（對映）到MST例項還是將其刪除。

步驟3.輸入引數。

步驟4.按一下Apply。此時，MSTP VLAN對映已建立。

最佳實#6指南 — 將所有啟用MSTP的交換機置於同一區域

最佳實踐是將儘可能多的交換機放置在單個區域中。將網路劃分為多個區域沒有任何好處。與任何路由和交換協定一樣，它們需要一種方法來確認協定成員身份。傳送的BPDU使交換機能夠識別自己為特定區域的成員。為使網橋瞭解其在給定區域的成員資格，它們必須共用以下設定：

1. 區域名稱

2. 修訂號

3. 從VLAN到例項對映計算的摘要

在Catalyst Switch - CLI上的區域內引導網橋

Catalyst(config)# spanning-tree mst [instance-id] root primary

Catalyst(config)# spanning-tree mst 5 root primary

在SMB Switch - CLI上引導網橋進入區域

SMBswitch(config)# spanning-tree mst configuration

SMBswitch(config-mst)# instance [instance-id] vlan [vlan-range]

SMBswitch(config-mst)# name [region-name]

SMBswitch(config-mst)# revision [revision-id]

SMBswitch(config)# spanning-tree mst configuration

SMBswitch(config-mst)# instance 1 vlan 10-20

SMBswitch(config-mst)# name region1

SMBswitch(config-mst)# revision 1

在SMB交換機上的區域內引導網橋 — GUI

MSTP Properties頁面用於定義交換機所在的區域。要使裝置位於同一區域，它們必須具有相同的區域名稱和修訂值。

步驟1.從選單中選擇生成樹> MSTP屬性。

步驟2.在Region Name欄位中輸入MSTP區域的名稱。區域名稱定義網路的邏輯邊界。MSTP區域中的所有交換機必須具有相同的已配置區域名稱。

步驟3.在「版本」欄位中輸入版本編號。這是一個表示MSTP配置修訂版的邏輯編號。MSTP區域中的所有交換機必須具有相同的修訂版號。

步驟4.在Max Hops(最大跳數)欄位中輸入最大跳數。最大跳數指定跳數中BPDU的生存期。當網橋收到BPDU時，它將跳數遞減1，並使用新的跳數重新傳送BPDU。一旦網橋收到跳數為零的BPDU，該BPDU就會被丟棄。

附註：IST Active欄位顯示區域活動交換機的網橋優先順序和MAC地址。有關其他資訊，請參閱辭彙表。

步驟5.按一下Apply。

最佳實#7策略 — 在主MST區域中嵌入CIST的根網橋

這一最佳實踐是保證整個遷移的關鍵因素之一。其思想是將MSTP拓撲的根網橋放置在主MSTP區域內。根據先前的最佳實踐，將所有VLAN置於同一區域，根選擇對所有VLAN均有效。這是通過稱為根防護的功能實現的，該功能強制您建立的根放置。當網橋在根防護啟用的埠上收到上級BPDU時，它將通過根不一致STP狀態立即將埠置於偵聽模式。這可以防止其下級BPDU的轉發，從而保留您所在區域的根網橋上的指定埠。從而保留您所在區域的根網橋上的指定埠。

附註：仔細選擇每個例項的根和備份根。

將根網橋置於Catalyst交換機上的CIST上 — CLI

Catalyst(config)# spanning-tree mst [instance-id] root {primary |輔助} [diameter dia [hello-time hello-time]]

Catalyst(config)# spanning-tree mst 1 root primary 7

疑難排解 — Catalyst

以下命令將返回。以下命令將返回所有已標籤為不一致的埠。但是另請注意，該命令在SMB交換機上不可用。

Catalyst# show spanning-tree inconsistentports

將根網橋置於SMB交換機上的CIST上 — CLI

SMBswitch(config)# interface [interface-id]

SMBswitch(config-if)# 生成樹防護根

SMBswitch(config)# interface gi1/1/1

SMBswitch(config-if)# spanning-tree guard root

將根網橋放置在SMB交換機上的CIST上 — GUI

步驟1.登入到Web配置實用程式並選擇生成樹> STP介面設置。

步驟2.從Interface Type下拉式清單中選擇interface。

步驟3.按一下Go以顯示介面上的連線埠或LAG清單。

步驟4.按一下要修改的連線埠或LAG的單選按鈕，然後按一下Edit。系統將顯示Edit STP Interface Setting視窗。

步驟5.在Interface欄位中按一下與所需介面對應的單選按鈕。

- 埠 — 從埠下拉選單中，選擇要配置的埠。這只會影響選擇的單一埠。

- LAG — 從LAG下拉選單中，選擇要配置的LAG。這將影響LAG配置中定義的埠組。

步驟6.確保選中STP欄位中的Enable以在介面上啟用STP。

步驟7.在Root Guard欄位中選中Enable，以在介面上啟用根防護。此選項提供了一種在網路中強制放置根網橋的方法。根防護用於防止新連線的裝置接管根網橋。

遷移驗證 — 是否啟用此功能？

此時，您的MSTP實施和網路應該繼續運行。對於信任但驗證群體，您可以通過執行幀捕獲來驗證MSTP狀態。然後將這些結果與預期的文檔進行比較。

通過Wireshark執行資料包捕獲後，您將看到包含例項ID的Mrecords。下面是Mrecord的螢幕快照，之後將進行擴展以瞭解其他詳細資訊。

展開Mrecord允許您檢視有關MSTP的更精細的資料。包括：

- 連線埠角色

- MST ID

- 區域根

- 內部路徑開銷

- 網橋識別符號優先順序

- 埠識別符號優先順序

- 剩餘跳數

快速驗證命令 — SMB CLI

如果要從命令列進行驗證，請嘗試以下命令：

SMBswitch# show spanning-tree mst-configuration

SMBswitch(config)# spanning-tree mst-configuration

SMBswitch(config-mst)# show pending

掛起MST配置

名稱[region1]

修訂版1

已配置的例項2

已對映例項Vlan

-------- ---------------------

0 1-9,21-4094

1 10-20

------------------------------

SMBswitch# show spanning-tree mst-configuration

名稱[]

修訂版0

已對映例項Vlan

-------- ---------------------------------------------------------------------

0 1-4094

-------------------------------------------------------------------------------

注意：show命令的Catalyst版本不包括mst和配置之間的 — 。EX:"show spanning-tree mst configuration"

關於生活在同一網路上的PVST+和MSTP須知

如果您需要繼續支援運行PVST+的傳統交換機，請逐個埠進行處理。如果其中一台交換機作為VLAN中繼運行，請確保MSTP交換機是分配給中繼的所有VLAN的根。此外，MSTP會嘗試解碼PVST+ BPDU，但此模擬並不完善。這要求我們深入探討邊界港口的概念。

MSTP邊界埠的作用和狀態由與外部拓撲互動的內部生成樹來確定。這表示如果某個連線埠在IST上處於封鎖模式，則該連線埠在MSTP的所有情況下均處於封鎖狀態。此效果會級聯到PVST+實現，從而影響VLAN的功能。如果連線埠是轉送、學習等，情況也是如此。正如你們可能想象的，這可能成為一個問題。這會導致棘手的問題，而應該為一個VLAN轉送的連線埠會因為另一個VLAN的需要而封鎖起來。PVST+模擬利用IST中的資訊建立每個VLAN BPDU。這會造成網路範圍的「錯覺」，即MSTP區域顯示為所有VLAN的單個交換機。類似於交換器的堆疊方式，這也不算太壞。從邊界埠的位置看，壞處在於它導致需要為每個模擬VLAN傳送單個BPDU。BPDU之間的任何不一致都會導致整個模擬出現錯誤。只有收到一致的BPDU後，模擬才能自行恢復。

總之，整個情況就是為什麼邊界埠上接收到的BPDU必須完全相同的原因。有關此主題的其他閱讀，請參考此社群執行緒。

如果我的網路硬體……是不是完全思科？

MSTP向後相容。只要您的非思科硬體支援快速生成樹，您就可以了。如果您遇到問題，請與我們的交換社群確認。

結論

感謝您閱讀本指南，通過這些最佳實踐，您應做好設定，以提高第2層網路的效能。

值得注意的是，生成樹聽起來可能並不令人興奮，但是負載共用的優勢讓保持網路效率的努力變得值得付出努力。生成樹發明者拉迪亞·珀爾曼對它的愛不亞於一個母親。她甚至寫了一首詩。