生成树协议(STP)

本文详细介绍了STP(生成树协议)的工作原理,包括广播风暴的形成,STP如何通过逻辑上断开环路来防止风暴产生。通过选择根网桥、根端口和指定端口的生成树算法来确保网络稳定性,并通过实验说明STP的基础配置与应用,以确保主机之间的通信。
摘要由CSDN通过智能技术生成


前言

 在实际网络中,我们会遇到广播风暴的情况,但是交换机会自己避免这个问题。但是我们要知道为什么交换机会阻塞?如实使用STB解决这个问题?


一、STP工作原理

1.1 广播风暴的形成

 在通信开始时,PC1的ARP条目中没有PC2的MAC地址,根据ARP原理,PC1首先会发送一个ARP广播请求(请求PC2的MAC地址)给交换机SW1;

 然后当交换机SW1收到ARP的广播请求时,根据交换机的转发原理,SW1会将广播帧从除接收端口之外的所有端口转发出去(即该广播会从F0/1和F0/2分别转发给SW2和SW3);

 就这样SW2又通过泛洪将数据帧广播出去,SW3会收到,同样的SW3也会泛洪广播给到SW2,SW1又分别从SW2、SW3收到广播帧。。。。

 SW1、SW2、SW3会将广播帧相互转发,这时网络就会形成一个环路,而交换机之间并不知道,这将导致广播帧在这个环路永远执行下去,这种广播会越来越多,最终形成广播风暴,导致网络瘫痪。

而这种广播风暴只会在物理环路消失时才可能停止。
除此之外还会产生多帧复制,MAC地址表紊乱等问题;

在这里插入图片描述
 STP协议就是用来解决这个问题的,STP协议不是切断物理环路,而是在逻辑上断开环路,防止风暴的产生。

1.2 STP简介

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

作用:断开

 STP协议就是将物理上存在环路的网络,通过一种算法,在逻辑上阻塞一些端口,来生成一个逻辑上的树形结构。如图所示,
在这里插入图片描述

 对于由三台交换机构成环路的网络,在使用STP协议后,交换机SW2与SW3连接链路的一个端口分别被协议从逻辑上阻塞,这条线路也就不能再传输数据了,也就是从逻辑上打破了环路。

 当正常通信的线路发生故障时,被逻辑阻塞的线路会重新激活,使得数据能从这条线路正常传输。

 IEEE 802.1d STP协议 实现将环形结构的拓扑变成树形结构。

1.3 STP工作原理

  • 逻辑上断开环路,使其中一条线路阻塞,防止广播风暴的产生;
  • 当原来的线路故障,将之前阻塞的接口激活,恢复通信,起到备份线路的作用。

1.3.1 生成树算法

 STP运行生成树算法(Spanning Tree Algorithm,STA)。生成树算法可归纳三个步骤(从上到下):
(1)选择根网桥(Root Bridge)
(2)选择根端口(Root Ports)
(3)选择指定端口(Designated Ports)

选择根网桥

首先了解网桥ID
网桥就是交换机的前身:

  • 网桥ID是唯一的;
  • 选择交换网络中网桥lD最小的交换机成为根网桥

网桥ID中 网桥优先级 取值范围 0 ~ 65535,缺省值(默认值)是 32768,格式如下:

网桥优先级 网桥的MAC地址
← 2字节 → ← 6字节 →

如何选择一个网络中的根网桥:
看哪台交换机的网桥ID值最小,网桥ID是由优先级和MAC地址组成。首先比较优先级,优先级 小的被选为根网桥,在优先级相同情况下,则MAC地址最小的为根网桥。

选择根端口

 选出了根网桥之后,网络中的每台交换机必须和根网桥脚力某种关联,即根端口是在与根网桥相邻的交换机上的(一般情况下)。

根端口存在于非根网桥上,需要在每个非根网桥上选择一个根端口。

 选择根端口顺序如下:
 1)到根网桥最低的路径成本;
 2)直连的网桥ID最小(就是看优先级和MAC地址);
 3)端口ID最小(两台交换机用两根及以上的线连起来的时候会用到)。

 根路径成本是两个网桥间的路径上所有线路的成本之和,也就是某个网桥到达根网桥的中间所有线路的路径成本之和。
 路径成本用来代表一条线路带宽的大小,一条线路的宽带越大,它传输数据的成本也就越低。宽带与路径成本如下所示:

链路带宽(Mbps) 路径成本
10 100
16 62
45 39
100 19
155 14
622 6
1000 4
10000 2

 端口ID时一个2字节的STP参数,由端口ID和端口编号组成,端口优先级可配置,取值范围是 0 ~ 255,默认值是 128,格式如下:

端口优先级 端口编号
← 8位 → ← 8位 →

 比较端口ID值时,比较的是接收到的对端的端口ID值(确定根网桥上的端口ID后,根网桥上的端口ID对应的交换机上的那个端口就是根端口。)

选择指定端口

  • 根网桥上的端口都是指定端口
  • 在每个网段上选择一个指定端口
  • 非根桥上的指定端口,按以下顺序选择(选择根端口相同):
     1)到根网桥最低的路径成本;
     2)直连的网桥ID最小(就是看优先级和MAC地址);
     3)端口ID最小。

例题1,指出下图中的 根网桥、根端口、指定端口:
在这里插入图片描述
答:SW2是根网桥,星是根端口,红圈是指定端口,绿×是阻塞端口。

例题2:指出下图中的 根网桥、根端口、指定端口:
在这里插入图片描述
答:网桥优先级、带宽最佳路径都相等,所以根据MAC地址的大小进行排序。得到 SW2是根网桥,星是根端口,红圈是指定端口,因为SW2优先级大于SW3,所以 绿×是阻塞端口。

总结:经过STP算法,SW1到SW3链路会被逻辑断开,成为了备用链路,当SW2到SW3链路断开时,SW1到SW3链路会恢复通信。
在这里插入图片描述

1.3.2 BPDU桥协议数据单元

STP利用BPDU选择根网桥

  • 当交换机启动时,假定自己是根网桥,在向外发送的BPDU中根网桥ID字段填写自己的网桥lD;
  • 当接收到其他交换机发出的BPDU后,比较网桥ID,选择较小的添加到根网桥ID中;
  • 当全网所有的交换机接收到全部的BPDU并作比较后,就可以选择出唯一的一个根网桥。

交换机端口的STP状态:

状 态 用 途
转发(Forwarding) 发送/接受用户数据
学习(Learning) 构建网桥表 (会确定根网桥、根端口与阻塞端口)
侦听(Listening) 构建活动拓扑
阻塞(Blocking/Discarding) 只接受BPDU
禁用(Disabled) 强制关闭

学习阶段:学习MAC地址,确定根网桥。

二、STP实验

2.1 STP基础命令

SMTP(多生成树协议):可为每个vlan或者多个vlan为一组,构造一个生成树,实现网络的负载分担(均衡)

配置完之后 执行 dis stp brief 命令,查看STP网络信息,端口是否阻塞。


-----------将SW1、SW2分别做vlan10、vlan20的根网桥----------
[SW1]stp mode mstp                    #将交换机配置成MSTP模式,MSTP兼容STP/RSTP。
[SW1]stp region-configuration         #进入MSTP域视图MSTP配置模式
[SW1-mst-region]region-name huawei1   #配置MSTP域的域名为huawei1,缺省为交换设备主控板上管理网口的MAC地址。
[SW1-mst-region]revision-level 1      #配置MST域的MSTP修订级别为1,缺省情况下MSTP域的MSTP修订级别为0,需要将各设备的MSTP修订级别修改为一致

##配置多生成树实例和VLAN的映射关系,同一vlan的数据只能对应一个实例,而一个实例可以对应多个vlan(instance 1 vlan 2 to 10
[SW1-mst-region]instance 1 vlan 10    #将vlan 10加入实例1
[SW1-mst-region]instance 2 vlan 20    #将vlan 20加入实例2

[SW1-mst-region]check region-configuration   #查看MSTP域配置参数
[SW1-mst-region]active region-configuration  #激活MSTP域的配置(必须配置)
[SW1-mst-region]quit                     #退出配置模式
[SW1]stp instance 1 root primary         #配置此交换机为实例1的主根桥
[SW1]stp instance 2 root secondary       #配置此交换机为实例2的备份根桥

------------------------------
[SW2]stp mode mstp                    
[SW2]stp region-configuration                    
[SW2-mst-region]region-name huawei1                   
[SW2-mst-region]revision-level 1                 
[SW2-mst-region]instance 1 vlan 10               
[SW2-mst-region]instance 2 vlan 20               
[SW2-mst-region
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值