STP (Spanning tree protocol)
1.STP的作用
2.STP的概念
3.STP的工作原理
4.STP的配置、调整、校验
5.STP的优化
6.STP的版本
7.STP的保护
1.STP的作用
1)是一个物理连接成环交换网络,让它逻辑上不成环
2)实现动态备份
3)实现负载分担 pvstp mst
2.STP的概念
BPDU
BID (prio + MAC) 默认 32768 MAC是主板上的,是唯一的。
Cost 到根的距离
SenderBID 转发者的ID
SenderPID (prio + Num) prio默认 128 ,转发者的portID
BPDU是由root产生,被交换机转发会修改cost,senderBID,senderPID
RP(根端口) ,用来接收ROOT的BPDU,离ROOT最近的端口
DP(指定端口),用来转发BPDU
非指定端口:不是RP也不是DP的端口就是 非指定端口,不能转发用户数据
5个端口状态:
1.Disable: 管理down。不收发BPDU,不转发用户数据
2.Blocking: 不发送BPDU,会接收BPDU,不转发用户数据
3.Listening:会发送BPDU,会接收BPDU,不转发用户数据
4.Learning:会发送BPDU,会接收BPDU,不转发用户数据
5.Forwarding:会发送BPDU,会接收BPDU,转发用户数据
3个计时器:
1.hello-timer: 2s
2.max-age-timer:20s 保持root的BPDU的时间
3.forwarding-timer: 15s STP选举时间。listening停留时间, learning停留时间
3.STP的工作原理
选举步骤:
1.Root(在交换网络中选出唯一的一个交换机为ROOT)
2.RP(在所有的非根交换机中,每个交换机上选出唯一的一个端口为RP)
3.DP(在所有的网段中,每个网段选出一个端口为DP)
比较原则: 越小越好
1.BID
2.Cost
3.SenderBID
4.SenderPID
4.STP的配置、调整、校验
Switch(config)#no spanning-tree vlan 1 //关闭vlan1的STP
调整BID中的优先级:
Switch(config)#spanning-tree vlan 1 priority 4096
Switch(config)#spanning-tree vlan 1 root primary
Switch(config)#spanning-tree vlan 1 root secondary
调整接口下的Cost:
SW3(config-if)#spanning-tree cost 19
SW3(config-if)#spanning-tree vlan 1 cost 19
调整接口下的PID中的优先级:
SW2(config-if)#spanning-tree port-priority 128
SW2(config-if)#spanning-tree vlan 1 port-priority 128
SW2#show spanning-tree
SW2#show spanning-tree vlan 1
SW2#show spanning-tree summary
SW2#show spanning-tree int f0/23 detail
5.STP的优化
1.portfast: 使连接3层端口的交换机接口迅速进入forwarding状态。30s --> 0s
Switch(config-if)#spanning-tree portfast //此接口开启portfast
Switch(config)#spanning-tree portfast default //所有的access 接口开启portfast
2.uplinkfast:是对rp的备份,端口从Blocking立刻进入Forwarding状态,30s-->0s 在STP的末节设备(没有DP的设备)开启
SW2(config)#spanning-tree uplinkfast
3.backbonefast:对间接链路故障的优化,对max-age的优化, Blocking -->Forward 由原来的50s -- > 30s 。需要在所有设备上开启
SW2(config)#spanning-tree backbonefast
6.STP的版本
802.1D CSTP
pvstp cisco
802.1W RSTP
PVRSTP
Switch(config)#spanning-tree mode rapid-pvst
802.1D 和802.1W的区别:
1.端口状态变成3个: discarding , learning , forwarding
2.端口角色非指点端口分为两个: Alternate,Backup
3.有了链路类型 P2P , shared
4.有了边缘端口 Edge port
5.默认开启uplinkfast, backbonefast
6.max-age 20s -- > 6s
802.1S MSTP
功能:
1.几个vlan共用一个RSTP,减少交换机资源消耗
2.同一个域中的交换机对外可以看做是一台交换机
SW1(config)#spanning-tree mode mst
SW1(config)#spanning-tree mst configuration
SW1(config-mst)# name ccnp
SW1(config-mst)# revision 1
SW1(config-mst)# instance 1 vlan 1-10
SW1(config-mst)# instance 2 vlan 11-20
SW1(config-mst)# instance 3 vlan 21-30
SW1(config-mst)#end
SW2(config)#spanning-tree mst 1 root primary
7.STP的保护
BPDUGuard:
SW2(config-if)#spanning-tree bpduguard enable //此接口开启bpduguard
SW1(config)#spanning-tree portfast bpduguard default //所有的已经开启portfast的接口开启bpduguard
开启了bpduguard的接口,不应该收到bpdu,如果收到了bpdu,会把这个接口置入err-disable state(down的状态,不能转发用户数据)。不能自动恢复接口状态
可以通过命令让接口恢复状态:
SW1(config)#errdisable recovery cause bpduguard
SW1(config)#errdisable recovery interval 30
BPDUFilter:
SW1(config-if)#spanning-tree bpdufilter enable //此接口开启bpdufilter
SW1(config)#spanning-tree portfast bpdufilter default //所有的已经开启portfast的接口开启bpdufilter
如果在接口下开启:
接口不发BPDU,如果收到BPDU直接丢弃。接口还会保持正常状态
如果在全局下开启:
接口不发BPDU,如果收到BPDU,会关闭接口下的portfast,bpdufilter功能,进入STP的选举过程
ROOTGuard:
Switch(config-if)#spanning-tree guard root
如果接口收到更好的BPDU,会把接口置入root-inconsistent state (不能转发用户数据),如果收到的BPDU不再好,那么这个接口会自动恢复正常状态。
LOOPGuard:
SW1(config-if)#spanning-tree guard loop
对单向链路故障而产生的环路的保护,如果发现出现单向链路故障,会把接口置入errdisable状态,不能转发用户数据。故障解除,接口会自动恢复正常状态。
UDLD:
SW1(config)#udld enable // 普通模式
SW1(config)#udld aggressive //积极模式
对线路上的单向链路故障而产生的环路的保护,如果发现出现单向链路故障,会把接口置入errdisable状态,不能转发用户数据。故障解除,接口不会自动恢复正常状态。
可以通过命令让接口恢复状态:
SW1(config)#errdisable recovery cause udld
SW1(config)#errdisable recovery interval 30