12.3 STP收敛
收敛是生成树的一个重要方面。所谓收敛就是整个网络达到一个稳定的状态:选举出根交换机,并决定出所有端口的角色,排除所有潜在的环路。当网络拓扑发生变化时,执行生成树算法,让网络重新收敛。
12.3.1生成树的选举(1)
为了使采用STP的网络最终收敛为一个逻辑上没有环路的网络拓扑,需要通过以下4步实现。
① 每个广播域只能有一个根交换机。
② 每个非根交换机有且只能有一个根端口。
③ 每个网段有且只能有一个指派端口。
④ 既不是根端口,也不是指派端口的端口将被阻塞。
1.选举根交换机
交换机之间通过发送BPDU(Bridge Protocol Data Unit)来选举根交换机,拥有最小BID的交换机将成为根交换机。
2.选举根端口
每个非根交换机有且仅有一个根端口。非根交换机上的根端口是从非根交换机到根交换机的最低路径花费的端口。非根交换机可能会从多个端口接收到根交换机的BPDU,根端口的选举依照下面的顺序:
① 最低花费的端口成为根端口。
② 在花费相同的情况下,比较发送者的BID。在图12-3-1中,交换机SW4从端口1和端口2都能收到根交换机SW1的BPDU,两边的花费相同,都是38。接下来比较的就是发送者的BID。假设SW2的BID是32768+2222.2222.2222,SW3的BID是32768+3333.3333. 3333,SW2的BID小,则SW4的端口1成为根端口。
③ 在发送者BID相同的情况下,比较发送者的PID(Port ID)。在图12-3-2中,SW1是根交换机,SW2的Fa1/1和Fa1/2到根交换机的花费相同,都是19,发送者的BID也相同(都是交换机SW1的BID)。接下来比较的是发送者的PID。PID=端口优先级+端口号,端口优先级占用一个字节,默认是128,端口号在同一个模块上是顺序增加的,起始端口号和交换机的型号以及该模块所在的插槽有关。可以通过下面的命令更改交换机端口的优先级:
运行机架中的SW1和SW2,然后在SW2上执行"show spanning-tree brief"命令,结果如图12-3-3所示。可以看到SW2交换机Fa1/1端口接收到的发送者PID是128.43,Fa1/2端口接收到的发送者PID是128.42。SW2的根端口是Fa1/2端口,根端口的状态是转发状态。
④ 在发送者PID相同的情况下,比较接收者的PID。在图12-3-4中,SW1是根交换机,SW1的Fa1/1端口连接着SW2的Fa1/1和Fa1/2,这样的拓扑往往是中间接了一台集线器。SW2上两个端口的花费一样,发送者的BID也一样(都是SW1的BID),发送者的PID也一样(都是交换机SW1的Fa1/1端口的PID)。接下来将比较接收者的PID。SW2上Fa1/1端口的PID小于Fa1/2端口的PID,SW2的Fa1/1端口是根端口。
3.选举指派端口
每个网段都有一个指派交换机,该交换机负责把网段的数据发往根交换机。指派交换机上的端口叫做指派端口。选举指派端口的过程其实是先选出指派交换机,如果指派交换机上有多个端口,再从多个端口中选出一个成为指派端口。指派端口的选举依照下面的顺序:
① 比较花费。在图12-3-5中,SW1是根交换机,SW2到根交换机的花费是4,SW3到根交换机的花费是8,在SW2和SW3之间的网段上,SW2是指派交换机,则SW2上的Gi2/3端口是SW2和SW3之间的网段上指派端口。
② 比较BID。这里特别要提醒比较的是BID,不是发送者的BID,因为选举指派端口,首先要选出的是指派交换机,交换机的选举比较的则是BID。在下图12-2-1中,SW1是根交换机,SW2和SW3到根交换机的花费相同。接下来比较的是交换机的BID,假如SW2的BID比SW3的BID小,则在SW2和SW3之间的网段上,SW2是指派交换机,则SW2上的Fa1/3端口是SW2和SW3之间的网段上指派端口。
③ 比较PID。如果指派交换机上有多个端口连接到同一个网段,则具有最小PID的端口成为指派端口。
4.阻塞端口
既不是根端口也不是指派端口的端口将被阻塞。比如下图12-2-8中SW3的Fa1/2端口、图12-3-1中SW4的端口2、图12-3-2中SW2的Fa1/2端口、图12-3-4中SW2的Fa1/2端口、图12-3-5中SW3的Fa1/1端口都将被阻塞。
实验:正确配置STP
运行机架中的SW1、SW2和SW3,不做任何配置,分析各个端口的角色和状态。
① 选举根交换机。在默认情况下,所有交换机的优先级都是32768,SW1的MAC地址<SW2的MAC地址<SW3的MAC地址。因此SW1的MAC地址最小,SW1是根交换机。< P>
② 选举根端口。SW2的Fa1/2和SW3的Fa1/1是根端口。
③ 选举指派端口。SW1上的Fa1/1、Fa1/2、Fa1/3和SW2上的Fa1/3,这4个端口都是指派端口。
④ 阻塞端口。SW2上的Fa1/1和SW3上的Fa1/2既不是根端口,也不是指派端口,将被阻塞。
STP收敛后的结果如图12-3-6所示,读者可以在每个交换机上使用"show spanning-tree brief"命令进行验证。
以下是笔者工作中遇到的一个实例。
某单位网络拓扑如图12-3-7所示,在核心和汇聚层配置了两台思科6509交换机,两台交换机间使用千兆链路互连;接入层配置的是2950交换机,为了避免单链路故障,接入层使用两条百兆链路分别上连到两台6509交换机的Fa2/1端口;两台服务器均为千兆和思科6509交换机相连。公司员工反映网速很慢。经测试,发现两台服务器间的流量始终超过不了百兆。初步分析,可能是生成树的问题,在两台6509交换上使用"show spanning-tree brief"命令查看,发现所有交换机的优先级都是默认的32768,但2950生成的日期较早,有最小的MAC地址,交换机2950是根交换机。右边6509的Gi1/1端口既不是根端口,也不是指派端口,被阻塞。至此,原因找到了,由于2950是根交换机,两台6509间的千兆链路被阻塞,Server 1到Server 2的流量全部经2950中转,百兆是瓶颈,这台2950交换机反而成了单位的核心。
利用学到的知识,把两台6509交换机分别配置成根交换机和备份的根交换机,问题解决。
[ 本帖最后由 emery 于 2009-4-6 14:00 编辑 ] |