一、生成树技术产生的背景
(1)当交换机采用单线链路上联链路时,容易产生单点故障,单线链路上行链路不具备冗余性,一旦发生设备或链路故障,业务就会中断。
(2)使用冗余拓扑结构可以解决单点故障问题,但是同时也带来了二层环路。
二、环路带来的问题
(1)广播风暴:网络中存在环路,一旦出现广播数据帧,数据帧将被交换机不断进行泛洪,从而在网络中形成广播风暴,广播风暴将严重消耗设备性能和网络带宽,最终会导致网络瘫痪。
(2)ARP地址表混乱:这也很好理解,就是交换机与外部设备相连是有双线的,双线连接接就是启用了两个物理接口,交换机是通过什么来转发数据包的?就是ARP地址表,ARP地址表中包含(IP地址->设备MAC->交换机接口)的对应关系,两个不向的方向上的线路上出现不同的(IP地址->设备MAC->交换机接口)的对应关系,交换机都在不断更新,这就造成了ARP地址表的混乱。
与众多协议的发展过程一样,生成树协议也是随着网络的发展而不断更新的,从最初的STP(Spanning Tree Protocol,生成树协议)到RSTP(Rapid Spanning Tree Protocol,快速生成树协议),再到最新的MSTP(Multiple Spanning Tree Protocol,多生成树协议)。
三、STP简介
生成树协议STP(Spanning Tree Protocol),STP由IEEE 802.1D 标准定义,用于在局域网中消除数据链路层物理环路的协议。运行该协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某些端口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环路网络中的无限循环,避免设备由于重复接收相同的报文造成的报文处理能力下降的问题。
STP协议具备两种特点:(1)消除环路:通过阻塞冗余链路消除网络中可能存在的网络通信环路。(2)链路备份:当前活动的路径发生故障时,激活冗余备份链路,恢复网络连通性。
STP协议报文是BPDU(Bridge Protocol Data Unit,桥协议数据单元),也称为配置消息。通过在设备之间传递BPDU报文来确定网络的拓扑结构,BPDU中包含了相关信息来完成生成树的计算过程。
四、STP的基本概念
(1)根桥(Root Bridge):根桥在运行STP协议的网络中有且只有一个,而且根桥会根据网络拓扑的变化而改变,因此根桥并不是固定的,在网络初始化过程中,所有设备都视自己为根桥,生成各自的配置BPDU并周期性地向外发送,但当网络拓扑稳定以后,只有根桥设备才会向外发送配置BPDU,其它设备则对其进行转发。
(2) 根端口(Root Port):是指一个非根桥的设备上离根桥最近的端口,根端口负责与根桥进行通信,非根桥设备上有且只有一个根端口,根桥上没有根端口。
(3)指定端口(Designated Port):向本网段转发配置消息的端口。
(4)阻塞非指定端口(NonDesignated Port):就是被阻塞的端口。
五、STP的基本原理
STP通过在设备之间传递BPDU来确定网络的拓扑结构,配置消息中包含了足够的信息来保证设备完成生成树的计算过程,其中包含的几个重要信息如下:
(1)根桥ID (Bridge ID):以设备的优先级表示
(2)根路径开销(Path Cost):与端口所连的链路速率相关
(3)指定桥ID:以设备的优先级表示
(4)指定端口ID(Designated Port):以端口名称表示
配置的选举原则是:根桥ID>根路径开销>指定桥ID>指定端口ID ;数值越小越优先。
.桥ID(Bridge ID):是交换机的STP标示符,一共8个字节,由2个字节的优先级和6个字节的MAC地址构成,桥优先级缺省为32768,取值范围是0-61440 ,取值间隔是4096,MAC地址为交换机的背板MAC,网络中Bridge ID最小的交换机将成为根桥。
.根路径开销(Path Cost):端口路径开销的默认值及取值范围由选定的路径开销算法决定,路径开销与端口的带宽成反比。比如按802.1D规范带宽与开销的比值是 10Mbps : 100 ;100Mbps : 19 ; 1000Mbps : 4 。
.指定端口ID(Port ID):端口ID (2字节)= 端口优先级(1字节)+ 端口编号(1字节),缺省优先级128,范围0-255,越小越优。
六、STP的算法
配置的选举原则是:根桥ID>根路径开销>指定桥ID>指定端口ID ;数值越小越优先。
(1)每个运行STP的网络中交换机选举一个根交换机(Root Bridge)
(2)每个非根桥上选举一个根端口(Root Port)
(3)每个网段选举一个指定端口(Designated Port)
(4)选出非指定端口(NonDesignated Port)
STP配置图例:
七、STP配置的相关命令
stp global enable //启动STP dis stp //查看STP的模式、 Bridge ID、Hello的更新时间信息 dis stp br //查看交换机接口转发壮态 stp priority <0-61440> //修改Bridge ID优先级
八、交换机的端口状态
当网络的链路出现变化时,交换机的端口会出现状态的变化:禁用(Disable)->阻塞(Blocking)->侦听(Listenning)->学习(Learning)->转发(Forwarding);这个过程需要50秒,分别是阻塞(20秒)、侦听(15秒)、学习(15秒)。
交换机端口在不同状态下,转发BPDU、数据包、MAC的情况: