Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1742149
  • 博文数量: 782
  • 博客积分: 2455
  • 博客等级: 大尉
  • 技术积分: 4140
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-06 21:37
个人简介

Linux ,c/c++, web,前端,php,js

文章分类

全部博文(782)

文章存档

2015年(8)

2014年(28)

2013年(110)

2012年(307)

2011年(329)

分类:

2013-01-06 21:03:52

一. 生成树相关的几个概念STP/RSTP/MSTP

STP:IEEE Std 802.1D-1998定义,不能快速迁移。即使是在点对点链路或边缘端口,也必须等待2倍的forward delay的时间延迟,网络才能收敛。


RSTP:IEEE Std 802.1w
定义,可以快速收敛,却存在以下缺陷:
局域网内所有网桥共享一棵生成树,不能按
vlan阻塞冗余链路。


MSTP
可以弥补这样缺陷,它允许不同vlan的流量沿各自的路径分发,从而为冗余链路提供了更好的
负载分担机制。

MSTP:Multiple Spanning Tree Protocol
多生成树协议
在规范
IEEE Std 802.1s中第13节描述。MSTP算法通过应用MSTPSTPRSTP的桥任意互连的桥接网络,为分配给任一个特定VLAN的帧提供了简单而完备的连通性。MSTP允许不同VLAN的数据从各自的路径分发。各条路径建立在由LANMST桥组成的MST域中的各个独立的多生成树实例的基础上。
二.生成树相关的负载分担STP/RSTP/MSTP

 

1STPSpanning-Tree Protocol

STP协议生来就是为了冗余而存在的,单纯树型的网络无法提供足够的可靠性,由此我们引入了额外的链路,这才出现了环路这样的问题。但单纯是标准的802.1D STP协议并不能实现真正的冗余与负载分担。

 

STPIEEE 802.1D标准,它内部只有一棵STP tree,因此必然有一条链路要被blocking,不会转发数据,只有另外一条链路出现问题时,这条被blocking的链路才会接替之前链路所承担的职责,做数据的转发。无论怎样,总会有一条链路处于不被使用的状态,冗余是有了,但是负载分担是不可想象的。

 

ciscoSTP做了改进,它使得每个VLAN都运行一棵stp tree,这样第一条链路可以为vlan 1 2 3服务,对vlan 4 5 6 blocking,第二条链路可以为vlan 4 5 6 forwarding,对vlan 1 2 3关闭,无形中实现了链路的冗余,负载分担。这种技术被称之为PVST+

 

随着网络的发展,人们发现传统的STP协议无法满足主备快速切换的需求,因为STP协议将端口定义了5种状态,分别为:blocking listening learning forwarding disabling,想要从blocking切换至forwarding状态,必需要经过50秒的周期,这50秒我们只能被动地去等待。20秒的blocking状态下,如果没有检测到邻居发来的BPDU包,则进入listening,这时要做的是选举Root BridgeDesignate PortRoot Port15秒后,进入learninglearning状态下可以学习MAC地址,为最后的forwarding做准备,同样是15秒,最后到达转发状态。这样的延时在现代网络环境下是让人极为难以忍受的。

 

2RSTP802.1w的出现解决了延时的问题,它的收敛速度很快,当然CISCO也针对这种技术推出了自已的RPVST+技术。RSTPSTP基础上额外定义了两种port role(注意这里的概念,端口角色),分别是alternatebackup。另外重新规定了port state(端口状态),分别为discardingLearningForwarding.

 

STP的一大失败之处在于混淆了port roleport state两种概念,在RSTP上,这样的问题不再存在了,port stateport role无关了。alternate port责任是为另一台交换机上的链路作备份,而backup port是为本交换机上的端口作备。

 

RSTP最重要的变化在于对BPDUtype字段的利用上,之前STP只使用了其中的两个位

 

 7

 6

 5

 4

 3

 2

 1

 0

TC

Proposal

Port-

role

learning

forwarding

Agreement

TCA

 

另外6个位中实现了很多的功能,包括不再需要去等待50秒的时间完成主备切换,直接利用proposalagreement协商即可,这样大大缩短了收敛时间。

 

RSTP还定义了两个新的概念:edge portlink type,如果是edge port,表明下面接的只能是主机,环路的存在是不可能的,所以我们可以直接将其从discarding切换到forwarding状态,类似于STP中的port fast技术。而link type定义了这条链路是point-to-point的还是shared。如果有pt-pt环境下,我们就可以做快速的切换了

 

3MSTP802.1s

STPRSTP都采用了一棵STP tree,负载分担不可实现,而CISCOPVST+RPVST+采用了每个VLAN一棵生成树,虽然实现了负载分担,但是会占用非常多的CPU时间。这也正是MSTP802.1s)产生的原因

 

MSTP可以将多个VLAN的生成树映射为一个实例,即vlan map to a instance,我们不需要那么多的生成树,只需要按照冗余链路的条数来得出需要几棵生成树。

 

如果只有两条链路,并且有1-1000VLAN,我们可以将1-500定义为instance 1,将501-1000定义到instance 2。只生成两棵树12,同样实现了冗余与负载分担。

 

MSTP是基于RSTP的,没有RSTPMSTP是无法运行的。

 

另:

PVST+  RPVST+ 模式下:交换机可支持128STP instance

MSTP模式下:交换机可支持65MST instance,当然每个实例中的VLAN数目是无限的。

阅读(1262) | 评论(0) | 转发(0) |
0

上一篇:openwrt结构分析

下一篇:如何编译OpenWrt

给主人留下些什么吧!~~