STP 角色选举的探讨

对于STP很多人都已经总结过了,我只是从我自己的理解出发,简单分析一下生成树如何选择角色,并做些总结以备日后复习。

STP各种角色的选举:
其实在BPDU交换时,优先级、MAC、端口优先级和端口ID都是包含其内,SW会首先确认根桥,然后去确认根端口,指定端口和非指定端口,他们的选举是同时产生的,没有先后顺序。而且在802.1D的STP中,只有指定端口转发BPDU,在转发的BPDU中,包含了根BID,桥BID以及到根的Cost值等。但在判定这些角色时,也是有一定方法的。按下面的顺序可以找出在不同情况下的根端口,指定端口和非指定端口。
———————————————–
Lowest root bridge ID (BID)
Lowest path cost to root bridge
Lowest sender BID
Lowest sender port pri + port ID

第一种情况,三台SW,如图所示:

根桥:对比BPDU中的BID,SW1的优先级最低,所以是根桥。
根端口:每个非根桥都有一个根端口,而且这个端口是到根桥开销最低的,如果图里都是快速以太口,SW2和SW3那么跟根桥直连的端口开销最小为19(SW2的f1/1,SW3的F1/1);如果SW1和SW3,SW2和SW3都是G口相连,那么SW2的根端口就为G1/2。
指定端口:
在一个网段中,定有一个指定端口,并且根桥上的所有口都是指定端口。上面图中有三个网段,那么SW2和SW3哪个是指定端口?
指定端口是到桥的最小开销,此例中两个端口的cost一样,都是19。
那么此时就需要确认Sender BID,注意由于指定端口是基于网段的,那么可以简单理解成这个网段上一共有两个BPDU,分别是SW2和SW3发来的。SW2的BPDU中的桥BID是2,SW3的BPDU中的BID是3,那么肯定SW2的低,所以SW2的端口就是指定端口,SW3就是Block端口。
非指定端口:也就是Block端口,此端口不转发流量和BPDU,但只是接收BPDU。
总结:
选择指定端口时,选择更低BPDU的发送方(指定端口是基于网段的)
Lowest root bridge ID (BID)          —>Same
Lowest path cost to root bridge   —>Same
Lowest sender BID                             —> Use this way
Lowest sender port pri + port ID

第二种情况,四台SW,如图所示:

根桥:对比BPDU中的BID,SW1的优先级最低,所以是根桥。
根端口:假设都是快速以太口。SW4的根端口是f1/1,对于SW4来说,从f1/1到root开销最小;SW3的根端口是f1/1;SW2的根端口是哪个?由于SW2的两个端口到root的开销一样,所以对比Sender BID,但此时注意,不同于指定端口,根端口是基于端口的,那么可以理解SW2的f1/1和f1/2收到了SW3和SW4发过来的BPDU,因此对比后发现,SW3发的BPDU中BID值更低,所以收这个更优BPDU的端口f1/2成为跟端口。
指定端口:每个网段都有一个指定端口,根据规则首先确认路径开销。确认后发现SW4直接与根桥相连,然而SW2需要经过一台交换机到达根桥,因此SW4有更少的开销,所以SW4的f1/2是指定端口,那么SW2的f1/1就是Block端口。
总结:
选择根端口时,选择接收到更低BPDU的端口(根端口是基于交换机的)
Lowest root bridge ID (BID)          —>Same
Lowest path cost to root bridge   —>Same
Lowest sender BID                             —> Use this way
Lowest sender port pri + port ID

第三种情况,两台SW,如图所示:

根桥:对比BPDU中的BID,SW1的优先级最低,所以是根桥。
根端口:根据规则,cost和Sender BID都是一样的,那么这时只能看Sender port Pri + port ID了,此处优先级没有改,只看端口ID即可。对于SW2从两个端口都收到了BDPU,对比后发现f1/2收到的BPDU中PID更低,那么f1/2就是根端口,那么另一个肯定是Block端口了。
指定端口:在此示例下,除了根桥的指定端口外,就不存在指定端口了。
总结:
Lowest root bridge ID (BID)            —>Same
Lowest path cost to root bridge     —>Same
Lowest sender BID                               —>Same
Lowest sender port pri + port ID   —> Use this way

第四种情况,一台SW,如图所示:

在此情况下,根桥和根端口我就不用说了,主要讨论下指定端口和Block端口:
指定端口:根据规则,只能通过最后一条来确认,可以看到在唯一的网段中收到f1/2和f1/5的BPDU,他们中只有PID不同,所以选择一个最低的,因此f1/2是指定端口,f1/5是Block端口。

2011-8-19 更新:

STP的状态机

Blocking: That state can be reach from any other on the receipt of a better BPDU. This is also the very initial state for a port that has just been administratively enabled.
Blocking->Listening: This transition occurs after max_age has expired (when port is initially brought up, max_age is expired)
Listening->Learning->forwarding: the whole path a port has to take (waiting forward_delay each time), to go to Forwarding when it is Root or Designated.
Disabled: Administrative configuration, can be reached from any state

本文出自 Frank's Blog

版权声明:


本文链接:STP 角色选举的探讨
版权声明:本文为原创文章,仅代表个人观点,版权归 Frank Zhao 所有,转载时请注明本文出处及文章链接
你可以留言,或者trackback 从你的网站

留言哦

blonde teen swallows load.xxx videos