MSTP:网络负载均衡与环路防护的利器

#新星杯·14天创作挑战营·第11期#

目录

MSTP的基本原理

在ENSP中配置MSTP

实例:

网络拓扑如下:

需求如下:

实现思路:

开始配置:

1、配置路由器IP地址(PC机的IP地址自行配置):

2、配置各个交换机的VLAN及Trunk:

3、配置MSTP

4、验证:


MSTP(Multiple Spanning Tree Protocol,多生成树协议)是一种用于在网络中防止环路并实现负载均衡的协议。MSTP是IEEE 802.1s标准的一部分,它扩展了STP(Spanning Tree Protocol,生成树协议)和RSTP(Rapid Spanning Tree Protocol,快速生成树协议)的功能。


MSTP的基本原理

  1. 生成树的概念

    • 生成树协议的主要目的是在网络中防止环路,同时确保网络的连通性。它通过阻塞某些冗余链路来消除环路,并在链路故障时重新激活这些链路以恢复连通性。
  2. MSTP的核心思想

    • MSTP允许在网络中创建多个生成树实例(MSTI,Multiple Spanning Tree Instances),每个实例可以独立地管理一部分VLAN的流量。这样,不同的VLAN可以通过不同的生成树实例进行转发,从而实现负载均衡和优化网络资源的使用。
  3. MSTP的组成

    • MST Region(MST区域):MSTP将网络划分为多个MST区域,每个区域可以包含多个交换机。区域内的交换机使用相同的MST配置,包括区域名称、修订号和VLAN到生成树实例的映射。
    • MSTI(Multiple Spanning Tree Instance):每个MST区域可以包含多个生成树实例,每个实例对应一个或多个VLAN。每个MSTI独立计算生成树,确保其对应的VLAN流量不会形成环路。
    • CST(Common Spanning Tree):CST是MSTP中用于连接不同MST区域的生成树实例。它确保不同区域之间的连通性,并防止区域间的环路。
  4. MSTP的工作过程

    • 配置MSTP:在网络中配置MSTP时,需要为每个交换机指定MST区域名称、修订号以及VLAN到生成树实例的映射。
    • 选举根桥:在每个MSTI中,交换机通过BPDU(Bridge Protocol Data Unit)报文选举出一个根桥。根桥负责生成树的计算和拓扑的维护。
    • 计算生成树:每个MSTI独立计算生成树,确定哪些端口处于转发状态,哪些端口处于阻塞状态。
    • 处理拓扑变化:当网络拓扑发生变化时(如链路故障),MSTP会快速重新计算生成树,并调整端口状态,以恢复网络的连通性。
  5. MSTP的优点

    • 负载均衡:通过将不同的VLAN映射到不同的生成树实例,MSTP可以实现流量的负载均衡,优化网络资源的使用。
    • 快速收敛:MSTP基于RSTP,具有快速收敛的特性,能够在网络拓扑发生变化时快速恢复连通性。
    • 扩展性:MSTP支持大规模网络,能够通过划分MST区域来简化生成树的计算和管理。

在ENSP中配置MSTP

在ENSP中,可以通过以下步骤配置MSTP:

  1. 进入系统视图

    system-view
  2. 启用MSTP

    stp mode mstp
  3. 配置MST区域

    stp region-configuration  # 进入MSTP区域配置模式,用于配置MST区域的相关参数
    region-name <region-name>  # 设置MST区域的名称,<region-name>为自定义的区域名称,用于标识MST区域
    revision-level <revision-number>  # 设置MST区域的修订号,<revision-number>为数字,用于标识MST区域的配置版本
    instance <instance-id> vlan <vlan-list>  # 将VLAN映射到指定的生成树实例,<instance-id>为生成树实例的ID,<vlan-list>为VLAN列表
    active region-configuration  # 激活当前配置的MST区域,使配置生效
  4. 配置根桥(可选):

    stp instance <instance-id> root primary
  5. 查看MSTP状态

    display stp

通过以上配置,可以在ENSP中实现MSTP,并在模拟的网络环境中验证其防止环路和负载均衡的效果,下面是一个具体的实例以供参考。


实例:

网络拓扑如下:

需求如下:

VLAN10和VLAN20互访

VLAN10:S3->S1->R1

VLAN20:S3->S2->R1

实现思路:

1、配置PC及路由器的IP地址。

2、配置交换机的vlan及trunk。

3、交换机开启MSTP协议,配置相同区域名称。

4、交换机建立两个实例,分别将vlan 10 和vlan 20加入到不同的实例中,并为两个实例指定不同的根网桥,实例1的根网桥在S1上,实例2的根网桥在S2上。

开始配置:
1、配置路由器IP地址(PC机的IP地址自行配置):
[R1]in g0/0/0

[R1-GigabitEthernet0/0/0]ip add 10.1.10.254 24

[R1-GigabitEthernet0/0/0]in g0/0/1

[R1-GigabitEthernet0/0/1]ip add 10.1.20.254 24

[R1-GigabitEthernet0/0/1]un shut    <!--接口默认为开启状态,若为关闭状态,可使用该命令开启-->

2、配置各个交换机的VLAN及Trunk:

这里将所有和客户机连接的接口配置为Access接口

交换机和交换机连接的接口配置为trunk接口

交换机和路由器连接的接口配置为Hybrid接口

S1的配置如下:

[S1]vlan ba 10 20                                   <!--创建vlan10 和vlan20-->

[S1]in g0/0/2                                      <!--进入该接口-->

[S1-GigabitEthernet0/0/2]port link-type trunk             <!--配置接口模式为trunk-->

[S1-GigabitEthernet0/0/2]port trunk allow-pass vlan all      <!--放行所有vlan流量通过-->

[S1-GigabitEthernet0/0/2]in g0/0/1                      <!--进入该接口-->

[S1-GigabitEthernet0/0/1]port link-type trunk             <!--配置接口模式为trunk-->

[S1-GigabitEthernet0/0/1]port trunk allow-pass vlan all            <!--放行所有vlan流量通过-->

[S1-GigabitEthernet0/0/1]in g0/0/3                       <!--进入该接口-->

[S1-GigabitEthernet0/0/3]port link-type hybrid                <!--配置接口模式为Hybrid-->

[S1-GigabitEthernet0/0/3]port hybrid untagged vlan 10    <!--将vlan 10 添加到该接口的untag列表-->  VLAN 10 的数据包在通过该端口时不会携带 VLAN 标签。

[S1-GigabitEthernet0/0/3]port hybrid pvid vlan 10             <!--配置接口PVID为vlan 10-->

当端口收到一个不带 VLAN 标签的数据包时,会将其视为 VLAN 10 的数据包进行处理

S2的配置如下:

[S2]vlan ba 10 20                     <!--创建vlan10 和vlan20-->

[S2]in g0/0/2                     <!--进入该接口-->

[S2-GigabitEthernet0/0/2]port link-type trunk                       <!--配置接口模式为trunk-->

[S2-GigabitEthernet0/0/2]port trunk allow-pass vlan all           <!--放行所有vlan流量通过-->

[S2-GigabitEthernet0/0/2]in g0/0/1                     <!--进入该接口-->

[S2-GigabitEthernet0/0/1]port link-type trunk                      <!--配置接口模式为trunk-->

[S2-GigabitEthernet0/0/1]port trunk allow-pass vlan all           <!--放行所有vlan流量通过-->

[S2-GigabitEthernet0/0/1]in g0/0/3                     <!--进入该接口-->

[S2-GigabitEthernet0/0/3]port link-type hybrid                <!--配置接口模式为Hybrid-->

[S2-GigabitEthernet0/0/3]port hybrid untagged vlan 20 <!--将vlan 12 添加到该接口的untag列表-->

[S2-GigabitEthernet0/0/3]port hybrid pvid vlan 20            <!--配置接口PVID为vlan 20-->

S3的配置如下:

[S3]vlan ba 10 20                     <!--创建vlan10 和vlan20-->

[S3]in g0/0/3                     <!--进入该接口-->

[S3-GigabitEthernet0/0/3]port link-type access                 <!--配置接口模式为access-->

[S3-GigabitEthernet0/0/3]port default vlan 10          <!--将接口添加到vlan 10中-->

[S3-GigabitEthernet0/0/3]in g0/0/4                     <!--进入该接口-->

[S3-GigabitEthernet0/0/4]port link-type access                <!--配置接口模式为access-->

[S3-GigabitEthernet0/0/4]port default vlan 20           <!--将接口添加到vlan 20中-->

[S3-GigabitEthernet0/0/4]in g0/0/1                     <!--进入该接口-->

[S3-GigabitEthernet0/0/1]port link-type trunk                       <!--配置接口模式为trunk-->

[S3-GigabitEthernet0/0/1]port trunk allow-pass vlan all           <!--放行所有vlan流量通过-->

[S3-GigabitEthernet0/0/1]in g0/0/2                     <!--进入该接口-->

[S3-GigabitEthernet0/0/2]port link-type trunk                      <!--配置接口模式为trunk-->  

[S3-GigabitEthernet0/0/2]port trunk allow-pass vlan all           <!--放行所有vlan流量通过-->


3、配置MSTP

上面的需求是要求vlan 10的客户端通过S3和S1到达网关,vlan 20的客户端通过S3和S2到达网关,从而实现链路的负载分担。在接下来的配置中,把S1配置为instance 1的根,而instance 1实例和vlan 10关联,那么vlan的流量因为S2和S3之间的链路阻塞而通过左边到达网关。同理,instance 2实例中配置S2为根,并通过右边到达网关。

S1的配置如下:

[S1]stp mo mstp                     <!--将交换机配置成MSTP模式-->

[S1]stp region-configuration                       <!--进入MSTP配置模式-->

[S1-mst-region]region-name lv                     <!--配置域名为“lv”-->

[S1-mst-region]revision-level 1                     <!--配置版本等级为“1”-->

[S1-mst-region]instance 1 vlan 10                     <!--将vlan 10加入实例1中-->

[S1-mst-region]instance 2 vlan 20                     <!--将vlan 20加入实例2中-->

[S1-mst-region]active region-configuration                      <!--激活配置(必须配置)-->

[S1-mst-region]quit                     <!--退出配置模式-->

[S1]stp instance 1 root primary                      <!--配置此交换机为实例1的主根-->

[S1]stp instance 2 root secondary                  <!--配置此交换机为实例2的备根-->

S2的配置如下:

[S2]stp mode mstp                     <!--将交换机配置成MSTP模式-->

[S2]stp region-configuration                        <!--进入MSTP配置模式-->

[S2-mst-region]region-name lv                     <!--配置域名为“lv”-->

[S2-mst-region]revision-level 1                     <!--配置版本等级为“1”-->

[S2-mst-region]instance 1 vlan 10                    <!--将vlan 10加入实例1中-->

[S2-mst-region]instance 2 vlan 20                    <!--将vlan 20加入实例2中-->

[S2-mst-region]active region-configuration                      <!--激活配置(必须配置)-->

[S2-mst-region]quit                    <!--退出配置模式-->

[S2]stp instance 1 root secondary                      <!--配置此交换机为实例1的备根-->

[S2]stp instance 2 root primary                  <!--配置此交换机为实例2的主根-->

S3的配置如下:

[S3]stp mode mstp                     <!--将交换机配置成MSTP模式-->

[S3]stp region-configuration                        <!--进入MSTP配置模式-->

[S3-mst-region]region-name lv                     <!--配置域名为“lv”-->

[S3-mst-region]revision-level 1                    <!--配置版本等级为“1”-->

[S3-mst-region]instance 1 vlan 10                    <!--将vlan 10加入实例1中-->

[S3-mst-region]instance 2 vlan 20                   <!--将vlan 20加入实例2中-->

[S3-mst-region]active region-configuration                      <!--激活配置(必须配置)-->


4、验证:

在S3上查看STP接口角色及状态信息,结果如下(其中MSTID列表示实例):

<S3>dis stp br

 MSTID  Port                        Role  STP State     Protection

   0    GigabitEthernet0/0/1        ROOT  FORWARDING      NONE

   0    GigabitEthernet0/0/2        DESI  FORWARDING      NONE

   0    GigabitEthernet0/0/3        DESI  FORWARDING      NONE

   0    GigabitEthernet0/0/4        DESI  FORWARDING      NONE

   1    GigabitEthernet0/0/1        ROOT  FORWARDING      NONE

   1    GigabitEthernet0/0/2        ALTE  DISCARDING      NONE

   1    GigabitEthernet0/0/3        DESI  FORWARDING      NONE

   2    GigabitEthernet0/0/1        ALTE  DISCARDING      NONE

   2    GigabitEthernet0/0/2        ROOT  FORWARDING      NONE

   2    GigabitEthernet0/0/4        DESI  FORWARDING      NONE

可以看到实例 1中的GigabitEthernet0/0/2和实例 2中的GigabitEthernet0/0/1处于阻塞状态。同时,两个实例之间相互独立,彼此不受影响。而且现在vlan 10中的客户端可以和vlan 20中的客户端进行通信。

在S1上查看STP实例1,结果如下:

<S1>display stp instance 1

-------[MSTI 1 Global Info]-------

MSTI Bridge ID      :0.4c1f-cc61-18c1

MSTI RegRoot/IRPC   :0.4c1f-cc61-18c1 / 0

MSTI RootPortId     :0.0

MSTI Root Type      :Primary root //即主根桥,该桥是实例 1 的主根。

Master Bridge       :32768.4c1f-cc05-6a77

Cost to Master      :20000

TC received         :8

TC count per hello  :0

Time since last TC  :0 days 0h:6m:4s

Number of TC        :7

Last TC occurred    :GigabitEthernet0/0/1

 ----[Port1(GigabitEthernet0/0/1)][FORWARDING]----

 Port Role           :Designated Port

 Port Priority       :128

 Port Cost(Dot1T )   :Config=auto / Active=20000

 Designated Bridge/Port   :0.4c1f-cc61-18c1 / 128.1

 Port Times          :RemHops 20

 TC or TCN send      :5

 TC or TCN received  :8

 ----[Port2(GigabitEthernet0/0/2)][FORWARDING]----

 Port Role           :Designated Port

 Port Priority       :128

 Port Cost(Dot1T )   :Config=auto / Active=20000

 Designated Bridge/Port   :0.4c1f-cc61-18c1 / 128.2

 Port Times          :RemHops 20

 TC or TCN send      :6

 TC or TCN received  :0

 ----[Port3(GigabitEthernet0/0/3)][FORWARDING]----

 Port Role           :Designated Port

 Port Priority       :128

 Port Cost(Dot1T )   :Config=auto / Active=20000

 Designated Bridge/Port   :0.4c1f-cc61-18c1 / 128.3

 Port Times          :RemHops 20

 TC or TCN send      :10

 TC or TCN received  :0

本桥是实例 1 的主根桥(MSTI Root Type 为 Primary root),桥 ID 为 0.4c1f-cc61-18c1,注册根桥为本桥自身,根路径开销为 0。主桥桥 ID 为 32768.4c1f-cc05-6a77。

验证2:

需要从PC1 ping通 PC2

能通后tracert PC2

PING 10.1.20.1

TRACERT 10.1.20.1

根据结果表明PC1是通过S1到达R1            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渣渣盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值