第三部分 生成树模式
部署VLAN使得重要决定是在机上使用哪种生成树模式。STP模式决定了STP将如何与VLAN交互。缺省的Cisco STP模式下,每个VLAN定义STP。IEEE802.1Q标准是在整个VLAN网络中使用一个STP,但不排除在每个VLAN中实现一个 STP。
>> PVST、PVST+和单生成树模式
公共生成树(CST,Commone Spanning Tree)是在IEEE802.1Q标准中规定的。CST定义了一棵用于所有VLAN的生成树,BPDU在VLAN1上传递。
按VLAN的生成树(PVST,Per-VLAN Spanning tree)是Cisco专用的一种实现方式,需要使用ISL trunk封装。在PVST中,每个VLAN一棵STP,能为每个VLAN配置不同的根交换机,并配置第2层的负载均衡。
每个VLAN一棵生成数减少了每个STP重新计算时的恢复时间,并且在下述方面增强了网络的可靠性:
* 减少整个生成树拓扑的规模
* 提高扩展性,减少收敛时间
* 提供更快的恢复过程和更强的可靠性
每个VLAN一棵生成树的缺点包括:
* 为了维护多个VLAN的多颗生成树,交换机的利用率(如CPU负载)会更高
* 为了支持各个VLAN的BPDU,需要占用更多的Trunk链路带宽
为了携带更多的信息,PVST BPDU的格式和STP/RSTP BPDU
格式已经不一样,发送的目的地址也改成了Cisco保留地址01-00-0C-CC-CC-CD,而且在VLAN Trunk的情况下
PVST BPDU被打上了 802.1Q VLAN
标签。所以,PVST协议并不兼容STP/RSTP协议。
PVST+ 是一种Cisco专用的STP模式,支持在相同网络中同时存在CST和PVST。PVST+支持802.1Q
trunk并且能将多棵生成树映射成非Cisco的802.1Q交换机上的一棵生成树。PVST+在交换剂802.1Q
trunk上是自动启动的。在PVST+中,如果交换机通过802.1Q
trunk相连,则每个VLAN一棵STP。还支持在其运行的VLAN上提供2层的负载均衡。在网络中,可以用VLAN来创建不同的逻辑拓扑结构,以保证
所有的的链路都被使用,而不会出现一条链路过载的情况。
每个生成树都有唯一的根交换机。根交换机负责向网络中其他的交换机传播与此VLAN相关的生成树信息。因为每个交换机对网络的理解是相同的,所以这个过程 维护了网络拓扑
PVST+体系结构区分了3种类型的区域:
* PVST区域
* PVST+区域
* 单生成树(MST,Mono Spanning tree)区域
单生成树是非Cisco的802.1Q交换机使用的生成树实现方法,一个STP负责所有VLAN的通信。
每个区域(Zone或region)都有同种类型的交换机组成。PVST区域和PVST+的连接可以通过连通两个ISL接口实现。类似地,PVST+区域 和MST区域的连接可以通过连通两个802.1Q端口实现。注意,MST和PVST区域不能通过trunk链路连接。
在PVST区域和PVST+区域的分界处,生成树的映射是一对一的。在MST区域和PVST+区域的分界处,MST区域的生成树映射到PVST+区域的一 个PVST上。这个PVST就是CST,缺省的CST是VLAN1。
所有的PVST,除了CST都是通过隧道穿越MST区域的。隧道(Tunneling)意味着BPDU沿着MST区域内当别的单棵生成树,在整个MST区 域内泛洪。
>> MISTP模式
MISTP 模式是在一些 Catalyst 交换机上 Cisco 私有的一种MST实现,能在一棵生成树实例下将VLAN进行分组。MISTP综合了PVST+支持2层负载均衡的优点和IEEE 802.1Q低CPU负载的特点。
MISTP
是一种可选的运行在交换机4000和交换机6000系列上的STP模式。多实例生成树协议是通过一组网桥参数和端口参数定义的虚拟的逻辑拓扑结构。简单的
说,STP/RSTP 是基于端口的,PVST/PVST+是基于 VLAN 的,而 MISTP
就是基于实例的。所谓实例就是多个VLAN的一个集合,通过多个VLAN捆绑到一个实例中去的方法可以节省通信开销和资源占用率。如果将VLAN映射到
MISTP上,这个MISTP实例就变成了真正的拓扑结构。每个MISTP实例都有自己的根交换机和各自的转发链路组(也就是说,不同的网桥参数和端 口参数)。根交换机负责向网络中所有其他交换机传播与此MISTP实例相关的信息。
在使用的时候可以把多个相同拓扑结构的VLAN
映射到一个实例里,这些VLAN在端口上转发状态将取决于对应实例在MISTP里的状态。值得注意的是网络里的所有交换机的VLAN和实例映射关系必须都
一致,否则会影响网络连通性。为了检测这种错误,MISTP
BPDU里除了携带实例号以外,还要携带实例对应的VLAN关系等信息。MISTP协议不处理 STP/RSTP/PVST
BPDU,所以不能兼容STP/RSTP协议,甚至不能向下兼容PVST/PVST+协议,在一起组网的时候会出现环路。为了让网络能够平滑地从
PVST+模式迁移到MISTP模式,Cisco在交换机产品里又做了一个可以处理PVST BPDU
的混合模式MISTP-PVST+。网络升级的时候需要先把设备都设置成MISTP-PVST+模式,然后再全部设置成MISTP模式。
MISTP 带来的好处是显而易见的。它既有 PVST 的 VLAN 认知能力和负载均衡能力,又拥有可以和SST媲美的低CPU占用率。不过,极差的向下兼容性和协议的私有性阻挡了MISTP的大范围应用。
>> MST多生成树模式(Multiple Spanning Tree)
多生成树协议MSTP(Multiple Spanning Tree Protocol)是IEEE
802.1s中定义的一种新型多实例化生成树协议。这个协议目前仍然在不断优化过程中,现在只有草案(Draft)版本可以 Cisco
已经在CatOS 7.1 版本 MSTP的支持,华为公司的三层交换机产品Quidway系列交换机也即将推出支持MSTP协议的新版本MSTP
协议精妙的地方在于把支持 MSTP 的交换机和不支持 MSTP 交换机划分成不同的区域,分别
称作 MST 域和 SST 域。在 MST 域内部运行多实例化的生成树,在 MST 域的边缘运行 RSTP 兼容的内部生成树MST(Internal Spanning Tree)。
MST 域内的交换机间使用MSTP BPDU交换拓扑信息, SST 域内的交换机使用 STP/RSTP/PVST+ BPDU
交换拓扑信息。在MST域与SST域之间的边缘上,SST设备会认为对接的设备也是一台RSTP设备。而MST设备在边缘端口上的状态将取决于内部生成树
的状态,也就是说端口上所有 VLAN的生成树状态将保持一致。
MSTP 设备内部需要维护的生成树包括若干个内部生成树 IST,个数和连接了多少个 SST 域有关。
另外,还有若干个多生成树实例MSTI(Multiple Spanning Tree Instance)确定的MSTP生成树,个数由配置了多少个实例决定。
MSTP相对于之前的种种生成树协议而言,优势非常明显。MSTP具有 VLAN 认知能力,可以实现负载均衡,可以实现类似 RSTP
的端口状态快速切换,可以捆绑多个 VLAN
到一个实例中以降低资源占用率。最难能可贵的是MSTP可以很好地向下兼容STP/RSTP协议。而且,MSTP是IEEE标准协议,推广的阻力相对小得
多。 MISTP就是Cisco对MST的私有实现:
快速生成树RSTP(Rapid Spanning Tree)
生成树协议IEEE 802.1d虽可在50秒内恢复连接,但已不能满足现代交换式网络和应用的需要,在
802.1w中定义的RSTP协议可解决802.1d的自恢复问题。快速生成树协议(RSTP)是从生成树算法的基础上发展而来的,通过配置消息来传递生
成树信息,并通过优先级比较来进行计算。快速生成树能够完成生成树的所有功能,优异之处在于快速生成树减小了端口从阻塞到转发的延时,快速恢复网络的正常
工作状态。它采用桥-桥握手机制,并不采用802.1d中根桥所指定的计时器。
快速生成树协议与生成树协议的区别不少:如端口状态迁移方式不同;配置消息的格式不同;拓朴改变消息的传播方式不同。
RSTP和802.1D状态对比
802.1D的禁用、阻塞和监听状态在802.1W中合并为一种丢弃状态,如上表
能够快速进入到转发状态是802.1W引入的最重要特性。传统的生成树算法在将一个端口转入到转发状态是在被动地等待网络拓扑收敛。为达到快速收敛
要做的就是调整那些保守的默认参数(转发延迟和最大生存时间),这经常以网络稳定性为赌注的。RSTP可以主动地区确认一个端口是否可以安全进入转发状态
而不依赖于任何定时器配置。RSTP在两个遵守RSTP的网桥之间提供一种实时的反馈机制。为让一个端口快速收敛,协议依赖两个新的参数---边缘端口和
链路类型。
RSTP的边缘端口(edge port)基本上相当于PortFast特性,不同的是边缘端口收到了一个BPDU后,立即离开边缘端口状态成为一个正常的生成树端口。此刻,边缘端口状 态有一个用户配置值和一个运行值。
RSTP链路类型(点对点或共享),只有在边缘端口上和点对点链路上能快速进入转发状态。链路类型是自动来源于端口的双工模式。一个运行于全双工模式的端 口被假设为点对点的,然而一个半双工端口就被默认为共享端口。这种自动链路类型设置可以免去详细的配置。
RSTP端口角色
除了对根端口和802.1d中的指定端口进行了定义之外,但阻塞端口角色现在被分为备份和替代端口角社。备份端口,指定端口向生成树提供的路径备份。替代
端口,为当前根端口所提供的根桥提供了替代路径。RSTP中新定义的端口作用使替代端口可以进行快速转换,能转发根端口的故障。
与标准的STP中一样,网桥上收到最佳BPDU的端口成为根端口。这是按照路径开销最接近根网桥的端口,如上图。
如果一个端口能发送最佳BPDU到其所连接的网段上,该端口被认为是一个指定端口。和802.1D一样,网桥通过连接不同的网段创建一个桥接域。一个给定 网段只能有一个路径到根交换机。多条路径将在网络中产生一个环。
替代端口和备份端口角色相当于802.1D的阻塞状态。没有成为指定端口或者根端口的端口被定义为阻塞端口。阻塞端口收到比从这个网桥上发送出去更有用
的 BPDU。记住一个端口一定需要接收BPDU才能停留在阻塞状态。替代端口指该端口是因为从其他网桥收到了更有用的BPDU才处于阻塞状态。
备份端口是因为从同一网桥收到更有用的BPDU而处于阻塞状态的端口(如上图)。
RSTP定时器
RSTP 旨在尽快地将根端口和指定端口转成转发状态,以及将替代和备份端口转成阻塞状态。为防止生成转发环路, RSTP 在网桥间采用了明确的“握手”功能,以确保端口作用在网络中分配的一致性。
下图介绍了将端口转换成转发前达成的协定 / 建议握手。当链接激活时,“P1”和“P2”都成为处于放弃状态的指定端口。
在这种情况下,“ P1 ”将向交换机 A 发送一个建议 BPDU 。收到新 BPDU 后,交换机 A 将确认根交换机有较优根成本。因为 BPDU
包含较高的根优先级,交换机 A 在将新的根端口“ P2
”转入转发状态前,会先启动同步机制。如果一个端口处于阻塞状态或是一个边缘端口(位于网桥 LAN 边缘或连接到终端工作站),该端口与根信息同步。
端口 3 (“ P3 ”)已满足上述要求,因为它已经是阻塞的。因此,不会对该端口采取任何行动。但是,“ P4
”是一种指定端口,需要阻塞。一旦交换机 A 上的所有接口处于同步状态,“ P2
”就会承认从前从根接收的建议,并可以安全地转入转发状态。在收到交换机 A 的认可后,根交换机将立即将“ P1 ”转入转发。建议 /
协定信息的类似传送波将从“ P4 ”传播至网络枝叶部分。
由于这种握手机制不依赖计时器,因此它可以快速地传播至网络边缘,并在拓扑结构变更后迅速恢复连接。如果协定并未复制建议信息,端口会转换成
802.1D 模式,并通过传统听学顺序转入转发状态。需要说明的是, 802.1w 协议只适用于点到点链接。在媒体共享的情况下, 802.1w
协议将转换成 802.1D 运行。
UplinkFast RSTP
Uplinkfast是IEEE对cisco私有的Uplinkfast机制的扩展,他不需要像cisco那样清空CAM表的所有条目,而只需要清空上游 交换机中的CAM表部分条目即可,此时也不需要UplinkFast的伪多播分组生成过程。
边缘端口
边缘端口类似于以前Cisco实现的PortFast功能。新的根端口从阻塞到转发的实现:原有根端口已经知道自己不再是根端口了,进入阻塞状态。新的根
端口连接的网段的指定端口处于转发状态,这个新的根端口就可以无延时地进入转发状态。非边缘指定端口从阻塞到转发:此个端口连接着其他网桥。等待进入转发
状态的指定端口向下游网桥发送一个握手请求报文,若下游的网桥响应了,则这个指定端口就可以无延时地进入转发状态。边缘端口从阻塞到转发:边缘端口直接和
终端设备相连,不再连接任何网桥的端口。网桥启动后这些端口即无延时地快速进入转发状态。
RSTP拓扑变化
RSTP拓扑变化仅在边缘端口进入转发状态才会导致。当RSTP网桥检测到拓扑变化,会发生下列事件:
l 如果必要,RSTP网桥可以对其所有的非边缘指定端口和根端口上启动一个TC当型定时器(TC while timer),其时间是2倍的Hello-time
l RSTP网桥刷新所有与这些端口相关的MAC。
l 只要在端口上运行TC while定时器期间,该端口发送TC位被置位的BPDU,该定时器激活期间根端口也发送BPDU
RSTP的拓扑变化扩散处理与STP不同,当一个网桥从邻居受到一个TC位置位的BPDU的时候,发生下列事件:
l 网桥清除从其他所有端口上学习到的MAC地址(收到拓扑变化的端口除外)
l 网桥在所有指定端口和根端口上启动TC While定时器并发送TC位置位的BPDU(RSTP不再使用老式的TCN BPDU,除非有老式网桥需要被通告)
RSTP BPDU格式
RSTP在BPDU格式中引入了一些新变化。
位 含义
---------------------------------
0 拓扑变化Topology Change
1 建议
2-3 端口角色: 00:未知端口 01:替代端口 10:根端口 11:指定端口
4 学习
5 转发
6 协商
7 拓扑变化确认ACK
802.1w
中网桥每隔hello时间(默认为2秒)发送一个携带当前信息的BPSU,即使他没有从根网桥收到任何BPDU。在一个指定端口上,如果在3个连续周期内
没有收到hello(或者最大生存时间超时),协议信息立即超时。因为前面提到的协议修改,BPDU现在在网桥之间用来作为保持活动
(keepalive)机制。一个网桥如果已经连续错过了3个BPDU,就认为自己已经丢失了到直连邻接根或指定网桥的连接。这种信息的快速老化使得错误
可以被快速检测。如果一个网桥从邻居接收BPDU失败,他就能确定到邻居的连接丢失,这和802.1d相反,802.1d在根的路径中的任何一个地方都会
出现问题。
当一个网桥从它的指定或者根交换机上收到次级信息,就会立即接受它,并替代先前存储的。
配置MST
启用RSTP和MSTP
4) 进入全局模式 configure terminal
5) 进入mst配置模式
spanning-tree mst configuration
3) 映射vlan到mst实例
instance 实例号 vlan vlan范围
实例号:取值为0-4094
4) 配置名称
name 名称
5) 配置mst版本号
revision 版本号
版本号:取值为0-65535
6) 显示pending状态
show pending
案例:
switch(config)#spanning-tree mode mst
switch(config)#spanning-tree mst configuration
switch(config-mst)#instance 1 vlan 20 -30
switch(config-mst)#name test1
Switch(config-mst)#show current
Current MST configuration
Name [test1]
Revision 0
Instance Vlans mapped
-------- -----------------------------------------------------------------
0 1-19,31-4094
1 20-30
----------------------------------------------------------------------------
Switch(config-mst)#show pending
Pending MST configuration
Name [test1]
Revision 0
Instance Vlans mapped
-------- -----------------------------------------------------------------
0 1-19,31-4094
1 20-30
----------------------------------------------------------------------------
switch#show spanning-tree mst
###### MST00 vlans mapped: 1-19,31-4094
Bridge address 000d.6564.0280 priority 32768 (32768 sysid 0)
Root this switch for CST and IST
Configured hello time 2, forward delay 15, max age 20, max hops 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/2 Desg FWD 2000000 128.2 Edge Shr
Fa0/3 Desg FWD 2000000 128.3 Shr
Fa0/4 Desg FWD 2000000 128.4 Shr
Fa0/18 Desg FWD 200000 128.18 P2p
Fa0/21 Desg FWD 200000 128.21 P2p
Fa0/23 Desg FWD 200000 128.23 P2p Bound(PVST)
Fa0/24 Desg FWD 200000 128.24 P2p Bound(PVST)
###### MST01 vlans mapped: 20-30
Bridge address 000d.6564.0280 priority 32769 (32768 sysid 1)
Root this switch for MST01
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23 Boun FWD 200000 128.23 P2p Bound(PVST)
Fa0/24 Boun FWD 200000 128.24 P2p Bound(PVST)
配置MST的根交换机
配置过程:
1) 进入全局模式 configure terminal
2) 配置MST根交换机
spanning-tree mst 实例号 root primary
案例:
switch(config)#spanning-tree mst 1 root primary
Switch#show span mst 1
###### MST01 vlans mapped: 20-30
Bridge address 000d.6564.0280 priority 24577 (24576 sysid 1)
Root this switch for MST01
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23 Boun FWD 200000 128.23 P2p Bound(PVST)
Fa0/24 Boun FWD 200000 128.24 P2p Bound(PVST)
交换机优先级
配置过程:
1) 进入全局模式 configure terminal
2) 修改交换机的优先级
spanning-tree mst 1 priority 优先级
优先级:取值为0-61440,优先级为4096的倍数
案例:
Switch(config)#spanning-tree mst 1 priority 36864
Switch#show spanning-tree mst 1
###### MST01 vlans mapped: 20-30
Bridge address 000d.6564.0280 priority 36865 (36864 sysid 1)
Root this switch for MST01
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23 Boun FWD 200000 128.23 P2p Bound(PVST)
Fa0/24 Boun FWD 200000 128.24 P2p Bound(PVST)
配置MST的开销
1) 进入全局模式 configure terminal
2) 进入接口模式 interface 接口
3) 配置端口的MST开销
spanning-tree mst 实例号 cost 成本
案例:
sw2(config)#show span mst 1
###### MST01 vlans mapped: 20-30
Bridge address 000b.5f2c.2080 priority 32769 (32768 sysid 1)
Root this switch for MST01
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23 Desg FWD 200000 128.23 P2p
Fa0/24 Desg FWD 200000 128.24 P2p
Sw2(config)#interface f0/23
sw2(config-if)#span mst 1 cost 20000
sw2(config-if)#do show span mst 1
###### MST01 vlans mapped: 20-30
Bridge address 000b.5f2c.2080 priority 32769 (32768 sysid 1)
Root this switch for MST01
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23 Desg FWD 200000 128.23 P2p
Fa0/24 Desg FWD 20000 128.24 P2p
端口优先级
配置过程:
1) 进入全局模式 configure terminal
2) 进入接口模式 interface 接口
3) 配置端口的优先级
spanning-tree mst 实例号 port-priority 优先级
优先级默认为128
案例:
sw2(config)#interface f0/24
sw2(config-if)#spann mst 1 port-priority 64
sw2(config-if)#end
sw2#show spanning mst 1
###### MST01 vlans mapped: 20-30
Bridge address 000b.5f2c.2080 priority 32769 (32768 sysid 1)
Root this switch for MST01
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23 Desg FWD 200000 128.23 P2p
Fa0/24 Desg FWD 20000 64.24 P2p
修改时间器
sw2(config)#spann mst hello-time ?
<1-10> number of seconds between generation of config BPDUs
sw2(config)#span mst forward-time ?
<4-30> number of seconds for the forward delay timer
sw2(config)#span mst max-age ?
<6-40> maximum number of seconds the information in a BPDU is valid
sw2#show span mst
###### MST00 vlans mapped: 1-19,31-4094
Bridge address 000b.5f2c.2080 priority 32768 (32768 sysid 0)
Root this switch for CST and IST
Configured hello time 1, forward delay 15, max age 20, max hops 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- -------------------------------
Fa0/23 Desg FWD 200000 128.23 P2p
Fa0/24 Desg FWD 200000 128.24 P2p
案例:
CCIE-LAB(V160)
题目要求:
在SW1、SW2、SW3上配置MST,要求偶数VLAN加入实例1,奇数VLAN加入实例2
配置:
SW1
config terminal
spanning-tree mode mst
spanning-tree mst configuration
instance 1 vlan 20,40,60
instance 2 vlan 30,50,70
name cisco
revision 1
sw2
config terminal
spanning-tree mode mst
spanning-tree mst configuration
instance 1 vlan 20,40,60
instance 2 vlan 30,50,70
name cisco
revision 1
SW3
config terminal
spanning-tree mode mst
spanning-tree mst configuration
instance 1 vlan 20,40,60
instance 2 vlan 30,50,70
name cisco
revision 1
案例:
CCIE-LAB(V210)
题目要求:
配置sw1上的生成树MST,要求将除了vlan_BBX的vlan定义在实例1,vlan_BBx定义在实例2,并将实例2作为根。
Vlan 30 name vlan30
Vlan 31 name vlan31
Vlan 33 name vlan33
Vlan 44 name vlan44
Vlan 50 name vlan50
Vlan 60 name vlan60
Vlan 100 name vlan_BB1
Vlan 200 name vlan_BB2
Vlan 300 name vlan_BB3
配置:
sw1
configure terminal
spanning-tree mode mst
spanning-tree mst configuration
instance 1 vlan 30,31,33,44,50,60
instance 2 vlan 100,200,300
name cisco
revision 1
spanning mst 2 root primary
阅读(1103) | 评论(0) | 转发(0) |