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

一、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 

在这里插入图片描述

  • 25
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值