STP技术
STP
是用于在局域网中消除数据链路层物理环路的协议。- 通过在桥之间交换
BPDU
,来保证设备完成生成树的计算过程
作用
- 通过阻断冗余链路来消除桥接网络中可能存在的路径环路
- 当前路径发生故障时,激活冗余备份链路,恢复网络连通性
原理
- 在一组运
STP
的交换机中选出一个根网桥 - 每个非根交换机选择一个根端口
- 每个交换网段选择一个除根端口之外的转发端口—指定端口
- 堵塞其他(非根非指定端口即阻塞端口)端口
BPDU
参数
- 网桥ID由交换机的优先级与MAC地址组成
- 端口ID由发送端口的优先级与端口号组成。
路径开销
衡量桥与桥之间路径的“优劣”,端口类型和带宽决定了该端口的路径开销。根交换机的
根路径开销
为零。其他交换机收到BPDU
后,把报文中的根路径开销加上接收端口路径开销,得到该端口的“根路径开销”,根路径开销反映了某端口到根交换机的“远近”BPDU
的比较
- 先比较根网桥ID,越小越好
- 如果根网桥ID相等,根路径开销越小越好
- 如果根网桥ID和根路径开销相等,发送网桥ID越小越好
- 如果根网桥ID、根路径开销和发送网桥ID相等,发送端口ID越小越好
BPDU
在网络中的中继过程
- 网络起始,
STP
启动,交换机都认为自己是根网桥,发送BPDU
。 网络稳定,根网桥发送
BPDU
,其他交换机中继根网桥的BPDU
。STP
计时器STP
端口判定- 选举根网桥,比较网桥ID,根网桥上的所有端口都是指定端口。
- 选择根端口,依次比较根路径开销、发送方网桥ID、发送方端口ID。
- 选择指定端口,依次比较根路径开销、发送方网桥ID、发送方端口ID.
STP
端口状态
端口状态 | 描 述 |
---|---|
Disable 端口没有启用 | 此状态下端口不转发数据帧,不学习MAC地址表,不参与生成树计算。 |
Blocking 阻塞状态 | 此状态下端口不转发数据帧,不学习MAC地址表,此状态下端口接收并处理BPDU ,但是不向外发送BPDU . |
Listening 侦听状态 | 此状态下端口不转发数据帧,不学习MAC地址表,只参与生成树计算,接收并发送BPDU |
Learning 学习状态 | 此状态下端口不转发数据帧,但是学习MAC地址表,参与计算生成树,接收并发送BPDU |
Forwarding 转发状态 | 此状态下端口正常转发数据帧,学习MAC地址表,参与计算生成树,接收并发送BPDU 。 |
STP
基本配置
Cisco
:Cisco
交换机默认开启STP
,只需配置根网桥优先级和边缘端口- 根网桥:
spanning-tree vlan 1-4094 priority 0
- 备份根网桥 :
spanning-tree vlan 1-4094 priority 4096
interface xxx; spanning-tree portfast
华为/华三
- 华三交换机默认关闭
STP
,需要手工为每台交换机开启STP
。开启STP
后,默认协议为MSTP
。 - 根网桥:
stp priority 0;stp enable
- 备份根网桥:
stp priority 4096;stp enable
- 接入层交换机:
stp enable;interface xxx;stp edged-port enable
- 华三交换机默认关闭
RSTP技术
STP技术的缺陷
STP技术在端口的状态转换需要消耗大量的时间,由Listening状态转换到Learning状态需要15s,再由Learning状态转换到Forwarding状态又需要15s。大量时间的消耗对于需要即时响应的如:电商,证券交易,带来的问题是毁灭性的。
概念
- 由STP发展而来,实现思想基本一致,且可以兼容STP运行
- 相对于STP来说,减少了端口状态(Discarding、Leaning、Forwarding),增加了端口角色(根端口、指定端口、Backup端口、边缘端口),BPDU格式及发送方式不同,且当网络拓扑发生变化时,能够更快的恢复。
RSTP中的BPDU
- 网桥自行从指定端口发送RST BPDU,不需要等待来自根桥的RST BPDU。发送周期为2sHello Time
- RST BPDU老化时间为3个连续的Hello Time时长
- 如果收到的BPDU优于本地存储的信息,接收端口会更新其存储的最佳信息。
- 如果收到的BPDU劣于或等于本地存储的信息,接收端口会忽略它。
- 阻塞状态的端口可以立即对收到的低优先级的RST BPDU做出回应
快速收敛原理
- 边缘端口机制:边缘端口可直接进入转发状态;边缘端口收到BPDU后,会转变为非边缘端口
指定端口快速切换机制:指定端口与相连的网桥进行一次握手,就能快速进入转发状态。
握手请求报文:Proposal
握手请求报文:Agreement
P/A协商的过程:
- SWA向SWB发送p置位的BPDU包。
- 同步变量(阻塞除边缘端口以外的其他端口,防止出现环路)。
- SWB向SWA发送A置位的BPDU包。
- SWA收到A置位的BPDU包后,端口立即进入Forwarding状态
- 根端口快速切换机制:当根端口与指定端口down后,备用根端口会快速切换为根端口进入转发状态
拓扑改变处理机制
- RSTP拓扑改变触发条件只有非边缘端口转变为Forwarding状态时,才会产生拓扑改变
- 拓扑改变后在两倍Hello时间内向所有其它指定端口和根端口发送TC置位 BPDU报文,清除除接收到TC报文的端口之外的所有指定端口和根端口学习 的MAC地址
与STP的兼容性
- RSTP的端口连续三次接收到版本为STP的BPDU,则端口协议将切换到STP协议
- 运行STP的网桥移除后,由RSTP模式切换到STP模式的端口仍 将运行在STP模式
基本配置
RSTP启动命令
spanning-tree mode rapid-pvst #Cisco/ruijie sstp mode rstp #huawei/H3C
配置根桥/备份根桥
主根桥: spanning-tree vlan <ID> root primary #Cisco/ruijie stp root primary #Huawei/H3C 备份根桥: spanning-tree vlan <ID> root secondary #Cisco/ruijie stp root secondary #Huawei/H3C
手动设置桥优先级
spanning-tree vlan <ID> priority <0-61440> #Cisco/ruijie stp priority <0-61440> #Huawei/H3C
边缘端口配置
spanning-tree portfast #Cisco/ruijie stp edged-port enable #Huawei/H3C
BPDU保护
spanning-tree bpduguard enable #Cisco/ruijie stp bpdu-protectiong #Huawei stp bpdu-protection enable #H3C
MSTP技术
STP技术和RSTP技术的缺陷
所有vlan
共享一颗生成树,无法实现不同的vlan
在多条Trunk链路上的负载均衡
- MSTP概念:通过构建多个逻辑生成树实例,实现不同VLAN流量在不同物理路径上的负载分担
- 端口角色中多加了一个Master端口是IST根桥在CIST上的根端口,其他端口角色与RSTP相同
优先级向量
CIST优先级向量(最小最优)
- 首先比较CIST总根ID
- 其次比较CIST外部路径开销
- 再次比较CIST域根ID
- 再其次比较CIST内部路径开销
- 再其次比较CIST指定桥ID
- 再其次比较CIST指定端口ID
- 最后比较CIST接收端口ID
MSTI优先级向量
- 首先比较MSTI域根ID
- 其次比较MSTI内部路径开销
- 再其次比较MSTI指定桥ID
- 再其次比较MSTI指定端口ID
- 最后比较MSTI接收端口ID
计算方法
- CST/IST的计算和RSTP类似
- MSTI的计算仅限于区域内
- MSTI计算参数包含在IST BPDU中,和IST的计算同步完成
P/A机制
- 上游桥发送的Proposal BPDU中,P标志位和A标志位都置位
- 下游收到P标志位和A标志位都置位的Proposal BPDU,在将端 口同步后会回应Agreement BPDU,使得上游的指定端口快速 进入转发状态
基本配置
启用MSTP
spanning-tree mode mst #Cisco/ruijie stp mode mstp #Huawei/H3C
MSTP域配置模式
spanning-tree mst configuration #Cisco/ruijie stp region-configuration #Huawei/H3C
Region三要素
#Cisco/ruijie name <Region_Name> #域名 revision <1-65535> #修订号 instance <ID> vlan <vlan列表> #VLAN映射实例 #Huawei/H3C Region_Name <name> #域名 revision-level <1-65535> #修订号 instance <ID> vlan <List> #VLAN映射实例
激活
#Cisco/ruijie exit(自动激活) #Huawei/H3C active region-configuration
指定实例根桥/备份根桥
#Cisco/ruijie spanning-tree mst <ID> root primary #主根桥 spanning-tree mst <ID> root secondary #备份根桥 #Huawei/H3C stp instance <ID> root primary #主根桥 stp instance <ID> root secondary #备份根桥
手动设置实例优先级
#Cisco/ruijie spanning-tree mst <ID> priority <0-61440> #Huawei/H3C stp instance <ID> priority <0-61440> ps:优先级值必须是4096的倍数
- 边缘端口与BPDU保护与RSTP基本相同