RSTP(Rapid STP) 802.1w当前主流技术
·当网络拓扑发生改变时,快速生成树协议能够明显地加快重新计算生成树的速度。
Sw1(config)#spanning-tree mode rapid-pvst 理论一大把,命令就一条
·RSTP定义了3种端口状态:
Discarding/Learning/Forwarding
(Discarding <-> STP:Disabled/Blocking/Listening)
Discarding/Learning/Forwarding
(Discarding <-> STP:Disabled/Blocking/Listening)
·RSTP端口角色:
RP:同STP
DP:同STP
RP:同STP
DP:同STP
Alternate Port(替代端口):
从其他SW收到BPDU的那个端口。比不过人家的BID,就成为AP(BLK)
如果本SW的RP故障,AP就成为RP。
从其他SW收到BPDU的那个端口。比不过人家的BID,就成为AP(BLK)
如果本SW的RP故障,AP就成为RP。
Backup Port(备份端口):
从本SW收到BPDU的那个端口。比不过人家的PID,就成为BP(BLK)
如果本SW的DP故障,BP就成为DP。
从本SW收到BPDU的那个端口。比不过人家的PID,就成为BP(BLK)
如果本SW的DP故障,BP就成为DP。
·RSTP BPDU的格式:
在Flag字段总共8 bit,802.1D中只用到2 bit,
RSTP用到其他6 bit来完成端口状态和角色的编码。
RSTP用到其他6 bit来完成端口状态和角色的编码。
Version: 2
Message Type : 2
Message Type : 2
·在802.1D中,只有当SW从RP收到BPDU时,非根桥才能转发BPDU。
在802.1w中,每个SW会每隔2S就发送一次包含当前信息的BPDU。
在802.1w中,每个SW会每隔2S就发送一次包含当前信息的BPDU。
·默认集成backbonefast
将portfast也集成了,改名为边缘端口,要手工加载,加载的方法都和portfast一样。
将portfast也集成了,改名为边缘端口,要手工加载,加载的方法都和portfast一样。
·Link-type 链路类型:按双工模式来分
半双工是 share类型
全双工是 point-to-point类型 只有在点到点链路上才能实现快速转换
可以手工改
半双工是 share类型
全双工是 point-to-point类型 只有在点到点链路上才能实现快速转换
可以手工改
·定义了Proposal和agreement消息用来做快速收敛
注意:在RSTP中,只有当非边缘端口进入转发状态的时候才会导致拓扑变更,才会产生TC BPDU,连接的丢失不会导致拓扑变更,也不会产生TC BPDU。
在RSTP中,每台交换机都可以下发TC置位的config BPDU,这样也实现了快速收敛
除非网络有老式设备,否则RSTP不需要使用TCN BPDU
在RSTP中,每台交换机都可以下发TC置位的config BPDU,这样也实现了快速收敛
除非网络有老式设备,否则RSTP不需要使用TCN BPDU
<RSTP的快速转发>
·为实现端口的快速收敛,RSTP定义了2个新的变量:
1.Edge-Port (边缘端口)= portfast 需要手工启用
2.Link-Type (链路类型): p2p link(工作在全双工) shared link(工作在半双工)
backbonefast默认集成在协议中
1.Edge-Port (边缘端口)= portfast 需要手工启用
2.Link-Type (链路类型): p2p link(工作在全双工) shared link(工作在半双工)
backbonefast默认集成在协议中
·RSTP的DP是能够让Edge-Port和P2p直接进入FWD模式。
MST(Multiple Spanning Tree) 802.1s
CST (Common Spanning Tree)
缺点:所有的Vlan都是按照同一个STP来工作的。
优点:开销小。
缺点:所有的Vlan都是按照同一个STP来工作的。
优点:开销小。
PVST
优点:可以为每个Vlan配置一个STP。可以实现基于Vlan的负载分担。
缺点:SW维护很多的STP,开销大。Vlan改变,波及大。
优点:可以为每个Vlan配置一个STP。可以实现基于Vlan的负载分担。
缺点:SW维护很多的STP,开销大。Vlan改变,波及大。
MST(对CST和PVST的折衷方案)
1.MST对vlan分组(Instance)
2.每个分组可以有独立的STP,实现L2负载分担。
Sw1(config)#spanning-tree mode mst (启用MST)
1.MST对vlan分组(Instance)
2.每个分组可以有独立的STP,实现L2负载分担。
Sw1(config)#spanning-tree mode mst (启用MST)
Sw1(config)#spanning-tree mst configuration
Sw1(config-mst)#name WOLF
Sw1(config-mst)#revision 10
Sw1(config-mst)#instance 1 vlan 1-5
Sw1(config-mst)#instance 2 vlan 6-10
Sw1(config-mst)#name WOLF
Sw1(config-mst)#revision 10
Sw1(config-mst)#instance 1 vlan 1-5
Sw1(config-mst)#instance 2 vlan 6-10
Sw1(config)#spanning-tree mst 1 priority 4096 修改本交换机在这一大堆VLAN中的优先级
Sw1(config-if)#spanning-tree mst 1 cost 19 修改本接口在这一组中的开销
Sw1(config-if)#spanning-tree mst 1 cost 19 修改本接口在这一组中的开销
Sw1#show spanning-tree mst
Sw1#show spanning-tree mst configuration
Sw1#show spanning-tree mst configuration
有一个默认组0,没划分的VLAN就在这里面
MST不能和PVST共存,可以和RSTP共存
-------------------------------------------------------------------------------------------
MST不能和PVST共存,可以和RSTP共存
-------------------------------------------------------------------------------------------
<优化STP>
·BPDU防护:(cisco私有)
对于设置了PortFast接口,却收到了BPDU,如果设置了BPDU防护,就能将此接口关闭,而不会进入生成树状态。
Sw1(config)#spanning-tree portfast bpduguard default (全局开启)
Sw1(config-if)#spanning-tree bpduguard enable (接口开启)
Sw1#show spanning-tree summary [totals]
对于设置了PortFast接口,却收到了BPDU,如果设置了BPDU防护,就能将此接口关闭,而不会进入生成树状态。
Sw1(config)#spanning-tree portfast bpduguard default (全局开启)
Sw1(config-if)#spanning-tree bpduguard enable (接口开启)
Sw1#show spanning-tree summary [totals]
Show errdisable recovery 显示可导致接口errdisable的选项 errdisable状态的接口默认开启的话需要先shut,后no shut
Sw1(config)#errdisable recovery cause bpduguard 设置300S(默认)后自动修复bpduguard所导致的errdisable
Sw1(config)#errdisable recovery interval 30 修改默认的修复时间
Sw1(config)#errdisable recovery cause bpduguard 设置300S(默认)后自动修复bpduguard所导致的errdisable
Sw1(config)#errdisable recovery interval 30 修改默认的修复时间
·BPDU过滤:不发也不收 :(cisco私有)
通过使用BPDU过滤,能够防止在启用portfast的端口上向host发送不必要的BPDU。
通过使用BPDU过滤,能够防止在启用portfast的端口上向host发送不必要的BPDU。
注意:
如果在全局下配置,从端口收到BPDU的话,不会禁掉端口,会转为正常的STP状态
如果在接口下配置,从端口收到BPDU的话,会丢弃。
如果在同一接口设置Guard/Filter , F优于G
如果在全局下配置,从端口收到BPDU的话,不会禁掉端口,会转为正常的STP状态
如果在接口下配置,从端口收到BPDU的话,会丢弃。
如果在同一接口设置Guard/Filter , F优于G
Sw1(config)#spanning-tree portfast bpdufilter default(全局开启)
Sw1(config-if)#spanning-tree bpdufilter enable (接口开启)
Sw1(config-if)#spanning-tree bpdufilter enable (接口开启)
BPDU只是一种优化技术,在接口配置BPDU过滤有可能导致桥接环路,所以不推荐使用。
show spanning-tree summary totals
·根保护::(cisco私有)
能够将接口强制设为DP,进而防止对端SW成为Root。
设置了根保护的端口如果收到了一个优于原BPDU的新的BPDU,它将把本端口设为blocking禁止状态,过一段时间,如果没再收到BPDU,它会恢复端口,这一点不同于BPDU的防护。
Sw1(config-if)#spanning-tree guard root
能够将接口强制设为DP,进而防止对端SW成为Root。
设置了根保护的端口如果收到了一个优于原BPDU的新的BPDU,它将把本端口设为blocking禁止状态,过一段时间,如果没再收到BPDU,它会恢复端口,这一点不同于BPDU的防护。
Sw1(config-if)#spanning-tree guard root
测试:将其他SW变成根桥,看原来根桥的现象:
Sw1#show spanning-tree inconsistentports
Show spanning-tree interface f0/2 detail
Sw1#show spanning-tree
Fa0/2 Desg BKN*19 128.2 P2p *ROOT_Inc
Sw1#show spanning-tree inconsistentports
Show spanning-tree interface f0/2 detail
Sw1#show spanning-tree
Fa0/2 Desg BKN*19 128.2 P2p *ROOT_Inc
·环路保护: 对于软件故障处理得更好
当STP中的BLK端口错误的过渡到FWD状态,有可能出现环路。
启用Loopguard的接口,如果原来的BPDU老化了,不会转到listening状态,而将自动转为inconsistent状态
在inconsistent状态下,会再根据对端交换机发过来的次级BPDU进行决定端口状态。
如果是出现了单向链路失效的现象,对端交换机是不会有BPDU过来的,所以接口将一直保持inconsistent。
默认情况下是禁用的。
Sw1(config)#spanning-tree loopguard default (全局)
当STP中的BLK端口错误的过渡到FWD状态,有可能出现环路。
启用Loopguard的接口,如果原来的BPDU老化了,不会转到listening状态,而将自动转为inconsistent状态
在inconsistent状态下,会再根据对端交换机发过来的次级BPDU进行决定端口状态。
如果是出现了单向链路失效的现象,对端交换机是不会有BPDU过来的,所以接口将一直保持inconsistent。
默认情况下是禁用的。
Sw1(config)#spanning-tree loopguard default (全局)
Sw1(config-if)#spanning-tree guard loop (接口)
·UDLD单向链路失效检测: 对于硬件故障处理得更好
单向链路失效是比较常见的现象,以太网线缆的收发出现问题。
当链路保持“UP”的时候,接口却没有流量收到。
UDLD是一种二层协议,它与第一层机制协同工作来确定链路的物理状态。
启用UDLD能使得这种接口自动进入“err-disable”状态。
启用了UDLD的交换机之间会互相发送hello包来保持联系,默认间隔15S
单向链路失效是比较常见的现象,以太网线缆的收发出现问题。
当链路保持“UP”的时候,接口却没有流量收到。
UDLD是一种二层协议,它与第一层机制协同工作来确定链路的物理状态。
启用UDLD能使得这种接口自动进入“err-disable”状态。
启用了UDLD的交换机之间会互相发送hello包来保持联系,默认间隔15S
Sw1(config)#udld enable 也可在接口下配
Sw1#show udld
积极模式的UDLD--当端口停止接收UDLD的数据包时,UDLD将尝试重新建立与邻居的连接,但如果尝试8次之后还不成功,那么两端的端口都将成为“err-disable”状态。
STP排错:
1、双工不匹配
2、单向链路失效
3、帧破坏
4、资源错误
5、portfast配置错误
6、STP直径参数配置不恰当
1、双工不匹配
2、单向链路失效
3、帧破坏
4、资源错误
5、portfast配置错误
6、STP直径参数配置不恰当