STP配置
扩展树(Spanning Tree Protocol,STP),也称生成树,它的产生源于链路的冗余连接。在大中型网络当中,与主干网和服务器的连接是非常重要的,而端口或交换机的损坏却是不可避免的,那么,如何在一条链路损坏之后,还能有其他的链路保持连接呢?这自然就要引进冗余链接。冗余的链接固然增加了系统的安全性,但同时也带来了另外一个问题,那就是拓扑环。
1.Spanning-Tree简介
解决循环连接的方案就是STP。通过一定算法,STP使任意两个节点间有且只有一条路径连接,而其他的冗余链路则被自动阻塞,作为备份链路(如图6-17所示)。只有当活动链路失败时,备份链路才会被激活,从而恢复设备之间的连接,保证网络的畅通。
与EtherChannel不同,Spanning-Tree只能保证在两台设备间拥有一条活动链路,因此,也就无法实现带宽加倍和负载均衡。这就好象是一棵树,从树根开始长起,然后是树干、树枝,最后到树叶,从而保证任意两片树叶间只有一条路。而链路选举的标准就是优先级值(Priority)和端口费用(Cost)。不过,Spanning-Tree的优点是可以在任何端口实现,而不一定是固定的双绞线端口或光纤端口。
在启用Spanning-Tree的交换机,其接口处于以下几种状态之一:
Blocking(阻塞),不参与帧的转发。
Listening(侦听),当确定该接口将参与帧转发时,在阻塞状态后的第一个过度状态。
Learning(学习),准备参与帧转发。
Forwarding(转发),转发帧。
Disabled(禁用),端口处于Shutdown状态、没有连接,或者没有启用Spanning-Tree,从而不参与Spanning-Tree。
默认的STP配置参数见表6-5所示。
表6-5 默认STP配置
特
征
| 默 认 设 置
| 启用状态
| VLAN1启用,最多可以启用64STP
| 交换机优先级
| 32768
| STP端口优先级
| 128
| STP端口费用
| 1000 Mbps: 4
100 Mbps: 19
10 Mbps: 100
| STP VLAN端口优先级
| 128
| STP VLAN端口费用
| 1000 Mbps: 4
100 Mbps: 19
10 Mbps: 100
|
默认状态下,所有VLAN中的扩展树都被启用。因此,无需为VLAN启用STP,只需根据拓扑结构,确定根交换机,并调整端口费用和优先级值,从而设置最佳路径。
2.禁用Spanning-Tree
如果确认在VLAN内没有拓扑环,可以禁用Spanning-Tree,以减少端口接入时等待的时间。
第一步:进入全局配置模式。
Switch# configure terminal
第二步:在指定VLAN内禁用Spanning-Tree。
Switch(config)# no spanning-tree vlan vlan-id
第三步:返回至特权配置模式。
Switch(config-if)# end
第四步:查看并校验配置。
Switch# show spanning-tree vlan vlan-id
第五步:保存配置。
Switch# copy running-config startup-config
若欲重新启用STP,可以使用spanning-tree vlan vlan-id全局配置命令。
3.将交换机配置为根交换机
当VLAN中存在有拓扑环时,应当通过根交换机、端口优先级和路径费用等设置,确定网络拓扑结构,从而使Spanning-Tree的生成时间最短。
第一步:进入全局配置模式。
Switch# configure terminal
第二步:将交换机配置为指定VLAN的根交换机。diameter net- diamete用于指定两个终端间交换机的数量,取值范围为2~7。使用spanning-tree vlan vlan_id root secondary [diameter net- diamete命令,可以将交换机配置为次根交换机。
Switch(config)# spanning-tree vlan vlan_id root primary [diameter net- diamete
第三步:返回至特权配置模式。
Switch(config-if)# end
第四步:查看并校验配置。
Switch# show spanning-tree detail
第五步:保存配置。
Switch# copy running-config startup-config
若欲将交换机恢复为默认配置,可以在全局配置模式下使用no spanning-tree vlan vlan-id root 命令。
4.配置端口优先值
如果VLAN内有拓扑环,Spanning-Tree将使用端口优先值确定将哪个接口置于转发状态,因此,可以为欲首先选择的端口赋予较高优先级值(较小的数值)。如果所有端口都有相同的优先级值,那么,具有最小端口号的端口将被设置为转发状态,其他接口则处于阻塞状态。
第一步:进入全局配置模式。
Switch# configure terminal
第二步:选择欲配置的接口,既可以是物理接口,也可以是EtherChannel逻辑端口(port-channel port-channel-number)。
Switch(config)# interface interface-id
第三步:为接口配置优先级值,取值范围为0~255,默认值为128。数值越低,优先级越高。
Switch(config-if)# spanning-tree port-priority priority
第四步:为接口配置VLAN端口优先级。取值范围为0~255,默认值为128。数值越低,优先级越高。
Switch(config-if)# spanning-tree vlan vlan-id port-priority priority
第五步:返回特权配置模式。
Switch(config)# end
第六步:校验配置。
Switch# show spanning-tree interface interface-id |{port-channel port_channel_number}
Switch# show spanning-tree vlan vlan_id
第七步:保存配置。
Switch# copy running-config startup-config
使用no spanning-tree [vlan vlan-id] port-priority接口配置命令,可以将端口优先级恢复为默认值。
5.配置路径费用
Spanning-Tree路径费用的默认值取决于接口的类型与速率。当VLAN中有拓扑环时,Spanning-Tree使用路径费用选择将哪个接口置于转发状态。具有最低端口费用的端口将被选择用于向所有的VLAN转发帧。因此,可以为欲选择的接口赋予较低的费用值,以确定网络拓扑。通常情况下,应当为快速链路(如1000 Mbps端口)赋予一个最小值,而为一个慢速链路(如100Mbps端口)赋予一个最大值。如果所有接口的成本值都相同,那么,具有最小端口号的端口将被设置为转发状态,其他接口则处于阻塞状态。
第一步:进入全局配置模式。
Switch# configure terminal
第二步:选择欲配置的接口,既可以是物理接口,也可以是EtherChannel逻辑端口(port-channel port-channel-number)。
Switch(config)# interface interface-id
第三步:配置接口的费用,取值范围为1~200 000 000。较低的路径费用表明有较高的传输速率。
Switch(config-if)# spanning-tree cost cost
第四步:配置VLAN的费用,取值范围为1~200 000 000。较低的路径费用表明有较高的传输速率。
Switch(config-if)# spanning-tree vlan vlan_id cost cost
第五步:返回特权配置模式。
Switch(config)# end
第六步:校验配置。
Switch# show spanning-tree interface {interface-id} |{port-channel port_channel_number}
Switch# show spanning-tree vlan vlan_ID
第七步:保存配置。
Switch# copy running-config startup-config
使用no spanning-tree [vlan vlan-id] cost接口配置命令,可以将接口费用恢复为默认值。
6.配置Trunk端口负载共享
借助负载共享,可以在拥有平行Trunk端口的交换机上实现带宽分流。为了避免拓扑环,STP通常只保留平行连接中的一个连接,而阻止其他链接。使用负载共享技术,可以依照通信所属VLAN,在两个链接之间分担流量。
(1)使用STP端口优先级实现负载共享
当两个端口位于同一台交换机上时会构成拓扑环,此时,交换机将使用STP端口优先级来决定启用哪个端口,阻止哪个端口。可以在一个平行Trunk端口设置优先级,从而使该端口允许给定VLAN的所有数据的传输。对于某个VLAN而言,拥有最高优先级(低值)的Trunk端口转发通信,拥有最低优先级(高值)的Trunk端口保持阻止状态。Trunk端口负责发送或接收VLAN中所有的通信。
图6-18所示,交换机之间有两个Trunk连接,相关配置如下:
VLAN 8~10在Trunk1上指定的端口优先级值为16
VLAN 3~6在Trunk1上保持默认的端口优先级值128
VLAN 3~6在Trunk2上指定的端口优先级值为16
VLAN 8~10在Trunk2上保持默认的端口优先级值128
此时,Trunk 1负责VLAN 8~10的数据传输,Trunk 2负责VLAN 3~6的数据传输。当活动Trunk失败后,另外的Trunk连接将负责所有VLAN的传输。
配置过程如下:
第1步:在Switch A交换机上进入全局配置模式。
Switch A# configure terminal
第2步:配置VTP管理域。域名可以是1~32个字符。
Switch A(config)# vtp domain domain-name
第3步:将Swith A交换机配置为域服务器。
Switch A(config)# vtp mode server
第4步:返回特权配置模式。
Switch A(config)# end
第5步:在Switch A和Switch B交换机上查看VTP状态,校验VTP配置,检查VTP操作模式和VTP域名称字段。
Switch A# show vtp status
第6步:在Switch A交换机上校验已经存在的VLAN。
Switch A# show vlan
第7步:进入全局配置模式。
Switch A# configure terminal
第8步:定义欲配置为Trunk的接口,进入接口配置模式。
Switch A(config)# interface gigabitethernet 0/1
第9步:将端口配置为支持ISL或IEEE 802.1Q封装或者与相邻端口协商。
【提示】 必须为每个端口连接配置相同的封装方式。
Switch A(config-if)# switchport trunk encapsulation {isl | dot1q | negotiate}
第10步:将端口配置为Trunk端口。
Switch A(config-if)# switchport mode trunk
第11步:,返回特权配置模式。
Switch A(config-if)# end
第12步:步,查看所配置接口的状态。
Switch A# show interfaces gigabitethernet 0/1
第13步:在Switch A交换机的第2个端口上重复步骤7~步骤11操作。
第14步:在Switch B交换机配置连接至Switch A的Trunk端口上,重复步骤7~步骤11操作。
第15步:当Trunk连接启用后,校验Switch B学习到的VLAN配置。
Switch B# show vlan
第16步:,在Switch A上进入全局配置模式。
Switch A# configure terminal
第17步:,定义欲设置端口优先级的接口,并进入接口配置模式。
Switch A(config)# interface gigabitethernet 0/1
第18步:为VLAN8~10指定优先级值为16。
Switch A(config-if)# spanning-tree vlan 8-10 port-priority 16
第19步:返回全局配置模式。
Switch A(config-if)# exit
第20步:设置接口的STP端口优先级,进入接口配置模式。
Switch A(config)# interface gigabitethernet0/2
第21步:为VLAN3~6指定优先级值为16。
Switch A(config-if)# spanning-tree vlan 3-6 port-priority 16
第22步:返回特权配置模式。
Switch A(config-if)# end
第23步:校验配置。
Switch A# show running-config
第24步:保存配置。
Switch A# copy running-config startup-config
(2)使用STP路径费用实现负载共享
也可以通过设置不同的路径费用,在平行Trunk连接中共享VLAN传输,设置不同的端口。通过为不同的VLAN设置不同的路径费用,从而使不同的VLAN阻止不同的端口。例如,Trunk端口1和2为100BASE-T端口,VLAN路径费用如图6-19所示。
具体配置如下:
指定Trunk 1上VLAN 2~4的路径费用为30。
指定Trunk 1上VLAN 8~10保持100BASE-T默认的路径费用19。
指定Trunk 2上VLAN 8~10的路径费用为30。
指定Trunk 2上VLAN 2~4保持100BASE-T默认的路径费用19。 具体配置过程如下:
第1步:在Switch A上进入全局配置模式。
Switch# configure terminal
第2步:将接口配置为Trunk,进入接口配置模式。
Switch(config)# interface gigabitethernet0/1
第3步:配置端口配置ISL或802.1Q封装,必须为每个链接的终端配置相同的封装类型。
Switch(config-if)#switchport trunk encapsulation{isl | dot1q | negotiate}
第4步:将端口配置为Trunk端口。Trunk类型默认为ISL。
Switch(config-if)# switchport mode trunk
第5步:返回全局配置模式。
Switch(config-if)# exit
第6步:在SwitchA上的第2个端口重复第2步至第5步操作。
第7步:返回特权配置模式。
Switch(config)# end
第8步:校验配置,确认接口被配置为Trunk端口。
Switch# show running-config
第9步:当Trunk连接启用时,Switch A从其他交换机接收到VTP信息。校验Switch A已经学习到的VLAN配置。
Switch# show vlan
第10步:在Switch A上进入全局配置模式。
Switch# configure terminal
第11步:在交换机上定义接口的STP费用,进入接口配置模式。
Switch(config)# interface gigabitethernet0/1
第12步:为VLAN 2~4设置Spanning-tree路径费用为30。
Switch(config-if)# spanning-tree vlan 2-4 cost 30
第13步:返回全局配置模式。
Switch(config)# end
第14步:在Switch A的其他Trunk端口上重复9~13步操作,为VLAN 8~10设置Spanning-tree路径费用为30。
第15步:返回特权配置模式。
Switch(config)# end
第16步:校验配置。
Switch# show running-config
第17步:保存配置。
Switch# copy running-config startup-config
[ 本帖最后由 emery 于 2009-3-17 00:42 编辑 ] |