近期有多位读者问到Cisco交换机中利用STP配置负载均衡的方法,其实这在我的新书《Cisco/H3C交换机配置与管理完全手册》(第二版)(该书目前在当当网、卓越网和京东网等书店中全面热销中)中都有详细的配置步骤和实例。下面把这部分内容分享如下。
12.2 Cisco IOS交换机生成树负载均衡配置示例
在第11
章,我们已了解到,Cisco
自己开发的PVST
、PVST+
和Rapid-PVST+l
因为是基于VLAN
分配生成树实例的,所以它不仅可以实现比IEEE 802.1D
标准的STP
更快的收敛速度,而且还可以实现负载均衡。为了避免环路,PVST
、PVST+
和Rapid-PVST+l
仅会在交换机间的一条中继链路对特定VLAN
通信激活,其他的都会被全部阻止,以实现在多个中继端口上均衡VLAN
通信。在生成树VLAN
通信均衡方案中,又可以通过使STP
端口优先级或者STP
路径开销在中继端口进行配置。注意:对于使用
STP
端口优先级进行的负载均衡,负载均衡的多条中继链路必须与同一个交换机连接;对于使用
STP
路径开销进行的负载共享,每条用于负载均衡的中继链路可以连接到同一个交换机,也可以连接在两个不同的交换机上
。
【说明】IEEE 802.1s MSTP生成树模式中同样可以实现VLAN通信负载均衡,而且同样有两种方案:一种是基于端口优先级的,另一种是基于端口路径开销值的。但要注意的是,在MSTP的负载均衡配置中均只需在中继链路的一端配置即可,与本节介绍的SST下的负载均衡配置中的端口优先级方案有些区别,但与端口开销值方案一样。具体在本章最后介绍的PVST+到MSTP迁移配置示例中有体现。
12.2.1 使用STP端口优先级进行负载均衡的配置示例
当在一个交换机上的两个端口形成环路时,交换机使用STP
端口优先级来决定哪个端口是启用状态,哪个端口又是阻塞状态的。可以在平行的中继端口上设置优先级,以便这个端口可以承载指定VLAN
上的所有通信流,而在另一条中继链路承载其他VLAN
的通信。在一个VLAN
中,具有更高优先值的中继端口将转发该VLAN
中的通信流,而同一VLAN
中优先值低的中继端口将对VLAN
保持阻塞状态,使同一时间只有一个中继端口发送或者接收一个VLAN
中的所有通信流。
这种利用STP
端口的不同优先级实现不同VLAN
的负载均衡的配置思路如下:
(1
)把交换机间连接的STP
端口配置为二层中继端口;
(2
)把互联的两台交换机配置VTP
服务器模式,使用VTP
在不同交换机间中继VLAN
配置信息(当然也可以不启用VTP
,采用手动配置方式);
(3
)分别把两台交换机上的不同中继端口为不同VLAN
配置不同的VLAN
端口优先级,以实现VLAN
通信的分流。但要注意,这种负载均衡方案只应用于多条中继链路连接在同一对交换机上的情况下。
在如图12-1所示的示例中,互联的Switch A与Switch B之间有两个中继连接(Trunk 1和Trunk 2)。现在实现Switch A与Switch B之间的Trunk 1中继链路上只允许VLAN 8~VLAN 10的通信通过,而在Trunk 2中继链路上只允许VLAN 3~VLAN 6的通信通过。
图12-1
使用STP
端口优先级进行负载均衡的拓扑示例
为了达到这个目的,需要进行如下配置:
l 在VLAN 8~VLAN 10中分配Trunk 1上的端口优先值为16,优先级更高。
l 在VLAN 3~VLAN 6的Trunk 1上保持默认的端口优先值128,优先级较低。
l 在VLAN 3~VLAN 6中分配Trunk 2上的端口优先值为16,优先级更高。
l 在VLAN 8~VLAN 10的Trunk 2上保持默认的端口优先值128,优先级较低。
这样一来,Trunk 1只承载VLAN 8~10的通信,而Trunk 2只承载VLAN 3~VLAN 6的通信(优先值数越低,优先级别越高)。通过生成树协议可以实现在当前活动的中继链路失效,则具有更低优先级的中继链路会接替原来正常的中继链路的工作,承载以上所有VLAN的通信流。继续保持在所有中继端口都没有重复的通信流发生。
以上示例中,使用STP
端口优先级进行负载均衡的具体配置步骤如表12-12
所示(自特权模式开始)。两交换机上的生成树协议直接采用默认的PVST+
,所以并没有单独启用生成树协议。其他具体环境只需稍做修改就可以满足应用需求。
【说明】如果交换机是交换机堆叠成员,则必须使用spanning-tree [vlan <