STP(Spanning Tree Protocol) 生成树协议,由IEEE定义

 

作用:防止二层环路

 

思科:默认开启 H3C:默认关闭

 

关于生成树的协议的几个标准:

802.1D 标准的生成树 STP

802.1W 快速生成树 RSTP

802.1S 多实例生成树 MSTP

 

Cisco私有的:

PVST+     每个vlan拥有一课单独的生成树,这么解释的原因是之前的802.1D是所有vlan共享一棵生成树

PVRST+   对rstp的增强版

 

STP的选举:

1,选根桥(每个stp实例中有一个根桥)

桥ID=优先级(默认32768)+MAC地址(当优先级相同时,选择最小mac地址)

2,选根端口(每个交换机有一个根端口)

每一个交换机上到根桥最近的接口

A.比较到根的开销

B.比较发送者的桥ID(上级交换机)

C.比较发送者接口的优先级(默认128)

D.比较发送者的端口ID(上级交换机)

3,指定端口(每个链路有一个指定端口)

每一条链路上到根最近的接口

(根交换机的所有接口都是指定端口)

A.比较到根的开销

B.比较自己的桥ID

C.比较两个接口的优先级

D.比较两个接口的端口ID

4,剩下的就是非指定端口,也叫阻塞端口

 

附:链路开销表

p_w_picpath

 

STP的四种状态

阻塞(blocking): 不接收也不转发帧,接收但不发送BPDU,不学习MAC地址(20s)

监听(listening): 不接收也不转发帧,接收并发送BPDU,不学习MAC地址(15s)

学习(learning): 不接收也不转发帧,接收并发送BPDU,学习MAC地址(15s)

转发(forwarding):接收并转发帧,接收并且发送BPDU,学习MAC地址

 

RSTP的三种状态

关闭(disable): 不接收也不转发帧,接收但不发送BPDU,不学习MAC地址

学习(learning): 不接收也不转发帧,接收并发送BPDU,学习MAC地址

转发(forwarding):接收并转发帧,接收并且发送BPDU,学习MAC地址

 

 

 

 

STP的高级特性

1,PortFast:应用在接入层端口 

特点:

A:防止下面接入网络设备

B:不参与stp选举,直接进入Forwarding状态,加快收敛

C:防止DHCP分配地址超时

D:一般和BpduGuard一起使用

 

全局配置命令:

Switch(config)# spanning-tree portfast default 

在所有access接口上激活portfast

接口配置命令:

Switch(config-if)# spanning-tree portfast 

 

在该接口上激活portfast

还有一条宏命令,接口下配置

 

Switch(config-if)# spanning-tree host

相当于把端口置于access模式,并开启portfast

 

 

2,Uplink Fast:应用在trunk端口

特点:

A:在活动链路故障时快速进行端口转换

B:配置之前,交换机的优先级需要是默认的,此命令会加大优先级使之永远不会最优

C:手工更改过优先级的,则uplinkfast不会改变此优先级

 

全局配置命令:

Switch(config)# spanning-tree uplinkfast  

 

 

3,Backbone Fast:UplinkFast的补充

特点:

A:能检测到间接的链路故障

B:大大的缩短stp的收敛时间

 

全局配置命令:

Switch(config)# spanning-tree backbonefast 

 

 

4,BpduGuard:(BPDU防护)

特点:配置为该模式的端口将不能接收BPDU包 ,一旦收到端口

将变为err-disable状态,配置在接入层,防止接入非法

的交换机,从而抢根,一般和portfast一起用

 

接口配置命令:

spanning-tree  BpduGuard  enable 

 

全局配置命令:

spanning-tree portfast BpduGuard default

在所有启用portfast的接口上启用BPDU防护

 

 

5,BpduFilter:(BPDU过滤)

特点:防止交换机在启用了Portfast特性的接口上接收和发送BPDU

 

接口配置命令:

spanning-tree  BpduFilter  enable    

接口将不会发送BPDU,也忽略接收到的BPDU

 

全局配置命令:

spanning-tree portfast BpduFilter default

启用后,在链路up的瞬间会发送BPDU,此后不再发送任何BPDU

启用后,在收到BPDU后立即丢失portfast以及BpduFilter特性,

成为一个普通的spanning-tree接口

 

 

6,Root Guard(跟防护)

特点:启用该命令的端口,一旦收到比当前跟桥更优的BPDU包,

将会把这个接口STP状态设置为BKN,直到不在收到给类型的BPDU包为止,一般配置在接入层

 

接口配置命令:

spanning-tree  guard  root               

 

 

7,UDLD(单项链路故障检测)

特点:启用该命令后的端口,交换机会定期向邻居发送UDLD协议数据包,

并且期望收到回应,如果指定之间没有收到,就认为该链路为单向链路,

并且将端口关闭,一般多用于光纤链路中

 

接口配置命令:

udld  port  aggressive 

(单项链路故障检测,针对的是端口,一旦出现问题立马down掉端口) 

 

 

8,Guard Loop(环路防护)

特点:和UDLD作用类似,和UDLD的区别是它针对的是每vlan,

不会down掉整个端口,只会阻断有问题的vlan,正常vlan是可以通过配置此特性的端口的

 

接口配置命令:

spanning-tree  guard loop