这篇MSTP是真的爱了!

64 篇文章 32 订阅
37 篇文章 5 订阅

推荐文章:【新华三】网络工程师 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 二层隔离技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值