STP与SPT

droplet's picture

STP (spanning tree protocol)是L2用来创建路由和防止环路的协议,它的基本过程如下:

1)选择根桥(root bridge),所有的L2 switch通过交换BPDU message来选择根桥,一般是bridge id最小的会被选择为根桥。根桥的选择是在初始化时进行的,如果有一个新加入的桥,会重新开始这个过程。BPDU一般都是在TRUNK port上进行的,STP是在交换机之间生成一个转发树,不涉及access port的转发。根桥选择成功后,根桥上所有的port都是在forwarding状态。(所有的access port也是在forwarding状态)

2)对于其他桥,要选择root port。root port是到根桥最近的port,一般来说,与根桥直接相连的port肯定是root port。所有的root port都应该是在forwarding状态。

3)对同一Lan来说,要选择designated port。同一个Lan里面,到根桥最近的port会被选择为designated port。designated port都应该是在forwarding状态。一个Lan里面,只能有一个designated port,这个port也有可能和root port是同一个port。

其他所有的port都应该是disable状态,只能接收BPDU,而不能转发数据包。

STP树的创建过程是从树根开始的,然后添加新的边,没有用的边会被剪掉。在拓扑变化是,是从边开始往根通知,最后由根往下广播拓扑变化的消息。

SPT (shortest path tree)是PIM/SM协议里面创建多播转发树的过程。还有一个RPT(Rendezvous path tree)用于SPT完成之前的转发。

SPT的创建是从叶节点开始的,每次都是查找最短路由,然后把Join的信息发给最近的路由器。最后Join会到达FHR(first hop router)。这个过程与STP正好是相反的。

在STP里面,通过剪掉多余的枝来防止环路,而PIM/SM通过RPF (reverse path forwarding)来防止环路。如果有并行路径,PIM/SM会发送Assert消息,而STP则选择最小路径。

这两种树应该都不是最优树,如果要创建最优树,开销会很大。当前这种方式已经足够用了。

0
Your rating: None