STP生成树的工作原理一、STP生成树的工作原理STP的基本原理可以归纳为三步,选择根网桥RB、选择根端口RP、选择指定端口DP。然后把根端口、指定端口设为转发状态,其它接口设为阻塞状态,这样一个逻辑上无环路的网络拓扑就形成了。1.选择根网桥选择根网桥的依据是网桥ID,由优先级和MAC地址组成,先看优先级,优先级相同时再看MAC地址,值越小越优先选择。根网桥的选择过程与政治选举类似。2.选择根端口每一个非根网桥将从其接口选出一个到根网桥管理成本(administrativecost)最低的接口作为根端口,选择的依据是(1)自身到达根网桥的根路径成本最低的接口。根路径成本的计算是,接口收到BPDU中所包含的成本与接口的成本的累加。(2)直连网桥ID最小(3)端口ID最小3.选择指定端口当一个网段中有多个网桥时,这些网桥会将他们到根网桥的管理成本都通告出去,其中具有最低管理成本的网桥将作为指定(designated)网桥。指定网桥中发送最低管理成本的BPDU的接口是该网段中的指定端口。在每段链路上,选择一个指定端口,选择的依据是:(1)发送最低根路径成本的BPDU的接口(2)所在网桥ID最小(3)端口ID最小总结:选举根端口,比较接收的BPDU选举指定端口,比较发送的BPDU二、STP拓扑稳定后,所以工作中的交换机接口都将处于转发或阻塞状态,生成树的工作过程如下:(1)根交换机创建成本为0的HelloBPDU,并向其所有接口转发出去(2)邻接的非根网桥将接收的hello数据包中的成本加上接收端口的成本后,从指定端口转发出去。(3)每经过一个hello时间周期根网桥重复步骤(1),非根网桥重复步骤(2),直到网络拓扑发生变化。总结一下:STP拓扑稳定后,根网桥通过每2s的hello时间创建和发送helloBPDU,非根网桥通过根端口接收BPDU,并且从从指定端口转发改变后的BPDU。各交换机通过接收到得的BPDU消息,来保持各端口状态的有效,直到拓扑发生变化。三、网络对变化时生成树的状态运行生成树协议的交换机上的端口,总是处于下面四个状态中的一个。在正常操作期间,端口处于转发或阻塞状态。当设备识别网络拓扑结构变化时,交换机自动进行状态转换,在这期间端口暂时处于监听和学习状态。(1)禁用Disabled:(为了管理目的或者因为发生故障将端口关闭)(2)阻塞Blocking:所有端口以阻塞状态启动以防止回路。由生成树确定哪个端口转换到转发状态,处于阻塞状态的端口不转发数据,但可接受BPDU(3)监听Listening:如果一个端口可以成为一个根端口或者指定端口,那么它就转入监听状态。不发送接收数据,接收并发送bpdu,不进行地址学习(临时状态)。(4)学习Learning:不接收或转发数据,接收并发送bpdu,开始地址学习MAC地址表(临时状态)。(5)转发Forwarding:端口能转送和接受数据。四、配置STP(1).启用STP(config)#spanning-treevlanID(2).设置根网桥(config)#spanning-treevlanIDrootprimary|second注:primary(24576)、second(28672)(3).修改网桥优先级(config)#spanning-treevlanIDpriority优先级注:优先级是4096整数倍(4).修改端口成本(config-if)#spanning-treevalnIDcost成本(5).修改端口优先级(config-if)#spanning-treevlanIDport-prio优先级(6).配置上行速链路(config)#spanning-treeuplinkfast(7).配置速端口(config-if)#spanning-treeporfast(8).查看STP配置#showspanning-tree#showspanning-treevlaniddetail--详细信息