ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算机网络(九)——STP原理

2021-09-19 09:32:05  阅读:1071  来源: 互联网

标签:根桥 端口 计算机网络 MAC 交换机 STP 原理 ID


交换网络中通常会使用冗余链路来提高网络的可靠性。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。

生成树协议STP(Spanning Tree Protocol)是可以用来解决冗余链路所带来的问题

冗余链路解决了单条链路出现故障导致业务中断问题,虽然增强了网络的可靠性,但是也会产生环路,而环路会带来一系列的问题,继而导致通信质量下降和通信业务中断等问题。

1、环路引发的问题

1.1 广播风暴

广播帧在有环路的交换网络中会被无限转发,网络中的主机接受到大量的重复数据帧,这种情况称之为网络风暴。造成的影响:

  1. 网络中充满了广播数据帧;
  2. 转发和处理这些无用的数据帧会浪费交换机和网络主机的性能;
  3. 交换机地址表震荡会造成数据转发错误;

本例中,假设此单播帧的目的MAC地址在网络中所有交换机的MAC地址表中都暂时不存在。

主机A向外发送了一个单播帧,将其转发到SWA和SWC,SWA和SWC也会将此帧转发到除了接收此帧的其他所有端口,结果此帧又会被再次转发给SWB,这种循环会一直持续,于是便产生了广播风暴。

1.2 MAC地址表震荡

MAC地址表震荡就是,同一个交换机有两个或两个以上接口可以接收到同一个MAC地址导致MAC地址与交换机端口的对应关系经常发生变化。

交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的。假设此单播帧的目的MAC地址在网络中所有交换机的MAC地址表中都暂时不存在。

  1. 主机A向外发送一个单播帧。SWB收到此数据帧之后,在MAC地址表中生成一个MAC地址表项,00-01-02-03-04-AA,对应端口为G0/0/3,并将其从G0/0/1和G0/0/2端口转发。此例仅以SWB从G0/0/1端口转发此帧为例进行说明。
  2. SWA接收到此帧后,由于MAC地址表中没有对应此帧目的MAC地址的表项,所以SWA会将此帧从G0/0/2转发出去。
  3. SWC接收到此帧后,由于MAC地址表中也没有对应此帧目的MAC地址的表项,所以SWC会将此帧从G0/0/2端口发送回SWB,也会发给主机B。
  4. SWB从G0/0/2接口接收到此数据帧之后,生成一个新的表项,00-01-02-03-04-AA,覆盖原有的MAC地址表。对应端口为G0/0/2。

此过程会不断重复,从而导致MAC地址表震荡。

2、STP生成树协议

2.1 STP的主要作用:(无用时阻断冗余链路,需要时启用)

  • 消除环路:通过阻塞端口来消除网络中可能存在的环路。
  • 链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。

2.2 STP工作方式

每个STP网络中,都会有且只有一个根桥(根交换机),其他交换机为非根桥。

根桥或者根交换机位于整个逻辑树的根部,是STP网络的逻辑中心;非根桥是根桥的下游设备。当现有根桥产生故障时,非根桥之间会交互信息并重新选举根桥,交互的这种信息被称为BPDU。BPDU中包含交换机在参加生成树计算时的各种参数信息。

STP中定义了三种端口角色:指定端口,根端口、预备端口(阻塞端口)

  • 根端口是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。(非根交换机上有)
  • 指定端口是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口都是指定端口。(所有交换机都有)
  • 如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻塞。

2.3 根桥选举(根桥的产生方式)

STP中根桥的选举依据的是桥ID,STP中的每个交换机都会有一个桥ID(Bridge ID) 。桥ID=16位的桥优先级+48位的MAC地址。

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

交换机启动后就自动开始进行生成树收敛计算(桥ID比较)。

默认情况下,所有启动STP的交换机启动时都认为自己是根桥,自己的所有端口都为指定端口,这样BPDU报文(桥协议数据单元)就可以通过所有端口转发。当某一个端口收到自己发送的BPDU报文后,会阻塞掉该端口;而对端交换机收到BPDU报文后,会比较BPDU中的根桥ID和自己的桥ID。

  • 如果收到的BPDU报文中的桥ID优先级低,接收交换机会继续通告自己的配置BPDU报文给邻居交换机。
  • 如果收到的BPDU报文中的桥ID优先级高,则交换机会修改自己的BPDU报文的根桥ID字段,宣告新的根桥。

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

2.4 根端口选举(通往根桥最优端口的选举)

非根交换机在选举根端口时分别依据该端口的根路径开销、对端BID(Bridge ID)、对端PID(Port ID)和自身本端PID。

端口开销:交换机端口的一个参数,表示该端口在STP中的开销值。参数大小与端口的带宽有关,带宽越高,开销越小。

路径开销:非根桥到根桥的路径上所有接收BPDU的端口的端口开销总和(即BPDU的入方向端口),称为路径开销。

根路径开销:非根桥通过对比多条路径的路径开销,到达根桥的最短路径,这条路径的路径开销被称为RPC(Root Path Cost,根路径开销),并生成无环树状网络。根桥的根路径开销是0。

对端桥PID:运行STP交换机的每个端口都有一个端口ID端口ID由端口优先级和端口号构成。端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍。越小越优先。缺省情况下,端口优先级是128。端口ID(Port ID)可以用来确定端口角色

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

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

2.5 指定端口选举(用于转发BPDU报文的端口选举)

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

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

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

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

2.6 端口状态转换

运行STP协议的设备上端口状态有5种:https://www.cnblogs.com/lkztrovo-lsh/p/15292158.html

2.7 BPDU报文

BPDU报文详解:https://www.cnblogs.com/lkztrovo-lsh/p/15249806.html

2.8 STP拓扑变化

STP的拓扑变化:https://www.cnblogs.com/lkztrovo-lsh/p/15292599.html

2.9 设备上的配置

1.STP配置交换机的生成树协议模式的命令:stp mode { mstp | stp | rstp }。缺省情况下,在MSTP模式。在使用STP前,STP模式必须重新配置。

2.STP配置设备优先级值命令:stp priority priority值。priority值为整数,取值范围为0到61440,步长为4096。缺省情况下,交换设备的优先级取值是32768。

可以通过stp root primary命令指定生成树里的根桥,确定网络中的数据流量使用最优路径转发。

3.配置指定交换机上路径开销值标准de命令:stp pathcost-standard { dot1d-1998 | dot1t | legacy }

  •   dot1d-1998        IEEE 802.1D-1998
  •   dot1t                  IEEE 802.1T
  •   legacy                 Legacy

手动设置端口路径开销值的命令:stp cost cost值。  缺省情况下,路径开销标准为IEEE 802.1t。

  • 使用华为的私有计算方法时,cost取值范围是1~200000。
  • 使用IEEE 802.1d标准方法时,cost取值范围是1~65535。
  • 使用IEEE 802.1t标准方法时,cost取值范围是1~200000000。

4.检查当前交换机的STP配置的命令:display stp

命令输出中信息介绍如下:

  • CIST Bridge参数标识指定交换机当前桥ID,包含交换机的优先级和MAC地址。
  • Bridge Times参数标识Hello定时器、Forward Delay定时器、Max Age定时器的值。
  • CIST Root/ERPC参数标识根桥ID以及此交换机到根桥的根路径开销

5.显示交换机上指定端口信息的命令:display stp interface 接口(g0/0/1)

 

标签:根桥,端口,计算机网络,MAC,交换机,STP,原理,ID
来源: https://www.cnblogs.com/lkztrovo-lsh/p/15246233.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有