STP进阶 (PVST/RSTP/MSTP/优化方面)

网友投稿 490 2022-09-23


STP进阶 (PVST/RSTP/MSTP/优化方面)

生成树协议是网络领域比较基础的知识,之前笔者也写了一篇简单的介绍[STP生成树 概述],现在对STP的进阶知识做一下整理,之前笔者在某电商云中工作,负责数据中心网络的维护,发现二层的网络架构用的比较少了,基本上交换机之间都是三层互联;老的架构会有二层网络架构的遗留,anyway,下面整理一下知识,如有错误,请批评指正。

·

Cisco SW 默认为每个VLAN生成一个STP,互不影响。

·建议将性能最好的SW设成根桥

Sw1(config)#spanning-tree vlan 1-10 root primary (24576=0x6000) (建立优先级,成为根桥)

Sw2(config)#spanning-tree vlan 1-10 root secondary (28672=0x7000) (备份根桥,防止优先级根桥showdown了)

Sw1(config)#spanning-tree vlan 1-10 priority 4096

(设置必须是4096的倍数)

One root port per nonroot bridge(每个非根桥都要选出一个根端口)

·根端口(RP):每个非根桥有且只有一个根端口

选举RP/DP的方法:

1.Lowest RID(最小的RID)  是SW1(根桥)的BID

2.Lowest path cost to root bridge(到达根的最小路径开销)

3.lowest sender BID (最小的发送BID)

4.Lowest sender port ID  当两台交换机之间有两条线路直连时会用到这一项来选

·Path Cost:根桥发出的COST值是0,在下一交换机的入口处才加上COST值,出口处COST值不变。

10Mbps:100/ 100Mbps:19/ 1Gbps:4/ 10Gbps:2

Sw1#show interfaces status

Sw1#show spanning-tree

Sw1(config-if)#spanning-tree (vlan 1) cost 22 每个VLAN都能生成一个自已的生成树,通过改动每个VLAN的COST值可以达到让每个VLAN选择不同的根端口,产生不同的生成树,充分利用了链路

Sw1(config-if)#spanning-tree cost 22   修改所有Vlan的Cost值

Port ID是由优先级+端口号组成

修改端口优先级:默认情况下是128

Sw1(config-if)#spanning-tree port-priority 16  注意:必须是16的倍数才行

//PVST的选举过程与普通的STP选举过程一样,可以参考上述的参考链接,这里不再赘述。

<BPDU Timer>

三个计时器:

·Message Age:最大存活时间(20S)

Hello Time:根桥连续发送BPDU的间隔(2S)

Forward Time:SW在监听和学习状态所停留的时间(15S)

spanning-tree vlan 1-10 hello-time 3   修改发送BPDU的时间间隔

spanning-tree vlan 1-10 forward-time 13   修改forward时间

spanning-tree vlan 1-10 max-age 33    修改最大存活时间

注意:必须在根桥上修改,否则不起作用。

1.老化时间(blocking)(loss of BPDU detected)max age=20s

2.   监听时间(listening)forward delay=15s

3.学习时间(learning)forward delay=15s

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

测试:把交换机的端口shut down,再no shut down,观察状态。启用前和启有后是不一样的。

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:

BackboneFast是对UplinkFast的一种补充。用于检测主干SW间的链路故障。(50S -> 30S)

·要求BackboneFast应用在所有SW上。

当交换机检测到次级BPDU后,将使用替代路径发送RLQ BPDU(根链路查询BPDU),RLQ BPDU通过中间交换机向根交换机传播,并且根交换机将最终响应。

Sw1(config)#spanning-tree backbonefast

Sw1#show spanning-tree backbonefast 可以查看RLQ消息和次级BPDU

·当网络拓扑发生改变时,快速生成树协议能够明显地加快重新计算生成树的速度。

Sw1(config)#spanning-tree mode rapid-pvst   理论一大把,命令就一条

·RSTP定义了3种端口状态:

Discarding/Learning/Forwarding

(Discarding <-> STP:Disabled/Blocking/Listening)

MST(Multiple Spanning Tree) 802.1s

CST (Common Spanning Tree)

缺点:所有的Vlan都是按照同一个STP来工作的。

优点:开销小。

PVST

优点:可以为每个Vlan配置一个STP。可以实现基于Vlan.L2的负载分担。

缺点:SW维护很多的STP,开销大。Vlan改变,波及大。

MST(对CST和PVST的折衷方案)

1.MST对vlan分组(Instance)

2.每个分组可以有独立的STP,实现L2负载分担。

MSTP Regions

在相同域里面的SW遵从MST划分和STP计算

MST配置包括:

Name名字

Revsion number修订版本号

VLAN捆绑表

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)#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就在这里面

RSTP兼容STP、MST不能和PVST共存、MST可以和RSTP共存

<优化STP>

·BPDU防护:

对于设置了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的选项

Sw1(config)#errdisable recovery cause bpduguard  设置300S(默认)后自动修复bpduguard所导致的errdisable

Sw1(config)#errdisable recovery interval 30   修改默认的修复时间

·BPDU过滤:不发也不收

通过使用BPDU过滤,能够防止在启用portfast的端口上向host发送不必要的BPDU。

注意:

如果在全局下配置,从端口收到BPDU的话,不会禁掉端口,会转为正常的STP状态

如果在接口下配置,从端口收到BPDU的话,会丢弃。

如果在同一接口设置Guard/Filter , F优于G

Sw1(config)#spanning-tree portfast bpdufilter default(全局开启)

Sw1(config-if)#spanning-tree bpdufilter enable (接口开启)

show spanning-tree summary totals

·根保护:

能够将接口强制设为DP,进而防止对端SW成为Ro

ot。

设置了根保护的端口如果收到了一个优于原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

·环路保护: 对于软件故障处理得更好

当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

Sw1(config)#udld enable              某些型号指令

Sw1(config)#udld port [aggressive]   某些型号指令

Sw1#show udld neighbors

积极模式的UDLD--当端口停止接收UDLD的数据包时,UDLD将尝试重新建立与邻居的连接,但如果尝试8次之后还不成功,那么两端的端口都将成为“err-disable”状态。

STP排错:

1、双工不匹配

2、单向链路失效

3、帧破坏

4、资源错误

5、portfast配置错误

6、STP直径参数配置不恰当

7、STP BPDUFILTER过滤报文,导致对端的接口从BLK-> FWD

Err-disable特性:

接口如果进入err-disable状态:有两种方法恢复

1、手动恢复

先shutdown、再no shutdown

2、自动恢复

errdisable recovery cause {all|arp-inspection|bpduguard|link-flap} 指定原因

errdisable recovery interval 30   指定自动恢复时间间隔


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MPLS专题02_H3C静态MPLS LSP实验
下一篇:基于JavaMail的Java邮件发送
相关文章

 发表评论

暂时没有评论,来抢沙发吧~