华三:生成树笔记

STP

局域网中物理环路通常有两种产生的原因:一种是基于可靠性的考虑,为交换机之间提供冗余连接;另一种是由于错误的网络设置导致环路的产生。两种情况会导致广播风暴和mac地址学习错误。

STP生成树协议就是用于消除环路中的一种。

STP在IEEE制定的IEEE802.1D标准中定义,用于在局域网中消除数据链路层环路,STP可以通过计算,动态地阻断冗余链路,而当活动链路发生故障时,STP又可以激活冗余链路,恢复网络的连通,避免网络中断。

  • 运行STP的设备依据一定的准则选举一个树根节点作为网络中的根桥,其他节点为非树根几点

  • 每一个非树根节点,会选择最优的路径和根桥相连,非树根节点上位于最优路劲的端口,为该节点的根端口

基本概念

桥和端口的角色

两种特殊的网桥:

  • 根桥:整个生成树的根节点,由所有网桥中优先级最高的桥担任
  • 指定桥:负责一个Physical Segment(物理段)上数据转发任务的桥,由这个Physical Segment上优先级最高的桥担任。

桥和端口的角色

根端口(Root Port)、指定端口(Designate Port)和候补端口(Alternate Port)

根端口指距离根桥最近的端口。根桥没有根端口,每一个非根桥有且仅有一个根端口

指定端口属于指定桥上的端口。根桥是所有网桥中优先级最高的,它在其所连接的所有Physical Segment上都是指定桥,所有通常情况下根桥的所有端口都是指定端口。

Alternate端口既不是根端也不是指定端口,它是用来为根端口或指定端口做备份的。从Alternate端口出发到达根桥的路径,是网桥到达根桥的备用路径,即最终需要阻塞的路径。

桥ID

STP中每一个网桥都具有一个桥ID(Bridge ID),用于在网络中唯一标识一个桥。根桥选择的依据就是桥ID,具有由最小桥ID的网桥即为网络中的根桥。

桥ID

在进行桥ID比较时,先比较桥优先级优先级数值小为优在比较桥MAC地址,MAC地址小为优

路径开销

f非根桥需要确定根端口,根端口的选择取决于端口到达根桥距离的远近,网桥上到达根桥距离最近的端口为根端口,衡量距离远近,依据的是路径开销(Path Cost)。

默认的路径开销取决于所遵循的路径开销标准和链路的带宽。

BPDU

BPDU:桥协议数据单元来交互协议信息

BPDU分为如下两类:

  • 配置BPDU:是用来进行生成树计算和维护生成树形拓扑的报文
  • TCN BPDU:是当拓扑结构改变时,用来通知其他设备网络拓扑发生改变的报文

IMG_20210315_162028_edit_210516432597563

Protocol identifier: 固定为0x0000,表示是生成树协议。

Protocol Version ID: 协议版本号,目前生成树有三个版本,STP协议版本号为0x00.

BPDU type: 配置BPDU类型为0x00,TCN BPDU类型为0x80.

Flags:由8位组成。最低位(0位)为TC标志位,最高位(7位)为TCA标志位,其他6位保留

Root ID: 根桥ID,由两字节的优先级和6字节MAC地址构成

Root path cost: 根路径开销

Bridge ID: 桥ID,表示发送BPDU的桥的ID,由2字节优先级和6字节MAC地址构成

Port ID: 端口ID,标识发出BPDU的端口

Message age: 从根桥生成配置BPDU开始,到当前时间为止配置BPDU的存活时间。

Maximum age: 当前BPDU的老化时间,即端口保存BPDU的最长时间

Hello time: 根桥发送BPDU的周期,默认2秒

Forward delay: 表示在拓扑改变后,交换机在发送数据包前维持在监听和学习状态的时间,配置BPDU传播到全网的最大时延,默认为15秒。

STP计算过程

STP计算过程

同时进行的两个任务:

  • 选举根桥
  • 确定端口角色

根桥选举

每一个网桥都还没有收到其他网桥发送的配置BPDU,此时每一个网桥都认为自己是网络中的根桥,并向外发送以自己为根桥的配置BPDU。

由于此时每个网桥都认为自身是根桥,所以每一个网桥都会发送配置bpdu,同时也会收到对端网桥发送的配置BPDU,每一个网桥都将自身认为的Root BRidge ID和接收到的配置BPDU中的Root Bridge ID进行比较,选择Root Bridge ID 较小的作为网络中的根桥。

确定端口角色

根端口的确定需要比较RPC。当网桥从一个端口收到配置BPDU后,首先获取其中的RPC ,和接收端口的链路开销相加,得到此端口的PRC,每一个收到配置BPDU的端口都进行同样的计算。然后比较各端口的RPC,拥有最小RPC值的端口即为本网桥的根端口。

指定端口的确定需要比较端口发送的配置BPDU和接收的配置BPDU,如果发送的配置BPDU优于接收到的配置BPDU,表明端口在本Physical Segment上拥有最优的配置BPDU,则指定为指定端口

Alternate端口指该端口的配置BPDU在其所属Physical Segment上不是最优的,且端口不是根端口 。

端口状态

网络拓扑收敛为一颗无环的树是通过网桥间交互配置BPDU,并进行计算而得到的。STP计算收敛需要一定的时间,当网络拓扑发生变化时,最优的配置BPDU需要经过一定的延时才能传播到整个网络,在所有网桥都收到最优配置BPDU之前可能会存在临时环路

​ STP定义了5种端口状态:Disabled、Blocking、Listening、Learning和Forwarding。其中Listening和Learning状态为中间状态,为避免临时环路,当端口处于中间状态时,端口不能接收和发送数据。

STP端口状态是否发送配置BPDU是否进行MAC地址学习是否收发数据
Disabled
Blocking
Listening
Learning
Forwarding

​ 当端口为down时,处于STP定义的Disabled状态;当端口UP后,经过初始化会首先进入Blocking状态。由于端口在STP计算初期均会认为自己时指定端口,所以端口直接从Blocking状态进入第一个中间状态Listening

​ 在Listening状态期间,端口通过交互配置BPDU,完成角色的确认,在此期间端口不进行MAC地址的学习也不能收发数据。如果端口最终被定义Alternate端口,端口会重新回到Blocking状态,如果端口角色确定为根端口或指定端口,当Forward Delay时间过去后,端口进入Leaning状态。

​ 在Learning状态期间,根端口和指定端口进行MAC地址学习,但仍然不进行数据的收发。如果端口在learning状态期间重新被选择为Alternate端口,则端口会回到Blocaking状态。如果在learning状态期间维持根端口和指定端口角色不变,则当Forward Delay时间过去后,端口会进入Forwarding状态。

​ 在Forwarding状态根端口和指定端口开始收发数据。

STP拓扑改变处理过程

《H3C-路由与交换技术》P80

STP

  • STP收敛时间长
  • 拓扑变化收敛机制不灵活

RSTP

快速生成树协议

和STP相比,RSTP的改进之处包括:

减少了端口状态

增加了端口的角色

配置BPDU的格式发生了改变

当网络发生变化的时候,处理方式不同

STP端口状态是否发送配置BPDU是否进行MAC地址学习是否收发数据
Discarding
Discarding
Discarding
Learning
Forwarding

RSTP将STP中的Alternate端口角色进一步划分为两种,其中一种角色为Backup,另一种角色名称仍为Alternate

  • 当阻塞端口收到的更优的配置BPDU来自其他网桥时,该端口为Alternate
  • 当阻塞端口收到更优的配置BPDU来自本网桥时,该端口为Backup端口
BPDU

BPDU协议号:0x02,表示RSTP

RSTP的快速收敛

边缘端口

当端口直接与用户终端相连,而没有连接到其他网桥或局域网网段上时,该端口即为边缘端口。

MSTP

多生成树协议

是基于实例计算出多颗生成树,每一个实例可以包含一个或多个VLAN,每一个VLAN只能映射到一个实例。网桥通过配置多个实例,可以实现不同VLAN组之间的负载分担

MST域

是指网络中具有相同域名、修订级别、摘要信息的网桥构成一个集合

  • 域名:本域的名称,MSTP中每一个域都有一个独一无二的名称,配置不同域名的网桥被认为不同的域
  • 修订级别:目前保留,默认为0.
  • 配置摘要:由网桥的VLAN和实例映射关系生成的长度为16B的HMAC-MD5签名。

配置:

RSTP

//在系统试图全局使用生成树协议
[H3C]stp global enable
//默认情况下:交换机的所有端口的STP特性处于开启,全局的STP特性处于关闭状态
//关闭设备上特定端口的STP特性
[H3C-Ethernet0/1]undo stp enable
//在系统模式下设置STP的工作模式
[H3C]stp mode {mstp|pvst|rstp|STP}
//默认情况下的是MSTP模式
//配置网桥的优先级
[H3C]stp priority [bridge-priorty]
//接口模式下配置路径开销
[H3C]stp cost [cost]
//可以通过命令改变设备支持的端口开销标准
[H3C]stp pathcost-standard {dot|d-192|dotlt|legacy}
//端口的优先级
[H3C-Ethernet0/1]stp port priority [port-priority]
//定时器的配置
[H3C]stp timer hello 400
[H3C]stp timer max-age 1000
[H3C]stp timer forward-delay 2000
//网络直径配置
[H3C]stp bridge-diameter 5
//RSTP的高级配置
//配置为边缘端口
[H3C-E0/1]stp edged-port
//配置全局为兼容STP模式
[H3C]stp global mcheck
//端口为兼容
[H3C-E0/1]stp mcheck

MSTP

//由系统视图进入域配置视图
[H3C]stp region-configuration
//配置域名
[H3C-mst-region]region-name [name]
//配置修订级别
[H3C-mst-region]revision-level [level]
//interface命令用来指定的VLAN列表映射到指定的生成树实例上,默认情况,所有的VLAN均对应CIST(实例0)上。不能将同一个VLAN映射到多个不同的实例中。
[H3C-mst-region]instance [instance-id] vlan [vlan-list]
//instace-id表示MST实例的ID,取值范围为0~32,最小取值为0
//激活MSTP域
[H3C-mst-region]action region-configuration
//高级配置
//指定网桥为实例中的首选根桥
[H3C]stp instence [instance-id] root primary
//备份 
[H3C]stp instence [instance-id] root secondary

STP的保护机制

[SWA]stp bpdu-protection//BPDU保护

[SWA]stp root-protection//根桥保护

[SWA-eth0/1]stp loop-protection//环路保护

[SWA]stp tc-peotection threshold [number]//TC保护

实验

mstp

//1、vlan 的创建与划分
//SW1-SW4创建vlan
vlan 10 
vlan 20 
//SW3 SW4将连接PC的端口分别加入vlan
//2、trunk配置(交换机之间的互连端口)
//SW1和SW2 
interface range GigabitEthernet 1/0/1 to GigabitEthernet 1/0/3
port link-type trunk
port trunk permit vlan 10 20 
//SW3和SW4
interface range GigabitEthernet 1/0/2 to GigabitEthernet 1/0/3
port link-type trunk
port trunk permit vlan 10 20 
//3、MSTP配置(SW1-SW4)
stp region-configuration    //进入stp域配置试视图
region-name h3c		//配置域名
instance 1 vlan 10		//将vlan 10 映射进实例1
instance 2 vlan 20		//将vlan 20 映射进实例2
active region-configuration
//4、MSTP根桥制指定
//SW1作为实例1的主根,实例2的备根
stp instance 1 root primary		//设备作为实例1的主根
stp instance 2 root secondary		//设备作为实例2的备根
//SW2作为实例2的主根,实例1的备根
stp instance 1 root secondary
stp instance 2 root primary
//5、边缘端口(SW3-SW4连接PC的端口)
interface range GigabitEthernet 1/0/1 GigabitEthernet 1/0/4
stp edged-port		//配置端口为STP边缘端口
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无法长大的Panda

您的鼓励是最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值