STP的配置
很多品牌的交换机出厂时是将生成树协议关闭的,其主要的原因在于生成树在开启的时候需要花费交换机一定的CPU和内存的开销。对于有些不需要冗余的小型网络中,不用开启STP,这样能节省设备的额外开销,Cisco的交换机默认全部是打开的。表8-10列出了Cisco交换机出厂时的默认配置。
表8-10 Cisco交换机的STP默认配置
特 性 | 默 认 值 |
STP开启状态 | 所有VLAN均开启,最大可开启128个生成树实例 |
STP模式 | PVST(PSTST和MSTP关闭) |
优先级 | 32768 |
STP端口优先级 | 128 |
STP端口开销 | 1Gbps:=4,100Mbps=19,10Mbps=100 |
生成树VLAN端口优先级 | 124 |
生成树VLAN端口开销 | 1Gbps:=4,100Mbps=19,10Mbps=100 |
Hello time | 2秒 |
Forward-delay | 15秒 |
Maximum-aging | 20秒 |
Cisco的交换机默认是开启PVST的,也就是开启每VLAN的生成树协议,每VLAN快速生成树协议(PVRST),多VLAN生成树协议(MSTP)则需要另外打开。Cisco 交换机的STP 最多支持128个实例,如果超过128个实例(也就是超过128VLAN),需要使用RSTP和MSTP协议。 |
关闭STP
在默认状态下,所有VLAN中的生成树都被启用。因此,无须为VLAN启用STP,只需根据拓扑结构,确定根交换机,并调整端口费用和优先级值,从而设置非常好的路径。如果确认在VLAN内没有拓扑环,可以禁用Spanning-Tree,以减少端口接入时等待的时间。对于的确不需要STP 的网络,可以关闭STP,表8-11 列出了关闭生成树配置步骤。
表8-11 关闭生成树配置
步 骤 | 命 令 | 解 释 |
1 | Switch# configure terminal | 进入全局配置模式 |
2 | Switch(config)# no spanning-tree vlan vlan-id | 关闭某一或某些VLAN的STP(Cisco的交换机默认是基于每VLAN的 vlan-id 指定关闭的VLAN ID,可以用连接号或逗号隔开多个,VLAN ID范围1~4094 |
3 | Switch(config)# end | 返回特权配置模式 |
4 | Switch#show spanning-tree valn-id | 验证 |
5 | Switch# copy running-config startup-config | 保存当前配置 |
将交换机配置为根桥
当VLAN中存在有环路时,应当通过根交换机、端口优先级和路径费用等设置,确定网络拓扑结构,从而使Spanning-Tree的生成时间最短。必须为每个VLAN配置一个根桥,交换机出厂时默认的32768,配置spanning-tree vlan vlan-id root后,将使32768值减少,保证比其他交换机低,使之成为该VLAN的根桥。
网络直径是指两台计算机之间通过交换机的数量,修改网络直径,交换机将自动修改网桥的优先级、aging time 等值,使之最快收敛,举例如下:
Switch (config)#spanning-tree vlan 1 root primary diameter 2
VLAN 1 bridge priority set to 8192 //从32768 降到8192
VLAN 1 bridge max aging time set to 10
VLAN 1 bridge hello time unchanged at 2
VLAN 1 bridge forward delay set to 7
表8-12是根桥参数修改的步骤,若将交换机恢复为默认配置,可以在全局配置模式下使用no spanning-tree vlan vlan-id root命令。
表8-12 根桥参数修改
步 骤 | 命 令 | 解 释 |
1 | Switch#configure terminal | 进入全局配置模式 |
2 | Switch(config)#spanning-tree vlan vlan-id root primary [diameter net-diameter [hello-time seconds]] | 配置一台交换机成为特定VLAN的根vlan-id 指定的VLAN ID,可以用连接号或逗号隔开多个,VLAN ID范围1~4094 (可选)网络直径,定义两台工作站之间交换机的数量,范围为2~7(可选)Hello-time,配置有根桥产生的BPDU消息通知的间隔,范围2~10秒,默认为2秒 |
3 | Switch(config)#end | 返回特权配置模式 |
4 | Switch#show spanning-tree detail | 验证 |
5 | Switch#copy running-config startup-config | 保存当前配置 |
3.配用备用根桥
可以配置某台交换机作为根桥的备份根桥,表8-13说明了配置备用根桥的步骤。这样的结果可以在某台根桥故障时,接替根桥工作。
表8-13 配置备用根桥
步 骤 | 命 令 | 解 释 |
1 | Switch#configure terminal | 进入全局配置模式 |
2 | Switch(config)#spanning-tree vlan vlan-id root secondary [diameter net-diameter [hello-time seconds]] | 配置一台交换机成为特定VLAN的根vlan-id指定的VLAN ID,可以用连接号或逗号隔开多个,VLAN ID范围1~4094(可选)网络直径,定义两台工作站之间交换机的数量,范围为2~7(可选)Hello-time,配置有根桥产生的BPDU消息通知的间隔,范围2~10秒,默认为2秒 |
3 | Switch(config)#end | 返回特权配置模式 |
4 | Switch#show spanning-tree detail | 验证 |
5 | Switch#copy running-config startup-config | 保存当前配置 |
4.配置端口优先级
如果VLAN内有环路拓扑,Spanning-Tree将使用端口优先值确定将哪个接口置于转发状态。因此,可以将需要首先选择的端口赋予较高优先级值(较小的数值)。如果所有端口都有相同的优先级值,那么具有最小端口号的端口将被设置为转发状态,其他接口则处于阻塞状态。表8-14说明了配置较高端口优先级的步骤。
表8-14 配置端口优先级
步 骤 | 命 令 | 解 释 |
1 | Switch#configure terminal | 进入全局配置模式 |
2 | interface interface-id | 进入端口配置模式 |
3 | Switch(config)#spanning-tree port-priority priority | 配置一个端口的优先级 Priority 范围为0~240,步长为16(非16的步长值,不接受),默认为128,数据越大优先级越大 |
4 | Switch(config)#spanning-tree vlan vlan-id port-priority priority | 配置一个VLAN端口的优先级vlan-id指定的VLAN ID,可以用连接号或逗号隔开多个,VLAN ID范围1~4094 Priority 范围为0~240,步长为16(非16的步长值,不接受),默认为128,数据越大优先级越大 |
5 | Switch(config)#end | 返回特权配置模式 |
6 | Switch#show spanning-tree interface interface-id Switch#show spanning-tree vlan vlan-id | 验证 |
7 | Switch#copy running-config startup-config | 保存当前配置 |
使用no spanning-tree [vlan vlan-id] port-priority接口配置命令,可以将端口优先级恢复为默认值。
5.配置端口开销
Spanning-Tree路径(端口)开销的默认值取决于端口的类型与速率。当VLAN中有拓扑环时,Spanning-Tree使用路径开销选择将哪个端口置于转发状态。具有最低端口开销的端口将被选择用于向所有的VLAN转发帧。因此,可以将需要选择的端口赋予较低的开销值,以确定网络拓扑。
通常情况下,应当为快速链路(如1000 Mbps端口)赋予一个最小值,而为一个慢速链路(如100Mbps端口)赋予一个最大值。如果所有端口的开销值都相同情况出现,就需要将具有最小端口号的端口将被设置为转发状态,其他端口则处于阻塞状态。表8-15 说明了在上述特殊情况下配置STP端口开销的补助。
表8-15 配置STP端口开销
步 骤 | 命 令 | 解 释 |
1 | Switch#configure terminal | 进入全局配置模式 |
2 | Switch(config)#interface interface-id | 进入端口配置模式 |
3 | Switch(config-if)# spanning-tree cost cost | Cost的范围为1~200 000 000,默认值参看表8-1,越小越优先 |
4 | Switch(config-if)# spanning-tree vlan vlan-id cost cost | 配置VLAN端口的的开销vlan-id指定的VLAN ID,可以用连接号或逗号隔开多个,VLAN ID范围1~4094,Cost的范围为1~200 000 000,默认值参看表8-1,越小越优先 |
5 | Switch(config)#end | 返回特权配置模式 |
6 | Switch# show spanning-tree interface {interface-id} |{port-channel port_channel_number} Switch# show spanning-tree vlan vlan_ID | 验证 |
7 | copy running-config startup-config | 保存当前配置 |
使用no spanning-tree [vlan vlan-id] cost接口配置命令,可以将接口开销恢复为默认值。
6.配置VLAN优先级
采用表8-16的指令可以设置某个VLAN的优先级,Cisco建议采用spanning-tree vlan vlan-id root primary 来修改VLAN的根桥。
表8-16 配置STP VLAN端口优先级
步 骤 | 命 令 | 解 释 |
1 | Switch#configure terminal | 进入全局配置模式 |
2 | Switch(config)#spanning-tree vlan vlan-id priority priority | vlan-id 指定的VLAN ID,可以用连接号或逗号隔开多个,VLAN ID范围1~4 094。 Priority 范围为0~61 440,步长为4096(非4 096的步长值,不接受),默认为32 768,数据越小将被选为根桥 |
3 | Switch(config)#end | 返回特权配置模式 |
4 | Switch#show spanning-tree vlan vlan-id | 验证 |
5 | Switch#copy running-config startup-config | 保存当前配置 |
7.配置Hello Time
默认情况下,VLAN之间的Hello包时间为2秒,表8-17 是修改生成树Hello Time的步骤。
表8-17 修改生成树Hello Time
步 骤 | 命 令 | 解 释 |
1 | Switch#configure terminal | 进入全局配置模式 |
2 | Switch(config)#spanning-tree vlan vlan-id hello-time seconds | vlan-id 指定的VLAN ID,可以用连接号或逗号隔开多个,VLAN ID范围1~4 094 Seconds,范围为1~10,默认为2 |
3 | Switch(config)#end | 返回特权配置模式 |
4 | Switch#show spanning-tree vlan vlan-id | 验证 |
5 | Switch#copy running-config startup-config | 保存当前配置 |
8.Fordwarding-Delay
修改VLAN的转发延迟,配置补助如表8-18所示。
表8-18 修改STP 转发延迟
步 骤 | 命 令 | 解 释 |
1 | Switch#configure terminal | 进入全局配置模式 |
2 | Switch(config)#spanning-tree vlan vlan-id forward-time seconds | vlan-id 指定的VLAN ID,可以用连接号或逗号隔开多个,VLAN ID范围1~4 094 Seconds,范围为4~30,默认为15 |
3 | Switch(config)#end | 返回特权配置模式 |
4 | Switch#show spanning-tree vlan vlan-id | 验证 |
5 | Switch#copy running-config startup-config | 保存当前配置 |
9.修改VLAN的老化时间(Maximum-Aging)
最大老化时间(MAX-AGE TIMER)规定了从一个具有指定端口的邻接交换机上所收到的BPDU报文的生存时间。如果非指定端口在最大老化时间内没有收到BPDU报文,该端口将进入Listening状态,并接收交换机产生配置BPDU报文。
表8-19修改STP VLAN老化时间的命令步骤,如果要恢复默认配置可以使用no spanning-tree vlan vlan-id max-age命令。
表8-19 修改STP VLAN老化时间
步 骤 | 命 令 | 解 释 |
1 | Switch#configure terminal | 进入全局配置模式 |
2 | Switch(config)#spanning-tree vlan vlan-id max-age seconds | vlan-id 指定的VLAN ID,可以用连接号或逗号隔开多个,VLAN ID范围1~4 094 Seconds,范围为6~40,默认为20 |
3 | Switch(config)#end | 返回特权配置模式 |
4 | Switch#show spanning-tree vlan vlan-id | 验证 |
5 | Switch#copy running-config startup-config | 保存当前配置 |