23、90秒快速“读懂”STP(生成树)工作原理
交换机之间通过多条链路互连时,虽然能够提升网络可靠性,但同时也会带来环路问题。
1、广播风暴
根据交换机的转发原则,如果交换机从一个端口上接收到的是一个广播帧,或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路,则这个帧会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据帧。
2、MAC地址表震荡
交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的。 此过程不断重复,从而导致MAC地址表震荡。
STP(SpanningTree Protocol)生成树协议的作用
STP通过阻塞端口来消除环路,并能够实现链路备份的目的。
1、消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
2、链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。
STP的操作
1、选举一个根桥。
2、每个非根交换机选举一个根端口。
3、每个段选举一个指定端口。
4、阻塞非根、非指定端口。
STP通过构造一棵树来消除交换网络中的环路。
每个STP网络中,都会存在一个根桥,其他交换机为非根桥。根桥或者根交换机位于整个逻辑树的根部,是STP网络的逻辑中心,非根桥是根桥的下游设备。当现有根桥产生故障时,非根桥之间会交互信息并重新选举根桥,交互的这种信息被称为BPDU。BPDU中包含交换机在参加生成树计算时的各种参数信息。
STP中定义了三种端口角色:指定端口,根端口和预备端口。
指定端口:
是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。 一般情况下,根桥的每个端口总是指定端口。
根端口:
是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。
预备端口:
既不是指定端口也不是根端口,预备端口将被阻塞。
根桥选举
每一台交换机启动STP后,都认为自己是根桥。
STP中根桥的选举依据:
1、桥优先级(Bridge Priority)
2、48位的MAC地址
STP中的每个交换机都会有一个桥ID(Bridge ID)。桥ID 由16位的桥优先级(Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0-65535,默认值为32768。
优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。
根端口选举
非根交换机在选举根端口时分别依据:
1、根路径开销(Root Path Cost)
2、对端BID(Bridge ID)
3、对端PID(Port ID,有端口优先级和端口号构成)
4、本端PID
交换机的每个端口都有一个端口开销(Port Cost)参数,此参数表示该端口在STP中的开销值。默认情况下端口的开销和端口的带宽有关,带宽越高,开销越小。从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口),称为路径开销。非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开销被称为RPC (Root Path Cost,根路径开销),并生成无环树状网络。
根桥的根路径开销是0。
指定端口选举
非根交换机在选举指定端口时分别依据:
1、根路径开销(Root Path Cost)
2、BID(Bridge ID)
3、PID(Port ID)
未被选举为根端口或指定端口的端口为预备端口,将会被阻塞。
每个网段都应该有一个指定端口,根桥的所有端口都是指定端口(除非根桥在物理上存在环路)。