推荐文章:【新华三】网络工程师 H3C设备-如何配置单臂路由,实现不同网段通信?来来来~轻松掌握单臂路由技术原理!

  • 背景

  • 基本术语

  • 实例

  • 端口角色

    • 1. 外部路径开销和内部路径开销

    • 2. 域边缘端口

    • 3. Alternate端口

    • 4. Backup端口

    • 5. Master端口

  • 基础配置:MSTP单实例部署

  • 常见问题

背景

古老的STP 802.1D标准是所有VLAN共用一棵生成树,也就是说,不管交换网络中存在多少个VLAN,STP计算的结果都是一棵生成树,拿上图来说,STP最终将如图所示的接口阻塞掉,这就造成所有VLAN的流量均走SW3的左侧链路,而右侧链路无法得到有效的利用。

于是后来业界又出现了perVLAN的生成树协议,也就是一个VLAN一棵生成树,如此一来,每个VLAN都有其自己独立的生成树,基于不同的VLAN,我们可以进行不同的优先级、接口开销的配置从而实现阻塞不同的端口,这样就能够实现不同的VLAN流量分流的目的。但是这种方案也是有一定弊端的,由于网络中的交换机需要为每一个VLAN单独进行生成树计算,因此当VLAN数量较多时,生成树的数量也是非常多的,网络的每一次震荡都将触发交换机们的重新计算,这是相当耗资源的。

这就提到了接下去要介绍的MSTP(Multiple Spanning Tree Protocol),MSTP协议是IEEE 802.1S标准。所谓MSTP也就是多生成树实例,通过将多个VLAN映射到一个生成树实例(Instance),从而基于实例来计算生成树,同属于一个实例的VLAN享有同一棵生成树,不同的实例对应不同的生成树,这样,既可实现数据分流,又能够极大程度的减小交换机的计算负担。

在上图所示的网络中,我们将VLAN10、VLAN20映射到MSTP实例1,将VLAN30、VLAN40映射到MSTP实例2(要求为三台交换机配置完全相同的VLAN与实例的映射关系),然后将SW1配置为实例1的主根、将SW2配置为实例1的次根;将SW2配置为实例2的主根、将SW1配置为实例2的次根,如此一来,网络中就会针对实例1及实例2分别产生一棵生成树,而且阻塞不同的接口。那么VLAN10及VLAN20的流量即会从SW3的左侧链路转发,而VLAN30及VLAN40会从右侧链路转发,流量即可实现负载分担。

基本术语

对于一个大型的交换网络,我们可以根据实际需要进行MSTP域的规划,当然如果网络规模有限,全网用一个域也是很平常的。一个“域”由同属一个域的交换机组成。例如在上图中,网络中存在三个MSTP域。

域包含域名(Region Name)、修订级别(Revision Level)、格式选择器(Configuration Identifier FormatSelector)、VLAN与实例的映射关系(mapping of VIDs to spanning trees)等内容,其中域名、格式选择器和修订级别在BPDU报文中都有相关字段,而VLAN与实例的映射关系在BPDU报文中表现摘要信息(Configuration Digest),该摘要是根据映射关系计算得到的一个16字节签名。只有上述四者都一样且相互连接的交换机才认为在同一个域内。

同一个域内所有交换机都有相同的MST域配置。缺省时,域名就是交换机的桥MAC地址,修订级别等于0,格式选择器等于0,所有的VLAN都映射到实例0上。

需强调的是:同一个域内的交换机,VLAN的映射必须完全一致。

实例

单独拿一个域来说,如上图所示,域名为Huawei,这个域包含四台交换机,域内存在多个VLAN,一共有三个MSTP实例,实例与VLAN的映射关系如下:

  1. MSTI 1:vlan 10 20

  2. MSTI 2:vlan 30 40

  3. MSTI 0:其他(默认所有的VLAN都映射到实例0)

所谓“实例”就是多个VLAN的一个集合。在MSTP中,各个实例拓扑的计算是独立的,一个MSTP实例单独计算一棵生成树,在这些实例上就可以实现负载均衡。使用的时候可以把多个相同拓扑结构的VLAN映射到同一个实例中,这些VLAN在端口上的转发状态将取决于对应实例在MSTP里的转发状态。

端口角色

1. 外部路径开销和内部路径开销

外部路径开销是相对于CIST而言的,同一个域内外部路径开销是相同的;内部路径开销是域内相对于某个实例而言的,同一端口对于不同实例对应不同的内部路径开销。

2. 域边缘端口

域边缘端口是指位于MST域的边缘并连接其它MST域或SST的端口。

在进行MSTP计算的时候,域边缘端口在MSTI上的角色和CIST实例的角色保持一致,即如果边缘端口在CIST实例上的角色是Master端口(连接域到总根的端口),则它在域内所有MST实例上的角色也是Master端口。

3. Alternate端口

从发送BPDU来看,Alternate端口就是由于学习到其它交换机的发送的BPDU而被阻塞的端口。从转发用户流量来看,Alternate端口提供了从指定交换机到根交换机的一条备份路径。

Alternate端口是根端口的备份端口,如果根端口被阻塞后,Alternate端口将成为新的根端口。

4. Backup端口

当同一台交换机的两个端口互相连接时就存在一个环路,此时交换机会将其中一个端口阻塞,Backup端口就是被阻塞的那个端口。

从发送BPDU来看,Backup端口就是由于学习到自己发送的BPDU而被阻塞的端口。从转发用户流量来看,Backup端口,作为指定端口的备份,提供了一条从根交换机到叶节点的备份通路。

5. Master端口

Master端口是MST域和总根相连的所有路径中最短路径上的端口,它是交换机上连接MST域到总根的端口。Master端口是域中的报文去往总根的必经之路。

Master端口是特殊域边缘端口,Master端口在IST/CIST上的角色是Root Port,在其它各实例上的角色都是Master。

基础配置:MSTP单实例部署

上图所示的拓扑是典型的电信软件数据网络组网场景,CoreSW1及CoreSW2是两台核心交换机,SwitchBlade1及SwitchBlade2是ATAE/E9000机框的两块交换板,您可以把它们也当做普通的交换机。这四台设备构成了一个口字型的二层环路。现在我们在四台设备上部署MSTP来消除环路,所有的交换机都加入相同的MSTP域,并且都使用一个实例,也就是实例0,缺省时所有的VLAN都映射到实例0。

我们将CoreSW1规划为主根桥,CoreSW2规划为次根桥,并且将SwitchBlade2上联核心交换机CoreSW2的接口的STP cost调节成一个非常大的值,从而使得该接口被MSTP阻塞,网络中存在的二层环路就此打破。

另外,为了优化STP的运行,在所有交换机上开启TC保护及BPDU保护功能。参考配置如下:CoreSW1:

[CoreSW1] stp mode mstp
[CoreSW1] stp enable
[CoreSW1] stp instance 0 root primary  #将CoreSW1设置为实例0的主根
[CoreSW1] stp tc-protection
[CoreSW1] stp bpdu-protection
[CoreSW1] stp region-configuration
[CoreSW1-mst-region] region-name Huawei  #配置MSTP域名为Huawei
[CoreSW1-mst-region] active region-configuration  #启用MSTP配置

CoreSW2:

[CoreSW2] stp mode mstp
[CoreSW2] stp enable
[CoreSW2] stp instance 0 root secondary #将CoreSW2设置为实例0的次根
[CoreSW2] stp tc-protection
[CoreSW2] stp bpdu-protection
[CoreSW2] stp region-configuration
[CoreSW2-mst-region] region-name Huawei
[CoreSW2-mst-region] active region-configuration

ATAE/E9000交换板1:

[SwitchBlade1] stp mode mstp
[SwitchBlade1] stp enable
[SwitchBlade1] stp tc-protection
[SwitchBlade1] stp bpdu-protection
[SwitchBlade1] commit
[SwitchBlade1] stp region-configuration
[SwitchBlade1-mst-region] region-name Huawei
[SwitchBlade1-mst-region] commit

ATAE/E9000交换板2:

[SwitchBlade2] stp mode mstp
[SwitchBlade2] stp enable
[SwitchBlade2] stp tc-protection
[SwitchBlade2] stp bpdu-protection
[SwitchBlade2] commit
[SwitchBlade2] stp region-configuration
[SwitchBlade2-mst-region] region-name Huawei
[SwitchBlade2-mst-region] commit
[SwitchBlade2-mst-region] quit
[SwitchBlade2] interface GigabitEthernet 0/0/20
[SwitchBlade2-GigabitEthernet0/0/20] stp cost 200000  #将该接口的cos值调大
[SwitchBlade2-GigabitEthernet0/0/20] commit

对于CoreSW1而言,由于它是根桥,因此该设备所有接口的STP角色应该都是指定接口(Designated Port,简写为DESI),而且所有的接口状态都是Forwarding:

<CoreSW1>display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/1 DESI FORWARDING NONE
0 Eth-Trunk12 DESI FORWARDING NONE

说明:Eth-trunk12是CoreSW1上的一个聚合接口,是将多个物理接口进行捆绑从而形成的一个逻辑意义上的接口。关于链路聚合的概念,请查阅本书相关章节,此处将其当做一个普通接口来理解即可。

对于CoreSW2,其Eth-trunk12连接着根桥SW1,这个接口应该是根端口(Root Port,简写为ROOT),GE1/0/1接口应该是指定端口,而且所有的接口状态都是Forwarding:

<CoreSW2>display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet1/0/1 DESI FORWARDING NONE
0 Eth-Trunk12 ROOT FORWARDING NONE

对于SwitchBlade1,其直连主根的接口GE0/0/20应该为根端口,Eth-trunk10端口为指定端口,而且所有的接口状态都是Forwarding:

[SwitchBlade1] display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/20 ROOT FORWARDING NONE
0 Eth-Trunk10 DESI FORWARDING NONE

对于SwitchBlade2,其Eth-trunk10接口应该为根端口,而GE0/0/20端口将处于Discarding状态,从而被阻塞,如此一来网络中不再存在二层环路:

[SwitchBlade2] display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/20 ALTE DISCARDING NONE
0 Eth-Trunk10 ROOT FORWARDING NONE

常见问题

  1. 由于实例与VLAN的映射不一致导致MSTP状态异常

SW1及SW2运行MSTP,SW1作为汇聚交换机,其上有VLAN:10、20、30、40;SW2作为接入层交换机,其上只有VLAN10。

SW1的配置如下:

[SW1] stp region-configuration
[SW1-mst-region] region-name huawei
[SW1-mst-region] instance 1 vlan 10 20 30 40
[SW1-mst-region] active region-configuration
[SW1-mst-region] quit
[SW1] stp instance 1 root primary

SW2的配置如下:

[SW2] stp region-configuration
[SW2-mst-region] region-name huawei
[SW2-mst-region] instance 1 vlan 10
[SW2-mst-region] active region-configuration

配置完成后,发现SW2的生成树状态异常,它认为自己是实例1的根。原因在于两台交换机的MSTP实例1的VLAN映射不一致,导致SW2忽略SW1传递过来的关于实例1的信息,因此认为自己是根。将SW2的配置修改如下:

[SW2] stp region-configuration
[SW2-mst-region] region-name huawei
[SW2-mst-region] instance 1 vlan 10 20 30 40
[SW2-mst-region] active region-configuration

即可,注意SW2上不需要创建VLAN 20 30 40(如果该交换机没有连接这几个VLAN的用户),也就是说即使SW2没有创建VLAN 20 30 40也是能够按照上述配置,将VLAN 10 20 30 40映射到实例1。

推荐文章:【新华三】网络工程师 H3C如何配置VLAN-trunk 二层隔离技术

这篇MSTP是真的爱了!相关推荐

  1. alpinestars与丹尼斯_胖摩的骑行路 篇四:真的值到了—丹尼斯MOTORSHOE AIR骑行靴...

    胖摩的骑行路 篇四:真的值到了-丹尼斯MOTORSHOE AIR骑行靴 2018-11-20 12:08:29 10点赞 23收藏 17评论 小编注:想获得更多专属福利吗?金币加成.尊享众测.专属勋章 ...

  2. 男人哭了,是因为他真的爱了

    如果你不爱一个人,请放手,好让别人有机会爱她. 如果你爱的人放弃了你,请放开自己,好让自己有机会爱别人 有的东西你再喜欢也不会属於你的, 有的东西你再留恋也注定要放弃的, 人生中有许多种爱,但别让爱成 ...

  3. 真的爱你计算机谱子,真的爱你钢琴简谱-数字双手-Beyond

    真的爱你钢琴简谱歌词 无法可修饰的一对手 带出温暖永远在背后 纵使罗嗦始终关注 不懂珍惜太内疚 沉醉于音阶她不赞赏 母亲的爱却永未退让 决心冲开心中挣扎 亲恩终可报答 春风化雨暖透我的心 一生眷顾无言 ...

  4. 嚇人的五篇鬼故事‥真的頗恐怖

    嚇人的五篇鬼故事‥真的頗恐怖你怕不怕? 嚇人的五篇鬼故事 1.暗撫 的手 小孩生日,爸爸媽媽很開心, 於是幫他拍錄像. 小孩在床上跳啊,跳啊... 卻不小心摔到地上死了. 爸爸媽媽很傷心 過了幾個月, ...

  5. 计算机音乐谱真的爱你,真的爱你-BEYOND-和弦谱-《弹吧》官网tan8.com-和弦谱大全,学吉他,秀吉他...

    E 此浏览器不支持画布 主歌A C G 无法可修饰的一对手 Am F 带出温暖永远在背后 C 纵使罗嗦始终关注 G C 不懂珍惜太内疚 C G 沉醉于音阶她不赞赏 Am F 母亲的爱却永未退让 C 决 ...

  6. 伴读计划丨《我们时代的神经症人格》:我是真的爱自己的宠物吗?

    Hello, 这里是壹脑云读书圈,我是则则~ 大家有多久没有好好的读一本书了呢? 我做为一个爱买书又时常没有毅力坚持看完的一本书人(又菜又有瘾),看着买回来的书在书桌上积灰,时不时会心生愧疚,也对自己 ...

  7. 真的爱你用计算机怎么按,说说控经典句子 如果他真的爱你,其实你不用那么漂亮...

    一. 沉默中有没有一次是真的吻过,记得我们曾经来过 二. 你看到了没,爱让我流胆怯的泪. 三. 黛色浅浅映桃花,片片零落成缦雨,丝丝扣的情人殇. 四. 断了的琴弦,弹奏着从前,一起走过的路线没有终点. ...

  8. 华为boss力荐公司高层看的一篇文章,真的很经典!!![转载]

    今天是 22 岁的最后一天.几个月前,我从沃顿商学院毕业,用文凭上"最高荣誉毕业"的标签安抚了已经年过半百的老妈,然后转头辞去了毕业后的第一份工作,跟一家很受尊敬的公司.还有 15 ...

  9. 如何确定你的伴侣真的爱你?复杂数学公式告诉你

    北京时间11月26日消息,据国外媒体报道,一位英国科学家提出了一个复杂的数学方程式,试图理解真爱到底是什么. 苏基·芬恩(Suki Finn)是来自英国南安普顿大学的博士后研究人员,她的方程式据称能够 ...

最新文章

  1. php cgi windows7安装,PHP For Windows64位
  2. 【机器学习】通俗的元胞自动机算法解析和应用
  3. 计算机视觉算法与应用清华大学,计算机视觉-清华大学.ppt
  4. 个人日报0701-0703
  5. 【网络配置】双网卡访问
  6. 【遥感物候】1983-2012年时间序列中国地区GIMMS 3g NDVI下载(已进行旋转、格式转换、投影变换和裁剪)
  7. 2014年图灵奖_2014年人民选择奖:投下您的一票
  8. python获取小王的ip地址_用Python获取本机的IP地址
  9. 怎样用ZBrush中的Curves和Insert笔刷创建四肢
  10. catia装配体怎么把零件旋转180度_各种装配夹具,来看看适合你用的
  11. vuejs+webpack环境搭建
  12. 论文阅读笔记——人脸网络:人脸识别和聚类的统一嵌入
  13. ASCII码对照表(Unicode 字符集列表)
  14. 如何拼局域网所有ip_如何查看局域网内所有ip?
  15. Shell脚本编程30分钟入门学习
  16. 51单片机——LED点阵屏
  17. 数据整理(Data Wrangling)
  18. 关联规则挖掘(Apriori算法)
  19. 字符转换 (15分)
  20. java json 长度限制_tomcat解决POST请求过长的限制

热门文章

  1. YOLOv6:又快又准的目标检测框架开源啦《转载》
  2. jQuery Validate.js 清除验证
  3. 算法总结——栈与队列
  4. 验证email是否合法
  5. 智慧养老平台建设方案word
  6. 电脑格式化后文件怎么恢复?
  7. 码蹄集天天向上擂台第一题(最大的平均数)为什么超时长和超过内存了
  8. Android freeform多窗口模式和Desktop电脑模式使能
  9. 【linux python 进程】一招教你杀死所有的python进程
  10. 计算机主板清理,如何正确清洗电脑主板 电脑主板清洗教程【详解】