一、STP生成树的工作原理 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

STP的基本原理可以归纳为三步,选择根网桥RB、选择根端口RP、选择指定端口DP。然后把根端口、指定端口设为转发状态,其它接口设为阻塞状态,这样一个逻辑上无环路的网络拓扑就形成了。

 

1.选择根网桥

选择根网桥的依据是网桥ID,由优先级和MAC地址组成,先看优先级,优先级相同时再看MAC地址,值越小越优先选择。根网桥的选择过程与政治选举类似。

 

2.选择根端口

每一个非根网桥将从其接口选出一个到根网桥管理成本(administrative cost)最低的接口作为根端口,选择的依据是

(1)自身到达根网桥的根路径成本最低的接口。

根路径成本的计算是,接口收到BPDU中所包含的成本与接口的成本的累加。

(2)直连网桥ID最小

(3)端口ID最小

 

3.选择指定端口

当一个网段中有多个网桥时,这些网桥会将他们到根网桥的管理成本都通告出去,其中具有最低管理成本的网桥将作为指定(designated)网桥。指定网桥中发送最低管理成本的BPDU的接口是该网段中的指定端口。在每段链路上,选择一个指定端口,选择的依据是:

 

(1)发送最低根路径成本的BPDU的接口

(2)所在网桥ID最小

(3)端口ID最小

 

总结:

选举根端口,  比较接收的BPDU

选举指定端口,比较发送的BPDU

 

 

 

二、STP拓扑稳定后,所以工作中的交换机接口都将处于转发或阻塞状态,生成树的工作过程如下:

 

(1)根交换机创建成本为0Hello BPDU,并向其所有接口转发出去

(2)邻接的非根网桥将接收的hello数据包中的成本加上接收端口的成本后,从指定端口转发出去。

(3)每经过一个hello时间周期根网桥重复步骤(1),非根网桥重复步骤(2),直到网络拓扑发生变化。

 

总结一下:

STP拓扑稳定后,根网桥通过每2shello时间创建和发送helloBPDU,非根网桥通过根端口接收BPDU,并且从从指定端口转发改变后的BPDU。各交换机通过接收到得的BPDU 消息,来保持各端口状态的有效,直到拓扑发生变化。

 

 

 

三、网络对变化时生成树的状态

STP生成树的工作原理

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

运行生成树协议的交换机上的端口,总是处于下面四个状态中的一个。在正常操作 期间,端口处于转发或阻塞状态。当设备识别网络拓扑结构变化时,交换机自动进行状态转换,在这期间端口暂时处于监听和学习状态。

 

1)禁用Disabled:(为了管理目的或者因为发生故障将端口关闭)

2)阻塞Blocking:所有端口以阻塞状态启动以防止回路。由生成树确定哪个端口转换到转发状态,处于阻塞状态的端口不转发数据,但可接受BPDU

3)监听Listening:如果一个端口可以成为一个根端口或者指定端口,那么它就转入监听状态。不发送接收数据,接收并发送bpdu,不进行地址学习 (临时状态)。

4)学习Learning:不接收或转发数据,接收并发送bpdu,开始地址学习MAC地址表(临时状态)。

5)转发Forwarding:端口能转送和接受数据。

 

 

四、配置STP

 

(1).启用STP

     config#spanning-tree vlan ID

(2).设置根网桥

  config#spanning-tree  vlan ID root primary|second

 注:primary24576)、second28672

(3).修改网桥优先级

  config#spanning-tree vlan ID priority 优先级

  注:优先级是4096整数倍

(4).修改端口成本

  config-if#spanning-tree valn ID cost 成本

(5).修改端口优先级

  config-if#spanning-tree  vlan ID port-prio 优先级

(6).配置上行速链路

  config#spanning-tree uplinkfast

(7).配置速端口

  config-if#spanning-tree porfast

(8).查看STP配置

   #show spanning-tree

   #show spanning-tree vlan id detail --详细信