生成树协议STP

一 STP概述

STP简介(Spanning Tree Protocol(生成树协议)):STP协议在逻辑上断开网络的环路,将环形网络变成树形结构,防止广播风暴的产生,而一旦正在使用的线路出现故障,逻辑上被断开的线路又被联通,将继续传输数据

交换网络环路:在环型拓扑中,交换机SW1将广播帧转发给交换机SW2,交换机SW2又转发给SW3,SW3又转发给SW1,无限循环下去,最终形成广播风暴,致使网络瘫痪

13生成树协议STP_stp

环型拓扑的好处:能够为网络提供备份线路,增强网络的可靠性

二 STP工作原理

·原理概述:STP运用生成树算法,找出一个端口将其阻塞,形成逻辑上的树形结构

·生成树的算法及验证

1 选择根网桥(网桥就是交换机):为网络选择一个树根

·选择交换网络中网桥ID最小的交换机成为根网桥

·网桥ID=网桥优先级+网桥MAC地址;取值范围0~65535;默认值32768;可配置

·如果优先级相同,则选择MAC地址小的为根网桥

2 选择根端口:在每个非根网桥上选择一个根端口

·选择到根网桥最低的根路径成本的端口成为根端口

·路径成本用来代表一条线路宽带的大小,宽带越大,成本越低

13生成树协议STP_马向军_02

·如果路径成本相同,则选择直连网桥ID最小的网桥对应的端口为根端口

·如果直连网桥ID相同(双通道情况时),则选择直连网桥端口ID最小的端口对应的端口为根端口

·端口ID=端口优先级+端口编号;范围0~255;默认128;可配置

·端口编号不是端口号,但是端口号低的端口,端口编号小

3 选择指定端口:在剩下的端口中指定端口

·选择同一网段上端口路径成本最低的为指定端口(离根网桥最近的)

·如果路劲成本相同,则选择端口所在网桥ID小的端口为指定端口

·当网桥ID相同时,则选择端口ID较小的端口为指定端口

·根网桥上的接口都是指定接口

·示例:如图

13生成树协议STP_生成树_03

1 首先根据网桥ID选择根网桥;分别查看三台交换机网桥ID(SW2最小)

SW1

13生成树协议STP_马向军_04

SW2

13生成树协议STP_生成树_05

SW3

13生成树协议STP_跟网桥_06

2 然后根据路劲成本选择跟端口,因为SW1和SW3直接与SW2相连的接口成本最低,所以这两个端口为根端口

3 最后在每个网段上选择指定端口,在SW1和sw3的网段中,两个端口路劲成本都相同,所以比较自身网桥ID,SW1比较小,所以最后剩下SW3的端口被阻塞

三 stp的应用

STP与vlan的关系

·IEEE的CST(通用生成树):不考虑vlan

13生成树协议STP_stp_07

·Cisco的PVST+(增强的每vlan生成树):为每个vlan构造一个生成树

·Cisco可以与CST兼容

PVST+的配置

·PVST+配置的意义:配置网络中比较稳定的交换机为根网桥、利用PVST+实现网络的负载分担

·PVST+配置

1 启用生成树(某个vlan)

Switch(config)#spanning-tree vlan 1         默认是开启的

Switch(config)#no spanning-tree vlan 1    关闭

2 指定根网桥(修改优先级)

Switch(config)#spanning-tree vlan 1 priority 4096    默认为32768,修改为4096的倍数

Switch(config)#spanning-tree vlan 1 root primary        primary=24576

Switch(config)#spanning-tree vlan 1 root secondary        secondary=28672

3 修改端口优先级(范围0~255;默认128

Switch(config-if)#spanning-tree vlan 1 port-priority 96

4 查看某个vlan的生成树信息

Switch#show spanning-tree vlan 1 detail

13生成树协议STP_stp_08

四 实验

实验目的:配置STP实现vlan负载均衡

实验环境:如图所示

13生成树协议STP_马向军_09

实验要求:让交换机1成为vlan1的成根网桥、交换机2成为vlan2的根网桥、交换机成为vlan3的根网桥

实验步骤:

1 在每个交换机上分别创建vlan2、3,并将接口改为trunk模式

2 配置交换机1上vlan的优先级,vlan1<vlan2=<vlan3

Switch(config)#spanning-tree vlan 1 root primary

Switch(config)#spanning-tree vlan 2 root secondary

3配置交换机2上vlan的优先级,vlan2<vlan1=<vlan3

Switch(config)#spanning-tree vlan 2 root primary

4 配置交换机3上vlan的优先级,vlan3<vlan2=<vlan1

Switch(config)#spanning-tree vlan 3 priority 4096

5 分别查看生成树信息

Switch#show spanning-tree