配置PVST

在实际的网络环境中,物理环路可以提高网络的可靠性,当一条线路断掉的时候,另外一条链路仍然可以传输数据,但是,在交换的网络中,当交换机接受到一个未知目的地的数据帧时,交换机的操作是将这个数据帧广播出去,这样,在物理环路的交换网络中,就会产生一个双向的广播环,甚至产生广播风暴,导致交换机死机STP(Spanning Tree Protocol生成树协议)就是用来解决这个环路上的广播风暴的,STP协议在逻辑上断开网络的环路,防止广播风暴的产生,而一但正在使用的线路出现故障,被逻辑上断开的线路又被连通,继续传输数据

生成树协议运行生成树算法( STA ),生成树算法很复杂,但大体可以分为以下三个步骤:
(1) 选择根网桥 (root bridge)
选择根网桥的依据是网桥 ID ,网桥 ID 是一个 8 字节的字段

 

 

直连的网桥 ID 最小 前面有介绍
端口 ID 最小:
端口 ID 是一个 2 字节的 STP 参数,有一个字节的端口优先级和一个字节的端口编号组成,

 

端口优先级是一个可配置的 STP 参数,在基于 IOS 的交换机上,端口优先级的十进制取值范围是 0 —— 255 ,默认值是 128 ,端口编号是 Catalyst 用于列举各个端口的数字标识符,在基于 IOS 的交换机上,可以支持 256 个端口,断口编号不是端口号,但是端口号低的端口,端口编号也较小
STP 选择根端口的时候,首先比较交换机端口的根路径成本,跟路径成本低的为根端口,当根路径成本相同时,比较连接的交换机的网桥 ID 值,选择网桥 ID 值小的作为根端口,当网桥 ID 相同的时候,比较端口 ID 值,选择较小的作为根端口。
(3) 选择指定端口 (designated ports)
选择完根网桥和每台交换机的根端口后,一个数行结构已初步形成,但是,所有的链路仍连接在一起,并可能都处于活动状态,最后导致形成环路,为了消除网桥回路形成的可能, STP 进行最后的计算,在每一个网段上选择一个指定端口,选择指定端口的依据与根端口相同,按顺序有 3 个:
(1) 根路径成本较低
(2) 所在的交换机的网桥 ID 的值较小
(3) 端口 ID 的值较小
STP 选择指定端口的时候,首先比较同一网段上的端口中根路成本最低的,也就是到达根网桥最近的端口作为指定端口,当根路径成本相同的时候,比较这个端口所在的交换机的网桥 ID 值,选择一个网桥 ID 值小的交换机上的端口作为指定端口,当网桥 ID 相同的时候,也就是说,有几个位于同一交换机上的端口时,比较端口 ID 值,选择较小的作为指定端口,另外,跟网桥上的接口都是指定端口,因为跟网桥上端口的根路径成本为 0
前面所说的 STP 是交换机自动运行的协议,那么有了以上的基础我们在了解一个基于 VLAN 的生成树协议, PVST
PVST cisco 的私有协议, PVST 为每个虚拟局域网运行单独的生成树实例, PVST 为每个 VLAN 使用独立的一个生成树实例,能优化根桥的位置,能为所有的 VALN 提供最优路径。
前面讲过,交换机自动运行 STP ,那么,为什么还要配置呢?
因为在交换网络中,如果一个根网桥不稳定,那么这个网络就需要经常进行 STP 的运算,经常变化逻辑拓扑,因此,可以说,如果网络中有一个不稳定的个网桥,就会有一个不稳定的网络,而在交换机选择根网桥的时候,因为网桥 ID 中优先级字段如果不进行修改,都会使用默认值,那么选择的依据就是交换机的 MAC 地址,而 MAC 地址是一个随机的数字,很可能就会碰到这种情况,网络中最边缘的交换机被选择成了根网桥,因此,虽然生成在交换机中自动运行,但是,合理的配置能够对网络进行优化
除了配置网络中比较稳定的交换机为根网桥外, PVST 的配置主要还有以下几个方面
(1) 利用 PVST 实现网络的负载分担
(2) 配置上行速链路,实现备份的上行链路快速恢复
(3) 配置速端口,使连接终端的端口快速进入到专发状态

我们来具体配置一下PVST

参考命令:
Switch(config)#spanning-tree vlan vlan-list // 启用生成树
Switch(config)#spanning-tree vlan vlan-list root primary|secondary // 配置交换机为根网桥
Switch(config)#spanning-tree vlan vlan-list priority bridge-priority // 修改交换机优先级
Switch(config)#spanning-tree vlan vlan-list cost cost // 修改端口路径成本
Switch(config)#spanning-tree vlan vlan-list port-priority priority // 修改端口优先级
Switch(config)#spanning-tree uplinkfast // 配置上行速链路
Switch(config-if)#spanning-tree portfast // 配置端口速链路
Switch(config)#interface range FastEthernet fashethernet-list // 进入指定的一组端口
Switch(config-if-range)#channel-group group-number mode on // 配置以太网通道
Switch#show spanning-tree // 查看 PVST 的配置信息
Switch#show spanning-tree vlan vlan-id detail // 查看某个 VLAN 的生成树详细信息
配置实例:
Sw1(config)#vtp domain benet
Sw1(config)#vtp password cisco
Sw1(config)#vtp mode client
Sw1(config)#vtp pruning
Sw1(config)#spanning-tree uplinkfast // 配置上行速链路
Sw1(config)#interface f0/1
Sw1(config-if)#switchport mode trunk
Sw1(config)#interface f0/2
Sw1(config-if)#switchport mode trunk
Sw2(config)#vtp domain benet
Sw2(config)#vtp password cisco
Sw2(config)#vtp mode client
Sw2(config)#vtp pruning
Sw2(config)#spanning-tree uplinkfast // 配置上行速链路
Sw2(config)#interface f0/1
Sw2(config-if)#switchport mode trunk
Sw2(config)#interface f0/2
Sw2(config-if)#switchport mode trunk
Sw3(config)#vtp domain benet
Sw3(config)#vtp password cisco
Sw3(config)#vtp pruning
Sw3(config)#exit
Sw3#vlan database
Sw3(vlan)#vlan 1 name vlan1
Sw3(vlan)#vlan 2 name vlan2
Sw3(vlan)#vlan 3 name vlan3
Sw3(vlan)#vlan 4 name vlan4
Sw3(vlan)#exit
Sw3#config terminal
Sw3(config)#interface f0/1
Sw3(config-if)#switchport mode trunk
Sw3(config)#interface f0/2
Sw3(config-if)#switchport mode trunk
Sw3(config)#interface f0/3
Sw3(config-if)#switchport mode trunk
Sw3(config)#interface f0/4
Sw3(config-if)#switchport mode trunk
Sw3(config)#spanning-tree vlan 1 root primary // 配置成 primary 优先级为 24576
Sw3(config)#spanning-tree vlan 2 root primary // 配置成 primary 优先级为 24576
Sw3(config)#spanning-tree vlan 3 root secondary // 配置成 secondary 优先级为 28672
Sw3(config)#spanning-tree vlan 4 root secondary // 配置成 secondary 优先级为 28672
Sw3(config)#interface range fastEthernet 0/3 – 4 // 进入指定端口
Sw3(config-if-range)#channel-group 1 mode on // 配置以太网通道
Sw4(config)#vtp domain benet
Sw4(config)#vtp password cisco
Sw4(config)#vtp pruning
Sw4(config)#iinterface f0/1
Sw4(config-if)#switchport mode trunk
Sw4(config)#iinterface f0/2
Sw4(config-if)#switchport mode trunk
Sw4(config)#iinterface f0/3
Sw4(config-if)#switchport mode trunk
Sw4(config)#iinterface f0/4
Sw4(config-if)#switchport mode trunk
Sw4(config-if)#exit
Sw4(config)#spanning-tree vlan 1 priority 28672 // 配置 vlan 1 的优先级为 28672
Sw4(config)#spanning-tree vlan 2 priority 28672 // 配置 vlan 2 的优先级为 28672
Sw4(config)#spanning-tree vlan 3 priority 24576 // 配置 vlan 3 的优先级为 24576
Sw4(config)#spanning-tree vlan 4 priority 24576 // 配置 vlan 4 的优先级为 24576
Sw4(conifig)#interface range fasEthernet 0/3 – 4
Sw4(config-if-range)#channel-group 1 mode on

网桥优先级是用于衡量网桥在生成树算法中优先级的十进制数,取值范围为 0---65535 ,默认为 32768 ,一般的配置都是 4096 的倍数,网桥 ID 中的 MAC 地址是交换机的 MAC 地址之一,当使用密令 show mac-address-table 查看交换机的 MAC 地址表的时候,显示在最前面的 MAC 地址是 STP 计算用的交换机的 MAC 地址。按照生成树算法中的定义,当比较某个 STP 参数的两个取值时,值小的优先级高,因此,选择根网桥的时候,比较的方法是看那台交换机的网桥 ID 的值最小,优先级小的被选择为根网桥,在优先级相同的情况下, MAC 地址小的为根网桥
(2) 选择根端口 (root ports)
选出了根网桥后,网络中的每台交换机必须和根网桥建立某种关联,因此, STP 将进行选择根端口的过程,跟端口存在于非根网桥上,每个非根网桥上选择一个根端口。
选择根端口的依据一次是:
到根网桥最低的根路径成本:
根路径成本是两个网桥间的路径上所有链路的成本之和,也就是某个网桥到达根网桥的中间所有链路的路径成本和,路经成本用来代表一条链路带宽的高低,一条链路的带宽越大,他传输数据的成本也就越低.

你可能感兴趣的:(生成树,PVST)