文章目录

  • 一、STP的简介
    • 1、由来
    • 2、基本概念
  • 二、STP的监测协议-BPDU报文
    • 1、BPDU报文内容
      • 1.1、根ID
      • 1.2、根的路径开销
      • 1.3、端口ID
    • 2、经过BPDU报文之后四个步骤
  • 三、命令运用详解
    • 1、设置成根网桥的命令
    • 2、设置成次根网桥的命令
    • 2、查看谁是根网桥的命令
    • 4、查看stp模式
    • 5、启用生成树
  • 四、更优的方法:MSTP的形成
    • 1、MSTP的优点
    • 2、如何配置MSTP
    • 3、实验加深了解

一、STP的简介

1、由来


如图1所示,pc1和pc2通过交换机相连。那么让我们回忆一下交换机之间的通信原理,是需要通过ARP广播并记录MAC地址,那么sw1、sw2、sw3会将广播帧相互转发,MAC地址会不停重复更新,就造成了回路,然而交换机并不知道,就会导致广播帧在这个环路一直循环下去。最终会形成广播风暴,MAC地址表紊乱,造成网络瘫痪。
而STP协议就是用来解决回路问题,通过断开逻辑环路,把一个环形的结构编程一个树形的结构。

2、基本概念

通过在交换网络中部署生成树(Spanning-tree)技术,能够防止网络中出现二层环路。STP运行后,如果网络中存在环路,那么STP通过阻塞(Biock)特定的接口从而打破环路,并且在网络出现拓扑变更及时手链,以保证网络的冗余性。
那么网络中出现环路,生产数协议通过拓扑计算可以实现以下两点:
※消除环路:通过阻塞冗余链路消除网络中可能存在的网络通信环路;
※当前活动的路径发生故障时,激活冗余备份链路,恢复网络连通性。

二、STP的监测协议-BPDU报文

BPDU内包含了STP所需的路径和优先级信息,STP便利用这些信息来确定根桥以及到根桥的路径。概念介绍网桥协议数据单元(Bridge Protocol Data Unit)。是一种生成树协议问候数据包。
报文。

1、BPDU报文内容

网桥协议数据单元,STP的工作依赖于此协议的泛洪

主要的是四个部分:

  • 根ID:发送此配置BPDU的交换机所认为的根交换机的交换机标识;
  • 到根的路径开销:从发送此配置BPDU的交换机到达根交换机的最短路径总开销(cost),含交换机根端口的开销,不含发送此配置BPDU的端口的开销
  • 桥ID:发送此配置BPDU的交换机的STP交换机标识
  • 端口ID:发送此配置BPDU的交换机端口的STP端口标识

优先级是:根ID >路径开销>桥ID>端口ID(值越小优先级越先)

1.1、根ID

桥ID是交换机的STP标识符,一共8个字节,由2个字节的优先级和留个字节的MAC地址构成

  • 桥优先级默认值为:32768,可以手工修改
  • MAC地址为交换机的背板MAC
  • 网络中桥ID最小的交换机将成为根桥

1.2、根的路径开销

是一个端口量,是STR/RSTP协议用于选择线路的参考值,端口路径开销的默认值及取值范围由选定的路径开销算法决定,路径开销与端口的带宽成反比,华为网络设备支持的路径开销计算标准:默认802.1t标准,如下图:

1.3、端口ID

端口ID(2字节)=端口优先级(1字节)+端口编号(1字节)

  • 缺省优先级128,范围0-256,越小越优
  • 通俗的解释就是:端口编号就是g0/0/1之类的,g0/0/1就小于g0/0/2(端口优先级是从0到255的数字,默认值是128 (0x80)
    端口优先级数值越小,则优先级越高;如果端口优先级相同,则编号越小,优先级越高)

2、经过BPDU报文之后四个步骤

  • 每个交换网络选举一个根桥(RP)
  • 每个非根桥选举一个根端口(RP)
  • 每个段选举一个指定端口(DP)
  • 阻塞非指定端口

举例说明:

  • 网桥优先级取值范围: 0到65535;默认值: 32768 (0x8000)
    首先判断网桥优先级,优先级最低的网桥将成为根网桥
    先选择一个跟网桥:优先级+mac地址,优先级都是32768,那就比mac地址,那就选择sw1是ROOT根网桥;
  • 选举每台非根桥交换机上的根端口,计算cost值选择跟端口(从sw1发出):
    SW2:sw1–sw2,一个BPDU代价cost是19,另一个是19+19=38,A是根端口;
    SW3:sw1—sw3,BPDU代价是19,一个是38,D是根端口;
  • 指定端口:选举每个网段上的指定端口(Designated Port),比较发出的BPDU。
    SW1–SW2:从SW1/E口发出的BPDU代价为19;从SW1/C口发出的BPDU代价为38,因此SW1/E口为指定端口;
    SW1-SW3:从SW1/C口发出的BPDU代价为19;从SW1/E口发出的BPDU代价为38,因此SW1/C口为指定端口;
    SW2-SW3:从SW2/B口发出的BPDU代价为19;从SW1/A口发出的BPDU代价为38,因此SW1/B口为指定端口;
  • 那么非指定端口就是接口F,此端口阻塞。

三、命令运用详解

1、设置成根网桥的命令

2种方式:

stp root primary (优先级默认为0)
stp priority(优先级默认为4096)

2、设置成次根网桥的命令

stp root secondary(优先级默认4096)

2、查看谁是根网桥的命令

display stp

端口角色:
1、RP:根端口。每个非根网桥上有且只有一个,选举到达根网桥上路径开销值最小的成为根端口。
2、DP:指定端口。根网桥上每个端口都是指定端口,非根网桥上需要转发数据的端口也是指定端口。
3、AP:预备端口。该接口状态为blocking状态,只收BPDU,不发BPDU。

端口状态描述:
1、Disabled (禁用状态):不转发BPDU报文,也不转发用户流量,端口为DOWN,不参与生成树
计算;
2、Blocking (阻塞状态) :仅接收并处理BPDU,不转发用户流量,不学习MAC地址表;
3、Listening (侦听状态) :接收并且发送BPDU,不接收也不转发用户流量,不学习MAC地
址表,确定端口角色,将进行选举动作;
4、Learning (学习状态) :接收并且发送BPDU,不接收也不转发用户流量,学习MAC地址表;
5、Forwarding (转发状态) :接收并且发送BPDU,转发数据帧,学习MAC地址表,参与生成树
计算。

端口由Blocking过渡到Forwarding有50S延时,Blocking到Listening有20S 老化时间,
Listening到Learning 有15S过渡时间(为了选举),Learning到Forwarding有 15S过渡
时间(为了学习MAC地址)。


## 3、修改stp模式```html
stp mode+要修改的模式

4、查看stp模式

display stp

5、启用生成树

stp enable

四、更优的方法:MSTP的形成

1、MSTP的优点

  • MSTP兼容STP和RSTP,通过多**“实例”**能实现对业务流量和用户流量的隔离,同时还提供了数据转发的多个冗余路径
    在数据转发过程中实现vlan数据的负载均衡;
  • 在MSTP中,你可以将若干个vlan映射到一个实例(instance),MSTP将为每个instance运行一颗生成树,可以基于instance设置优先级、端口路径开销等参数。
    下面让我们具体来交接一下如何设置实例实现数据分流:

交换机默认自动运行STP之后,由上图可以看出,由于SW3右侧接口被堵塞,就会导致所有的vlan流量都走SW3的左侧链路,SW3的左侧链路将不承载任何流量,这是因为所有的vlan公用一颗生成树,那么如果我们可以灵活设定每个vlan对应的生成树阻塞的接口,从而实现数据的分流。

2、如何配置MSTP

stp mode mstp  //stp 模式设置为mstp
stp region-configuration //进入mstp域
region-name huawei  //起域名 huawei
instance 1 vlan 10  // 配置实例1为vlan10
instance 2 vlan 20  //配置实例2位VLAN20
active region-configuration 激活域

系统模式下:

[Huawei]stp instance 2 root primary  //进入实例1的主根
[Huawei]stp instance 1 root secondary  //进入实例2的次根

3、实验加深了解


网关:pc1:192.168.10.1;pc2:192.168.20.1
IP:pc1:192.168.10.100;pc2:192.168.20.100
路由器虚拟主机ip:1.1.1.1/32
首先配置各种参数实现互通

SW3:
<Huawei>SYS
[Huawei]sys sw3
[sw3]vlan batch 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
[sw3]int e0/0/1
[sw3-Ethernet0/0/1]port hybrid pvid vlan 10
[sw3-Ethernet0/0/1]port hybrid untagged vlan 10 20
[sw3-Ethernet0/0/2]int e0/0/3
[sw3-Ethernet0/0/3]port hybrid pvid vlan 10
[sw3-Ethernet0/0/3]port hybrid untagged vlan 10 20
[sw3-Ethernet0/0/3]int e0/0/2
[sw3-Ethernet0/0/2]port hybrid pvid vlan 20
[sw3-Ethernet0/0/2]port hybrid untagged vlan 10 20
[sw3-Ethernet0/0/2]int e0/0/4
[sw3-Ethernet0/0/4]port hybrid pvid vlan 20
[sw3-Ethernet0/0/4]port hybrid untagged vlan 10 20
SW1:
<Huawei>sys
[Huawei]sys sw1
[sw1]int e0/0/1
[sw1]vlan batch 10 20
[sw1]int e0/0/1
[sw1-Ethernet0/0/1]port hybrid pvid vlan 10
[sw1-Ethernet0/0/1]port hybrid untagged vlan 10 20
[sw1-Ethernet0/0/1]int e0/0/2
[sw1-Ethernet0/0/2]port hybrid pvid vlan 10
[sw1-Ethernet0/0/2]port hybrid untagged vlan 10 20
[sw1-Ethernet0/0/2]int e0/0/3
[sw1-Ethernet0/0/3]p l t
[sw1-Ethernet0/0/3]p t a v a
SW2:
<Huawei>sys
[Huawei]vlan batch 10 20
[Huawei]int e0/0/1
[Huawei-Ethernet0/0/1]port hybrid pvid vlan 20
[Huawei-Ethernet0/0/1]port hybrid untagged vlan 10 20
[Huawei-Ethernet0/0/1]int e0/0/2
[Huawei-Ethernet0/0/2]port hybrid pvid vlan 20
[Huawei-Ethernet0/0/2]port hybrid untagged vlan 10 20
[Huawei-Ethernet0/0/2]int e0/0/3
[Huawei-Ethernet0/0/3]p l t
[Huawei-Ethernet0/0/3]p t a v a
R1:
<Huawei>sys
[Huawei]sys R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.20.1 24
[R1]int LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32

此时已实现互通:


用“display stp brief”命令,查看各交换机stp端口状态
stp是默认自动运行stp协议的



由此可见,SW2的e0/0/3端口为AP口,保持blcoking状态,阻塞口
使用display stp 查看谁是根网桥



配置MSTP
如图所示,此时只有1和2 两条路负责vlan 数据的转发,压力比较大,为了实现链路的负载均衡,我们需要使用MSTP,多实例生成树,配置vlan指定SW2 e0/0/1和e0/0/3接口灵活阻塞,具体配置如下所示:

sw3
[sw3]stp region-configuration 进入域
[sw3-mst-region]region-name lf 设置域名 lf
[sw3-mst-region]instance 1 vlan 10 配置实例1为vlan10
[sw3-mst-region]instance 2 vlan 20 配置实例1为vlan20
[sw3-mst-region]activ region-configuration 激活域
[sw3]stp instance 1 root primary 进入1的主根
[sw3]stp instance 2 root primary 进入2的主根
sw1
Enter system view, return user view with Ctrl+Z.
[sw1]stp region-configuration
[sw1-mst-region]region-name lf
[sw1-mst-region]instance 1 vlan 10
[sw1-mst-region]instance 2 vlan 20
[sw1-mst-region]active region-configuration
[sw1]stp instance 1 root primary
[sw1]stp instance 2 root primary

sw2

[sw2]stp region-configuration
[sw2-mst-region]region-name lf
[sw2-mst-region]instance 1 vlan 10
[sw2-mst-region]instance 2 vlan 20
[sw2-mst-region]active region-configuration

断掉其中sw1的e0/0/1接口,发现并不有影响数据传输

[sw1-Ethernet0/0/1]shutdown

网络服务——生成树技术STP的BPDU报文详解相关推荐

  1. STP的BPDU报文类型

    STP的BPDU报文类型一共有两种,分别是配置BPDU报文(BPDU报文中的BPDU类型值为0x00)和TCN BPDU报文(BPDU报文中的BPDU类型值为0x80),下面为大家详解介绍这两种类型B ...

  2. STP/RSTP/MSTP 精华详解

    STP/RSTP/MSTP 精华详解: STP 概述 : 因为二层设备的互联,并因为交换机的转发原理,会导致物理环路的产生.这时就会使用到STP协议 STP:在有环的拓扑里面形成一个无环的逻辑拓扑(从 ...

  3. [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  4. 网络编程中的SO_REUSEADDR和SO_REUSEPORT参数详解

    1.SO_REUSEADDR: 在BSD中,SO_REUSEADDR选项有两个用户: 如果有socket绑定了0.0.0.0:port:设置该参数后,其他socket可以绑定本机ip:port.(该功 ...

  5. 36.深度解密三十六:网络舆情监测之另类“免费监测”方法详解

    网络营销推广技术.技巧深度解密(三十六)指南: 1.本文档适合零基础以及互联网营销推广工作者,主要讲解免费网络舆情监测的问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为. 3.敬畏法律 ...

  6. 应用架构、业务架构、技术架构和业务流程图详解「建议收藏」

    应用架构.业务架构.技术架构和业务流程图详解「建议收藏」 应用架构(ApplicationArchitecture)是描述了IT系统功能和技术实现的内容.应用架构分为以下两个不同的层次:企业级的应用架 ...

  7. http请求报文和相应报文详解

    Http协议的特点 HTTP协议的特点 基于请求/响应模型的协议. 请求和响应必须成对: 先有请求后有响应. 简单快捷 因为发送请求的时候只需要发送请求方式和请求路径即可 HTTP协议默认的端口:80 ...

  8. UDP和TCP的报文详解

    TCP和UDP报文详解 一.先说说端口号 TCP和UDP都是位于传输层的协议,传输层负责将数据从发送端传输到接收端. 端口号(Port)标识了一台主机上正在进行通信的一个具体的应用程序,在TCP/IP ...

  9. 思科ei ccie认证体系最新内容下一代编址IPV6技术最全面的基础详解 从零到精通必读

    思科ei ccie认证体系最新内容下一代编址IPV6技术最全面的基础详解 从零到精通必读 IPv6(Internet Protocol Version 6,因特网协议版本6)是网络层协议的第二代标准协 ...

最新文章

  1. C#调用win32 api程序实例
  2. java常见对象_Java/10_Java常见对象.md at master · DuHouAn/Java · GitHub
  3. Linux入门第四集!Jar包的入门、使用、部署!怎么打Jar包?
  4. 往年包场丘赛的北大,今年被清华逆袭了
  5. k8s(1)-使用kubeadm安装Kubernetes
  6. Delphi中的TreeView
  7. HDU - 5242 Game(树形dp+树链剖分/树上贪心+思维)
  8. 你会使用回调函数吗?
  9. 如何彻底卸载MySQL
  10. 定时运行python脚本并发送邮件_python实现定时发送邮件到指定邮箱
  11. OpenShift 4 - DevSecOps Workshop (13) - 将镜像推送到Quay,并进行漏洞扫描
  12. [一个简单的.NET逆向工程]给没有源代码的.NET程序打补丁
  13. window电脑H265(HEVC)编码的mp4不显示缩略图解决办法
  14. 北理乐学c语言答案猴子,【北理乐学】机智的大师
  15. 软件工程总结笔记——软件详细设计(五)
  16. 笔记本win10 1709 安装 v4w的教程
  17. java smtp.126.com_java开发_STMP邮箱客户端_发送邮件
  18. 2037今年暑假不AC
  19. leetcode 链表的中间结点
  20. javascript网页设计期末作业 购物网站

热门文章

  1. Python:求列表的最大数以及下标
  2. RabbitMQ从入门到实战(图文并茂)
  3. 洛谷P4572 [JSOI2013] 哈利波特与死亡圣器
  4. 《高等数学》 总结 导数、微分、不定积分
  5. EPOCH、INTERATION、BATCH_SIZE的区别
  6. Java 字符串转码工具类
  7. Proxifier v3.21 standard edition 激活码
  8. python如何从键盘输入数据_python如何从键盘输入数据?
  9. Java面对对象程序设计——面对对象
  10. nginx ngx_event_t结构体详解