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

 

一、STP生成树的工作原理

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) 根交换机创建成本为 0 Hello BPDU ,并向其所有接口转发出去

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

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

 

总结一下:

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

 

 

 

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

 

<?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

  注: primary 24576 )、 second 28672

(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 -- 详细信息