HCIP_MSTP_

上期说到STP和RSTP,MSTP IEEE802.1S中定义了多生成树协议MSTP(Multiple Spanning Tree Protocol),MSTP兼容STP和RSTP,既可以快速收敛又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN 数据的负载均衡。
MSTP解决了,RSTP和STP的共同缺陷:局域网中所有的vlan都是共享一颗生成树,无法基于vlan实现数据流量的负载均衡,造成带宽浪费,还有可能造成部分vlan报文无法转发。
MSTP通过把一个交换网络划分成多个域,每个域内形成多颗生成树,生成树之间彼此独立。每棵树叫多生成树实例 MSTI,每个域叫MST域。MSTP通过设置vlan映射表,(vlan和MSTI的对应关系),把vlan和MSTI联系起来。每个vlan只能对应一个MSTI,而一个MSTI可以对应多个vlan,最终形成多个生成树。不同vlan沿着不同路径转发,实现负载分担解决了stp,RSTP共有的缺陷。

我们跟着华为官方产品文档看一看
在这里插入图片描述
华为生成树默认是MSTP模式

MSTP基本概念

在这里插入图片描述
1.MSTP域
MST域是多生成树域(Multiple Spanning Tree Region)由交换网络中多台交换设备以及它们之间的网段所构成。如上图所示,一个MSTP网络可以有多个MST域,同一个MST域的设备具有下列特点:

  • 都启动了MSTP(华为设备默认MSTP)

  • 具有相同的域名

  • 具有相同的vlan到生成树实例映射配置

  • 具有相同的MSTP修订级别配置
    一个局域网可以存在多个MST域,各MST域之间在物理上直接或间接相连,用户可以通过MSTP配置命令把多台交换设备划分在同一个MST域内。
    2.MSTI/MSTI域根
    MSTI是多实例生成树,位于MST域内和vlan进行绑定,缺省所有的vlan都在实例0中,具有如下特点。

  • 一个MSTI域可以存在多颗生成树,每个树都有一个MSTI,MST域根是每个MSTI的树根,域中不同的MSTI都有各自的根

  • 多实例生成树(MSTI)彼此独立,MSTI可以与一个或者多个VLAN相对应。但一个vlan只能对应一个MSTI

  • 每个MSTI都有一个实例号,实例号从1开始,以区分实例号为0的IST。
    3.IST
    IST是内部生成树(internal Spanning Tree),是每个MST域内的缺省生成树,实际上就是实例号为0的MSTI,通常称为MSTI0,缺省所有VLAN都属于IST,如果一个VLAN没有被划分进任何MSTI,那该VLAN就属于IST。
    4.CST
    CST是公共生成树(Common Spanning Tree),是连接交换网络中所有MST域的一颗生成树,在CST中每个MST域被当做一台交换机,MST域之间运行STP,CST就是连接每个MST域连线组成的生成树。
    5.CIST
    CIST是公共内部生成树,由每个MSTI域内的IST以及MST域间的线路组成,IST可以说是CIST在每个MST域的片段

  • 总根是整个MSTP网络中优先级最高的交换机,就是CIST根桥。

  • 其中每个IST内聚力总根最近的交换机叫做每个IST的主桥(Master桥)。

  • 所有的IST和CST构成CIST
    6.端口角色
    MSTP在RSTP的基础上增加了两种端口,MSTP端口角色共有7中:根端口,指定端口,Alternate端口,Backup端口,边缘端口,Master端口,和域边缘端口
    前面几种端口已经做过介绍
    根端口 在非根桥上,离根桥最近的端口是本交换设备的根端口。根交换设备没有 根端口。
    根端口负责向树根方向转发数据。
    指定端口 对一台交换设备而言,它的指定端口是向下游交换设备转发 BPDU 报文的
    Alternate 端口 从配置 BPDU 报文发送角度来看,Alternate 端口就是由于学习到其它网桥 发送的配置 BPDU 报文而阻塞的端口。 从用户流量角度来看,Alternate 端口提供了从指定桥到根的另一条可切换 路径,作为根端口的备份端口。
    Backup 端口 从配置 BPDU 报文发送角度来看,Backup 端口就是由于学习到自己发送的 配置 BPDU 报文而阻塞的端口。 从用户流量角度来看,Backup 端口作为指定端口的备份,提供了另外一条 从根节点到叶节点的备份通路

Master端口 | Master端口是和总根相连所有路径中最短的端口,是交换设备上连接MST域总根的端口。Master端口是域中的报文去往总根的必经之路。Master 端口是特殊域边缘端口,Master 端口在 CIST 上的角色是 Root Port, 在其它各实例上的角色都是 Master 端口。
域边缘端口:域边缘端口是位于MST域的边缘,并连接其他MST域或SST的端口。进行MSTP计算时,域边缘端口在MSTI上角色和CIST实例的角色保持一致,即如果域边缘端口在CIST实例的角色是Master端口,则他在域内所有MSTI(多实例树)角色也是Master。
边缘端口 :如果指定端口位于整个域的边缘,不再与任何交换设备连接,这种端口叫 做边缘端口。
边缘端口一般与用户终端设备直接连接。
7.端口状态
端口状态和端口角色没有必然联系。MSTP 定义的端口状态与 RSTP 协议中定义相同

端口状态 说明
Forwarding 这种状态下,端口既转发用户流量也处理BPDU报文
Learning 这是一种过渡状态,在Learning状态下交换机会根据收到的用户流量构建MAC地址表,但不转发用户流量,所有叫做学习状态。此状态接受和发送BPDU报文,但不转发用户流量。
Discarding Discarding状态的端口只接收BPDU报文。

二、报文格式

在这里插入图片描述根据实验(配置忽略)我们创建了两个实例instance
在这里插入图片描述
并且SW1,SW2互为通过配置,instance1.2互为主备。
我们通过抓包查看报文格式。
在这里插入图片描述

字段内容 说明
Protocol Identifier 2字节 协议标识符
Protocol Version Identifier 1字节 协议版本标识符,STP为0,RSTP为2,MSTP为3.
BPDU Type 1字节 BPDU类型: 0x00:stp的configuration BPDU 0x80:stp的TCN BPDU 0x02:RST BPDU 或者MST BPDU
CIST Flags 1字节 CIST 标志字段
CIST Root Identifier 8字节 CIST的总根交换设备ID。
CIST External Path Cost 4字节 CIST外部路径开销,指从本交换设备所属的MST域到CIST根交换机所属的MST域的累积路径开销,CIST外部路径开销根据链路带宽计算
CIST Regional Root Identifier 8字节 CIST的域根交换设备ID 即IST Master ID 如果总根在这个域内,那么总根ID就是域根设备ID
CIST Port Identifier 2字节 本端口在IST中的指定端口ID
Message Age 2字节 BPDU报文的生存期
Max Age 2字节 BPDU报文的最大生存周期,超时则认为到根交换设备的链路故障。
Hello Time 2字节 Hello定时器,缺省为2秒
Forwad Delay 2字节 Forward Delay 定时器 缺省时间为15s
version 1 Length 1字节 version 1 BPDU长度,固定为0
version 3 Length 2字节 version 3 BPDU长度。
MST Configuration Identifier 51字节 MST配置标识,标识MST域的标签信息,包含4个字段。
CIST Internal Root Path Cos 4字节 CIST内部路径开销指从本端口到IST Master交换设备的累计路径开销,CIST内部路径开销根据链路带宽计算
CIST Bridge Identifier 8字节 CIST的指定交换设备ID
CIST Remaining Hope 1字节 BPDU报文在CIST中剩余跳数
MSTI Configuration Messages(may be absent) 16字节 MSTI 配置信息。每个 MSTI 的配置信息占 16 bytes,如 果有 n 个 MSTI 就占用 n×16bytes。

三、拓扑计算
我们知道MSTP将整个二层网络划分成为多个MST域,各个域之间通过计算生成CST(公共生成树)。域内则通过计算生成多颗树,每颗树都是一个实例,其中实例0叫IST,其他的多生成树实例为MSTI。MSTP跟STP一样,使用配置消息进行生成树计算,不过配置消息中携带的是设备上MSTP配置信息,

  • 根桥换设备ID:根交换设备ID用于选择CIST中的根交换设备,根交换设备 ID = Priority(16bits) + MAC(48bits)。其中 Priority 为 MSTI0 的优先级

  • 外部路径开销(ERPC 从 CIST的域根到达总根所在域的外部路径开销,MST域内所有交换设备保存的外部开销路径相同。若CIST的根交换设备在域中,则域内所有交换设备保存的外部路径开销为0.

  • 域根ID:域根ID用于选择MSIT中的域根。域根 ID = Priority(16bits) + MAC(48bits)。

  • 内部路径开销(IRPC) :本桥到域根的路径开销。

  • 指定端口:指定交换设备上,与本设备上根端口相连的端口。Port ID = Priority(4 位) + 端口号(12 位) 端口优先级必须是16的整倍数。

  • 接收端口:接收到BPDU报文的端口,。Port ID = Priority(4 位) + 端口号(12 位)。端 口优先级必须是 16 的整数倍
    如果端口收到的BPDU的配置消息优于端口上保存的配置信息,则端口上原来的配置信息会被新消息取代
    端口同时更新交换设备保存的全局配置,反之,新收到的BPDU被丢弃。
    1.计算CST
    CST和IST计算方式和RSTP类似。计算CST时,会把MST域在逻辑上当做一个网桥,其中网桥ID为IST域根ID,在CST计算中,比较向量为{总根,外部路径开销, 域根 ID,指定端口 ID,接收端口 ID)
    如下图
    在这里插入图片描述
    假设S1,S2,S3是域根,S1优先级最高,S3最低。
    那么

  • 在初始情况下,每个域被看做是一个网桥,网桥ID为域根ID,每个域向其他域发送该域根总根的BPDU,外部开销为0

  • 经过计算S1为总根。

  • 经过比较外部链路开销,可以确定每个域根面向S1域的端口为Mster端口。

  • 经过比较域根ID优先级,可以确定域边界端口的角色。
    2.计算IST
    CST和IST计算方式和RSTP类似。每个MST域内通过MSTP计算生成IST(内部生成树),CST(公共生成树),CST和IST构成了整个交换设备网络的CIST。但是在IST计算中,比较向量为{域根,内部路径开销, 指定桥 ID,指定端口 ID,接收端口 ID}。
    在这里插入图片描述
    如图:
    CST计算完成S1是域1 的域根,S4是域2 的域根,S7是域3 的域根,此时域根并不一定是各个域中优先级最高的网桥。而是距离总根最近的网桥。

  • 域内以域根为根桥,结合内部开销确定各个网桥端口角色,最终得到IST。

  • 域内网桥通过对比内部路径开销确定IST根端口角色。

  • 通过对比BPDU优先级确定IST端口上的角色。
    3.计算MSTI
    在MST域内,MSTP根据vlan和生成树实例的映射关系,针对不同的VLAN生存不同的生成树实例,每颗树独立进行计算,计算过程与STP计算生成树类似,MSTI的特点:

  • 每个MSTI独立计算自己的生成树,互不干扰

  • 每个MSTI生成树计算方法与STP基本相同。

  • 每个MSTI生成树可以有不同的根,不同的拓扑。

  • 每个MSTI都在自己的生成树内发送自己的BPDU。

  • 每个MSTI拓扑配置通过命令配置决定,

  • 每个端口在不同MSTI上的生成树参数可以不同。

  • 每个端口在不同MSIT上角色,状态可以不同。
    在运行MSTP协议的网络中,一个VLAN报文将沿着如下路径进行转发:

  • MST域内,沿着对应的MSTI

  • MST域间,沿着CST转发。

四、快速收敛

MSTP支持普通方式和增强方式两种P/A机制:
1.普通方式和RSTP 中的P/A机制相同
2.增强方式
在这里插入图片描述

  1. 上游设备发送P置位(Proposal)BPDU报文,请求进行快速迁移,下游设备收到后立即阻塞除边缘端口外所有端口。
  2. 上游设备继续发送A置位(Agreement)BPDU报文,下游设备收到后,根端口转为Forwarding状态,
  3. 下游设备回应Agreement报文后,上游设备把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。缺省情况下,华为设备使用增强的快速迁移机制。
    。如果华为数据通信设备和其 他制造商的设备进行互通,而其他制造商的设备 P/A 机制使用普通的快速迁移机制,此时, 可在华为数据通信设备上通过设置 P/A 机制为普通的快速迁移机制,从而实现华为数据通信 设备和其他制造商的设备进行互通。
    华为牛逼!!!
    明天写vlan,一天一篇不能掉
发布了10 篇原创文章 · 获赞 16 · 访问量 828

猜你喜欢

转载自blog.csdn.net/qq_45519920/article/details/103964142