华为设备二层交换技术——mstp协议详解(代码片段)

author author     2023-05-07     616

关键词:

前面提到的STP协议以及Cisco的私有协议PVST+都属于单生成树(SST)协议,也就是对于支持多VLAN的设备只能运行单一的生成树。可以参考博文:Cisco设备二层交换技术——STP协议详解

MSTP是IEEE 802.1s中提出的一种STP和VLAN结合使用的新协议,它既继承了RSTP端口快速迁移的优点,又解决了RSTP中不同VLAN必须运行在同一棵生成树上的问题。接下来我们详细了解一下MSTP协议。

MSTP协议是一个公有的生成树协议,在实际生产环境中得到了广泛的应用。

一、MSTP概述

传统的生成树只能运行一个实例,且收敛速度慢,RSTP在传统STP基础上通过改进达到了加速网络拓补收敛的目的,但是目前依然存在一些缺陷。由于STP和RSTP在整个局域网中,所有的VLAN共享一个生成树实例,因此无法实现基于VLAN的负载均衡,网络环境稳定状态下备份链路始终不能转发数据流量,造成带宽的浪费!如图:
技术图片
当交换机S1为根网桥时,S2和S3之间的链路将处于阻塞状态,不能转发任何流量。即使网络出现拥塞时,S2和S3之间的链路也不可以被使用,造成资源的浪费!

学过Cisco的朋友都知道Cisco的PVST技术是一种基于VLAN的生成树技术。每个VLAN运行一个生成树,可以重复使用所有的链路,但是当企业生产环境中,有很多VLAN(比如100个VLAN时),交换网络中就需要运行100多个生成树实例,从而将大量占用交换设备的硬件资源及网络开销。

PVST和MSTP的比较图:
技术图片

下面详细介绍一下——MSTP

MSTP是多生成树技术,允许在一个交换环境中运行多个生成树,每个生成树成为一个实例。实例之间的生成树彼此独立,比如一个实例下的阻塞接口在另一个实例中可能是转发接口。和PVST不同的是:MSTP允许多个VLAN运行一个生成树实例。大部分情况下,运行多个生成树实例的好处就在于链路的负载分担,但是当只有一个冗余链路时,运行两个生成树实例完全可以实现负载均衡,同时又能节约系统开销。如图:
技术图片
现实企业环境中,网络环境中运行多个实例是非常常见的情况。因为这样可以实现:不同实例的根网桥在不同物理交换机上,不但可以实现负载分担,而且不会因为过多的实例而占用系统资源。

MSTP将环形网络修剪成一个无环的树形网络,避免广播风暴的发生,同时还提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。MSTP还兼容STP和RSTP。

MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。每棵生成树成为一个多生成树实例(MSTI),每个域称为一个MST域。

MSTP通过设置VLAN映射表,把VLAN和MSTI联系起来。每个VLAN只能对应一个MSTI,即同一VLAN的数据只能在一个MSTI中传输,而一个MSTI可以对应多个VLAN。这样就可以充分的利用网络带宽,有效避免资源浪费!

二、MSTP的基本原理

在MSTP中。通过把整个互联的二层以太网划分成若干域。在域内,把其中的VLAN分成若干组,每组具有相同的拓补结构,然后定义若干MSTI,并把这些生成树实例和不同的VLAN映射起来!

所谓实例就是多个VLAN的一个集合。通过将多个VLAN映射到一个实例,可以节省通信开销和资源占用率。MSTP各个实例拓补的计算相互独立,在这些实例上可以实现负载均衡。可以把多个相同拓补结构的VLAN映射到一个实例中,这些VLAN在接口上的转发状态取决于接口在对应MSTP实例的状态。

如果仅仅是为了防止广播风暴等环路问题,运行CST已经可以实现。运行多实例的主要目的在于使其负载分担链路负载。所以运行的生成树实例数量一般取决于冗余线路的数量,如果只有一条冗余线路,那么最好运行两个实例。如果有两条冗余链路,那么运行三个实例将是最好的选择,并尽可能保证每个实例中流量相差不大。

1.MSTP的网络层次

一个二层交换网络可以划分多个MSTP域,每个生成树域可以划分成多个MSTI,每个实例中可以映射多个VLAN。为了让朋友更加详细的了解,请看下图:
技术图片
图中的MSTP网络中包含3个MST域,分别是A、B、C,每个MST域中包含一个或多个MSTI。以MSTP域B为例,包含两个MSTI,分别是Instance1和Instance2。Instance1和VLAN1~5映射;Instance2和VLAN6~10映射。

2.MST域

MST域是多生成树域,由局域网中的多台交换机及它们之间的网段构成。一个局域网可以存在多个MST域,各MST域之间在物理上直接或间接相连。用户可以通过MSTP配置命令把多台交换机划分在同一个MST域内。MST域中的交换机都启用了MSTP,配置相同的域名及VLAN映射表。

3.MSTI

一个MST域内可以运行多个MSTI,MSTI之间彼此独立,MSTI可以与一个或者多个VLAN对应。但一个VLAN只能与一个MSTI对应。

4.端口角色

为了更好的理解端口的角色,请看下图:
技术图片

MSTP中的角色主要有以下几种:
根端口:非根交换机上到根交换机开销最小的端口就是该交换机的根端口。根端口能够转发数据流量到根交换机;图中P3、P4、P8为根端口。
指定端口:该交换机向下游交换机发送BPDU或者数据流量的端口;图中的P1、P2、P6(R3优先级高于R2)端口为指定端口。
边缘端口:位于网络最边缘处,不参与生成树计算,一般作为连接非交换机设备;如终端服务器、PC等。
预备端口:从转发流量的角度来看,预备端口提供了到达根交换机的一个备份链路。其接口状态为阻塞,不转发数据流量。当根端口被阻塞时,预备端口将成为新的根端口,主要是为了备份根端口;图中P5为预备端口。
备份端口:当同一台交换机的两个端口互相连接时就会形成一个环路,此时交换机会将其中一个端口堵塞,备份端口就是被堵塞的端口;从发送BPDU来看,备份端口就是由于学习到本设备上的其他端口发送的BPDU而被堵塞的端口;从转发用户流量来看,备份端口作为指定端口的备份,提供了一条从根交换机到叶节点(非根交换机)的备份链路;主要是备份指定端口;图中P7为指定端口。

MSTP中的端口角色除了边缘端口外,其他端口角色都参与MSTP的计算过程。同一端口在不同的MSTI可以担任搞不同的角色。

5.MSTP的端口状态

MSTP的端口有以下三种:

  • Forwarding:在这种状态下,端口既转发用户流量,又接收/发送BPDU报文,称为转发状态;
  • Learning:这是一种过渡状态。在Learning状态下,交换机会根据收到的用户流量,学习MAC地址表,但不转发用户流量,所以称为学习状态。Learning状态的端口接收/发送BPDU报文,但不转发用户流量;
  • Discarding:在这种状态下,端口只接收BPDU报文,称为丢弃状态;

三、MSTP的保护功能

1.BPDU保护

在交换机上,通常将直接与用户终端或文件服务器等非交换机设备相连的端口配置为边缘端口,以实现这些端口的快速收敛。正常情况下,这些端口不会收到BPDU。如果有人伪造BPDU恶意操作交换机,当这些端口接收到BPDU是,交换机会自动将这些端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。

启用BPDU保护功能后,如果接口收到BPDU报文,那么该接口将被自动shutdown,从而避免了后续的非法操作及由此带来的网络震荡。配置的命令如下:

[SW1]stp bpdu-protection 
//启用BPDU保护

2.根保护

由于管理失误或人为恶意操作,网络中的合法交换机的端口可能会接收到优先级更高的BPDU,这将使目前网络中的根失去根的地位,之后将重新计算生成树,引起网络震荡,还有可能造成网络拥塞。为了防止以上情况的发生,交换机提供根保护功能。根保护功能维持端口的角色来保护根交换机的地位。配置了根保护功能的端口,在所有实例上的端口角色都保持为指定端口。当端口收到优先级更高的BPDU时,端口的角色不会变为非指定端口,而是进入侦听状态,不再转发报文。经过足够长的时间,如果端口一直没有再收到优先级较高的BPDU,端口则会恢复原本的正常状态。配置命令如下:

[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]stp root-protection 
//开启根保护功能

3.环路保护

根端口和其他阻塞端口状态会周期性地接收来自上游交换机的BPDU。当链路拥塞或者单向链路故障时,这些端口无法接收来自上游交换机的BPDU,交换机会重新选择根端口。原先的根端口会转变为指定端口,而原先阻塞的端口会变成转发状态,从而造成交换网络中可能产生环路。环路保护功能会抑制这种环路的产生。在启动了环路保护功能后,如果根端口收不到来自上游的BPDU,根端口会被设置进入阻塞状态;而阻塞端口则会一直保持在阻塞状态,不再转发报文,从而不会在网络中形成环路。收到拓补变更的BPDU时,端口才会被激活。配置命令如下:

[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]stp loop-protection 
//启用环路保护功能

4.TC保护

交换机在接收到TC-BPDU报文后,会执行MAC地址表项和ARP表项的删除操作。如果有人伪造TC-BPDU报文非法操作交换机,交换机短时间内会收到很多TCP-BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大的隐患,启用TC保护功能后,在单位时间内,MSTP进程收到TC类型BPDU报文的数量大于配置的阈值,那么MSTP进程只会处理阈值指定的次数。对于其他超出阈值的TC类型BPDU报文,定时器到期后,MSTP进程只对其统一处理一次,这样可以避免频繁的删除MAC地址表项和ARP表项,从而达到保护交换机的目的。配置命令如下:

[SW1]stp tc-protection threshold 3
//启用TC保护,并设置的阈值为3

四、MSTP的相关配置

1.案例环境如下:

技术图片

2.案例要求

1.所有交换机启用MSTP协议,区域名称改为huawei,修改版本级别为1;
2.利用MSTP协议VLAN10和VLAN20的互访;
3.VLAN10的流量走向:PC1→S3→S1→R1;
4.VLAN20的流量走向:PC2→S3→S2→R1;

3.案例实施

(1)配置客户端及路由器IP地址

配置客户端地址过程过程略!配置路由器地址如下:

[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 10.1.10.254 24
[R1-GigabitEthernet0/0/1]int g0/0/0
[R1-GigabitEthernet0/0/2]ip add 10.1.20.254 24
//华为设备接口默认是开启的,也可以使用undo shutdown开启一下!

(2)配置VLAN及Trunk

本次实验中,客户机与交换机连接口为Access接口,二层交换机与交换机连接口为Trunk接口,二层交换机和路由器连接口为Hybrid接口。常识:路由器不可以识别带VLAN标签的数据帧。

S1的配置如下:

[S1]vlan batch 10 20
[S1]int g0/0/2
[S1-GigabitEthernet0/0/2]port link-type hybrid
[S1-GigabitEthernet0/0/2]port hybrid untagged vlan 10
[S1-GigabitEthernet0/0/2]port hybrid pvid vlan 10
[S1-GigabitEthernet0/0/2]int g0/0/1
[S1-GigabitEthernet0/0/1]port link-type trunk
[S1-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[S1-GigabitEthernet0/0/1]int g0/0/3
[S1-GigabitEthernet0/0/3]port link-type trunk
[S1-GigabitEthernet0/0/3]port trunk allow-pass vlan all
//基础指令这里就不介绍什么意思了!

S2的配置如下:

[S2]vlan batch 10 20
[S2]int g0/0/2
[S2-GigabitEthernet0/0/2]port link-type hybrid
[S2-GigabitEthernet0/0/2]port hybrid untagged vlan 20
[S2-GigabitEthernet0/0/2]port hybrid pvid vlan 20
[S2-GigabitEthernet0/0/2]int g0/0/1
[S2-GigabitEthernet0/0/1]port link-type trunk
[S2-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[S2-GigabitEthernet0/0/1]int g0/0/3
[S2-GigabitEthernet0/0/3]port link-type trunk
[S2-GigabitEthernet0/0/3]port trunk allow-pass vlan all

S3的配置如下:

[S3]vlan batch 10 20
[S3]int g0/0/1
[S3-GigabitEthernet0/0/1]port link-type trunk
[S3-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[S3-GigabitEthernet0/0/1]int g0/0/2
[S3-GigabitEthernet0/0/2]port link-type trunk
[S3-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[S3-GigabitEthernet0/0/2]int g0/0/3
[S3-GigabitEthernet0/0/3]port link-type access
[S3-GigabitEthernet0/0/3]port default vlan 10
[S3-GigabitEthernet0/0/3]int g0/0/4
[S3-GigabitEthernet0/0/4]port link-type access
[S3-GigabitEthernet0/0/4]port default vlan 20

(3)配置MSTP

根据实验要求,实验命令如下:

S1的配置如下:

[S1]stp mode mstp
//将交换机配置成MSTP模式
[S1]stp region-configuration 
//进入MSTP配置模式
[S1-mst-region]region-name huawei
//配置域名为huawei
[S1-mst-region]revision-level 1
//配置版本等级为1
[S1-mst-region]instance 1 vlan 10
//将VLAN10加入实例1中
[S1-mst-region]instance 2 vlan 20
//将VLAN20加入实例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
[S2]stp region-configuration 
[S2-mst-region]region-name huawei
[S2-mst-region]revision-level 1
[S2-mst-region]instance 1 vlan 10
[S2-mst-region]instance 2 vlan 20
[S2-mst-region]active region-configuration 
[S2]stp instance 1 root secondary 
[S2]stp instance 2 root primary 
//命令与S1基本相似,这里就不多说了!

S3的配置如下:

[S3]stp mode mstp
[S3]stp region-configuration 
[S3-mst-region]region-name huawei
[S3-mst-region]revision-level 1
[S3-mst-region]instance 1 vlan 10
[S3-mst-region]instance 2 vlan 20
[S3-mst-region]active region-configuration 

(4)验证

在S3上使用一下命令查看效果!

[S3]display stp brief 
//查看STP接口角色及状态信息
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1        DESI  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时,g0/0/2接口阻塞
   1    GigabitEthernet0/0/3        DESI  FORWARDING      NONE
   2    GigabitEthernet0/0/1        ALTE  DISCARDING      NONE
     //运行实例2时,g0/0/1接口阻塞
   2    GigabitEthernet0/0/2        ROOT  FORWARDING      NONE
   2    GigabitEthernet0/0/4        DESI  FORWARDING      NONE

可以自行验证效果!PC1和PC2是可以通信的,不管任何交换机之间任意一条线路故障,也不会影响通信(模拟线路故障后,稍微等一下再测试通信)!

———————— 本文至此结束,感谢阅读 ————————

华为交换技术及mstp协议(代码片段)

1.Hybrid接口Hybrid接口是华为设备的一种特殊二层接口模式,类似于Access接口和Trunk接口,是一个工作在二层的接口技术,可以对数据帧打VLAN标签或不打VLAN标签。2.VLAN的基本概念特点:隔离广播,方便管理,提高安全vlan接口:Acces... 查看详情

vrrp+mstp配置详解华为ensp实验(代码片段)

@[toc]一.前言之前我们配置了MSTP,完成了一个基础的需求,现在我们继续来完善一下,使用VRRP+MSTP配置需求如下:1.1MSTPMSTP不仅涉及多个MST(生成树实例),而且可以划分为多个MST区域(MST区域,也称为MST区域)。通常,MSTP网络... 查看详情

stp+rstp详解(代码片段)

...存在多种保护机制等;说明:STP技术包括:STP、RSTP、MSTP华为设备开启,默认STP版本为MSTP二层环路危害:1、广播风暴:数据帧的数量呈指数型增长;2、mac地 查看详情

华为交换机mstp综合实验详解(代码片段)

在网络部分理论知识的学习过程中,MSTP(即多实例生成树)属于比较难掌握的知识点,本实验为大家介绍MSTP综合实验讲解,实验要求和拓扑如下。实验要求:1.Client1属于vlan10,Client2属于vlan20,Server1属于vlan30;2.vlan10、vlan20、vla... 查看详情

华为多实例生成树rstp配置详解(代码片段)

首先,我们弄清楚STP、RSTP、MSTP区别STP:单实例生成树协议;RSTP:快速生成树协议;MSTP:多实例生成树协议;通过STP、RSTP协议可以实现1.逻辑上防止链路环路;2.物理上实现链路备份;通过MSTP协议不但可以实现上述两点,还可... 查看详情

在华为设备认识vlan和配置(代码片段)

...没有划分广播域的情况:通过eNsp模拟如图中有多台二层华为交换机设备(s 查看详情

数通学习二层交换mstp协议学习

MSTP兼STP和RSTP,通过多实例能实现对业务流量和用户流量的隔离,同时还提供了数据转发的多个冗余路径,在数据转发的过程中实现VLAN数据的负载均衡。在MSTP中,可以将多个VLAN映射到一个实例instance,MSTP将为每个instance运行一... 查看详情

二层stp的原理(代码片段)

...的第一个问题:单点故障解决方案:提供网络冗余/备份1设备的备份2链路的备份所带来的新问题:二层数据转发环路新的解决方案:STP/RSTP-spanning-treeprotpocol【生成树协议】凸显出另外一个问题:利用率解决方案:MSTP【生成实例树... 查看详情

[网络协议篇]vlan详解之gvrp详解(代码片段)

...之间vlan手工配置繁杂容易忽略出错的问题只能用在二层设备的trunk口上。全局开启GVRP,接口开启GVRP,接口:gvrpregistrationfixedFixd只发不学,Nomal又发又学(默认),Forbidden不发不学目录干货:一、GARP和GVRP二、... 查看详情

华为设备二层交换技术——hybrid口理论知识

...未知的隐患,如线路损坏、设备损坏等。下面我们主要对华为的二层设备进行了解,不过首先要了解的就是二层设备(交换机)主要的就是——VLAN。正常业务。好的设计不仅使功能得到体现,还可以应对一些未知的隐患,如线... 查看详情

华为-交换技术hybrid(代码片段)

...层网络设备(三层交换机、路由器等)。Hybrid的特点1、华为交换机接口默认为Hybrid模式2、既可以实现access接口功能,也可以实现trunk接口功能3、不借助三层设备即可实现跨vl##标题an通信和访问控制4、相对于access接口和trunk接口... 查看详情

mstp装逼模式

...负载均衡操作实验:要求:现有2台三层交换机(A,B)和4台二层交换机(C,D,E,F),下面每台二层交换机都有VLAN10,15,20,25.现在需要将这些二层交换机分给三层交换机A,B各一半管理。如:A管理VLA 查看详情

华为交换机堆叠

堆叠:将多台交换机设备组合在一起,虚拟化成一台交换设备优点:不再需要二层MSTP和VRRP,简化了网络配置,轻松地扩展端口数、带宽和处理能力交换机角色主交换:负责管理整个堆叠,堆叠中只有一个主交换被交换:负责接替主... 查看详情

华为交换机vrrp故障处理(代码片段)

拓扑结构:以华为S7703为核心交换,双链路上联天融信防火墙,下联思科3550和华三5120为汇聚,接入层有思科2950和华为3700。技术配置:vrrp+mstp故障现象:1、在更换旧的思科接入交换机时,计划将新的华为交换机直接联核心。测... 查看详情

有关冗余或者备份的那些协议

...非根交换机rootport根端口指定端口非指定端口配置命令(华为)默认开启的是mstp改模式[huawei]stpmodestp改优先级[huawei]stppriority数值实际中用途: 查看详情

云计算网络之--linuxbridge详解(代码片段)

...交换机一样,其他端口可以连接bridge,终端虚拟设备通过接入bridge实现互相通信和外部设备的通信。linuxbridge主要包括四个部分,这也是简单二层物理交换机的必备部分,可以说是虚拟了 查看详情

生成树(stp)解析(代码片段)

...T的基础上进行了升级)4、快速生成树5、MSTP/MST/802.1S(华为设备默认使用该协议)产生背景三层架构:冗余—线路、设备、网关、电源UPS3层架构:线路冗余—二层桥接环路导致问题: 设备性能长 查看详情

osi二层技术之stp生成树协议

...启动时,每个交换机都认为自己是根桥,发送自己交换机设备的配置BPDU参数来选举根桥,主要通过BID来确认根桥。BID=优先级+MAC地址先比较优先级,越小越优,在比较MAC地址,越小越优。二、在非根桥上选举根端口确定了根交换... 查看详情