STP的流程和意义

一、为什么要用STP

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

STP协议概述

生成树协议(spanning tree protocol),是一种工作在OSI网络模型中第二层(数据链路层)的通信协议,是一种由交换机运行的,基本应用是防止交换机冗余链路产生的环路,用于确保以太网中无环路的逻辑拓扑结构,从而避免了广播风暴,大量占用交换机的资源,

生成树协议工作原理:任意一交换机中如果到达根网桥有二条或者二条以上的链路,生成树协议都根据算法把其中一条切断,仅保留一条,从而保证任意二个交换机之间只有一条单一的活动链路,因为这种生成的这种拓扑结构,很像是以跟交换机为树干的树形结构,故为生成树协议。

STP的工作过程如下:在一个具有物理环路的交换网络中,交换机通过运行STP协议,自动生成一个没有环路的工作拓扑。该无环工作拓扑也成为STP树,当网络拓扑发生变化时,STP树也会自动地发生相应的改变,简而言之,有环的物理拓扑提高了网络连接的可靠性,而无环的工作拓扑避免了广播风暴、MAC地址表震荡。这就是STP的精髓。

二、STP的作用

  • Stp通过阻塞端口来消除环路,并能够实现链路备份目的
  • 消除了广播风暴
  • 物理链路冗余,网络变成了层次化结构的网络

三、STP操作

  • 选举一个根桥
  • 每个非根交换机选举一个根端口
  • 每个网段选举一个指定端口
  • 阻塞非根,非指定端口

在这里插入图片描述
在学习STP树之前,需要了解几个基本术语:桥、桥的MAC地址,桥的ID、端口ID

桥:早期交换机一般只有二个转发端口,所以那个时候的交换机常常被称为“网桥”,后来“桥”这个术语一直沿用至今,但并不是指只有二个转发端口的交换机了,而是泛指任意多端口的交换机,目前“桥”和“交换机”这二个术语是可以混用的

桥的MAC地址:我们知道一个桥有多个转发端口,每个端口都有一个MAC地址,通常,我们把端口编号最小的那个端口的MAC地址作为整个桥的MAC地址。

桥ID(BID):一个桥(交换机)的桥ID由二部分组成,即:桥优先级+桥的MAC地址;其中桥优先级的值可以人为设定,默认0x8000(相当于十进制32768),取值范围是0~65535.

端口ID(PID):一个桥(交换机)的某个端口ID由二部分组成,即:端口优先级+端口编号;端口优先级的值是可以人为设定的。不同厂商的设备对于二部分所占用的字节数可能有所不同 。

四、STP名词解释:

根桥:生成树里面的‘老大’,桥id最小
备份根桥:生成树里面的“二把手”,老大挂了的时候,我当老大,桥ID第二小。
非根交换机:干活的小弟,都有一个根端口
根端口:离根桥最近的端口
指定端口:根桥所有参与生成树选举的端口,都一定是指定端口
非根非指定端口:被阻塞的端口—备用链路的端口
路径开销:是端口Cost值,可以用来选择最优的路径,值越小越优。根路径开销是端口到达根桥的过程中累计的路径开销。
BID:桥ID:是由桥优先级和桥MAC地址构成,桥优先级为高16位,MAC地址是低48位。
PID:端口ID:是由端口优先级和端口号构成,端口优先级为高4位,端口号五、生成树选举办法
根桥交换机,备份根桥交换机,非根交换机
根端口,指定端口,非根非指定端口(阻塞端口/预备端口)

六、生成树选举因素

第一种根桥选举因素:优先级,MAC地址
第二种端口选举因素:路径开销>桥ID>对端端口ID>本端端口ID
如果我们要改变根桥直连端口的接口属性,要修改 路径开销。

七、根桥选举:

刚启动STP时,每台交换机都认为自己是根桥
根桥所有参与生成树选举的端口,都一定是指定端口
根桥交换机指定端口直连的交换机端口,都一定是指定端口

根桥:在参与生成树选举的网络里面 桥id肯定是最小的

备份根桥:在参与生成树选举的网络里面 桥id肯定是次优的存在

影响根桥选举的因素:

1)优先级(交换机默认优先级是32768)越小越优先,0的优先级最高。
2)优先级一样,看MAC地址表,最小的就是根桥。
3)两种方式:优先级最小、MAC地址最小

八、根端口的选举

非根交换机在选举根端口时分别依据该端口的根路径开销、桥ID、对端PID和本端PID(接了hub的情况才会用到本端PID)
未被选举为根端口或指定端口的为预备口

九、端口状态

disable(端口未启用状态或初始状态,端口不处理任何数据端口状态为down)
blocking(阻塞状态,维持20秒)
listening(监听状态,参与生成树计算,接受并发送BPDU报文维持15秒)
learning(学习状态,端口不转发用户流量,学习MAC表,参与生成树计算,接受并发送BPDU报文,防止环路维持15秒)
forwarding(转发状态)

十、定时器

a)Hello Time:

    指允许STP的设备发送BPDU的时间间隔。当网络拓扑稳定之后,若要修改该定时器,只有在根桥修改才能生效。

b)Forward Delay:

    指接口进行状态更换的延迟时间。也就是在处于Listening和Learning的持续时间,缺省值为15秒。

c)Max Age:

    指接口的BPDU老化时间。BPDU从根桥被发出的时候,Message Age值为0,每经过一个桥设备,其值加1。当非根桥设备收到BPDU后,会比较Message Age和Max Age的大小。如果前者小于等于后者,该非根桥设备继续转发该BPDU;如果前者大于后者,该BPDU将被丢弃,此时可以认为网络直径过大,根桥连接失败。

在同一个拓扑中,Max Age是相同的,可在根桥上修改该值。

十一、故障恢复时间

  1. 根桥故障恢复时间是max age+2forwading Delay=20+152=50s(发送TCPBDU)
  2. 直连链路故障回复时间是2forwading Delay=152=30s
  3. 间接链路故障恢复时间是max age+2forwading Delay=20+152=50s

十二、广播风暴

  1. 物理上存在环路
  2. 技术层面,交换机不能拒接广播,当收到广播时,会进行泛洪

十三、广播风暴危害

  1. 影响网络的效率
  2. 占用了大量的网络带宽
  3. MAC地址会出现震荡(漂移)
  4. 数据无法正常传递
  5. 网络会瘫痪
    在这里插入图片描述
    为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在BPDU ( Bridge Protocol Data Unit )中。
    BPDU 有两种类型:配置 BPDU 和 TCN BPDU 。

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

十五、STP的一些命令

Stp enable 关闭生成树
Display mac-address查看MAC地址表
Stp priority 设置交换机优先级(取值范围0-61440,默认优先级32768)
Display STP 查看生成树日志
Display stp brief查看接口是什么端口
stp cost cost命令取决于路径开销计算方法:
使用华为的私有计算方法时,cost取值范围是1~200000。 
使用IEEE 802.1d标准方法时,cost取值范围是1~65535。 
使用IEEE 802.1t标准方法时,cost取值范围是1~200000000。
stp pathcost-standard { dot1d-1998 | dot1t | legacy }命令用来配置指定交换机上路径开销值的标准。
stp mode { mstp | stp | rstp }命令用来配置交换机的生成树协议模式
修改生成树优先级:
Stp pri +优先级数(0-61440)必须是4096的倍数
32768 交换机默认优先级 *2得到B类地址总数
65536 B类地址总数 /2 得到交换机默认优先级
注意:想要一个交换机一定为根桥,修改优先级,优先级可以为0。
        在后面加入新设备时,要使原根桥不变可以增大加入的新设备的优先级。
        交换机默认情况下直连的路径开销最小,但人工修改后则修改的可以为最小。

十六、生成树选举详细过程

STP树的生成过程是:首先选举根桥,然后确定根端口和指定端口,最后阻塞备用端口。

1、选举根桥

    根桥是STP树的根节点,要生成一颗STP树首先要确定出一个根桥。当运行STP协议的交换机(简称为STP交换机)会互相交换STP协议帧,这些协议帧的载荷数据被称为BPUD(网桥协议数据单元)。STP交换机初始启动之后,都会认为自己是根桥,并在发送给其他交换机的宣告自己是根桥,当交换机从网络中收到其他设备发送过来的BPUD时,会比较BPUD中指定的根桥BID和自己的BID,交换机不断交互BPUD同时进行比较,直至选举出一台BID值最小的交换机作为根桥。

在这里插入图片描述
如图,交换机S1、S2、S3都使用了默认的桥优先级32768.显然S1的BID最小,所以最终S1被选举为根桥。

2、确定根端口

根桥确定后,其它没有成为根桥的交换机都成为非根桥,一台非根桥设备可能会有多个端口于网络相连,为了保证从某台非根桥设备到根桥的工作路径是最优且唯一,必须从该非根桥设备的端口中确定出一个被成为“根端口”的端口,由根端口来作为非根桥设备于根桥设备之间进行报文交互的端口,一台非根桥设备上最多只能有一个根端口。

非根桥在选举根端口时分别依据该端口的根路径开销、对端BID、对端PID和本端PID。一个运行STP协议的网络中,我们将某个交换机的端口到根桥的累计路径开销(J即从该端口到根路径经过的所有链路的路径开销的和)称为这个端口的根路径开销(Root Path Cost,RPC),链路的路径开销 于端口速率有关,端口转发速率越大,则路径开销越小

例1:根据RPC选举根端口

在这里插入图片描述
如图,假定S1已被选为根桥,现在S3需要从1 端口和2端口中确定除根端口。显然,S3的2端口的RPC为20 000;S3的1端口的RPC为200 000+20 000=22 0000,交换机会将RPC最小的那个端口确定为自己的根端口,因此,S3将2端口确定为自己的根端口,同理,S2将自己的1端口确定为根端口。

例2:根据对端BID选举根端口

在这里插入图片描述
然而,在实际应用中一台非根桥设备上的RPC可能是相同的,如图所示,假定S1已被选为根桥。对于S4而言,1端口和2端口到根桥的RPC都是相同的,这种情况下就需要根据对端BID来选举根端口。对于S4而言,它的对端BID也就是S2的BID和S3的BID。相比较之后假设S2的BID小,则1端口为S4根端口;反之,2端口就为S4的根端口。

例3:根据对端PID选举根端口

在这里插入图片描述

如图,二台设备在这种连接方式下非根桥的RPC、对端BID均是相同的,这种情况下需要根据对端PID来选举根端口。对于S2而言,它的对端PID就是Root的GE0/0/1口和GE0/0/2口,假设Root的端口优先级都是128,那么Root的端口编号就是1和2。显然Root的GE 0/0/1的PID更小,所以与之相连接的S2设备的GE 0/0/1端口就被选为根端口。

例4:根据本端PID选举根端口

在这里插入图片描述

如图,二台设备中间通过一台HUB相连接。在这种方式下的非根桥的RPC、对端BID、对端PID均是相同的,这种情况就需要根据本端PID来选举根端口。假设S2的端口优先级都是128,那么显然1端口的PID更小。因此,S2的1端口就被选为了根端口。

3、确定指定端口

根端口保证了交换机与根桥之间工作路径的唯一性和最优性。为了防止工作环路的存在,网络中每个网段与根桥之间的工作路径也必须是唯一且最优的。当一个网段有两条及以上的路径通往根桥时,与该网段相连的交换机就必须确定出一个唯一的指定端口。指定端口也是通过比较RPC来确定的,RPC较小的端口将成为指定端口。如果RPC相同,则需要比较BID、PID等。在这里插入图片描述
如图,假定S1已被选举为根桥,并且假定各链路的开销均相等。显然,S2将GE 0/0/1确定为自己的根端口,S3也将GE 0/0/1确定为自己的根端口。在S1与S2,、S1与S3的之间的网段上,很明显Ethernet 0/0/1和Ethernet 0/0/2均为指定端口。在S2与S3之间的网段中,由于两个端口的RPC是相同的,所以这时就需要比较S2和S3的BID;假定S2的BID小于S3的BID,那么就将S2的GE 0/0/2端口选举为该网段的指定端口。

注:通过以上的例子,其实不难发现一个规律:根桥上所有的端口,都是指定端口。

4、阻塞备用端口

在确定了根端口和指定端口之后,交换机上所有剩余的非根端口和非指定端口统称为备用端口。STP会对这些端口进行逻辑阻塞。所谓逻辑阻塞是指这些备用端口不能转发终端计算机产生并发送的帧,这些帧也被称为用户数据帧。不过,备用端口可以接受并处理STP协议帧。根端口和指定端口既可以发送和接收STP协议帧,又可以转发用户数据帧。在这里插入图片描述
如图,一旦备用端口被逻辑阻塞后,STP树(无环工作拓扑)的生成过程便告完成

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值