MSTP应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MSTP浅析及应用
摘要:本文简单介绍了MSTP协议背景及特点,简要说明了MSTP的配置,同时根据MSTP协议在实际网络中的应用,阐述了如何在二层环路中,按需阻塞冗余链路,实现链路对流量的负载分担。
最后结合公司现有网络,说明了如何计算合适的COST 值,才能保证在多台接入交换机级联的情况下,按照预定的需求实现冗余链路的阻塞以及流量的分担。
关键词:MSTP;环路; 实例;COST值
1引言
目前,一个公司网络作为承载各个业务部门信息的中枢,对其可靠性的要求是不言而喻的。
因此,在Z公司网络的接入层都采用了两条千兆链路分别上联至汇聚核心交换机。
采用双上联虽然能够增加网络的可靠性,避免了单链路故障,但也形成了二层上的环路。
在二层交换网络中,一旦存在环路就会造成报文在环路内不断循环和增生,产生广播风暴,使网络瘫痪。
因此,需要一种机制来防止环路,既可以防止广播风暴,又能实现链路的备份。
在这种环境下STP协议应运而生,STP是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路。
STP协议和其他协议一样,是随着网络的不断发展而不断更新换代的。
最初被广泛应用的是IEEE 802.1D STP,随后以它为基础产生了IEEE 802.1w RSTP、IEEE802.1s MSTP,本文将重点讲述MSTP 的机制及实际应用。
2 MSTP协议的产生及特点
2.1 MSTP的产生
STP通过一定的算法将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。
STP虽然能够解决二层环路问题,但由于STP协议本身原因,致使收敛速度过慢,在网络拓扑发生变化后,不能够快速的达到稳定状态,因此,在如今要求较高的网络中已经不再适用。
为了解决STP协议的收敛速度缺陷,IEEE定义了基于IEEE 802.1w标准的快速生成树协议RSTP。
RSTP与STP相比有了巨大的进步,它解决了交换网络的快速收敛问题。
但RSTP和STP还存在一个共同的不足,就是两种协议都是单生成树协议,所有流量都沿着一个树转发,而被阻塞链路不承载任何流量,无法实现负载均衡,造成了带宽的极大浪费。
MSTP的出现解决了以上问题,实现了快速收敛、流量负载均衡。
2.2 MSTP的特点
MSTP不但具有RSTP快速收敛的特点,还能够基于VLAN实现多个生成树实例。
简单的说STP和RSTP是基于端口的,而MSTP是基于VLAN的。
MSTP是IEEE 802.1s中定义的一种新型生成树协议,相对于STP和RSTP,优势非常明显。
首先,MSTP 引入“域”的概念,把一个交换网络划分成多个域。
每个域内形成多棵生成树,生成树之间彼此独立。
另外,MSTP 还引入“实例(Instance)”的概念,可以将不同的VLAN 映射到不同实例中,MSTP 各个实例拓扑的计算是独立的(每个实例对应一棵单独的生成树),在这些实例上就可以实现VLAN 数据的负载分担。
同时MSTP 实现了类似RSTP的端口状态快速迁移机制。
MSTP同STP一样,使用BPDU报文进行生成树的计算,只是配置报文中携带的是设备上MSTP的配置信息。
3 MSTP在网络中的实现
网络按照分层原则建设,由核心层、汇聚层及接入层组成。
在技术上,采用万兆以太核心,10/100/1000M
自适应到桌面,满足数字业务发展需求。
楼宇核心交换采用两台H3C S9500系列交换机双机方式,汇聚层采用了4台H3C S9500系列交换机汇聚个楼层流量,4台汇聚分别命名为A、B、C、D。
各楼层接入采用H3C S5100交换机,分别上联至两台汇聚核心,以实现链路冗余,避免单链路故障。
在公司网络中定义了两个MST域,A、B汇聚交换机为一个MST域,命名为LAN-AB;C、D汇聚交换机为另一个MST域,命名为LAN-CD。
两个域的配置方法相同,文中以域LAN-AB为例说明MSTP的配置。
在两台或者多台开启了MSTP特性的设备上,只有当其配置的MST域域名、MST域内所有生成树实例对应的VLAN映射表、MST域的修订级别都分别相同,且这些设备之间有链路相通时,它们才属于同一个MST域。
图1为LAN-AB域的结构模型。
图1 LAN-AB域的多生成树实例模型
在LAN-AB域中有两个生成树实例,分别为实例1和实例2。
通过配置使不同VLAN的报文按照不同的生成树转发:VLAN 100—125的报文沿实例1转发,VLAN 126—150的报文沿实例3转发,实现了流量的负载均衡。
由于在同一个域的设备的MSTP域名及VLAN映射关系都要保持一致,因此,这里只给出了汇聚A的MSTP配置:
开启全局MSTP特性:
<SwitchA> system-view
[SwitchA] stp enable
进入MST域视图:
[SwitchA] stp region-configuration
配置MST域的域名、VLAN映射关系:
[SwitchA-mst-region] region-name LAN-AB
[SwitchA-mst-region] instance 1 vlan 100 to 125
[SwitchA-mst-region] instance 2 vlan 126 to 150
手工激活MST域的配置:
[SwitchA-mst-region] active region-configuration
MSTP通过计算来确定生成树的根桥,也可以通过命令来指定当前设备为某实例的根桥或备份根桥。
当根桥出现故障或被关机时,备份根桥可以取代根桥成为指定生成树实例的根桥。
在此网络中,配置汇聚A为实例1的根桥,同时也是实例2的备份根桥。
同样汇聚B为实例2的根桥,同时作为实例1的备份根桥。
以下配置指定了汇聚A为生成树实例1的根桥,生成树实例2的备份根桥:
< SwitchA > system-view
[SwitchA] stp instance 1 root primary
[SwitchA] stp instance 2 root secondary
接入层交换机是用户终端直接相连的设备,对于直接连接用户终端的端口被认为是边缘端口。
网络拓扑变化时,边缘端口不会产生临时环路。
如果用户将某个端口配置为边缘端口,那么当该端口由堵塞状态向转发状态迁移时,这个端口可以实现快速迁移,而无需等待延迟时间。
以下在接入层交换机上将配置端口GigabitEthernet1/0/1为边缘端口。
<Switch> system-view
[SwitchA] interface GigabitEthernet 1/0/1
[SwitchA -GigabitEthernet1/0/1] stp edged-port enable
接入层交换机端口被设置为边缘端口实现了端口的快速迁移。
但当这些端口接收到BPDU报文时,系统会自动将这些端口设置为非边缘端口,重新计算生成树,引起网络拓扑结构的变化。
如果有人伪造BPDU恶意攻击设备,就会引起网络震荡。
MSTP提供BPDU保护功能来防止这种攻击:交换机上启动了BPDU保护功能后,如果边缘端口收到了BPDU,MSTP就将这些端口关闭,被关闭的端口只能由网络管理人员恢复。
BPDU保护的配置也比较简单:
<SwitchA> system-view
[SwitchA]stp bpdu-protection
MSTP的配置相对来说是比较简单,但在功能上MSTP协议在二层网络中发挥了很好的作用,MSTP实现了类似于RSTP的端口快速切换,可以捆绑多个VLAN到一个实例中以降低资源利用率。
MSTP还可以向下兼容STP 和RSTP协议。
它允许不同VLAN的流量沿各自的实例转发发,从而为冗余链路提供了负载分担机制。
4 MSTP应用中的重点—COST值设置
4.1 COST值的作用
当指定了某个MSTP实例的根桥后,在本实例中就开始选择根端口、指定端口、替代端口以及备份端口。
网络收敛后,就会生成一个转发树,打破环路。
在STP收敛过程中,是根据各端口到根桥的路径COST值来确定端口状态的。
计算出合适的根路径COST值,就可以按需求来阻塞端口。
当MSTP的域中选定根桥后,在每个非根桥选取一个根端口,在每网段选取一个指定端口。
根端口与指定端口在这里都是依据根路径COST值选取的,
对于端口角色的选择过程在这里不做过多阐述。
根路径COST值的累加是这样一个过程:首先,根桥发送BPDU报文,,BPDU每经过一台交换机,COST值就会累加一次。
需要注意的是,COST值是在BPDU报文进入交换机端口的时候累加,BPDU 报文在端口发出的时候是不累加的COST值的。
也就是说根桥发送一个BPDU,在这个BPDU报文中,根路径COST值为0。
在应用中,实施人员需根据实际情况来手工设置COST值,情况越复杂,COST值的设置也就相对复杂。
4.2 实际应用中的COST值
在公司网络中,情况相对复杂,楼层众多,每个楼层同楼层汇聚设备形成一个环路。
每层用户数不同,对应交换机数目也就不相同。
而且整个区域只能采用统一的配置方式来实现不同楼层用户的应用。
下面将以AB区域为例,来说明应用情况。
图2是楼层两个接入交换机级联时生成树实例1的模型。
图2 两台接入设备级联时生成树实例1的模型
在这种情况下,以MSTP实例1为例,我们需要阻塞的是接入交换机02与汇聚B之间的链路,如上图所示。
如果各个端口的COST值设置不当,就会造成接入交换机之间的级联链路被阻塞,这样会使用交换机2上的流量经由汇聚B,再转发至汇聚A,无法实现按VLAN实现负载分担的功能,不符合设计初衷。
同样,在不同楼层三台、四台甚至更多接入交换机级联时,也会存在上述问题。
因此如何确定路径开销值,也就成了MSPT应用的一个重点。
在实际中的应用,一般接入交换机级联不会超过五台。
设置接口的COST值是为保证阻塞接入到汇聚之间的冗余链路,而不会使接入交换机之间的链路被阻塞。
同时由于不同的COST值导致阻塞的端口也不同,为达到统一规范,在每个MSTP实例中将接入层交换机的上联端口阻塞。
按以上两点要求,本文提出了两种COST值的设置方式。
1、固定汇聚A和汇聚B互联端口的COST值,设置为40,接入交换机上联端口的COST值默认值20。
而接入设备相级联的端口COST需要根据接入层设备级联的数量来确定,这里假设为X。
下图是两台级联情况下,实例1中各链路路径COST值设置情况如图3所示。
这里需要将接入交换机02与接入01相连的端口选取为根端口,此时,这一端口到根桥的路径COST值应小于及接入02上联端口到根桥的路径COST值,既20+X<20+40,得到X<40。
而阻塞端口则是接入交换机02的上联端口,为达到这一结果,接入02上联端口的根路径COST应该大于汇聚B下联端口的根路径COST,既20+X>40,得到X>20。
由此可以得出,当两台接入交换机级联时,级联端口间的COST值X应满足20<X<40。
图3 实例1中的路径COST值
在三台或更多接入交换机级联时,根据同样的计算方法,即可计算出级联端口的COST。
首先假设有N(N ≥2)台接入交换机级联,级联端口的COST都为X,则X应该满足条件:40<20+(N-1)*X<20+40(N≥2),既,20<(N-1)*X<40(N≥2)。
根据这一条件,就可以设置接入交换机级联端口的COST值X,从而达到预设的结果。
2、接入交换机上联端口COST采用默认值20,级联端口COST均设为固定值5。
根据COST值累加方法计算
出汇聚A和汇聚B互联端口的COST值范围,这里假设为Y。
假定有N(N≥2)台加入层设备相级联,如图4所示。
图4 N台接入设备级联情况下实例1中的COST值
这里需要将接入交换机N上的与接入N-1相连端口选取为根端口,此时,这一端口到根桥的路径COST应小于及接入交换机N的上联端口到根桥的路径开销,既20+5*(N-1)<20+Y,可得Y>5*(N-1)。
而阻塞端口则是接入交换机N的上联端口,为达到这一结果,接入交换机N上联端口的根路径COST应该大于汇聚B下联端口的根路径COST,既20+5*(N-1)>Y.由此可以得出,汇聚互联端口的路径开销COST值Y应满足以下条件:
5*(N-1)<Y<5*(N-1)+20(N≥2)。
当N=2时,5<Y<25
当N=3时,10<Y<30
当N=4时,15<Y<35
当N=5时,20<Y<40
当N=6时,25<Y<45
从以上内容可以看出,当N≤5时,Y值可取20到25之间的值,当N>5时,就无法取到合适Y值,只能降低接入交换机级联端口的COST值重新计算。
以上两种方法简要说明了路径COST值选取方式,通过计算合适的COST值,按需求打破二层环路。
这里只是给出一个简单的计算思路,在实际组网中,应结合实际应用设置正确的路径COST值。
5 结论
MSTP协议的应用既能解决stp收敛慢的问题,又可实现不同VLAN的流量沿着不同路径转发,从而为冗余链路提供了负载分担机制。
MSTP适用于复杂的组网,配置相对也比较简易,还可以通过设置根桥与备份根、端口路径开销等来选择任意VLAN的流量经由指定路径转发。
在MSTP的应用中,路径COST值的设置也是一个重要环节,合适的COST值不但能按需消除二层环路,而且在遇到的接入交换机扩展的时候,无需重新改动其它链路的COST值。
从这方面来讲,这也增强了网络的可扩展性。
中文参考文献
1 杭州华三通信技术有限公司.《构建企业级交换网络(V5.1)》
2 杭州华三通信技术有限公司.《MSTP技术白皮书》。