STP是一种二层防环协议,该协议通过阻塞冗余链路达到二层防环作用,而如何阻塞有如下的规则:
一、一条链路上只能有一个DP端口,也就是链路对端端口要么是RP,要么就是NDP
二、且非根桥只能有一个RP端口,根桥所有端口都处于DP
三、RP对端一定是DP
选举步骤如下
一、选举根桥
二、选举RP
三、选举DP
四、选举NDP
对根桥的选举而言,比较简单,就不赘述,对于非根桥端口角色的选举有如下规则:
RP选举
①选择去往根桥Cost值最小的端口作为RP端口(即该端口入向接收BPDU时COP大小,小的成为RP)若相同则比较下一步
②选择接收到BPDU数据包中BID最小的成为根端口,若相同
③选择PID(链路对端发送BPDU的端口PID)小的成为RP
RP选举完毕,接下来就是选择DP和NDP
④比较入向接收到BPDU和该端口发送的BPDU中COP大小,小的成为DP,而大的成为NDP,若相同
⑤比较比较入向接收到BPDU和该端口发送的BPDU中BID大小,小的成为DP,而大的成为NDP,若相同
⑥比较比较入向接收到BPDU和该端口发送的BPDU中PID大小,小的成为DP,而大的成为NDP
接下来就上面的规则,我们举几个STP选举实例
例1:
如图:根桥的是Switch0,很好分析,对Switch1和Switch2由规则步骤①知道Switch1的Fa0/1以及Switch2
的Fa0/1,而对于Switch3由步骤一比较不出来,因为他们从Switch1和Switch2接收到的BPDU中,COP大小相等,接下来从由步骤②知道Switch1的BID小于Switch2的BID,所以Switch3的Fa0/2成为RP,RP确定的瞬间,对端DP的角色已经确定。
接下来就是选举DP和NDP,在图中,就是选举Switch2(Fa0/1)--->Switch3(Fa0/1)之间的链路,我们就Switch3的端口Fa0/1进行分析,由步骤④得知,Switch3从Switch2接收到的BPDU中COP大小为19,而Switch3的Fa0/1出接口BPDU中COP的大小为38,所以Switch2的BDPU更优,该交换机的Fa0/2成为DP,而Switch3的Fa0/1的端口成为NDP
例2:
如图:根桥的为Switch4,该交换机的Fa0/1和Fa0/2为DP,而对于Switch5,步骤①和步骤②的比较均不可以确定RP的角色,因为他的接口入向接收到的BPDU中COP大小相等,BID也相等,而由步骤③得知,Switch4的Fa0/1发出的BPDU中PID要小于Fa0/2的PID(PID由端口优先级以及端口号组成),所以Switch5
的Fa0/2成为RP,而又由于一台交换只能有一个RP和一条链路上只能有一个DP判定Switch5的Fa0/1为NDP
转载于:https://blog.51cto.com/8947509/1415049