华为ensp:MSTP

目录

[第一章:铺垫------为什么需要 MSTP?](#第一章:铺垫——为什么需要 MSTP?)

第二章:主角登场------MSTP(多生成树协议)

[第三章:MSTP 的端口状态和角色](#第三章:MSTP 的端口状态和角色)

[第四章:MSTP 是如何工作的?](#第四章:MSTP 是如何工作的?)

第五章:实验


为什么会产生MSTP:单点故障---冗余---环路---STP(STP收敛速度过慢)---RSTP(单一生成树)---MSTP

第一章:铺垫------为什么需要 MSTP?

想象一个公司,有一座三层楼的办公楼:

  • 1楼: 行政部、财务部

  • 2楼: 研发部

  • 3楼: 市场部

公司要组建内部网络,为了保证网络稳定(一条线路断了,另一条还能用),网络工程师在所有楼层之间都铺设了两条网线,形成一个"环形"网络。

第一代网络:没有规则(广播风暴)

一开始,所有交换机都傻傻地转发所有数据。结果,一个数据包在这个环里跑个不停,越复制越多,最终网络被垃圾数据堵死,彻底瘫痪。这叫广播风暴

第二代网络:STP(生成树协议)------ 交通警察

为了解决环路问题,引入了 STP 这个"交通警察"。它的核心思想是:在环状网络中,逻辑上"阻塞"掉一些端口,把"环"变成"树",这样就没有环路了。

  • 它做了什么? STP 通过一系列选举,在所有线路中只留下一条主要道路(活动链路),其他备份道路全部放上"此路不通"(阻塞状态)的牌子。

  • 结果: 网络稳定了,没有环路了。太好了!

  • 问题:

    1. 资源浪费: 明明有两条物理线路,却只用一条。备份线路平时完全闲置。

    2. 所有部门走一条路: 无论行政部访问财务部,还是研发部访问市场部,所有数据流量都挤在那唯一的一条活动链路上。路口容易拥堵,效率低下。

第三代网络:RSTP与PVST+ ------ 更快、更智能的专用车道

第一步:先提升速度------RSTP

STP最大的问题之一是收敛太慢 (从检测到故障到网络恢复,可能需要30-50秒)。RSTP应运而生,它改变了端口状态和角色机制 ,实现了秒级甚至亚秒级收敛

RSTP的核心改进:

  1. 端口角色更丰富: 除了根端口、指定端口,增加了替代端口备份端口,可以快速接替失效端口的工作。

  2. 端口状态简化: 从STP的5种状态(禁用、阻塞、监听、学习、转发)简化为3种丢弃、学习、转发

  3. 主动的确认机制: 使用P/A(提议/同意)握手机制,可以快速将端口过渡到转发状态。

  4. 更快的BPDU处理: BPDU像"心跳包",超时未收到就立即触发重新计算。

比喻:

  • STP 像老式交通系统:道路坏了,交警要层层上报,等命令下来再指挥绕行,反应很慢。

  • RSTP 像智能交通系统:每个路口都有智能传感器,道路一坏,相邻路口立即自动调整信号灯,指挥车辆绕行,反应极快。

第二步:再增加负载均衡能力------PVST+

PVST+(按VLAN生成树协议+)本质上是思科的私有协议,它将RSTP的快速收敛机制与每VLAN一棵树的理念结合起来。

所以更准确的描述是:

  1. RSTP 解决了 "慢" 的问题(收敛速度)。

  2. PVST+ 在RSTP的基础上,解决了 "笨" 的问题(所有流量走一条路)。

PVST+ = RSTP的快速引擎 + 每VLAN一棵树的分流策略

PVST+的完整优缺点

工作原理(比喻升级版):

现在马路不仅有了专用车道 (每个VLAN一棵树),而且每个路口都配备了智能交通系统 (RSTP)。一旦某条车道发生事故(链路故障),智能系统会在1秒内通知所有相关车辆(VLAN流量)绕行。

优点:

  1. 负载均衡: 不同VLAN流量走不同路径。

  2. 快速收敛: 得益于RSTP,拓扑变化后恢复极快(通常1-2秒)。

  3. 资源利用: 备份链路被有效利用。

致命缺点(依然存在):

  1. CPU/内存开销巨大: 每个VLAN独立运行一棵生成树。如果有100个VLAN,交换机就要维护100棵完整的生成树。每棵树都有自己的BPDU需要发送和处理。

  2. 管理复杂: 网络管理员需要为大量VLAN配置和维护生成树参数,工作量巨大。

  3. 扩展性差: 当VLAN数量达到数百甚至上千时,PVST+的开销会成为网络的性能瓶颈。

第二章:主角登场------MSTP(多生成树协议)

现在,我们急需一个既能让流量分流 (负载均衡),又不会造成太大负担 的协议。这就是 MSTP

1. MSTP 的核心思想是什么?------ "分组管理"

MSTP 说:没必要每个VLAN都单独一棵树!把拓扑结构相同的VLAN"分组",同一个组共享一棵生成树就行了。

继续用公司的例子:

  • 拓扑发现: 其实整个公司的物理线路就两种走向:左半边的线路和右半边的线路。

  • 分组:

    • 实例1(Instance 1): 让所有需要走左边线路 的VLAN(比如行政部VLAN10、财务部VLAN11)加入这个组。这个组对应的树叫 MSTI 1(多生成树实例1)。

    • 实例2(Instance 2): 让所有需要走右边线路 的VLAN(比如研发部VLAN20、市场部VLAN30)加入这个组。这个组对应的树叫 MSTI 2

    • 实例0(Instance 0): 这是一个特殊实例,叫做 IST(内部生成树)所有默认的、没有被手动分配的VLAN,都自动属于这个实例。 它也是连接整个MST区域的基础。

这样一来:

  • 交换机只需要计算 2棵生成树(MSTI 1 和 MSTI 2),而不是50棵。负担大大减轻!

  • 流量依然实现了负载均衡

  • 备份机制完好无损。

2. MSTP 的三个关键概念

  1. MST 区域(Region):

    • 是什么: 一组具有相同MST配置的交换机的集合。

    • 配置包括什么(三要素):

      • 区域名(Name): 比如"Beijing-Office"。

      • 修订等级(Revision): 一个数字,比如1。当您更改区域配置时,需要递增这个号码,以便其他交换机识别配置已更新。

      • VLAN-实例映射表(VLAN-to-Instance Mapping): 这就是前面说的"分组名单",明确规定了哪个VLAN属于哪个实例。

    • 重要性: 只有配置完全相同的交换机,才能在同一个MST区域里"对话",计算同一套生成树。配置不同的交换机被视为属于另一个区域。

  2. MST 实例(Instance):

    • 是什么: 就是前面提到的"组"。每个实例独立运行一棵生成树算法。

    • 种类:

      • IST(实例0): 默认实例,所有VLAN的"默认归属地"。

      • MSTI 1-4094: 用户自定义的实例。我们可以创建多个来实现复杂的负载均衡。

  3. CST(公共生成树)和 CIST(公共内部生成树):

    • 当网络中有多个 MST 区域 ,或者还存在运行 普通STP/RSTP 的旧交换机时,MSTP 需要将这些不同的部分"粘合"成一个整体,确保整个大型网络没有环路。

    • CIST 就是这棵覆盖整个网络的、总的生成树。它由每个区域的IST相互连接而成。

**第三章:**MSTP 的端口状态和角色

MSTP的端口角色是其实现快速收敛复杂拓扑管理的核心。它继承并扩展了RSTP的角色。

1. 基础角色(来自RSTP)

这些是每棵生成树实例(包括IST和各个MSTI)内部存在的角色:

端口角色 英文 作用 在您的图中可能的位置
根端口 Root Port (RP) 非根桥 上,去往根桥路径最优 的端口。是交换机接收BPDU的端口,也是转发数据的主出口 假设SW1是根桥,那么SW2和SW3上指向SW1的端口就是RP。
指定端口 Designated Port (DP) 每个网段(链路) 上,负责向下游转发BPDU和数据的端口。根桥的所有活动端口都是DP。 根桥SW1连接SW2和SW3的两个端口都是DP。SW2和SW3之间链路上,也会有一个被选为DP。
替代端口 Alternate Port (AP) 根端口的备份 。它从其他交换机 收到了更优的BPDU,因此被阻塞。如果根端口失效,AP会立刻接管成为新的RP。 在SW2或SW3上,如果有一个端口收到来自第三方(图中未画出)的更好BPDU,它就会成为AP。
备份端口 Backup Port (BP) 指定端口的备份 。它从自己所在的交换机的另一个端口收到了BPDU(表明本交换机在这个网段上有两个端口),因此被阻塞。如果指定端口失效,BP会接管。 如果SW2通过两条链路连接同一个下游交换机(形成自环),其中一条链路的端口就会成为BP。

简单记忆:

  • AP是RP的备胎(来自"别人"的更好BPDU)

  • BP是DP的备胎(来自"自己"的BPDU)

2. MSTP 特有角色(用于连接区域)

这些角色是MSTP为了管理多个区域 而引入的,主要出现在区域边界

端口角色 英文 作用 关键理解
Master端口 Master Port 在MST区域中,通往CIST总根桥(可能在另一个区域)的最短路径 上的那个端口。它是区域通往外部世界的"大门"一个区域只有一个Master端口。 这是MSTP中最重要的特有角色。它不属于任何一个MSTI,而是属于CIST。负责将区域内部的IST连接到外部网络。
域边缘端口 Region Boundary Port 处于MST区域边界 、连接另一个MST区域或运行其他STP协议设备的端口。Master端口一定是域边缘端口,但域边缘端口不一定是Master端口(如果该区域有多个出口)。 它是区域间BPDU格式转换的"翻译官"。在这个端口上,既处理MSTP格式的BPDU,也处理STP/RSTP格式的BPDU。

3. 便利角色

端口角色 说明
边缘端口 直接连接终端设备 (如PC、服务器)的端口。这类端口不参与STP计算,直接进入转发状态,可加快网络接入速度。如果收到BPDU,会立刻失去边缘端口身份。

4. 端口状态(3 种)

  • Forwarding(转发):既转发用户流量,也处理生成树协议报文。
  • Learning(学习):不转发用户流量,但学习 MAC 地址,为转发做准备(默认 15 秒,RSTP/MSTP 中可快速跳过)。
  • Discarding(丢弃):既不转发用户流量,也不学习 MAC 地址,仅处理生成树协议报文(对应 STP 的 Blocking 和 Listening 状态)。

第四章:MSTP 是如何工作的?

  1. 选举总根桥: 整个网络(所有区域)会选举出一个根交换机,作为CIST的根。

  2. 选举区域根桥: 在每个MST区域内部,为每个MSTI(包括IST)选举一个区域根交换机。这个根桥负责引导本区域内的该实例流量。

  3. 端口角色确定: 和STP类似,在每个实例中,端口会被赋予不同角色:

    • 根端口(RP): 去往根桥方向的最佳端口。

    • 指定端口(DP): 在网段上负责转发数据的端口。

    • 替代端口(AP): 备份端口,被阻塞。

    • (MSTP继承自RSTP,端口状态更少,收敛更快)

  4. VLAN流量转发: 交换机根据数据帧所属的VLAN,查"分组名单"(VLAN-实例映射表),决定这个数据应该走哪棵实例树(MSTI),然后按照那棵树的端口角色决定从哪个端口转发出去。

第五章:实验

(1)实验目的及步骤

实验目的:

  1. 熟悉RSTP的应用场景

  2. 掌握RSTP的配置方法

实验步骤:

1.创建VLAN

2.设置trunk

  1. 配置MSTP

  2. 配置主根网桥和备用根网桥

  3. 查看实例1的接口角色

  4. 查看实例2的接口角色

(2)实验拓扑及配置

LSW1:

<Huawei>system-view

Huawei\]undo info-center enable \[Huawei\]sysname LSW1 \[LSW1\]port-group 1 //创建端口组1 \[LSW1-port-group-1\]group-member g0/0/1 \[LSW1-port-group-1\]group-member g0/0/7 \[LSW1-port-group-1\]group-member g0/0/6 \[LSW1-port-group-1\]group-member g0/0/4 \[LSW1-port-group-1\]port link-type trunk \[LSW1-GigabitEthernet0/0/1\]port link-type trunk \[LSW1-GigabitEthernet0/0/7\]port link-type trunk \[LSW1-GigabitEthernet0/0/6\]port link-type trunk \[LSW1-GigabitEthernet0/0/4\]port link-type trunk \[LSW1-port-group-1\]port trunk allow-pass vlan all \[LSW1-GigabitEthernet0/0/1\]port trunk allow-pass vlan all \[LSW1-GigabitEthernet0/0/7\]port trunk allow-pass vlan all \[LSW1-GigabitEthernet0/0/6\]port trunk allow-pass vlan all \[LSW1-GigabitEthernet0/0/4\]port trunk allow-pass vlan all \[LSW1-port-group-1\]quit \[LSW1\]vlan batch 10 20 30 40 50 60 70 80 \[LSW1\]stp enable \[LSW1\]stp mode mstp //切换至MSTP \[LSW1\]stp region-configuration //进入MST域配置视图 \[LSW1-mst-region\]region-name hcip //配置 MST 域的名称为hcip \[LSW1-mst-region\]revision-level 1 //配置 MST 域的修订级别为 1;所有同域交换机的修订级别必须一致,用于区分不同的 MST 域配置版本 \[LSW1-mst-region\]instance 1 vlan 10 30 50 70 \[LSW1-mst-region\]instance 2 vlan 20 40 60 80 \[LSW1-mst-region\]active region-configuration //激活当前配置的 MST 域参数(域名称、修订级别、VLAN - 实例映射) \[LSW1-mst-region\]quit \[LSW1\]stp instance 1 root primary //根网桥 \[LSW1\]stp instance 2 root secondary //备网桥 \[LSW1\]display stp instance 1 brief \[LSW1\]display stp instance 2 brief **LSW2:** \system-view \[Huawei\]undo info-center enable \[Huawei\]sysname LSW2 \[LSW2\]vlan batch 10 20 30 40 50 60 70 80 \[LSW2\]port-group 1 \[LSW2-port-group-1\]group-member g0/0/1 \[LSW2-port-group-1\]group-member g0/0/7 \[LSW2-port-group-1\]group-member g0/0/5 \[LSW2-port-group-1\]group-member g0/0/2 \[LSW2-port-group-1\]port link-type trunk \[LSW2-GigabitEthernet0/0/1\]port link-type trunk \[LSW2-GigabitEthernet0/0/7\]port link-type trunk \[LSW2-GigabitEthernet0/0/5\]port link-type trunk \[LSW2-GigabitEthernet0/0/2\]port link-type trunk \[LSW2-port-group-1\]port trunk allow-pass vlan all \[LSW2-GigabitEthernet0/0/1\]port trunk allow-pass vlan all \[LSW2-GigabitEthernet0/0/7\]port trunk allow-pass vlan all \[LSW2-GigabitEthernet0/0/5\]port trunk allow-pass vlan all \[LSW2-GigabitEthernet0/0/2\]port trunk allow-pass vlan all \[LSW2\]undo info-center enable \[LSW2\]stp enable \[LSW2\]stp mode mstp \[LSW2\]stp region-configuration \[LSW2-mst-region\]region-name hcip \[LSW2-mst-region\]revision-level 1 \[LSW2-mst-region\]instance 1 vlan 10 30 50 70 \[LSW2-mst-region\]instance 2 vlan 20 40 60 80 \[LSW2-mst-region\]active region-configuration \[LSW2-mst-region\]quit \[LSW2\]stp instance 1 root secondary //备网桥 \[LSW2\]stp instance 2 root primary //根网桥 \[LSW2\]display stp instance 1 brief \[LSW2\]display stp instance 2 brief **LSW3:** \system-view \[Huawei\]undo info-center enable \[Huawei\]sysname LSW3 \[LSW3\]vlan batch 10 20 30 40 50 60 70 80 \[LSW3\]port-group 1 \[LSW3-port-group-1\]group-member g0/0/4 \[LSW3-port-group-1\]group-member g0/0/3 \[LSW3-port-group-1\]group-member g0/0/5 \[LSW3-port-group-1\]port link-type trunk \[LSW3-GigabitEthernet0/0/4\]port link-type trunk \[LSW3-GigabitEthernet0/0/3\]port link-type trunk \[LSW3-GigabitEthernet0/0/5\]port link-type trunk \[LSW3-port-group-1\]port trunk allow-pass vlan all \[LSW3-GigabitEthernet0/0/4\]port trunk allow-pass vlan all \[LSW3-GigabitEthernet0/0/3\]port trunk allow-pass vlan all \[LSW3-GigabitEthernet0/0/5\]port trunk allow-pass vlan all \[LSW3-port-group-1\]quit \[LSW3\]undo info-center enable \[LSW3\]stp enable \[LSW3\]stp mode mstp \[LSW3\]stp region-configuration \[LSW3-mst-region\]region-name hcip \[LSW3-mst-region\]revision-level 1 \[LSW3-mst-region\]instance 1 vlan 10 30 50 70 \[LSW3-mst-region\]instance 2 vlan 20 40 60 80 \[LSW3-mst-region\]active region-configuration \[LSW3-mst-region\]quit \[LSW3\]interface g0/0/1 \[LSW3-GigabitEthernet0/0/1\]stp edged-port enable //边缘端口 \[LSW3-GigabitEthernet0/0/1\]quit \[LSW3\]quit \display stp instance 1 brief \display stp instance 2 brief **LSW4:** \system-view \[Huawei\]undo info-center enable \[Huawei\]sysname LSW4 \[LSW4\]port-group 1 \[LSW4-port-group-1\]group-member g0/0/3 \[LSW4-port-group-1\]group-member g0/0/6 \[LSW4-port-group-1\]group-member g0/0/2 \[LSW4-port-group-1\]port link-type trunk \[LSW4-GigabitEthernet0/0/3\]port link-type trunk \[LSW4-GigabitEthernet0/0/6\]port link-type trunk \[LSW4-GigabitEthernet0/0/2\]port link-type trunk \[LSW4-port-group-1\]port trunk allow-pass vlan all \[LSW4-GigabitEthernet0/0/3\]port trunk allow-pass vlan all \[LSW4-GigabitEthernet0/0/6\]port trunk allow-pass vlan all \[LSW4-GigabitEthernet0/0/2\]port trunk allow-pass vlan all \[LSW4-port-group-1\]quit \[LSW4\]undo info-center enable \[LSW4\]stp enable \[LSW4\]stp mode mstp \[LSW4\]stp region-configuration \[LSW4-mst-region\]region-name hcip \[LSW4-mst-region\]revision-level 1 \[LSW4-mst-region\]instance 1 vlan 10 30 50 70 \[LSW4-mst-region\]instance 2 vlan 20 40 60 80 \[LSW4-mst-region\]active region-configuration \[LSW4-mst-region\]quit \[LSW4\]interface g0/0/1 \[LSW4-GigabitEthernet0/0/1\]stp edged-port enable \[LSW4-GigabitEthernet0/0/1\]quit \[LSW4\]quit \display stp instance 1 brief \[LSW4\]vlan batch 10 20 30 40 50 60 70 80 \[LSW4\]quit \display stp instance 1 brief \display stp instance 2 brief

对LSW1的g0/0/1端口进行抓包分析

一、MST 域的核心配置(决定是否属于同一域)

从信息可以看出当前交换机所在 MST 域的关键配置:

  • MST Config namehcip → 域名为hcip
  • MST Config revision1 → 修订级别为 1
  • MST Config digest1776645fb25130b68f343c3522da8eeb → 是 "域名 + 修订级别 + VLAN - 实例映射表" 的哈希值(自动生成)
  • 只有其他交换机的域名、修订级别、VLAN - 实例映射表完全一致时,才能和这台交换机属于同一个 MST 域。

二、CIST(公共和内部生成树)的状态

CIST 是整个 MSTP 网络的总生成树,这里展示了当前交换机在 CIST 中的信息:

  • CIST Internal Root Path Cost20000 → 当前交换机到CIST 根桥的路径开销(路径开销由链路带宽决定,比如 1Gbps 链路默认开销是 2000)
  • CIST Bridge Identifier32768 / 0 / 4c:1f:cc:b8:30:0b → 当前交换机的 CIST 桥 ID:
    • 前半部分32768桥优先级(默认值)
    • 后半部分4c:1f:cc:b8:30:0b交换机 MAC 地址
  • CIST Remaining hops19 → MSTP 报文的剩余跳数(默认最大跳数是 20,这里表示还能转发 19 次)

三、MSTI(多生成树实例)的域内根信息

MSTI 是 MST 域内的独立生成树,这里展示了 Instance 1 和 Instance 2 的域内根桥

  • MSTID 1, Regional Root Identifier0 / 4c:1f:cc:b8:30:0b → Instance 1 的域内根桥4c:1f:cc:b8:30:0b(即当前交换机自身,因为桥 ID 和上面的 CIST 桥 ID 一致)
  • MSTID 2, Regional Root Identifier0 / 4c:1f:cc:e3:66:3b → Instance 2 的域内根桥 是另一台交换机(MAC 为4c:1f:cc:e3:66:3b

总结这个抓包的关键结论

  1. 当前交换机属于域名为 hcip、修订级别为 1的 MST 域;
  2. 这台交换机是Instance 1 的域内根桥,但不是 Instance 2 的域内根桥;
  3. 当前交换机到 CIST 根桥的路径开销是 20000,CIST 桥优先级为默认值 32768。
相关推荐
ling___xi2 小时前
《计算机网络》计网3小时期末速成课各版本教程都可用谢稀仁湖科大版都可用_哔哩哔哩_bilibili(笔记)
网络·笔记·计算机网络
REDcker2 小时前
Linux 文件描述符与 Socket 选项操作详解
linux·运维·网络
Up九五小庞2 小时前
用arpspoof实现100%批量切断192.168.110.10 - 192.168.110.100 断网(双向欺骗)--九五小庞
网络·开源
code_li2 小时前
“信息安全”与“网络安全”区别
安全·网络安全·信息安全
躺柒3 小时前
读数字时代的网络风险管理:策略、计划与执行04风险指引体系
大数据·网络·信息安全·数字化·网络管理·网络风险管理
交通上的硅基思维3 小时前
人工智能安全:风险、机制与治理框架研究
人工智能·安全·百度
sysinside3 小时前
Invicti Standard v26.1.0 for Windows - 企业级 Web 应用与 API 安全
安全·invicti
独角鲸网络安全实验室3 小时前
本地信任成“致命漏洞”:数千Clawdbot Agent公网裸奔,供应链与内网安全告急
网络·网关·安全·php·漏洞·clawdbot·信任机制漏洞
倔强的石头1063 小时前
关键信息基础设施的数据库选型:高可用、全链路安全与平滑替代的技术实践
数据库·安全·金仓数据库