spanning tree protocol(stp)

portfast快速端口

blk20-slis15s-ler15s-fwd

接非交换机设备,如pc、路由器

实验

r4:

int e0/0

ip add 100.1.1.4 255.255.255.0

no sh

r6:

int f0/0

ip add 100.1.1.6 255.255.255.0

no sh

shutdown

sw1:

show spanning tree

debug spanning-tree events

默认情况下r4和r6通需要30秒。

将接入端口设置为portfast让接入端快速收敛。

应用地方

portfast:接入端口非交换机设备,节约了30秒时间

sw1:

int f0/6

spanning-tree portfast

全局命令

spanning-tree portfast default(把交换机所有的接口都作为portfast)

int f0/1

spanning-tree portfast disable(把接交换机的接口portfast关闭)

uplinkfast(上联线路快速收敛)

当上联链路断开blk端口要成为flw需要30秒。

实验:

sw1:

spanning-tree vlan 1 priority 0(设置sw1为跟桥)

sw2:

debug spanning-tree events

int f0/12

shutdown

在未配置uplinkfast之前当sw2的f0/12接口down后需要30秒

spanning-tree uplinkfast

uplinkfast接入层sw 节约30秒,优先级强制增加到49152,cost值增加了3000,show spanning tree 显示uplinkfast enabled

backbonefast

不配置backonefast从blk到flw需要50秒

sw2:

int f0/12

no sh

debug spanning-tree events

sw3:

int f0/8

shutdown

backbonefast 所有sw启用 节约20秒

原理

一台交换机启用了backbonefast收到次级bpdu以后通过它的rp发出一个叫rlq(跟桥链路查询)的查询,跟桥收到以后会回response,当我收到这个回应会把blk接口直接到lis状态。

sw1:

spanning-tree backonefast

sw2:

spanning-tree backonefast

sw3:

spannint-tree backonefast

sw2:

show spanning-tree backonefast

rstp(802.1w)快速生成树

rstp端口状态

discarding(blk-lis)-learning-forwarding

rstp端口角色

rp dp ap( 替代端口)bp(备份端口){ndp}无论是ap还是bp都是blk的。主要看这两个blk有什么区别。

ap:我本地的bpdu没有别的交换机的bpdu好.

bp:我本地的两个接口一个每一个接口号小.

分段收敛,1-2秒

过程,收到proposal吧所有接口执为同步,

rstp链路类型

p2p快速收敛

shared stp

可以强制把链路类型改为p2p

spanning-tree link-type

cisco默认是工作在pvst他实际的思想是stp,但是你的端口角色包含有ap何bp的叫法,或者链路类型有点到点和共享。它只是借用了rstp交换,实际的工作原理还是stp。

rstp每台交换机都会2秒发送一次bpdu,充当了keeplive。继承了banbongfast和uplinkfast。

启用方式

spanning-tree mode rapid-pvst

mstp(多实例生成树802.1s)

mst部署

vlan1-5 in1

vlan6-10 in2

sw1:

spanning-tree mode mst

show spanning-tree mst

spanning-tree mst configuration

name smoke

revision 2

instance 1 1-5

instance 2 6-10

show spanning-tree mst

spanning-tree mst 1 priority 0(设置这个组中的跟桥)

show spanning-tree mst configuration

etherchannel(线路捆绑)

pagp(端口聚合协议思科私有)

lacp(ieee802.3ad)

pagp:desiable/auto

lacp:active/passive

on

实验:

sw1:

interface range f0/11,f0/12

channel-group 1 mode on

sw2:

interface range f0/11,f0/12

channel-group 1 mode on

注意:

配置etherchannel必须所有接口都支持。

要配置etherchannel必须所有接口速率和工作模式一致。

不能做一个端口的流量映射到另个端口

一旦配置了port-channel会生成3层接口

etherchannel load balancing(做负载分担)

基于mac地址

switch(config)#port-channel load-balance src-mac

show etherchannel load-balance

最多支持8个接口捆绑。

show etherchannel summary

bpdu guard(bpdu防护)

switch(config)#spanning-tree portfast bpduguard

switch#show spanning-tree summay totals

做在接入层,确定该接口接入的是pc或路由器,当收到bpdu接口会进入err-disable,恢复方法手工(shutdown,noshutdown),自动恢复。多少秒以后自动恢复。

实验:

sw1:

int f0/11

spanning-tree bpduguared enable

设置自动恢复

errdisable recover cause bpduguard(默认300秒恢复)

show errdisable recover

errdisable recovery interval 30(手工设置恢复时间)

全局命令

spanning-tree portfast bpduguard default(所有接口都作为bpduguard)

int f0/1

spanning-tree bpduguard disable(关闭接交换机的bpduguard)

bpdu filter

switch(config)#spaning-tree portfast bpdufilter default

switch#show spanning-tree summary totals

收到bpdu只把bpdu包drop掉。

sw1:

int f0/11

spanning-tree bpdufilter enable

bpdufilter的接口即不发也不收bpdu

bpduguard的接口不会收但是会发

root guard(跟桥防护)

做了跟桥防护,当我再收到更优的bpdu将接口置为不一致的状态标示为broken,但bloken是自适应的,就是收到bpdu会bloken,收不到又会up.

sw1:

int f0/11

spanning-tree guard root

show spanning-tree interface fastethernet 0/11 detail

switch#show spanning-tree inconsistentports

loop guard(stp环路)

单向链路检测失败

udld 光纤口

单向链路出现问题把整个接口都阻塞

开始方式udld enable

单个接口开始方式

int f0/11

udld port

switch(config-if)#spanning-tree guard loop

udld和loop guard区别

都是基于端口,loop guard还可以基于vlan,loop guard支持自动恢复,udld建议所有接口都启用,loop guard一般发生问题在rp、ap上,udld解决的是硬件问题,loop guard解决的是软件问题,最好的解决方法都启用。

stp security:

bpdu guard :err-dis

bpdu filter:drop

root guard:broken

stp loop:

udld:硬件问题

loop guard:软件问题