生成树协议(STP)

一、STP生成树的概述

1.1 交换环路的产生

交换环路的产生
如上图所示:在网络通信开始时,PC1的ARP条目中没有PC2的MAC地址,根据ARP原理,PC1会发送ARP请求给交换机SW2,SW2收到请求后会转发给SW1和SW4,然后再分别转发出去,这时网络就形成了一个环路,而交换机之间并不知道,这将导致广播帧在这个环路中永远循环下去,最终形成广播风暴,导致网络瘫痪。

交换网络环路产生的总结:

  • 广播风暴的形成
  • 多帧复制
  • MAC地址表紊乱

1.2 STP简介

STP(Spanning Tree Protocol,生成树协议)就是用来把一个环形的结构改变成一个树形的结构。
STP

如上图可以看出:

  • STP从逻辑上断开环路,防止广播风暴的产生
  • 当线路故障,阻塞接口会被激活,恢复通信,起备份线路的作用

二、STP生成树的工作原理

2.1 生成树算法及验证

2.1.1 生成树算法

STP运行生成树算法(Spanning Tree Algorithm,STA)。生成树算法的过程很复杂,归纳为下列三个步骤:

  • 选择根网桥(Root Bridge),这里网桥指的就是交换机。
  • 选择根端口(Root Ports)。
  • 选择指定端口(Designated Ports)。

1.网桥

  • 网桥ID是唯一的;
  • 选择交换网络中网桥ID最小的交换机成为根网桥。网桥ID
    网桥优先级:是用来衡量网桥在生成树算法中优先级的十进制数,取值范围为0~65535,默认值是32768。
    先比较优先级,在优先级相同的情况下,则Mac地址小的为根网桥。

2.根端口
选择根端口时,依据的顺序如下:

  • 到根网桥最低的根路径成本。
  • 直连的网桥ID最小。
  • 端口ID最小

根路径计算成本计算过程如下图:
STP路径计算
带宽与路径成本的关系如下图:
带宽与路径成本的关系
端口ID是一个2字节的STP参数,由1字节的端口优先级和1字节的端口编号组成,如下图:
在这里插入图片描述
端口优先级是一个可配置的STP参数,在基于IOS的交换机上,端口优先级十进制取值范围是0~255,默认是128.

3.选择指定端口
选择完根网桥和每台交换机的端口后,一个树形结构已经初步形成,但是所有线路仍连接在一起,并可能都处于活动状态,为了消除环路形成的可能,STP进行最后的计算,在每一个网段上选择一个指定端口。选择指定端口的依据与选择根端口相同,按顺序有以下三个步骤:

  • 根路径成本最低
  • 所在的交换机的网桥ID值最小
  • 端口ID值较小

2.2 桥协议数据单元

交换机之间是通过BPDU(Bridge Protocol Date Unit,桥协议数据单元)来交换网桥ID、根路径成本等信息的,使用组播发送BPDU。

2.2.1 BPDU的两种类型

  • 配置BPDU —— 用于生成树计算。
  • 拓扑变更通告(Topology Change Notification,TCN)BPDU —— 用于通告网络拓扑变化。

2.2.2 BPDU报文字段

BPDU中包含了根网桥ID、根路径成本、发送网桥ID和端口ID;

  • 根网桥ID:由一个2字节优先级和一个6字节网桥MAC地址组成,这个信息组合是已经被选定为根网桥的设备标识。
  • 根路径成本:说明这个BPDU从根网桥传输了多远,成本是多少。这个字段的值决定哪些端口将进行转发,哪些端口将被阻断。
  • 发送网桥ID:这是发送该BPDU的网桥信息,由网桥的优先级和网桥的MAC地址组成。
  • 端口ID:由1字节的端口优先级和1字节的端口编号组成。

2.2.3 STP利用BPDU选择根网桥的过程

根网桥的选择是一个持续、反复进行的过程,它每2S触发一次,检查BPDU的根网桥ID是否发生了变化,网络中是否有网桥ID值更低的交换机加入进来。
根网桥选择过程如下:

  • 当一台交换机第一次启动时,先假定自己是根网桥,在BPDU报文中的根网桥ID字段填入自己的网桥ID,并向外发送。
    在这里插入图片描述
  • 交换机比较接收到的BPDU报文中的根网桥ID与自己的网桥ID的值哪个更小,如果接收到的BPDU中的根网桥ID值小于自己的网桥值,则用接收到的根网桥ID替代现有的根网桥ID,并向外转发。这时,交换机仍然会继续监听其他交换机发来的BPDU,并进行比较,只要接收的BPDU中宣告的根网桥ID值小于目前存储的根网桥ID值,则进行替换,这样一段时间后,当所有的交换机互相接收了全部的BPDU后,则能够选择出全网公认的唯一根网桥。
  • 收敛后,如果有一台网桥ID值更小的交换机加入进来,那么,它首先把自己当做一个根网桥在网络中通告,由于那台新交换机的网桥ID的确更小,所以其他交换机在比较一番后,就会把它当做新的根网桥而记录下来。

2.3 STP收敛

2.3.1 生成树端口的状态

在STP计算过程中,交换机的每一个端口都必须依次经历好几种状态。
交换机端口的五种STP状态

2.3.2 生成树计时器

  • STP利用三种计时方法来确保一个网络正确的收敛:

    • Hello时间:网桥发送配置BPDU报文之间的时间间隔。
    • 转发延迟:一个交换机端口在侦听和学习状态所花费的时间间隔,默认值各为15s。
    • 最大老化时间:交换机在丢弃BPDU报文之前存储它的最大时间。
  • 生成树计时器决定的端口在各种状态下所处的时间长短:
    在这里插入图片描述

三、STP生成树的应用

STP与VLAN的关系

案例:实现PC1和PC2互通,当sw2的e0/0/1或者sw1的e0/0/1断开时,可走备选路线通信。
在这里插入图片描述

  1. SW3配置如下:
The device is running!
//进入管理模式
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
//修改名称为SW3
[Huawei]sys SW3
//关闭信息提示
[SW3]undo info en
Info: Information center is disabled.
//批量创建VLAN10、VLAN20
[SW3]vlan batch 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
//进入接口e0/0/1
[SW3]int e0/0/1
//配置接口属性为access,因为是交换机到主机
[SW3-Ethernet0/0/1]port link-type access 
//配置默认VLAN为10
[SW3-Ethernet0/0/1]port default vlan 10
//进入接口e0/0/2
[SW3-Ethernet0/0/1]int e0/0/2
//配置接口属性为access,因为是交换机到主机
[SW3-Ethernet0/0/2]port link-type access
//配置默认VLAN为20
[SW3-Ethernet0/0/2]port default vlan 20
//进入接口e0/0/3
[SW3-Ethernet0/0/2]int e0/0/3
//配置接口属性为Trunk,因为是交换机到交换机
[SW3-Ethernet0/0/3]port link-type trunk 
//设置允许通过的VLAN为所有VLAN(2-4096)
[SW3-Ethernet0/0/3]port trunk allow-pass vlan all
//进入接口e0/0/4
[SW3-Ethernet0/0/3]int e0/0/4
//配置接口属性为Trunk,因为是交换机到交换机
[SW3-Ethernet0/0/4]port link-type trunk
//设置允许通过的VLAN为所有VLAN(2-4096)
[SW3-Ethernet0/0/4]port trunk allow-pass vlan all

  1. SW2的配置如下
The device is running!
//进入管理模式
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
//修改名称为SW2 
[Huawei]sys SW2
//关闭信息提示
[SW2]undo in en
Info: Information center is disabled.
//批量创建VLAN10和VLAN20
[SW2]vlan batch 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
//进入g0/0/1接口
[SW2]int e0/0/1
//设置接口属性为trunk,因为是交换机到交换机
[SW2-Ethernet0/0/1]port link-type trunk
//设置允许通过的VLAN为所有VLAN(2-4096)
[SW2-Ethernet0/0/1]port trunk allow-pass vlan all
//进入g0/0/2接口
[SW2-Ethernet0/0/1]int e0/0/2
//设置接口属性为access,因为是交换机到路由器
[SW2-Ethernet0/0/2]port link-type access
//设置接口默认允许VLAN20通过
[SW2-Ethernet0/0/2]port default vlan 20
//进入g0/0/2接口
[SW2-Ethernet0/0/2]int e0/0/3
//设置接口属性为trunk,因为是交换机到交换机
[SW2-Ethernet0/0/3]port link-type trunk
//设置允许通过的VLAN为所有VLAN(2-4096)
[SW2-Ethernet0/0/3]port trunk allow-pass vlan all
//退出接口
[SW2-Ethernet0/0/3]q
//配置为mstp模式
[SW2]stp mode mstp
//进入配置模式
[SW2]stp region-configuration 
//修改域名为HUAWEI2
[SW2-mst-region]region-name HUAWEI2
//修订级别为1
[SW2-mst-region]revision-level 1
//vlan10对应实例1
[SW2-mst-region]instance 1 vlan 10
//vlan20对应实例2
[SW2-mst-region]instance 2 vlan 20
//激活mstp
[SW2-mst-region]active region-configuration 
//退出配置模式
[SW2-mst-region]q
//设置实例2为主用
[SW2]stp instance 2 root primary
//设置实例1为备用
[SW2]stp instance 1 root secondary

  1. SW1的配置如下
The device is running!
//进入管理模式
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
//修改名称为SW1
[Huawei]sys SW1
//关闭信息提示
[SW1]undo info en
Info: Information center is disabled.
//批量创建VLAN10和20
[SW1]vlan batch 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
//进入e0/0/1接口
[SW1]int e0/0/1
//设置接口属性为trunk,因为是交换机到交换机
[SW1-Ethernet0/0/1]port link-type trunk
//设置允许通过的VLAN为所有VLAN(2-4096)
[SW1-Ethernet0/0/1]port trunk allow-pass vlan all
//进入e0/0/2接口
[SW1-Ethernet0/0/1]int e0/0/2
设置接口属性为access,因为是交换机到路由器
[SW1-Ethernet0/0/2]port link-type access 
//设置允许通过的VLAN为10
[SW1-Ethernet0/0/2]port default vlan 10
//进入e0/0/3接口
[SW1-Ethernet0/0/2]int e0/0/3
//设置接口属性为trunk,因为是交换机到交换机
[SW1-Ethernet0/0/3]port link-type trunk
//设置允许通过的VLAN为所有VLAN(2-4096)
[SW1-Ethernet0/0/3]port trunk allow-pass vlan all
//退出接口
[SW1-Ethernet0/0/3]q
//配置为mstp模式
[SW1]stp mode mstp
//进入配置模式
[SW1]stp region-configuration 
//修改域名为HUAWEI1
[SW1-mst-region]region-name HUWWEI1
//修订级别为1
[SW1-mst-region]revision-level 1
//vlan10对应实例1
[SW1-mst-region]instance 1 vlan 10
//vlan20对应实例2
[SW1-mst-region]instance 2 vlan 20
//激活mstp
[SW1-mst-region]active region-configuration 
//退出配置模式
[SW1-mst-region]q
//设置实例里1为主用
[SW1]stp instance 1 root primary
//设置实例里2为备用
[SW1]stp instance 2 root secondary

  1. 路由器R1 配置如下
The device is running!
//进入管理模式
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
//设置名称为R1 
[Huawei]sys R1
//关闭信息提示
[R1]undo info en
Info: Information center is disabled.
//进入接口g0/0/0
[R1]int g0/0/0 
//设置ip和子网掩码
[R1-GigabitEthernet0/0/0]ip address 192.168.10.1 24
//进入接口g0/0/1
[R1-GigabitEthernet0/0/0]int g0/0/1
//设置ip和子网掩码
[R1-GigabitEthernet0/0/1]ip address 192.168.20.1 24
//退出
[R1-GigabitEthernet0/0/1]q
//设置环回地址
[R1]int LoopBack 0
//添加ip
[R1-LoopBack0]ip add 10.0.0.1 24

  1. 主机配置设置如下:
    在这里插入图片描述
  2. 结果如下:
    在这里插入图片描述
    断开SW2的e0/0/1后测试:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码海小虾米_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值