【2022争霸赛*干货满满】网络技术原理详解分享之MSTP(Multiple Spanning Tree Protocol)多生成树协议原理分享
  

山东_朱文鑫 52295人觉得有帮助

{{ttag.title}}
大家好,我是大白,正所谓寸寸河山寸寸金,离分裂力谁任? 杜鹃再拜忧天泪,精卫无穷填海心! 优质的帖子也在尽力中提供,也希望各位道友多多支持,让我引劫渡劫成功哈哈哈。

大白队口号就是:砸锅卖铁我最行,拼死拼活就要赢!!!!!!!!!!!!

本贴不做技术分享,还是依旧要把我们的STP的讲完,之前我们也做过STP实验以及STP的原理,以及RSTP的实验与原理讲解。我们经过之前的讲解可以看出STP确实从根本上解决了网络环路所带来的问题,RSTP在一定程度上通过引入P/A机制缩短了收敛时间,但是我们也说过,由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡。

为了解决局域网内所有的VLAN共享一棵生成树,无法在VLAN间实现数据流量的负载均衡的问题所以我们又引入了截止今日所普遍常用的MSTP(Multiple Spanning Tree Protocol)多生成树协议。

今天我们正式进入STP的完结篇,也提前恭喜坚持学习STP知识的小伙伴准备毕业了!!!!!!!

我们今天就带着最后的问题进行学习吧。

MSTP是什么?

MSTP(Multiple Spanning Tree Protocol)模式即多生成树协议,它增加了实例和VLAN映射的概念。SSTP模式和RSTP模式均可以当作MSTP模式的一种特例,即只存在一个实例0的情况。MSTP模式还提供了VIL.AN环境的快速聚合和负载均衡。

为什么引入MSTP?

RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡。另外,链路被阻塞后将不承载任何流量,造成了资源、带宽浪费,还有可能造成部分VLAN的报文无法转发和次优二层路径问题。为此,引入了MSTP,用以解决上述问题。

如下所示:

7330663417b14c1f3c.png


      如图所示网络中,生成树结构在图中用虚线表示,所有链路开销相同,BID大小S6<S5<S4<S3<S2<S1。经RSTP计算,S6为根交换设备,S2和S5之间、S1和S4之间的链路被阻塞。HostA和B同属于VLAN2,由于S2和S5之间的链路被阻塞,S3和S6之间的链路又不允许VLAN2的报文通过,因此HostA和HostB之间无法互相通讯。

MSTP有什么作用?

      MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,每个生成树对应着多个结构相同的VLAN,生成树之间彼此独立

      每个域叫做一个MST域;每棵生成树叫做一个多生成树实例MSTI;VLAN与MSTI的对应关系叫做VLAN映射表。

如下图所示:

9632263417ba777a78.png


       如图所示,MSTP通过设置VLAN映射表,把VLAN和MSTI联系起来。每个VLAN只能对应一个MSTI(即同一VLAN的数据只能在一个MSTI中传输),而一个MSTI可能对应多个VLAN。经计算,最终生成两棵生成树:MSTI1以S4为根,转发VLAN2的报文;MSTI2以S6为根,转发VLAN3的报文。这样,不同VLAN的报文沿不同的路径转发,实现了负载分担,同时,解决了VLAN2内主机A和主机B的不互通问题。

MSTP中名词的概念:

MST域、MSTI、VLAN映射表

        MST域,由交换网络中的多台交换设备以及它们之间的网段构成。同一个MST域的设备具有以下特点:均使能MSTP,有相同的域名、有相同的修订级别、有相同的VLAN映射表

        多生成树实例MSTI,可以看成是多个拓扑结构相同的VLAN的一个集合。通过将多个结构相同的VLAN捆绑到一个MSTI,即把多个相同拓扑结构的VLAN映射到一个实例里,可以节省通信开销和资源占用率。MSTI的计算相互独立,在这些实例上可以实现负载均衡

        VLAN映射表,即VLAN和MSTI的对应关系。一个VLAN只能对应一个MSTI(即同一VLAN的数据只能在一个MSTI中传输),一个MSTI可能对应多个拓扑结构相同的VLAN。

6965463417c71ef53b.png


CST、IST、CIST、总根、域根、主桥


       CST:公共生成树,连接所有MST域的一棵生成树。它将每个MST域看成是一个交换机,通过STP或RSTP协议计算生成的一棵生成树。

       IST:内部生成树,是各MST域内的一棵生成树。它是一个特殊的MSTI:MSTI的ID为0;无论有没有配置,IST都是存在的;所有VLAN默认都映射到IST实例。

       CIST:所有MST域内的IST加上CST就构成了CIST。

       总根:即CIST的根交换机。在整个网络中,每台交换机都有IST,IST中BID最小的交换机就是总根。


       域根:分为IST域根和MSTI域根。IST域根,是指IST中距离总根最近(域间)的交换设备;MSTI域根,是每个生成树实例MSTI的树根,即每个MSTI中BID最小的交换设备。

       主桥:每个MST域各一个,是MST域内距离总根最近(这里的“最近”是仅考虑区域间路径而言的)的交换设备。因此,每个MST域中,主桥就是该MST域的IST域根。

*IST域根,并不是BID最小的,而是距离总根最近的(域间).在各MST域中,IST域根、主桥,二者是同一设备。

MSTP端口角色:

MSTP在RSTP的基础上新增了2种端口角色,MSTP的端口角色共有7种:RP、DP、AP、BP、EP、域边缘端口和Master端口。前5种与RSTP中的定义一致。

域边缘端口:位于MST域的边缘并连接其它MST域的端口。

Master端口:主桥上距离总根最近的端口(即主桥上CIST的RP端口)。


      Master端口解读:

    【Master端口,是一种特殊的域边缘端口。特殊,是因为它是MST域中的报文去往总根的必经之路(最近),也是唯一出口

      Master端口,在CIST上的角色是RP端口,MST域中,在各MSTI的角色都是Master端口。】

MSTP与RSTP的端口状态是一样的。

4607763417e0b54659.png


MSTP报文:


      MSTP使用多生成树桥接协议数据单元MST BPDU作为生成树计算的依据。MST BPDU报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录


     MSTP二层网络中,一个MST域中可以定义多个MSTI,但所有自定义的MSTI和IST实例共用一批MST BPDU来进行生成树的计算,通过这批MST BPDU的交互完成所有树的收敛。


MST BPDU报文格式




目前,MSTP的报文存在两种格式:

      dot1s:IEEE802.1S规定的报文格式

      legacy:私有协议报文格式

华为采用的是端口收发MSTP报文格式可配置功能(stp compliance),能够实现对BPDU报文格式的自适应。

1279963417eea82eb6.png



在IEEE802.1S规定的报文格式(dot1s)中,除MST专有字段外,其它字段与RST BPDU类似。
某些类似字段:

      CIST RID:表示总根。

      CIST ERPC:CIST外部路径开销,表示发送此BPDU的网桥所属的域距离总根所属的域的CST路径开销。

      CIST Region Root ID:表示IST域根的ID(也即主桥的ID)。如果把一个MST域看成是一个交换设备,用IST域根代表一个MST域,则CIST Region Root ID与RST BPDU中的BID类似。

      CIST PID:表示MST BPDU的发送端口ID。


某些MST专有字段:

     MST Configuration ID:MST配置标识,表示MST域的标识信息共包括4个字段,只有4个字段全相同并且互联的交换设备才被认为是在同一MST域中。Format Selector固定为0,Config Digest(配置摘要)是利用MD5算法把MST配置表(即VLAN映射表)加密成摘要信息。

    CIST IRPC:CIST内部路径开销,表示从本端口到IST域根(即主桥)的路径开销。

     CIST BID:发送此MST BPDU的交换机BID。


     MSTI Configuration MessagesMSTI配置信息每个MSTI的配置信息占16B,总大小为16B*n。每
个MSTI包含有6个字段:

     MSTI Flags:新增Master标志位取代了TCA位,表示该交换设备是否为主桥。

     MSTI Region Root ID:表示MSTI域根。

     MSTI IRPC:MSTI内部路径开销,表示从本端口到MSTI域根的路径开销。

     MSTI Bridge Pri:交换机在此MSTI中的优先级。

     MSTI Port Pri:端口在此MSTI中的优先级。

     MSTI 剩余跳数:BPDU报文在MSTI中的剩余跳数。


MSTP拓扑计算过程:


MSTP通过交互MST BPDU进行MSTP拓扑计算。MSTP拓扑计算过程可分为2大部分:CIST的计算和MSTI的计算。具体过程如下:

(1)先选出总根,即CIST根桥。

(2)在每个MST域中选出IST域根,即主桥

(3)在IST域根(即主桥)上选出RP端口,即主桥在CIST上的RP端口

(4)计算出MST域间链路的DP和AP/BP端口

(5)在每个MST域中,IST和MST上计算出相应角色的端口。


优先级向量及比较规则:

CIST和MSTI都是根据优先级向量来计算的,而这些优先级向量信息都包含在MST BPDU中。各交换设备通过交互MST BPDU来生成MSTI和CIST。

       参与CIST计算的优先级向量:{总根ID、ERPC、IST域根ID、IRPC、发送者ID、发送端口ID、接收端口ID}。

       参与MSTI计算的优先级向量:{MSTI域根ID、IRPC、发送者ID、发送端口ID、接收端口ID}。

比较规则如下:

       依次比较优先级向量内部的各个变量,值越小优先级越高,值相同比较下一个变量。

       如果接口收到的BPDU优于接口缓存的BPDU,则接口缓存的BPDU被替换,同时,更新交换设备保存的全局BPDU;反之,新收到的BPDU被丢弃。

MSTI的特点:

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

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

      每个MSTI在自己的生成树内发送MST BPDU,进行维护。

      每个MSTI的拓扑通过命令配置决定。

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

      每个端口在不同MSTI上的角色、状态可以不同。

      另外需要注意的是,在运行MSTP协议的网络中,一个VLAN报文将沿着如下路径转发:在MST域内,沿着其对应的MSTI转发,在MST域间沿着CST转发

我们以下图为案例进行分析:

已知交换机BID:SW1<SW2<SW3…<SW10,则CIST实例拓扑计算过程如下:

39834634181413329a.png


       第一,选举CIST根桥。BID最小的交换机就是CIST的根桥,即总根。启动时,10台交换机都认为自己既是CIST根桥,同时也是域内主桥,所有端口都是DP/Discarding,所以开始向外发送自己的BPDU。例如SW1中,参与CIST拓扑计算的优先级向量是{SW1,0,SW1,0,SW1,X}。所有交换机产生的BPDU经过比较后,最终SW1因在实例0中的BID最小而成为CIST的根桥,同时也是region1的主桥。

      第二,选举MST域内主桥。依次比较外部路径开销ERPC和BID,较小者优选。在region1中主桥就是SW1(总根也是所在MST域的主桥),首先根据定义主桥一定是边界交换机,依据比较选举规则,在region2中主桥是SW4,在region3中主桥是SW7。如果把SW2-SW4之间的链路成本加倍,这时在region2中SW4和SW6到CIST根桥所在域的ERPC是一样的,继续比较BID,由于SW4小于SW6,所以SW4是region2的主桥。

      第三,在每个MST域中,选出IST域根(即主桥)的RP端口。依次比较ERPC、指定交换机ID、指定端口ID和接收端口ID,较小者优选。如下图所示,新增2条链路。这时,主桥SW4上RP端口选举,ERPC相同,指定交换机SW2<SW3,再比较指定端口ID,则优选e0/0/2口为RP端口。

      第四,计算出MST域间链路的DP和AP/BP端口。依次比较ERPC、指定交换机ID和指定端口ID,较小者优选。总根所在MST域的边界交换机上的对外端口都是DP端口(不考虑自环而致的BP端口),所以SW2和SW3上的对外端口都是DP端口;SW6和SW8间的互连链路的两个端口,ERPC相同,由于SW6<SW8,所以优选SW6上的e0/0/1口为DP端口,而SW8上的为AP端口。

    第五,在每个MST域内,计算IST和MSTI的拓扑。(与STP类似)

--------------------------------------------------------------------


大家可以根据下面的拓扑思考一下下面的案例:

案例思考:

如图,SW1是CIST的根桥,BID:SW1<SW4<SW11<SW22<SW33<SW44。请分析SW4访问SW1的路径。

3146263418209547aa.png


与上一个案例的分析过程类似,最终得出:SW1是CIST根桥(即总根),SW4的e0/0/2口是RP端口,e0/0/1口是AP端口。



--------------------------------------------------------------------




多区域案例分析:


多区域的问题:多区域会造成区域间流量没有负载分担能力,及可能存在次优路径,如非必要,尽量使用单区域去设计生成树

42746634182a5c66f4.png


区域之间主桥上的RP口是唯一出口


如图所示,公司有4台交换设备,核心层设备SW1和SW2处在区域1,汇聚层设备SW3和SW4处在区域2中,交换机彼此之间全互连。Vlan和实例的映射关系如图所示。其中,BID关系:SW1<SW2<SW3<SW4。分析核心层和汇聚层的访问链路;如果4台设备在同一区域会如何?

分析过程:

首先,很容易看出:SW1是CIST的根桥,也是region1的主桥,SW3是region2的主桥。

其次,SW3 G0/2口收到的BPDU{SW1,0,SW1,0,SW2,G0/2},SW3 G0/3口收到BPDU{SW1,0,SW1,0,SW1,G0/3},经计算,依次比较ERPC(均为10),指定交换机ID(SW1<SW2),得出G0/3口是RP端口。由于区域之间主桥上的RP口是唯一出口,所以两个区域间的其它链路被阻塞,即SW3 G0/2口,SW4的对外两个端口都是AP。

所以,核心层和汇聚层的访问链路就是SW1和SW3之间的G0/3接口链路。

       若配置多区域,区域间互访仅一条互通链路,没有负载分担能力,流量集中在单根链路上容易形成瓶颈。比如此例中,SW1-SW3链路是2个区域间的唯一互访路径。 而配置单区域,上下两部分互访时,可能存在多条互通链路。比如,若SW1是根桥,则上下两部分互访时可通过SW1-SW3和SW1-SW4这两条链路。

       若配置多区域,区域间互访时流量一定经过主桥,可能存在次优路径。比如,PC4访问PC2,流量访问路径是SW4-SW3-SW1-SW2(次优路径)。而配置单区域,访问路径是SW4-SW1-SW2,优于多区域时的访问路径。

MSTP的快速收敛机制:

493706341838818f81.png


MSTP支持普通P/A机制和增强P/A机制。其中,普通P/A机制与RSTP中的P/A机制相同。增强P/A机制,是在普通P/A机制的基础上,改变下游根端口进入Forwarding状态的条件。普通P/A机制中,下游根端口是当同步过程完成后(所有其他端口的synced置位后根端口的synced置位),进入Forwarding状态;增强P/A机制中,上游交换机(DP)主动发送Agreement使下游根端口进入转发Forwarding状态


所以增强型的P/A机制为:

1.上游设备发送Proposal报文,请求进行快速迁移。下游设备接收到后,若与上游设备相连的端口被设置为根端口,则阻塞所有非边缘端口。

2.上游设备继续发送Agreement报文。下游设备接收到后,根端口转为Forwarding

3.下游设备回应Agreement报文。上游设备接收到后,把与下游设备相连的端口设置为指定端口,并立即进入Forwarding状态

备注:缺省情况下,华为设备使用增强型PA机制。如果华为设备与使用普通P/A机制的厂商设备进行互通,需要在华为设备上配置命令“stp no-agreement-check”使其转变为普通P/A机制。

还是那句话STP知识点比较多,所以要学习就需要耐心去学习,不明白的就先去看之前发的STP、RSTP的分享贴,以上就是MSTP的知识,以案例为基础,大家可以自行根据我的叙述进行研究,思考一下中间留下的案例是否你的思路跟答案一致。

61759634184e612752.png


以上就是本次的网络技术原理详解分享之MSTP(Multiple Spanning Tree Protocol)多生成树协议原理分享,后续再陪同大家完成MSTP的实验分享,关于STP章节的学习任务我们将顺利毕业完结,坚持的小伙伴恭喜们STP章节顺利毕业,感谢大佬们的参阅,此贴先到这里后续会带上更加实用的帖子,感谢大家!

励志分享超清壁纸语句~~:

2699063418550b0155.png


熟读唐诗三百首,不会作诗也会吟。——孙洙


好的今天就到这里,老样子,感谢各位大神的参阅,孩子为了挣豆子不容易,孩子家里穷没豆子吃饭了!!!

打赏鼓励作者,期待更多好文!

打赏
56人已打赏

339015 发表于 2022-10-10 10:23
  
感谢楼主带来有关MSTP的有关原理分享,内容非常详尽细致,期待楼主带来更多有价值的案例分享
zjwshenxian 发表于 2022-10-10 22:28
  
感谢楼主带来有关MSTP的有关原理分享,内容非常详尽细致,期待楼主带来更多有价值的案例分享
tianjt 发表于 2022-10-11 07:53
  
每天学习 一点点,每天进步一点点!
新手081074 发表于 2022-10-11 07:53
  

感谢楼主带来有关MSTP的有关原理分享,内容非常详尽细致,期待楼主带来更多有价值的案例分享
网泰王晓庆 发表于 2022-10-11 08:02
  
楼主的文章图文并茂,清晰易懂,看完这波操作可以轻松上手了,如遇到问题再向楼主请教~
sangfor_1126 发表于 2022-10-11 08:25
  
每天一看 打卡打卡~~
水若善 发表于 2022-10-11 08:41
  
坚持每日学习打卡
阿勒泰 发表于 2022-10-11 08:47
  
感谢分享,有助于工作,学习了!!!
新手626351 发表于 2022-10-11 09:13
  
每天学习 一点点,每天进步一点点!
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
每周精选
干货满满
技术咨询
信服课堂视频
秒懂零信任
自助服务平台操作指引
新版本体验
标准化排查
产品连连看
安装部署配置
功能体验
GIF动图学习
玩转零信任
2023技术争霸赛专题
技术晨报
安全攻防
每日一记
深信服技术支持平台
天逸直播
华北区交付直播
社区帮助指南
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
通用技术
卧龙计划
华北区拉练
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV

本版版主

12
185
6

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人