一、STP/RSTP 的局限性
STP(生成樹協議)和 RSTP(快速生成樹協議)存在一些明顯的局限,主要包括:
- 所有 VLAN 共享一顆生成樹,這導致無法實現不同 VLAN 在多條 Trunk 鏈路上的負載分擔。例如,當網絡中有 VLAN1~VLAN100 時,若某條鏈路被阻塞,可能導致 VLAN1~VLAN50 或 VLAN51~VLAN100 的通信中斷。
- 可能出現次優二層路徑,比如在 VLAN3 的通信中,數據傳輸路徑可能不是最優的,影響網絡效率。
二、MSTP 的基本概念及優勢
1. MSTP 的定義
MSTP(多生成樹協議)是基于實例計算多顆生成樹的協議,實例間可實現負載分擔,其標準協議為 IEEE802.1s。簡單來說,就是可以為不同的 VLAN 組(實例)創建不同的生成樹,讓不同 VLAN 的流量走不同路徑,提高鏈路利用率。
2. MST 域
MST 域是擁有相同 MST 配置標識的網橋構成的集合,配置標識包括三個部分:
- 域名;
- 配置修訂號;
- VLAN 與實例映射關系。
例如,Region1 可能將 VLAN2 映射到 Instance2,VLAN4 映射到 Instance4;Region2 可能將 VLAN4 映射到 Instance4,VLAN5 映射到 Instance5,不同域的映射關系可不同。
3. 關鍵概念
- MSTI(多生成樹實例):每個實例對應特定的 VLAN,可獨立計算生成樹拓撲。比如 VLAN3 可映射到 Instance3,VLAN5 可映射到 Instance5,其他 VLAN 映射到 IST(內部生成樹)。
- 端口角色:包括 Master 端口等,其他端口角色定義和 RSTP 相同。Master 端口是 IST 根橋在 CIST(公共內部生成樹)上的根端口。
三、MSTP 工作原理
1. BPDU 格式
MSTP 的 BPDU 包含兩部分:
- RST BPDU 字段:包括 Protocol ID、CIST Root ID 等參數;
- MST 專有字段:包括 Version3 Length、MST Configuration ID 等。
2. 優先級向量
- CIST 優先級向量:格式為 {RootID: ERPC: RRootID: IRPC: DesignateBridgeID: DesignatePortID: RcvPortID},比較原則是 “最小最優”,按順序比較各參數。比如先比總根 ID,總根 ID 小的更優;若相同,再比外部路徑開銷,以此類推。
- MSTI 優先級向量:格式為 {RRootID: IRPC: DesignateBridgeID: DesignatePortID: RcvPortID},同樣按 “最小最優” 比較,先比 MSTI 域根 ID。
3. 計算方法
MSTP的計算是打包在一起同步計算的,在報文中包含多個信息,先查CIST配置信息,如果域配置相同,則需要計算IST(MSTI的計算參數是包含在IST BPDU中一起計算的,也就是每個實例的線路)和CST,如果域配置不同,則只計算CST
舉例:當 SWA 向 SWB 發送 BPDU 時,SWB 會先檢查專有字段中的 “域名” 和 “VLAN 映射”:如果和自己的配置一致,就認為是同一域,可協同計算 MSTI;如果不一致,則視為不同域,僅通過 CST 通信。
- CST(公共生成樹)/IST 的計算和 RSTP 類似;
- MSTI 的計算僅限于區域內,且其計算參數包含在 IST BPDU 中,與 IST 計算同步完成。
四、MSTP 兼容性
- MSTP 與 RSTP 互操作時,RSTP 橋會將 MSTP 域看作一個橋 ID 為域根 ID 的 RSTP 橋,實例 0 用于與 STP/RSTP 對接。
- MSTP 的工作模式有三種,具體如下:
- STP 模式:只能和 STP 交換機交互,僅收發配置 BPDU;
- RSTP 模式:運行 RSTP,若檢測到相鄰交換機為 STP 模式,則切換為 STP;
- MSTP 模式:運行 MSTP,可兼容 RSTP 和 STP 模式。
五、典型配置案例
以單域多實例組網為例,配置步驟如下:
- 配置 MST 域參數:如 SWA 的配置,包括啟用 MSTP、設置域名為 RegionA、修訂號為 1,將 VLAN2-10 映射到 Instance1,VLAN11-20 映射到 Instance2,并設置實例優先級。
- 設置端口:配置點到點鏈路和邊緣端口,例如 SWC 的 E1/0/2 和 E1/0/3 設為邊緣端口。
- 驗證配置:通過
display stp brief
命令查看端口狀態,如 SWA 的 Instance1 中 E1/0/12 和 E1/0/15 為轉發狀態,SWC 的 Instance1 中 E1/0/12 為根端口(轉發狀態)。
六、保護機制
1. BPDU 保護
啟用后,若邊緣端口收到配置消息,MSTP 會將這些端口關閉,防止邊緣端口受攻擊導致拓撲變動。配置命令為[H3C] stp bpdu-protection
。在MSTP中,邊緣端口意外接入一個交換機時,會觸發邊緣端口保護機制,端口會被關閉,只能由管理員來開啟
2. 根橋保護
對于設置了根保護的端口,若收到某實例優先級更高的配置消息,該端口會變為指定端口并進入偵聽狀態,不再轉發報文。配置命令為[H3C-Ethernet1/0/1] stp root-protection
。
3. 環路保護
配置后,若端口收不到上游設備的 BPDU 報文,該端口在所有實例中均處于 Discarding 狀態,防止環路產生。配置命令為[H3C-Ethernet1/0/1] stp loop-protection
。
4. TC 保護
設置設備在 10 秒內收到 TC-BPDU 后,地址表項刪除操作的最多次數,避免頻繁刪除給設備帶來負擔。