HCIP-交换-生成树协议

发布时间 2023-09-18 09:01:55作者: 会发光的猫

BUM帧(Broadcast,Unknown unicast,Multicast)制定广播、未知单播及组播帧。

stp disable 禁用生成树。

STP 生成树协议

STP概述

作用:保证网络可靠性的前提下,解决二层环路带来的风险。

二层环路带来的风险:

  • 广播风暴

  • MAC地址漂移

STP 遵循的协议: IEEE 802.1d

工作原理:STP通过交互生成树协议报文并进行无环拓扑计算后,逻辑阻塞(block)某个(或某些)接口来实现链路临时断开,防止环路产生。

STP基本概念及工作原理

桥ID(Bridge ID)

  • 桥优先级 16bit

  • 桥MAC地址 48bit

  • BID是用于选举根桥设备的判断标准,且BID越小越优(在STP网络中,BID最小的设备会被选举为根桥)

  • BID的比较顺序

    • 首先比较优先级,默认的优先级是32768,优先级的数值越小越优(可人为修改)。修改值一定是4096的倍数,最小可以将优先级的数值调整为0

    • 其次优先级数值相同时,可以比较桥MAC地址,MAC地址也是越小越好

 [HUAWEI] stp priority 4096 #通过这个指令修改桥优先级
 [HUAWEI] stp mode stp #通过这个指令可以将生成树的模式修改为STP
 [HUAWEI] display stp #通过这个指令可以看到生成树的模式是否修改STP
 -------[CIST Global Info][Mode STP]-------
 CIST Bridge :32768.4c1f-cc7f-0384 #BID信息

 

根桥(Root Bridge)

根桥是一个STP交换网络中的“树根”,桥ID最小的设备会被选举为根桥(根桥在全网中只有一个),桥会根据网络拓扑的变化而动态变化。

开销(Cost)

  • 每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达根的开销。

  • 接口带宽越大,则Cost值越小

cost

根路径开销(RPC)

  • 计算从根到非根设备所经过的的设备入接口COST之和

  • 累加的COST之后越小越好

接口ID (PID)

  • 接口ID由两部分构成的,高4 bit是接口优先级,低12 bit是接口编号

  • 端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍

  • 缺省情况下,端口优先级是128(例如:PID=128.24)

桥协议数据单元(BPDU)

  • 配置BPDU(Configuration BPDU)

  • TCN BPDU(Topology Change Notification BPDU)

配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU。在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。

配置BPDU是STP进行拓扑计算的关键;TCN BPDU只在网络拓扑发生变更时才会被触发,下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。

STP如何判断阻塞端口

  • 选出根桥设备

    • 先根据BID优先级 选择根桥设备

    • 优先级相同,MAC地址小胜出

  • 从非根交换机中选出一个根端口(每个非根交换机中有且只有一个根端口)

    • 首选选择的就是RPC 越小越好

    • 比较对端的BID

    • 对端的PID

    • 本端的PID

  • 根端口选择完毕后,选择指定端口。(每一个链路上有且只有一个指定端口)

    • 根交换机中所有的接口都是指定接口

    • 首先选择RPC小

    • RPC无法比较时,通过自身的BID

    • 如果自身的BID无法比较时,通过自身的PID

  • 既不是指定接口,也不是根接口,被阻塞,成为替代接口。

 <Huawei>display stp brief    #查看设备STP端口角色
 MSTID Port                 Role STP State   Protection
 0     GigabitEthernet0/0/1 ROOT FORWARDING NONE
 0     GigabitEthernet0/0/2 ALTE DISCARDING NONE
 0     GigabitEthernet0/0/3 DESI FORWARDING NONE

STP的五种状态

  • disable 禁用 不收不发

  • blocking 阻塞 只收不发

  • listenning 侦听 收发BPDU 不处理数据报文

  • learning 学习 收发BPDU 不处理数据报文

  • forwarding 转发 什么都收发

收敛时间:

  1. 根桥失效的收敛时间(50s) = 20S的老化时间+2*转发延迟时间(15S)=20+30 =50S

  2. 直连故障的收敛时间(20s) ,由于故障链路与预备接口在同一个设备中,设备可以快速感知错 误,不需要等20S老化即可完成收敛,收敛时间为30S。

  3. 非直连故障收敛时间(50s),由于故障链路与预备接口不在同一个设备上,所以需要等20S老化 时间来判断故障链路,之后再通过30S的转发延迟时间来将预备接口变为转发状态。

TCN BPDU

TCN 、TCA、 TC

故障设备通过TCN消息向上游设备通知故障,上游设备收到TCN消息后,向故障设备发送 TCA确认收到的同时,继续向根桥发送TCN告知下游设备故障信息。当根桥设备收到TCN 后,统一向所有的下游设备发送TC消息,告知整个拓扑设备,哪个设备出现了故障,及时 更新MAC地址信息,防止MAC地址错误造成无法访问的情况。

STP报文

字段内容说明
Protocol Identifier 协议ID=“0”
Protocol Version Identifier 协议版本标识符,STP为0,RSTP为2,MSTP为3。
BPDU Type BPDU类型,MSTP为0x02。 0x00:STP的Configuration BPDU 0x80:STP的TCN BPDU(Topology Change Notification BPDU) 0x02:RST BPDU(Rapid Spanning-Tree BPDU)或者MST BPDU(Multiple Spanning-Tree BPDU)
Flags 对于“标记域”(Flags),第一个bit(左边、高位bit)表示“TCA(拓扑改变响应)”,最后一个bit(右边、低位bit)表示“TC(拓扑改变)”。
Root Identifier 网桥ID都是8个字节——前两个字节是网桥优先级,后6个字节是网桥MAC地址。
Root Path Cost 根路径开销,本端口累计到根桥的开销。
Bridge Identifier 发送者BID,本交换机的BID。
Port Identifier 发送端口PID,发送该BPDU的端口ID。
Message Age 该BPDU的消息年龄。
Max Age 消息老化年龄。
Hello Time 发送两个相邻BPDU间的时间间隔。
Forward Delay 控制Listening和Learning状态的持续时间。

配置命令:

 修改设备为根桥的方法:
 1.修改设备优先级
 [Huawei] stp priority 4096
 2.配置生成树工作模式
 [Huawei] stp mode { stp | rstp | mstp }
 3.配置根桥
 [Huawei] stp root primary
 4.配置备用根桥
 [Huawei] stp root secondary
 5.通过下面的命令修改COST的执行标准
 [Huawei] stp pathcost-standard { dot1d-1998 | dot1t | legacy }
 6.在端口视图下修改STP的COST值:
 [Huawei-GigabitEthernet0/0/1] stp cost cost
 7.配置接口优先级
 [Huawei-intf] stp priority priority
 8.启用STP
 [Huawei] stp enable

RSTP 快速生成树

STP的不足:

  1. STP的端口角色过于简单不丰富,部署时不能很好的应用与较为复杂的网络环境中。

  2. STP的迁移状态过于冗长,侦听,学习,阻塞状态下多不转发业务流量。

  3. STP的算法较为繁琐,TCN、TCA、TC。

  4. STP被动依靠计时器。

 

STP与RSTP端口上的对比:

  • STP的五种状态:disable、blocking、listening、learning、forwarding

  • RSTP的三种状态:discarding、learning、fowarding

RSTP 遵循的协议: IEEE 802.1W

RSTP的5个端口 :

AP DP RP BP EP

EP :边缘接口 ,通常用于接入底层终端设备。 此接口不会参与STP的运算。接口可以快速进入转发状态。

 

RSTP的P/A机制

在RSTP网络中,两个设备之间在初始状态下,均将自己的端口修改为DP(discarding)将自己的BPDU报文相互发送。此时,双方均获取到了对方的配置BPDU信息, BPDU更优的设备会发送proposal 消息,提议自己更优。对方设备收到这个“提议”后,由于自身的BPDU确实略于对方,因此会将自己的接口变为根端口,同时发出agreement附议消息,确认对方的主导地位。 这个P/A机制在整个RSTP网络中均会两两之间进行比较。

RSTP的拓扑变更机制的更新

原先STP的TC置位需要通过故障设备发送TCN 向上游设备通知,上游设备收到后,会向故障设备发送TCA 确认。同时上游设备继续向根设备发送TCN,根也会给这个设备发送TCA确认,当根收到这个消息后,以TC消息下发至所有的下游设备来对MAC地址表重学习。这样的方式较为繁琐,速度较慢。

RSTP的机制更改为,故障设备及时向上游设备发送TC消息,上游设备收到信息后会将自己的MAC地址表中除了接收端口信息外的其他MAC地址做清除处理,并重新学习MAC地址信息。这样可以加速设备的MAC地址重学习过程。

RSTP的保护功能

BPDU保护

BPDU 保护 用于防止EP端口收到BPDU报文重新参与STP运算,导致网络临时中断。

  1. 开启BUDP保护功能,可以实现的内容:

  • 当边缘接口收到BPDU报文后,将接口erro-down

  • 这个erro-down 有两种方式可以再次打开:

    • 手工开启 需要先输入关闭指令再次输入开启指令才触发生效

    • 自动开启 配置完成后如果是由于收到BPDU报文而导致的erro-down 将在30S后自动开启。

    配置命令:

 配置设备全局开启边缘接口
 [sw2]stp edged-port default
 注意:配置了这个命令后,交换机中所有的接口均被配置了边缘接口。此时需要将STP运算的接口去除边缘接口能力
 [sw2]int g0/0/01
 [sw2-GigabitEthernet0/0/1]undo stp edged-port
 
 配置接口为边缘接口
 [sw2]int g0/0/03
 [sw2-GigabitEthernet0/0/3]stp edged-port enable
 
 [sw2]stp bpdu-protection #全局开启BPDU保护功能
 当设备存在边缘接口的时候,如果这个接口收到了BPDU报文后,将会自动错误关闭接口。
 Aug 4 2023 22:14:54-08:00 sw2 %%01MSTP/4/BPDU_PROTECTION(l)[70]:This edged-port
 GigabitEthernet0/0/1 that enabled BPDU-Protection will be shutdown,because it
 received BPDU packet!
 通过上述的错误提示,可以看出This edged-port GigabitEthernet0/0/1 这个接口是一个边缘接口
 that enabled BPDU-Protection will be shutdown 收到BPDU保护功能,这个接口会关闭
 
 如果需要再次打开这个接口可以使用手工开启或者自动开启模式
 1.手工开启错误关闭接口的方法:
 进入到被关闭的边缘接口下,先强制关闭一次,再开启。
 [sw2]int g0/0/01
 [sw2-GigabitEthernet0/0/1]shutdown
 [sw2-GigabitEthernet0/0/1]undo shutdown
 Aug 4 2023 22:14:22-08:00 sw2 %%01PHY/1/PHY(l)[64]:
 GigabitEthernet0/0/1: ch
 ange status to up
 2.可以配置接口收到BPDU导致错误关闭时,采用自动打开的方式
 [sw2]error-down auto-recovery cause bpdu-protection interval 30
 通过上述命令可以将边缘接口收到BPDU而导致关闭的时候,每经过30S可以尝试打开一次。

 

根保护

根保护, 在DP上配置,防止更优的桥抢占角色,导致网络动荡。

配置命令:

 在指定接口中配置
 #
 interface GigabitEthernet0/0/1
 stp root-protection

TC保护

配置命令:

 [sw]stp tc-protection threshold 2

环路保护

环路保护, 根端口或者替代端口配置 。

配置命令:

 interface GigabitEthernet0/0/1 进入到根端口中
 stp loop-protection 开启环路保护功能

 

MSTP

STP和RSTP的不足:

  1. 流量无法负载分担

  2. 二层次优路径

MSTP概述

MSTP是IEEE 802.1S中定义的生成树协议,MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。

MSTP可以将一个或多个VLAN映射到一个Instance(实例),再基于Instance计算生成树,映射到同一个Instance的VLAN共享同一棵生成树。

MST Region(Multiple Spanning Tree Region,多生成树域),也可简称MST域。

  • 由交换网络中的多台交换设备以及它们之间的网段所构成。

  • 一个局域网可以存在多个MST域,各MST域之间在物理上直接或间接相连。用户可以通过MSTP配置命令把多台交换设备划分在同一个MST域内。

  • MSTP网络中包含1个或多个MST域,每个MST域中包含一个或多个多生成树实例。

MSTI 每个MST域中的多实例树

CST 将每个MST域当作一个交换机来通过STP运算得到的一个无环大拓扑

  • 主根: 所有MSTP域中挑选出一个设备作为主根

  • 域根: 除了主根所在区域的其他区域中挑出一个距离总跟最近的设备选为域根设备。

  • 主桥:在所有MST域中选出一个设备作为主桥,如果 在主根区域中,主根设备就是主桥,如果是其他区域则距离主根最近的设备成为主桥设备。

MSTP端口

  • MASTER 连接主根区域的域边缘接口,去往总根的必经接口

  • 域边缘接口 连接不同MST域的接口

  • 根接口

  • 指定接口

  • 替代接口

  • 备份接口

  • 边缘接口

MSTP的状态

  • discarding

  • learning

  • forwardin

MSTP的配置

 stp region-configuration #启用MSTP的配置信息
 region-name huawei #配置MST域名
 instance 2 vlan 2 #将vlan与instance进行映射
 instance 3 vlan 3
 active region-configuration 配置完成后需要激活配置
 配置完后需要指定设备的主备角色
 stp instance 2 root primary 指定设备成为instance 2 的主根
 stp instance 3 root secondary 指定设备为instance 3 的备用根