<STP的一些增强特性>
·802.1D STP设计初衷:网络中断后能够在1分钟之内(Max=50S)恢复。
伴随着LAN出现3层交换,很多的路由协议(OSPF/EIGRP)都能在几秒之内收敛。
·Cisco为加快收敛时间,提出了一些私有特性:
PortFast/UpLinkFast/BackboneFast
·PortFast:
能够将2层的接入端口(接host)跳过LIS/LRN立即进入FWD。30S->0S
基于接口,用于接非交换机接口,不要设置在接SW的端口。
Sw1#show spanning-tree
Type: Edge [Shr/P2p]
测试:把接到交换机的网线拔出,再插入,观察状态。
Sw1(config)#spanning-tree portfast default (所有接口启用)全局下用
一般用在接入层的交换机上。
Sw1(config-if)#spanning-tree portfast 接口下单独启用
Sw1(config-if)#spanning-tree portfast disable (某个口禁用,通常是连接另一台交换机的口)
·UplinkFast:
在接入层SW上配置,用于检测直连到分布层SW的链路故障,并加速STP的收敛速度。
30S->0S
Sw2(config)#spanning-tree uplinkfast
(Uplinkfast是一个全局命令,将影响SW上的所有VLAN)
Debug spanning-tree events
测试:将有效链路口shut,原来BLK口立即转发,
·Uplinkfast将网桥PRI增加到49152,将端口Cost增加3000
使SW不能成为Root。所以一般配置在接入层SW。
Sw2#show spanning-tree
........ Uplinkfast enabled
Sw2#show spanning-tree uplinkfast 可以看到哪些接口成为备份
Sw2(config)#spanning-tree uplinkfast max-update-rate 200
(每秒所发包的数目,默认值150)
·BackboneFast:
当交换机丢失了root后会以自己发出次级BPDU收到这个BPDU后会向使用替代路径发送RLQ BPDU
向root进行查询
BackboneFast是对UplinkFast的一种补充。用于检测主干SW间的链路故障。(50S -> 30S)
·建议BackboneFast应用在所有SW上。
Sw1(config)#spanning-tree backbonefast
Sw1#show spanning-tree backbonefast 可以查看RLQ消息和次级BPDU
RSTP(Rapid STP) 802.1w当前主流技术
·当网络拓扑发生改变时,快速生成树协议能够明显地加快重新计算生成树的速度。
Sw1(config)#spanning-tree mode rapid-pvst 理论一大把,命令就一条
·RSTP定义了3种端口状态:
Discarding/Learning/Forwarding
(Discarding <-> STP:Disabled/Blocking/Listening)
·RSTP端口角色:
RP:同STP
DP:同STP
Alternate Port(替代端口):
从其他SW收到BPDU的那个端口。比不过人家的BID,就成为AP(BLK)
如果本SW的RP故障,AP就成为RP。
Backup Port(备份端口):
从本SW收到BPDU的那个端口。比不过人家的PID,就成为DP(BLK)
如果本SW的DP故障,BP就成为DP。
Edge Port (边缘端口)=== CISCO的PORTFAST
RSTP的快速转换只能在点到点的链路上使用
·RSTP BPDU的格式:
在Flag字段总共8 bit,802.1D中只用到2 bit,
RSTP用到其他6 bit来完成端口状态和角色的编码。
Version: 2
Message Type : 2
·在802.1D中,只有当SW从RP收到BPDU时,非根桥才能转发BPDU。
在802.1w中,每个SW会每隔2S就发送一次包含当前信息的BPDU。
·如果SW在3个连续的Hello时间(6S)内没收到BPDU,就快速老化,提高了收敛速度。
默认集成backbonefast,uplinkfask功能
将portfast也集成了,改名为边缘端口,要手工加载,加载的方法一样。
Link-type 链路类型:按双工模式来分
半双工是 share类型
全双工是 point-to-point类型
可以手工改
Proposal和agreement消息用来做快速收敛
在RSTP中,每台交换机都可以下发TC置位的config BPDU,这样也实现了快速收敛
<RSTP的快速转发>
·为实现端口的快速收敛,RSTP定义了2个新的变量:
1.Edge-Port (边缘端口)
2.Link-Type (链路类型)
·RSTP的DP是能够让Edge-Port和P2p直接进入FWD模式。
MST(Multiple Spanning Tree) 802.1s
IEEE的802.1Q不仅定义了Trunk,还定义了CST(Common Spanning Tree)
CST
缺点:所有的Vlan都是按照同一个STP来工作的。
优点:开销小。
PVST
优点:可以为每个Vlan配置一个STP。可以实现基于Vlan.L2的负载分担。
缺点:SW维护很多的STP,开销大。Vlan改变,波及大。
MST(对CST和PVST的折衷方案)
1.MST对vlan分组(Instance)
2.每个分组可以有独立的STP,实现L2负载分担。
Sw1(config)#spanning-tree mode mst (启用MST)
Sw1(config)#spanning-tree mst configuration
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#show spanning-tree mst
Sw1#show spanning-tree mst configuration
有一个默认组0,没划分的VLAN就在这里面
MST不能和PVST共存,可以和RSTP共存
<EtherChannel>
·通过多个端口绑定,能充分利用现在端口来增加带宽。
Cisco最多允许绑定8个端口。
Sw1(config)#int range f0/8 ,f0/9
Sw1(config-if-range)#channel-group 1 mode on 将这两个接口绑定为一组并指定模式
Sw1#show etherchannel summary 可以看到绑定了多少接口
Show interface etherchannel
On:强行起etherchannel不属于以下两种协议中任一种,独立的
Port Aggregation Protocol (PAgP)
Cisco私用,默认是Auto模式。
auto:被动 只收不发
Desirable:主动 会发也会收协商消息
Link Aggregation Control Protocol (LACP) 链路聚合控制协议
802.3ad,业界标准
Passvie相当于PAgP的auto 只发不收
Active相当于PAgA的desirable 又发又收协商消息
Sw1(config-if)#channel-protocol [pagp|lacp]
<优化STP>
·BPDU防护:
对于设置了PortFast接口,却收到了BPDU,如果设置了BPDU防护,就能将此接口关闭,而不会进入生成树状态。且默认情况下是要手动才能恢复
Sw1(config)#spanning-tree portfast bpduguard (全局开启)
Sw1(config-if)#spanning-tree bpduguard enable (接口开启)
Sw1#show spanning-tree summary [totals]
Show errdisable recovery 显示可导致接口errdisable的选项
Sw1(config)#errdisable recovery cause bpduguard 设置300S(默认)后自动修复bpduguard所导致的errdisable
Sw1(config)#errdisable recovery interval 30 修改默认的修复时间
·BPDU过滤:不发也不收
通过使用BPDU过滤,能够防止向host发送不必要的BPDU。
收到BPDU的话,不会禁掉端口,只是不理会
注意
如果在全局下配置,从端口收到的BPDU,不会禁掉端口,会转为正常的STP 状态
如果在接口下配置,从端口收到BPDU的话,会丢弃
如果在同一接口设置guard/filter,f优于g
Sw1(config)#spanning-tree portfast bpdufilter default(全局开启)
Sw1(config-if)#spanning-tree bpdufilter enable (接口开启)
·根保护:
能够将接口强制设为DP,进而防止周围SW成为Root。
设置了根保护的端口如果收到了一个不同于原BPDU的新的BPDU,它将把本端口设为blocking禁止状态,过一段时间,如果没再收到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
·单向链路失效: 用于硬件故障,多用于光纤线路上
是比较常见的现象,以太网(光纤)的收发出现问题。
启用UDLD能使得这种接口自动进入“err-disable”状态。
单向链路失效检测需要在链路上两边的交换机上同时配置
Sw1(config)#udld enable 也可在接口下配
Sw1#show udld
只能在接口上
·环路保护: 用于软件故障
当STP中的BLK端口错误的过渡到FWD状态,有可能出现环路。
启用Loopguard的接口,当出现以上问题,将自动转为inconsistent状态
只需要在本端启用就可以.且可以对每个vlan上
建议做在所在RP和AP上。
Sw1(config)#spanning-tree loopguard default (全局)
Sw1(config-if)#spanning-tree guard loop (接口)