拓扑图
实验一:STP之PVST(基于每个vlan的生成树)的配置
(1)将交换机之间的链路都设置为trunk,利用vtp在交换机上创建vlan2
s1(config)#interface range fastEthernet 0/1-3
s1(config-if-range)#switchport mode trunk
s2(config)#interface range fastEthernet 0/1-3
s2(config-if-range)#switchport mode trunk
s3(config)#interface range fastEthernet 0/1-2
s3(config-if-range)#switchport mode trunk
s3(config)#vtp domain xu.com
s3(config)#vtp mode server
s3(config)#vlan 2
(2)检查默认的STP树
s3#show spanning-tree
(3)控制s1为vlan1的根桥
s1(config)#spanning-tree vlan 1 priority 4096(如果要s1成为vlan2的根,则将vlan1改为vlan2)
(4)控制指定端口
s3(config)#spanning-tree vlan 1 root secondary (通过修改优先级为仅低于根优先级来控制指定端 口)
(5)修改端口优先级
s3(config)#interface fastEthernet 0/1
s3(config-if)#spanning-tree vlan 1 port-priority 112 (优先级是16的倍数,默认为128)
(6)关掉某个vlan(如vlan1)的STP
s1(config)#no spanning-tree vlan 1(若想开启则把no去掉)
实验二:STP之portfast,uplinkfast,backbonefast的配置
配置portfast
s1(config)#interface fastEthernet 0/4
s1(config-if)#switchport mode access
s1(config-if)#switchport access vlan 1
s1(config-if)#spanning-tree portfast (端口配置了portfast后会立即进入转发状态,不需要30秒的 等待时间)
配置uplinkfast
s3(config)#spanning-tree uplinkfast (快速收敛,只需在接入层交换机上配置)
s3(config)#spanning-tree uplinkfast max-update-rate 200 (配置每秒钟发送的组播数为200个)
配置backbonefast
s3(config)#spanning-tree backbonefast (需要在每台交换机上都配置)
实验三:STP之RSTP的配置
清除实验二中的配置
s3(config)#no spanning-tree backbonefast (需要在每台交换机上都配置)
s3(config)#no spanning-tree uplinkfast
配置RSTP
s1(config)#spanning-tree mode rapid-pvst (需要在每台交换机上都配置)
配置链路类型配置(如果接口上配置了spanning则接口为边缘接口,如果接口是全双工则接口为点到点接口,如果接口为半双工则接口为共享接口)
s3(config)#interface fastEthernet 0/1
s3(config-if)#duplex full
s3(config-if)#spanning-tree link-type point-to-point
s1(config)#interface fastEthernet 0/3
s1(config-if)#duplex full
s1(config-if)#spanning-tree link-type point-to-point
查看
s1h#show spanning-tree summary
实验四:STP之MSTP的配置
s1(config)#spanning-tree mode mst (把以上生成树模式改为MSTP,默认时是PVST+)
s1(config)#spanning-tree mst configuration(进入MSTP的配置模式)
s1(config-mst)#name cisco(命名MSTP的名字)
s1(config-mst)#revison 1 (配置MST的revision号,只有名字和revision号相同的交换机才是同一个 MST区域)
s1(config-mst)#instance 1 vlan 1-2 (把vlan1和vlan2的生成树映射到实例1)
s1(config-mst)#instance 2 vlan 3-4 (把vlan3和vlan4的生成树映射到实例2,这里一共有3个MST实 例。实例0是默认的实例,默认时所有的vlan都映射到该实例上)
s1(config-mst)#exit
s1(config)#spanning-tree mst 1 priority 8192 (配置s1为MST实例1的根桥)
s1(config)#spanning-tree mst 1 priority 12288
s2(config)#spanning-tree mode mst
s2(config)#spanning-tree mst configuration
s2(config-mst)#name cisco
s2(config-mst)#revison 1
s2(config-mst)#instance 1 vlan 1-2
s2(config-mst)#instance 2 vlan 3-4
s2(config-mst)#exit
s2(config)#spanning-tree mst 1 priority 12288
s2(config)#spanning-tree mst 1 priority 8192 (配置s2为MST实例1的根桥)
实验五:STP之STP树保护的配置
(1)配置s1、s2、s3之间的链路为trunk
(2)配置s1为根桥
s1(config)#spanning-tree vlan 1 Priority 8192
(3)在s2的fa0/2上配置Guard Root
s2(config)#int fa0/2
s2(config-if)#spanning-tree guard root (此时便可以阻止s3成为根桥,如果将s3的优先级改为4096,则s2的fa0/2端口将阻塞,当威胁消除后,接口将自动恢复正常)
(4)配置BPDU Guard
s3(config)#interface fastEthernet 0/2
s3(config-if)#sWitchport mode access
s2(config)#int fa0/2
s2(config-if)#no spanning-tree guard (去掉之前的配置)
s2(config-if)#switchport mode access
s2(config-if)#spanning-tree portfast
s2(config-if)#spanning-tree bpduguard enable(此时,交换机s2从fa0/2接口收到s3的BPDU,fa0/2被disable了,s2从fa0/2接口应该接入不会发送BPDU的计算机。要重新开启这个端口,请先移除BPDU源,在该接口上执行shutdown和no shutdown)
s2(config)#errdisable recovery cause bpdugard(允许因为 bpdugard而关闭的接口在故障解除后自 动恢复)
s2(config)#errdisable recovery interval 60(配置自动恢复的时间为60秒)
(5)配置BPDU Filter
s2(config)#default intface fa0/2
s2(config-if)#spanning-tree bpdufilter enable
实验六:STP之环路防护的配置
(1)把每条链路都配置trunk,将s1配置为root
(2)配置Guard Loop
s3(config)#interface fastEthernet 0/2
s3(config-if)#spanning-tree guard loop
(2)配置UDLD
s3(config-if)#no spanning-tree guard loop (清除上步的配置)
s2(config)#udld aggressive(配置UDLD为主动模式,这样监测到单向链路故障后,将关闭接口。udldenable命令则是配置UDLD为普通模式)
s2(config)#int fa0/2
s2(config-is)#udld port aggressive
s3(config)#udld aggressive
s3(config)#udld message time 15(配置每15秒发送一次探测包,默认为15秒)
s3(config)#int fa0/2
s3(config-is)#udld port aggressive(只有链路两边都配置了UDLD才能建立邻居关系,UDLD发现原有的邻居不在了才认为发生了单向故障,如果只有一端配置了UDLD,是无法监测单向链路故障的。单向故障排除后,可以使用udld reset命令来使接口从新可用,也可以使用errdisable recovery case udld 全局命令让接口自动重新可用)
s3#show udld neighbors
实验七:STP之FlexLink的配置
(1)把每条链路都配置trunk,并配置管理地址(供测试)
s1(config)#int vlan 1
s1(config-if)#ip add 192.168.1.1 255.255.255.0
s2(config)#int vlan 1
s2(config-if)#ip add 192.168.1.3 255.255.255.0
(2)配置FlexLink
s3(config)#int fa0/2
s3(config-if)#switchport backup interface fa0/1(配置fa0/1是fa0/2的备份接口)
s3(config-if)#switchport backup interface fa0/1 premmption mode forced(配置抢占模式。preemface mode 有forced、bandwith和off三种模式,off是默认模式,主用接口故障而备用接口激活后,在主用接口恢复正常后,如果preemption mode是off,则主用接口不会激活,如果preemption mode是forced,则主用接口会激活,如果preemption mode是bandwidth,则带宽大的接口会激活 )
s3(config-if)#switchport backup interface fa0/1 premmption delay 30(配置抢占延时,单位是秒)
s3(config)#mac address-table move update transmit
s3(config)#int fa 0/2
s3(config-if)#switchport backup interface fa0/1 mmu primary vlan 1 (配置MAC address-table move update 当主用接口发生=故障后,备用接口启用,这时交换机s1和s2的MAC地址表并没有及时更新。配置MAC address-table move update 后,交换机s3将发送更新消息给s1和s2)
s1(config)#mac address-table move update receive
s2(config)#mac address-table move update receive(“MAC address-table move update”功能不仅需要在接入层配置,也需要在分布层交换机配置,s3发送,s1和s2接收)
(3)测试
从s3连续ping s1(192.168.1.1),然后在s2上关闭fa0/2,从s3上看到通信时连续的
s3#ping 192.168.1.1 repeat 1000000
STP总结:交换机通过stp协议有选择性地阻断了某些接口,从而构建无环路的转发路径,stp需要选择根桥、根口、和指定端口,IEEE802.1d的stp需要较长时间才收敛,通常为30-50秒。
本文转自shangshanyang51CTO博客,原文链接:http://blog.51cto.com/qqran/1633927 ,如需转载请自行联系原作者