<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)

 

&middot;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的快速转换只能在点到点的链路上使用

 

&middot;RSTP BPDU的格式:

 

 在Flag字段总共8 bit,802.1D中只用到2 bit,

 RSTP用到其他6 bit来完成端口状态和角色的编码。

 

 Version: 2

 Message Type : 2

 

&middot;在802.1D中,只有当SW从RP收到BPDU时,非根桥才能转发BPDU。

 在802.1w中,每个SW会每隔2S就发送一次包含当前信息的BPDU。

 

&middot;如果SW在3个连续的Hello时间(6S)内没收到BPDU,就快速老化,提高了收敛速度。

  默认集成backbonefast,uplinkfask功能

  将portfast也集成了,改名为边缘端口,要手工加载,加载的方法一样。

 

  Link-type  链路类型:按双工模式来分

  半双工是  share类型

  全双工是  point-to-point类型

  可以手工改

 

  Proposal和agreement消息用来做快速收敛

 

  在RSTP中,每台交换机都可以下发TC置位的config BPDU,这样也实现了快速收敛

 

<RSTP的快速转发>

 

&middot;为实现端口的快速收敛,RSTP定义了2个新的变量:

 1.Edge-Port (边缘端口)

 2.Link-Type (链路类型)

 

&middot;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>

 

&middot;通过多个端口绑定,能充分利用现在端口来增加带宽。

 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>

 

&middot;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   修改默认的修复时间

 

&middot;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 (接口开启)

 

 

 

&middot;根保护:

 能够将接口强制设为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

 

&middot;单向链路失效: 用于硬件故障,多用于光纤线路上

 是比较常见的现象,以太网(光纤)的收发出现问题。

 启用UDLD能使得这种接口自动进入&ldquo;err-disable&rdquo;状态。

  单向链路失效检测需要在链路上两边的交换机上同时配置

 

Sw1(config)#udld enable 也可在接口下配

 

Sw1#show udld   

只能在接口上 

 

&middot;环路保护: 用于软件故障

 当STP中的BLK端口错误的过渡到FWD状态,有可能出现环路。

 启用Loopguard的接口,当出现以上问题,将自动转为inconsistent状态

 只需要在本端启用就可以.且可以对每个vlan上

 建议做在所在RP和AP上。

更多内容请关注 http://www.9ihlw.com

 

 

Sw1(config)#spanning-tree loopguard default (全局)

 

Sw1(config-if)#spanning-tree guard loop (接口)


更多内容请关注 http://www.9ihlw.com