STP工作原理和配置

简介: STP工作原理和配置

STP工作原理和配置

为什么会使用STP协议?

为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。


环路引发的问题

1、交换机通信产生环路:交换机之间通过多条链路互连时,虽然能够提升网络可靠性,但同时也会带来环路问题。而环路会带来一系列的问题,继而导致通信质量下降和通信业务中断等问题。

2、广播风暴:环路会引起广播风暴;网络中的主机会收到重复数据帧。交换机性能会因此急速下降,导致业务中断。

3、MAC地址表震荡:环路会引起MAC地址表震荡。交换机根据所接收到的源地址和接收端口生成MAC地址表项的。


STP的工作原理

1、STP的作用

STP通过阻塞端口来消除环路,并能够实现链路备份的目的。

在以太网中,二层网络的环路会带来广播风暴,MAC地址表震荡,重复数据帧等问题,为解决交换机网络中的环路问题,提出了STP协议。

STP的主要作用:

(1)消除环路:通过阻断冗余链路来消除网络中可能存在的环路;

(2)链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。


2、STP协议原理

网络收敛

(1)、选举一个根桥;

(2)、每个非根交换机选举一个根端口;

(3)、每个网段选举一个指定端口;

(4)、阻塞非根、非指定端口;

STP通过构造一棵树来消除交换网络中的环路。

每个STP网络中,都会存在一个根桥,其他交换机为非根桥。根桥或者根交换机位于整个逻辑树的根部,是STP网络的逻辑中心,非根桥是根桥的下游设备。当现有根桥产生故障时,非根桥之间会交互信息并重新选举根桥,交互的这种信息被称为BPDU。

STP中定义了三种端口角色:指定端口,根端口和预备端口。

指定端口是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口总是指定端口。

根端口是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。

如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻塞。

20200712160946280.png


根桥选举的依据及过程

选举依据: STP中根桥的选举依据的是桥ID、MAC地址

桥ID: 由16位的桥优先级(Bridge Priority)和48位的MAC地址构成。优先级范围0~65536。默认为32768。

选举过程:

①每一台交换机启动STP后,都认为自己是根桥,根桥上的所有端口都是指定端口;

②BPDU报文通过交换机的所有端口进行转发,当某一端口收到自己的BPDU报文时会将其阻塞掉;

③对端交换机收到BPDU报文后,会比较BPDU中的根桥ID和自己的桥ID,如果桥ID相同,再比较MAC地址大小。

④最后,在整个网络中里面会有一个桥ID最小的交换机,这个交换机就是整个网络的根桥。

比较交换机的桥ID优先级的方法:

在STP网络中,桥优先级是可以配置的,取值范围是0~65535,默认值为32768。优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。

比较交换机的MAC地址大小的方法:

MAC地址的长度是48比特(6字节),48位二进制数,12位16进制数组成,即0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f。

从左至右,逐位比较。比如:00:01:10:00:11:11 和00:10:00:00:00:00前者比后者要小。

如果比较位相同,则往后推一位再比较,最小的即为MAC地址最小。


根端口选举的依据及过程

选举依据: 非根交换机在选举根端口时分别依据该端口的①根路径开销②对端BID(Bridge ID)③对端PID(Port ID)④本端PID

选举顺序:

1、对比本端口到根桥的根路径开销;2、对端桥ID;3、对端端口ID;4、本身端口ID;

①根路径开销: 交换机的每个端口都有一个端口开销(Port Cost)参数,此参数表示该端口在STP中的开销值。默认情况下端口的开销和端口的带宽有关,带宽越高,开销越小。从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口),称为路径开销。非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开销被称为RPC(Root Path Cost,根路径开销),并生成无环树状网络。根桥的根路径开销是0。

②端口ID(Port ID): 端口优先级+端口号;端口优先级的范围0~240,步长为16,即取值为16的整数倍。端口越小越优先,如果优先级一样,比较端口编号,也是越小越优先。 缺省情况下,端口的优先级为128。端口ID(Port ID)用来确定端口角色。

……………………………………………………………………………

每个非根桥都要选举一个根端口。根端口是距离根桥最近的端口,这个最近的衡量标准是靠路径开销来判定的,即路径开销最小的端口就是根端口。端口收到一个BPDU报文后,抽取该BPDU报文中根路径开销字段的值,加上该端口本身的端口开销即为本端口路径开销。如果有两个或两个以上的端口计算得到的累计路径开销相同,那么选择收到发送者BID最小的那个端口作为根端口。

……………………………………………………………………………

如果两个或两个以上的端口连接到同一台交换机上,则选择发送者PID最小的那个端口作为根端口。如果两个或两个以上的端口通过Hub连接到同一台交换机的同一个接口上,则选择本交换机的这些端口中的PID最小的作为根端口。


指定端口选举的依据及过程

选举依据: 非根交换机在选举指定端口时分别依据根路径开销、BID、PID。未被选举为根端口或指定端口的端口为预备端口,将会被阻塞。

每两台非根交换机之间每一条链路选举出一个指定端口。

选举规则:

1、对比交换机的根端口到根桥的根路径开销

2、对端桥ID

3、端口ID

……………………………………………………………………………

在网段上抑制其他端口(无论是自己的还是其他设备的)发送BPDU报文的端口,就是该网段的指定端口。每个网段都应该有一个指定端口,根桥的所有端口都是指定端口(除非根桥在物理上存在环路)。

指定端口的选举也是首先比较累计路径开销,累计路径开销最小的端口就是指定端口。如果累计路径开销相同,则比较端口所在交换机的桥ID,所在桥ID最小的端口被选举为指定端口。如果通过累计路径开销和所在桥ID选举不出来,则比较端口ID,端口ID最小的被选举为指定端口。

网络收敛后,只有指定端口和根端口可以转发数据。其他端口为预备端口,被阻塞,不能转发数据,只能够从所连网段的指定交换机接收到BPDU报文,并以此来监视链路的状态。


端口状态转换

Forwarding: 转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。

Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。

Listening: 侦听状态。端口可以转发BPDU报文,但不能转发用户流量。

Blocking:阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。

Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。


BPDU报文解读

为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在BPDU(Bridge Protocol Data Unit)中。

BPDU有两种类型:配置BPDU和TCN BPDU。

配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU。在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。

TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。

配置BPDU中包含了足够的信息来保证设备完成生成树计算,其中包含的重要信息如下:

根桥ID:由根桥的优先级和MAC地址组成,每个STP网络中有且仅有一个根桥。

根路径开销:到根桥的最短路径开销。

指定桥ID:由指定桥的优先级和MAC地址组成。

指定端口ID:由指定端口的优先级和端口号组成。

Message Age:配置BPDU在网络中传播的生存期。

Max Age:配置BPDU在设备中能够保存的最大生存期。

Hello Time:配置BPDU发送的周期。

Forward Delay:端口状态迁移的延时。

20200712164317707.png


计时器

Hello Time是指运行STP协议的设备发送配置BPDU的时间间隔,用于检测链路是否存在故障。交换机每隔Hello Time时间会向周围的交换机发送配置BPDU报文,以确认链路是否存在故障。当网络拓扑稳定后,该值只有在根桥上修改才有效。

Message Age是从根桥发送到当前交换机接收到BPDU的总时间,包括传输延时等。如果配置BPDU是根桥发出的,则Message Age为0。实际实现中,配置BPDU报文每经过一个交换机,Message Age增加1。

Max Age是指BPDU报文的老化时间,可在根桥上通过命令人为改动这个值。Max Age通过配置BPDU报文的传递,可以保证Max Age在整网中一致。非根桥设备收到配置BPDU报文后,会将报文中的Message Age和Max Age进行比较:如果Message Age小于等于Max Age,则该非根桥设备会继续转发配置BPDU报文。如果Message Age大于Max Age,则该配置BPDU报文将被老化掉。该非根桥设备将直接丢弃该配置BPDU,并认为是网络直径过大,导致了根桥连接失败。


3、STP拓扑变化

根桥故障

非根桥会在BPDU老化之后开始根桥的重新选举。

在稳定的STP拓扑里,非根桥会定期收到来自根桥的BPDU报文。如果根桥发生了故障,停止发送BPDU报文,下游交换机就无法收到来自根桥的BPDU报文。如果下游交换机一直收不到BPDU报文,Max Age定时器就会超时(Max Age的默认值为20秒),从而导致已经收到的BPDU报文失效,此时,非根交换机会互相发送配置BPDU报文,重新选举新的根桥。根桥故障会导致50秒左右的恢复时间,恢复时间约等于Max Age加上两倍的Forward Delay收敛时间。


直连链路故障

SWB检测到直连链路物理故障后,会将预备端口转换为根端口。 >SWB新的根端口会在30 秒后恢复到转发状态。


非直连链路故障

非直连链路故障后,SWC的预备端口恢复到转发状态大约需要50秒。


拓扑改变导致MAC地址表错误

在交换网络中,交换机依赖MAC地址表转发数据帧。缺省情况下,MAC地址表项的老化时间是300秒。如果生成树拓扑发生变化,交换机转发数据的路径也会随着发生改变,此时MAC地址表中未及时老化掉的表项会导致数据转发错误,因此在拓扑发生变化后需要及时更新MAC地址表项。


拓扑改变导致MAC地址表变化

拓扑变化过程中,根桥通过TCN BPDU报文获知生成树拓扑里发生了故障。根桥生成TC用来通知其他交换机加速老化现有的MAC地址表项。


4、STP的配置

STP模式

华为X7系列交换机支持三种生成树协议。

stp mode { mstp | stp | rstp }命令用来配置交换机的生成树协议模式。缺省情况下,华为X7系列交换机工作在MSTP模式。在使用STP前,STP模式必须重新配置。


配置交换机的优先级

通过修改交换机的优先级,可以配置交换机为根交换机。

基于企业业务对网络的需求,一般建议手动指定网络中配置高、性能好的交换机为根桥。

可以通过配置桥优先级来指定网络中的根桥,以确保企业网络里面的数据流量使用最优路径转发。

stp priority priority命令用来配置设备优先级值。priority值为整数,取值范围为0到61440,步长为4096。缺省情况下,交换设备的优先级取值是32768。另外,可以通过stp root primary命令指定生成树里的根桥。


配置路径开销

华为X7系列交换机支持三种路径开销标准,以确保和友商设备保持兼容。缺省情况下,路径开销标准为IEEE 802.1t。

stp pathcost-standard { dot1d-1998 | dot1t | legacy }命令用来配置指定交换机上路径开销值的标准。

每个端口的路径开销也可以手动指定。此STP路径开销控制方法须谨慎使用,手动指定端口的路径开销可能会生成次优生成树拓扑。

stp cost cost命令取决于路径开销计算方法:

使用华为的私有计算方法时,cost取值范围是1~200000。

使用IEEE 802.1d标准方法时,cost取值范围是1~65535。

使用IEEE 802.1t标准方法时,cost取值范围是1~200000000。


配置验证

display stp命令用来检查当前交换机的STP配置。命令输出中信息介绍如下:

CIST Bridge参数标识指定交换机当前桥ID,包含交换机的优先级和MAC地址。

Bridge Times参数标识Hello定时器、Forward Delay定时器、Max Age定时器的值。

CIST Root/ERPC参数标识根桥ID以及此交换机到根桥的根路径开销。

display stp命令显示交换机上所有端口信息;display stp interface interface命令显示交换机上指定端口信息。其他一些信息还包括端口角色、端口状态、以及使用的保护机制等。


Q:根桥产生故障后,其他交换机会被选举为根桥。那么原来的根桥恢复正常之后,网络又会发生什么变化呢?


A:如果生成树网络里面根桥发生了故障,则其它交换机中优先级最高的交换机会被选举为新的根桥。如果原来根桥再次激活,则网络又会根据BID来重新选举新的根桥。


Q:端口开销和根路径开销的区别是什么?


A:根路径开销是到根桥的路径的总开销,而端口开销指的是交换机某个端口的开销。

相关文章
|
30天前
配置STP功能实验
在一个复杂的网络中,网络规划者由于冗余备份的需要,一般都倾向于在设备之间部署多条物理链路,其中一条作主用链路,其他链路作备份。这样就难免会形成环形网络,若网络中存在环路,可能会引起广播风暴和MAC表项被破坏。 网络规划者规划好网络后,可以在网络中部署STP协议预防环路。当网络中存在环路,STP通过阻塞某个端口以达到破除环路的目的。如图1所示,当前网络中存在环路,SwitchA、SwitchB、SwitchC和SwitchD都运行STP,通过彼此交互信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复
配置STP功能实验
|
10月前
stp的基础配置
stp的基础配置
69 0
|
11月前
|
安全 网络虚拟化 网络架构
VLAN原理和配置总结
VLAN原理和配置总结
|
网络协议 网络虚拟化 虚拟化
VXLAN小实验:VXLAN头端复制配置
VXLAN小实验:VXLAN头端复制配置
VXLAN小实验:VXLAN头端复制配置
|
算法 网络虚拟化
第二章STP应用配置
生成树算法的网桥协议STP(Spanning Tree Protocol) 它通过生成生成树保证一个已知的网桥在网络拓扑中沿一个环动态工作。网桥与其他网桥交换BPDU消息来监测环路,然后关闭选择的网桥接口取消环路,统指IEEE802·1生成树协议标准和早期的数字设备合作生成树协议,该协议是基于后者产生的。IEEE版本的生成树协议支持网桥区域,它允许网桥在一个扩展本地网中建设自由环形拓扑结构。IEEE版本的生成树协议通常为在数字版本之上的首选版本。
143 0
第二章STP应用配置
|
负载均衡 算法 网络协议
第二章 STP应用配置
在企业实际网络环境中,经常会出现环路,严重的甚至导致网络瘫痪。而在TCP/IP理论中,三层的环路可以通过TTL从一定程度上解决。那么二层的环路又如何解决呢?本张将会通过学习STP去解决这个问题
89 0
第二章 STP应用配置
|
网络协议 算法 数据库
路由器/交换机工作原理(RIP/OSPF协议工作原理)
交换机工作原理 交换机负责局域网内主机之间的数据转发
464 0
|
网络协议 数据库 网络架构