1.STP的基本概念:根桥
(1)STP的主要作用之一是在整个交换网络中计算出一棵无环的“树”(STP树)。
(2)根桥是一个STP交换网络中的“树根”。
(3)STP开始工作后,会在交换网络中选举一个根桥,根桥是生成树进行拓扑计算的重要“参考点”,是STP计算得出的无环拓扑的“树根”。
(4)在STP网络中,桥ID最小的设备会被选举为根桥。
(5)在BID的比较过程中,首先比较桥优先级,优先级的值越小,则越优先,拥有最小优先级值的交换机会成为根桥;如果优先级相等,那么再比较MAC地址,拥有最小MAC地址的交换机会成为根桥。
2.STP的基本概念:Cost
(1)每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达根的开销。
(2)接口的缺省Cost除了与其速率、工作模式有关,还与交换机使用的STP Cost计算方法有关。
(3)接口带宽越大,则Cost值越小。
(4)用户也可以根据需要通过命令调整接口的Cost。
3.STP的基本概念:RPC 根路径开销(Root Path Cost) 根路径开根路径开销(Root Path Cost)销(Root Path Cost)
(1)在STP的拓扑计算过程中,一个非常重要的环节就是“丈量”交换机某个接口到根桥的“成本”,也即RPC。
(2)一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加。
4.STP的基本概念:Port ID
(1)运行STP的交换机使用接口ID来标识每个接口,接口ID主要用于在特定场景下选举指定接口。
(2)接口ID由两部分构成的,高4 bit是接口优先级,低12 bit是接口编号。
(3)激活STP的接口会维护一个缺省的接口优先级,在华为交换机上,该值为128。用户可以根据实际需要,通过命令修改该优先级。
5.STP的基本概念:BPDU
(1)BPDU是STP能够正常工作的根本。BPDU是STP的协议报文。
(2)STP交换机之间会交互BPDU报文,这些BPDU报文携带着一些重要信息,正是基于这些信息,STP才能够顺利工作。
(3)BPDU分为两种类型:配置BPDU(Configuration BPDU)、TCN BPDU(Topology Change Notification BPDU)
(4)配置BPDU是STP进行拓扑计算的关键;TCN BPDU只在网络拓扑发生变更时才会被触发。
6.配置BPDU的比较原则
STP按照如下顺序选择最优的配置BPDU:
1.最小的根桥ID。2.最小的RPC。3.最小的网桥ID。4.最小的接口ID。备注(第一条原则主要用于在网络中选举根桥,后面的原则主要用于选举根接口及指定接口。)
7.STP的计算过程 (在交换网络中选举一个根桥)
(1)STP在交换网络中开始工作后,每个交换机都会向网络中发送配置BPDU。配置BPDU中包含交换机自己的桥ID。
(2)网络中拥有最小桥ID的交换机成为根桥。
(3)在一个连续的STP交换网络中只会存在一个根桥。
(4)根桥的角色是可抢占的。
(5)为了确保交换网络的稳定,建议提前规划STP组网,并将规划为根桥的交换机的桥优先级设置为最小值0。
7.STP的计算过程 (在每台非根桥上选举一个根接口)
(1)每一台非根桥交换机都会在自己的接口中选举出一个接口。
(2)非根桥交换机上有且只会有一个根接口。
(3)当非根桥交换机有多个接口接入网络中时,根接口是其收到最优配置BPDU的接口。
(4)可以形象地理解为,根接口是每台非根桥上“朝向”根桥的接口。
7.STP的计算过程 (在每条链路上选举一个指定接口)
(1)根接口选举出来后,非根桥会使用其在该接口上收到的最优BPDU进行计算,然后将计算得到的配置BPDU与除了根接口之外的其他所有接口所收到的配置BPDU进行比较:
(2)如果前者更优,则该接口为指定接口;
(3)如果后者更优,则该接口为非指定接口。
[czySW1]stp enable
[czySW1]stp priority 0
SW2的配置如下:
[czySW2]stp mode stp
[czySW2]stp enable
[czySW2]stp priority 4096
SW3的配置如下:
[czySW3]stp mode stp
[czySW3]stp enable
通过配置,将SW1指定为根桥,并使SW3的e0/0/2接口被STP阻塞。
在LSW3上查看stp接口状态摘要
8.STP的不足
(1)STP协议虽然能够解决环路问题,但是由于网络拓扑收敛慢,影响了用户通信质量。如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这是用户无法忍受的。
(2)STP没有细致区分接口状态和接口角色,不利于初学者学习及部署。
(3)网络协议的优劣往往取决于协议是否对各种情况加以细致区分。
从用户角度来讲,Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量。
从使用和配置角度来讲,接口之间最本质的区别并不在于接口状态,而是在于接口扮演的角色。
根接口和指定接口可以都处于Listening状态,也可能都处于Forwarding状态。
(4)STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢。
(5)STP算法要求在稳定的拓扑中,根桥主动发出配置BPDU报文,而其他设备进行处理,传遍整个STP网络。这也是导致拓扑收敛慢的主要原因之一。
9.RSTP通过接口角色的增补,简化了生成树协议的理解及部署
10.总结
1、选举根桥,根桥有且只有一个,除此之外都是非根桥;
2、非根桥有且只有一个根端口(到达根桥最近cost);
3、每段链路选举唯一 一个指定端口。
4、既不是根端口也不是指定端口,则会被称为阻塞端口(逻辑关闭);
选举规则:
1、根桥选举:最小的BID,具体看下面;
2、非根桥根端口选举:
2.1 先比较RPC
2.2 比较对端的BID
2.3 比较对端的PID
2.4 比较本端的PID
3、指定端口:
3.1 先比较RPC
3.2 比较发送者的BID
3.3 比较发送者的PID