主/备根桥
对于STP的实例来说,具有最低网桥ID的交换机成为根桥,我们通常将汇聚层的交换机设为主根桥,这种情况下的交换机具有充足的CPU资源和交换能力。在当前根桥发生故障的时候,会在交换网络中重新收敛选择一个新的根桥,针对这种变动,有必要提前做出计划并完成。即使主根桥发生故障,新根桥仍然位于中心位置,并保证替换根桥有足够的CPU资源。做到即便主根桥发生故障,网络整体性能也不会下降。
STP拓扑变更
发生下列事件时,交换机会发送TCN
1.处于转发和监听状态的端口,故障发生的时候,将过渡到阻塞状态
2.一个网桥在已经拥有指定端口的情况下,阻塞端口进入转发状态
3.非根桥在他的指定端口接收到了TCN(将TCN进行传播)
当交换机收到TCN的时候,会立即回送一个TCA,同时从自己的根端口发送出去一个TCN,在没有收到TCA之前,网桥会一直发送TCN。
根桥收到TCN以后,会重新发送新的配置BPDU(其中的TC位被置位),将CAM表的老化时间从300S转到转发延迟的时间(默认是15S)
思考:如果网络故障或设备故障产生链路翻转,链路翻转又产生连续的TCN,CAM表的寿命将保持在转发延迟的时间内。将导致MAC地址表和单播扩散的快速老化,如果一个终端设备的频繁开关机导致拓扑的变化,收敛是完全没有必要的。
PVST+增强的每VLAN生成树
Cisco私有,为每个VLAN维护一个单独的生成树实例。默认在没有手工禁用STP的情况下,每个配置的VLAN都将运行单个生成树,Cisco允许以每个VLAN为基础来启用或禁用STP。
PVST+中的‘+’表示CISCO通过专有特性来增强STP 802.1Q。
PVST+允许交换网络中使用VLAN来创建不同的逻辑拓扑。进而可以确保使用所有的链路,而不是像802.1D那样过度使用某条链路。
MAC地址缩减:
交换机最多支持的是4096个VLAN,而交换机最多支持的MAC地址是1024个,针对于PVST+,如果需要满足BID中每个VLAN的MAC唯一,要使用MAC地址的缩减
原始的优先级2个字节的优先级分开,4BIT用做优先级,12BIT用做SYS ID(系统扩展ID)
把原来用16BIT表示的优先级分开来,前4个bit做优先级,而后12bit来做系统扩展ID,系统扩展ID总是VLAN或MST实例编号,每个VLAN ID是惟一的,即使使用同一个MAC地址,那么桥ID在系统内仍然是惟一的!而12个BIT可以标识4096个VLAN,这样就可以支持802.1Q所有的VLAN。
优先级动一位,就会牵动后面的12比特系统扩展ID
所以在4096的基础上,动一位就动4096的倍数倍,也就是说,优先级只有16种选择,范围0——61440之间。
PVST+不同设备,相同VLAN(相同的SYSID)
最终目的是:为了保护唯一的桥ID
PVST+与802.1Q干道
802.1Q对于网络中的生成树特性增加了某些限制,交换机为干道中所允许的每个VLAN维护一个生成树实例,对于不支持802.1Q的交换机,只为trunk链路所允许的VLAN维护一个STP。
当通过802.1Q trunk链路连接非Cisco交换机的时候。将把trunk Native的生成树实例和非802.1Q交换机的实例结合,对于分割两台Cisco交换机的交换机看做是他们之间的单个trunk链路,Cisco交换机维护所有的VLAN的STP实例。
PVST+配置:
Switch(config):spanning-tree vlan XX priority XX
Switch(config):spanning-tree vlan XX root primary 将此网桥设置为XX VLAN的根桥 优先级=4096
Switch(config):spanning-tree vlan XX root secondary 将此网桥设置为XX VLAN的辅根桥 优先级=8192
配置端口开销:
Switch(config-if):spanning-tree cost port-cost
Switch(config-if):spanning-tree vlan XX cost port-cost
RSTP快速生成树协议(rapid spaning tree protocol)
当网络拓扑改变的时候,802.1W能比802.1D更迅速的做出反应,802.1W不仅增加了替代端口和备份端口两种端口角色,还定义了三种状态:丢弃状态,学习状态,转发状态
802.1W和802.1D。前者是从后者演变而来的。当两种STP类型共存的时候,802.1W可以返回802.1D,取消特定网段的802.1W益处。
802.1W除了在802.1D的三种端口角色,还额外定义了两种端口角色:
1.替代端口:阻塞从一个桥另外的接口收到根BPDU,当此桥的根端口故障,替代端口代替原根端口成为新的根端口
2.备份端口:一个网桥中指定端口的备份。
RSTP的备份端口和制定端口实际上是把相应的端口排除在外,代替了传统的802.1D的STP生成树中的非指定端口, 替代端口实际上是非根桥的一个根端口替代品,备用端口则是一台设备双线连接的时候才会出现的情况。提前设定了端口的角色,能够比802.1D的STP更快速的切换。
着眼下面两台交换机,替代端口和备份端口主要是看被阻塞链路的DP在哪,因为在一个正常的STP二层链路中,必然一端是根端口,一端是指定端口。
在802.1D中,只有在根端口收到BPDU的时候,非根桥才能产生BPDU。在802.1W中,即使网桥没有从根桥收到BPDU,也会每隔"hello间隔"(default=2)发送包含当前信息的BPDU。
如果连续3次未收到BPDU,网桥就认为已经将到达邻接根端口或指定端口的连接丢失,这时会启用快速老化机制,获得更快的故障检测能力。而802.1D则是从发生故障的根桥开始发送TCN 到根桥,这路上,有可能也有潜在的问题。
快速过渡转发状态
802.1D中,所有接口被动的来等待端口角色。802.1W中,能够主动确认端口是否安全过渡到转发状态,并不依赖计时器。协议依赖两种新变量:
1.边缘端口:对于终端来说(PC,服务器等),通常不会产生环路,所以,允许这种接口直接进入转发状态,可以手工配置为边缘端口,边缘端口不会产生拓扑变更,如果一个边缘端口收到BPDU,这个接口会立即放弃边缘端口角色,回归一个正常的STP端口。
2.链路类型:交换机能够从端口的双工模式分辨出链路类型,如果端口工作在全双工模式,则是点到点链路。如果工作在半双工模式,则是共享链路模式。
在点到点链路中,RSTP的收敛是很快的。
每台设备都会发送包含自己当前信息的BPDU,通过提议——协商的这种方式,来实现快速收敛。实际上在提议和协商的结尾,网络已经收敛完成。网络收敛需要的时间就是两设备交换BPDU的耗时,通常在1S左右。
RSTP拓扑变更机制
802.1D中,使用的BPDU TYPE字段,只有2BIT(TCN和TCN ACK)。 RSTP使用其余六字节,
802.1D中,拓扑发生变化的时候,会向根桥发送可靠的信息,来通知根桥
802.1W中,只有非边缘端口进入转发状态才能导致拓扑变更,在802.1W中,连接丢失并不意味这拓扑发生变更。也就是说,如果某端口变为阻塞,则网桥不会发送TC BPDU。
802.1W拓扑发生变动重点:
当拓扑发生变动,交换机会清除所有非边缘端口的MAC地址表。
1.拓扑发生变动时,交换机启动 TC While计时器(网桥主动通知拓扑变化到网络中其他网桥的间隔)
2.然后会向所有的指定端口,根端口发送TC BPDU。并清除除了接收拓扑变更的端口以外所有学到的MAC地址。
除非网络中有802.1D的设备,否则不会发送TCN BPDU
802.1W拓扑发生变动,根桥不需要等待被通知。
命令:
spanning-tree mode rapid-pvst
MST:
多生成树,
把802.1W扩展到多个生成树。
类似EC,将多个VLAN进行捆绑成多个MST实例,一个实例维护一棵树。
将多个VLAN映射到一个实例中,针对实例去操作。
确保VLAN到实例的一致性映射:
关键是协议必须能够识别区域的边界,区域特征被包含在BPDU中,归根到底,交换机只需要知道他们是否与邻接交换机位于相同的区域。
交换机只发送VLAN到实例映射表的摘要,配置版本号和名称。交换机收到BPDU后,根据这几者计算出数值。并将其与自己计算的摘要比较。如果存在区别。则认为接收BPDU的接口连接的是区域边界。
一个公共的MST区域的所有交换机组以下配置必须相同:
1.配置名称
2.配置版本号
3.1个包含4096要素的表,对应最大的VLAN数目
命令:
(config)#spanning-tree mode mst
(config)#spanning-tree mst configuration
(config-mst)#name zhangchi
(config-mst)#revision 1
(config-mst)#instance 1 vlan 1-100
查看:
#show spanning-tree mst configuration
#show spanning-tree mst
RPVST+除了每VLAN的特性,其他的和802.1W基本无区别。
截止目前:
802.1D 普通STP 所有VLAN一棵树
802.1W RSTP 所有VLAN一棵树
PVST+ CISCO私有 每VLAN一棵树
RPVST+ CISCO私有 每VLAN一棵树
转载于:https://blog.51cto.com/zhangchiccie/719009