设为首页 收藏本站
查看: 1193|回复: 0

[经验分享] 你了解Cisco的PVST、PVST+和Rapid-PVST+吗?

[复制链接]

尚未签到

发表于 2016-6-5 10:36:01 | 显示全部楼层 |阅读模式
   以下内容摘自笔者编著,一直全面热销的《Cisco/H3C交换机配置与管理完全手册》一书。

  11.5 理解Cisco专有的PVST、PVST+和Rapid-PVST+
  在本章最前面就说到了,Cisco除了对IEEE发布的通用生成树标准提供支持外,它还自己针对这些公用生成树标准进行了改进,开发了对应版本的生成树技术——PVST、PVST+、Rapid-PVST+。在PVST+和Rapid-PVST+模式下,最多可支持128个生成树实例。

  11.5.1 生成树技术发展历史回顾
在正确认识Cisco所使用的生成树技术之前,先来简单回顾一下生成树技术截止目前为止的一些发展历程。
最初的生成树技术就是IEEE802.1D标准形式发布的STP技术。它是把整个交换网络都当作一个生成树实例,也就是Common Spanning Tree,公共生成树(Cisco把它称之为“Mono Spanning Tree”,单生成树),要求整个交换网络不存在二层环路。这样一来,在STP技术中,网络中的所有VLAN共享同一个生成树实例,各VLAN使用802.1q中继模式。这种设计的最大不足就是不能通过冗余链路实现VLAN交互工程,即如果一条链路被阻塞了,也就是阻塞了所有VLAN通信在它上面通过。为了解决这一不足,Cisco建议采用它自己开发的PVST/PVST+生成树解决方案,为交换网络中的每个VLAN运行一个独立的生成树实例。这种解决方案使得每个VLAN使用不同的逻辑拓扑,可以明显地允许二层交互工程。但是这种解决方案也带来了不足,可以说是走到了原来的IEEE 802.1D STP的另一个极端,因为随着网络中VLAN数量的增长,PVST/PVST+方案浪费了大量的交换机资源,并且使得整个生成树管理变得十分复杂(因为网络中存在实例数一般都大于网络中活跃的VLAN数),最终就是因为每个VLAN有一个生成树实例,实例数太多。
随着时间的推移,IEEE也没有闲着,也知道原来的IEEE 802.1D的以上不足,正在寻求解决方案。于是就发布了改进的生成树协议版本——RSTP(快速生成树协议)。此时Cisco也同步跟进,发布了针对RSTP的改进版Rapid-PVST+。因为在RSTP中,IEEE还是把整个交换网络当成一个生成树实例,尽管提高了二层收敛速度,但是在较大网络中,这种改善还不足以使得冗余链路上就可以自由地进行VLAN通信交互,还是会存在因端口状态转换延时而出现数据丢失现象。Cisco仍然坚持按照它自己的每个VLAN一个生成树实例方式,于是就出现了前面说到的Rapid-PVST+。但是Cisco同样知道自己的每VLAN生成树方案所带来的以上不足,于是它就开始考虑抛弃原来一直坚持的每VLAN生成树方案,开发一种称之为MISTPMultiple Instances Spanning Tree,多实例生成树)方案。但很快它就发现IEEE也已发布了类似的标准,那就是IEEE 802.1s MSTPMultiple Spanning Trees Protocol,多生成树协议)。因为两者的功能几乎一样,为了避免术语上的混淆,和一些小功能上差异,最终Cisco就宣布直接等同采用IEEE 802.1s MSTP,这是Cisco直接等同采用的第一个生成树技术。
以上就是整个生成树技术的简单发展历程,从中可以看出Cisco是如何看待和使用这些生成树技术的。

  
  11.5.2 Cisco PVST
   Cisco自己开发的最早生成树协议版本就是对应IEEE 802.1D标准STP技术的PVST(Per-VLAN Spanning Tree,每VLAN生成树)。从它的名称上就可以看出,它不再像STP那样把整个交换网络当成一个生成树实例,而是为每个VLAN当作一个生成树实例。在IEEE 802.1D标准STP方案中,它只定义了一个CST(通用生成树),假设整个桥接网络中仅一个生成树实例,这样就要求整个网络无环路。而在PVST中,每个VLAN一个生成树实例,只要每个VLAN内部无环路就可以,不考虑其他VLAN拓扑。这是它与IEEE 802.1D STP的最大区别。
在IEEE 802.1D STP中,如图11-28所示的拓扑中,A与D1、D2的两条连接链路中同一时刻中肯定只有一条链路是活跃的,而另一条链路是被阻塞的,因为在STP中是把整个交换网络看成一个生成树实例,不允许在这个实例中出现环路。而在PVST中允许一个VLAN的中继信息在被其他VLAN阻塞时可以为另一些VLAN的中继信息进行转发。因为PVST把每个VLAN作为一个独立的网络,所以它有能力通过在一条中继链路上转发一些VLAN通信,而在另一条中继链路上转发另一些VLAN通信而实现二层负载均衡。此时的图11-28中就变成了图11-29所示了。
DSC0000.gif

   另外,PVST中的VLAN中继是使用ISLPVST BPDU的格式和STP/RSTP BPDU格式已经不一样,发送的目的地址也改成了Cisco保留地址01-00-0C-CC-CC-CD,而且在VLAN中继的情况下PVST BPDU被打上了ISL VLAN标签,所以,PVST协议并不兼容STP/RSTP协议。
  
  
  
  
11.5.3 Cisco PVST+Rapid-PVST+  
  PVST+Per-VLAN Spanning Tree Plus,增强型PVST)是使用通用的802.1Q中继协议来实现PVST功能的,是PVST的改进版本。虽然它支持了通用的802.1Q中继,但它仍不能在非Cisco设备上支持。
Rapid-PVST+又是在PVST+RSTP两种协议基础上开发的,可以在每个VLAN中有一个快速生成树(RST)实例,支持RSTP特性。
  经过改进的PVST+和Rapid-PVST+协议在VLAN 1上运行的是普通STP协议,在其他VLAN上运行PVST协议。因为改用了802.1Q中继,所以PVST+协议可以与STP/RSTP互通,在VLAN 1上生成树状态按照STP协议计算;在其他VLAN上,普通交换机只会把PVST BPDU当作多播报文按照VLAN号进行转发。但这并不影响环路的消除,只是有可能VLAN 1和其他VLAN的根桥状态可能不一致。
  图11-30中所有中继链路的默认VLANVLAN 1(也就是各中继端口的PVID=1),并且都同时允许VLAN 10VLAN 20的通信。假设AD1都是运行STP(或RSTP)协议,而D2运行的是PVST+(或Rapid-PVST+)协议。这样一来,对于VLAN 1来说,如果D1是根桥,则D2的中继端口1就会被阻塞,因为它比端口2到达D1的开销大。而对于VLAN 10VLAN 20,因为AD1都是运行STP,所以也都属于同一个生成树实例中,而在D2中运行的是PVST+,所以每个VLAN都有一个生成树实例。在D2发出的PVST BDPU只能自己看到,所以在这两个VLAN上都把D2当作是根桥。VLAN 10VLAN 20发出的PVST BPDU会同时被D1A转发,这时D2肯定会检测到这种环路,然后可能会在中继端口2上阻塞VLAN 10VLAN 20,但仍保留VLAN 1的通信,同时还将在中继端口1上保留VLAN 10VLAN 20的通信,最终实现了PVTS+(或Rapid-PVST+)与STP(或者RSTP)的兼容。
DSC0001.gif
另外,由于在PVSTPVST+Rapid-PVST+中,每个VLAN都有一棵独立的生成树,还可实现二层负载均衡。在图11-31中,四台交换机都运行PVST+(或Rapid-PVST+)协议,并且各条中继链路都允许VLAN 1VLAN 10VLAN 20的通信通过,并且各中继端口的PVID=1

DSC0002.gif
  
  
  

  现假设D1是所有VLAN的根桥,然后通过VLAN中继修剪配置可以使得D4的中继端口1和中继端口2分别阻塞VLAN 10VLAN 20的流量,但D4的中继端口1仍然可以承载VLAN 20的流量,中继端口2所在链路也可以承载VLAN 10的流量,这样就实现了二层的链路备份和负载均衡功能。这在STPRSTP生成树技术中是无法实现的,因为在这两种生成树协议中,整个交换网络都视作一个生成树,自然就不会允许在D4中两个端口同时活跃,以达到消除二层环路的目的。但是在PVSTPVST+Rapid-PVST+生成树技术中,每个VLAN自己维护着一个虚拟的生成树实例,根本不考虑其他VLAN,只要在一个VLAN内部不会出现二层环路就可以了。如在D4的两个中继端口上只要限制部分VLAN(如VLAN 10或者VLAN 20 )流量,则既可以达到消除二层环路的目的,又可以实现负载均衡的目的。当然也可以在D4的两个中继端口的某一个中全部禁止VLAN 10VLAN 20的流量也可以实现消除环路目的。这样的话,本实例就与上面的图11-30的示例一样了,但这样不能实现负载均衡。
  
  
  

【经验之谈】IEEE颁发的STP、RSTP都属于单生成树实例的生成树协议,是把整个交换网络当成一个生成树,是基于端口的。而Cisco的PVST、PVST+、Rapid-PVST+则是多生成树实例的生成树协议,它是为交换网络中每个VLAN分配、维护着一个生成树实例,是基于VLAN的。而下面将要介绍的MSTP、MISTP也是多生成树实例的生成树协议,但它们是把多个具有相同拓扑的VLAN放进一个生成树实例中,是基于实例的,与PVST、PVST+和Rapid-PVST+基于VLAN的多生成树是有本质区别的。
图11-32是PVST+(或者Rapid-PVST+)进行负载均衡的另一个示例。带有1000他VLAN的交换机A与交换机D1和D2进行冗余连接。在这种情况下,连接到交换机A上的用户和管理通常是想通过上行的两条链路来实现负载均衡,如一条链路承担偶数VLAN用户的负载,另一条链路承担奇数VLAN中的负载,或者是一条承担1~500号VLAN中的负载,另一条承担501~1000号VLAN的负载。

  
  
   DSC0003.gif
在以上方案中,还可以使每条链路分担一半VLAN中的负载。为了达到这个目的,要选举D1交换机作为501~1000号VLAN的根交换机,而D2则作为1~500号VLAN中的根交换机。在这种方案中,每个VLAN维护着一个生成树实例,也就是说,1000个实例实际上维护着两个逻辑拓扑,因为每个交换机上的物理拓扑链路就两条。很显然,这对于交换机的CPU和网络带宽资源来说是一种浪费。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-226518-1-1.html 上篇帖子: CCNA学习笔记6-操作与配置Cisco IOS 下篇帖子: cisco ios 升级方法和TFTP的用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表