`
阅读更多

扩展树(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。

图6-17 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连接,相关配置如下:
图6-18 使用STP端口优先级实现负载共享


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。
图6-19 使用STP路径费用实现负载共享


具体配置过程如下:

第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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics