STP

STP(802.1D)

RSTP(802.1W)

MSTP(802.1S)  华为设备默认开启是MSTP

 

STP(802.1D)

BPDU字段信息:

  1. Protocol:协议版本
  2. version:STP版本
    1. STP     值为0
    2. RSTP  值为2
    3. MSTP 值为3
  3. BPDU type 
    1. congifuration bpdu 拓扑BPDU 2s发送一次
    2. topology bpdu :拓扑发生变化时发送的bpdu
    3. 802.1w/s bpdu
  4. flags
    1. 标签位;只用到第一位和第七位
    2. TCA 置 1:拓扑确认
    3. TC 置 1:通告全网交换机拓扑发生变化
  5. RID:根桥的BID(优先级+mac地址)
  6. RPC:到根桥累计开销之和
  7. BID:所经过交换机自己的BID(优先级+mac地址)
  8. PID:端口ID,优先级+端口组成
  9. message age:当前消息年龄(每经过一个设备加1)
  10. max age:最大消息年龄
  11. hello time:发送时间间隔,一般默认是2s
  12. forward delay:转发时间,端口状态切换的时间
    1. 决定监听和学习状态所需要的时间值
    2. 收到TC BPDU后MAC地址的老化时间

 

STP定义每个交换机都有一个BID来标识自己 

BID=优先级+mac地址

优先级取值由两种标准:

  1、0-65535

  2、0-61440 华为默认采用的取值,只能是4096的倍数

 

三种端口:

  • RP 根端口
    • 非根桥上接收最好的BPDU
    • 转发数据
  • DP 指定端口
    • 链路上发送最好的BPDU
    • 转发数据
  • AP 备份端口
    • 被阻塞

STP选举流程:

  • 选举根桥
  • 非根桥选举根端口
  • 每条链路上选举指定端口
  • 即不是RP也不是DP就是AP端口
  • STP通过修改RID、RPC、BID、PID来决定选举

比较原则:

  1. RID越小越优(优先级+mac地址)
  2. RPC越小越优(到根桥累计开销之和)
  3. BID越小越优(上联交换机BID,优先级+mac地址)
  4. PID越小越优(端口优先级+端口编号)

五种状态:

端口状态
是否转发数据
是否学习MAC地址表
是否接收BPDU
备注
Disabled
端口被禁用
 
 
 
Blocking
不转发数据帧
不学习MAC地址表
接收并处理BPDU
但不发送BPDU
 
Listening
不转发数据帧
不学习MAC地址表
只参与生成树计算
接收并发送BPDU
从阻塞进入监听状态需要15s
Learning
不转发数据帧
学习MAC地址表
参与生成树计算
接收并发送BPDU
从监听进入转发状态需要15s
Forwarding
转发数据帧
学习MAC地址表
参与生成树计算
接收并发送BPDU
端口角色切换可能存在环路风险,因为STP端口切换需要经过时间等待

 

1、一个非根桥的RP失效并存在AP端口时,AP成为新的RP,需要经历30s进入转发状态

2、非根桥RP失效但不存在AP接口时,网络恢复需要50s

3、根桥失效会重新选举根桥,网络恢复需要50s

监听状态为什么需要15s?

  1. 监听状态15s是避免STP协议在收敛过程中产生临时环路,让BPDU有足够的时间在整个网络进行传递
  2. 监听状态期间,MAC地址表受TC BPDU的影响会进行提前老化,清除错误的MAC地址信息,导致错误的MAC地址老化,也导致正确且空闲的MAC地址老化;如果此时需要转发数据帧就会导致大量未知DMAC单播帧泛洪的现象,影响网络性能,那么我们继续牺牲15s的收敛时间,设计出学习状态能让交换机在此期间重新构建正确的MAC地址表项,减少单播帧在STP收敛期间产生大量的泛洪行为

BPDU分两种

  • configuratlon bpdu 配置BPDU(2s发送一次)
    • 标准STP由根桥发送配置BPDU,非根桥交换机不能发送配置BPDU
    • 华为设备经过优化,非根桥可以发送BPDU
  • Topoloy Change Notificaction 当交换机发生变化时,发送TCN报文,通知拓扑更改
  • topology bpdu:拓扑发生变化时发送的bpdu
    • TCA BPDU   拓扑确认更改
    • TC BPDU     拓扑变化BPDU
 

拓扑发生变化时,如何发送BPDU?

  • 当拓扑发生变化时会发送TCN BPDU通知根桥
  • 上游设备收到TCN BPDU后,会回复一个TCA BPDU,同时也向它的上游设备发送TCN BPDU,沿途设备重复这个动作,直到根桥(一般是DP接收,RP发送)
  • 当根桥收到TCN 的BPDU后,回复一个TCA BPDU,同时向全网发送一个TC BPDU,通知拓扑发生改变;
  • 当交换机收到TC BPDU后,将自身所有端口(除边缘端口外)的MAC地址表老化时间变成15s
  • 注:标准的STP上游设备只回复TCA 置位的BPDU;华为设备有变化,上游设备回复TCA和TC置位的BPDU,让交换机提前把老化时间变成15s;
  • TC BPDU由根桥持续发送35s的时间(防止拓扑发生改变时,交换机学到错误MAC地址)
  • 华为交换机标注的STP支持边缘端口;

什么情况下认为拓扑是发生改变的

  • 当端口进入到转发状态时认为拓扑发生变化
  • RP失效或者RP进入到转发状态时认为拓扑发生变化
  • 注:DP端口失效不认为拓扑发生改变

拓扑发生改变的缺点:

  • 当PC接入后交换机端口会进入转发状态那么就会引起拓扑发生改变,从而会产生TC置位的BPDU,交换机MAC地址表从300s的老化时间变成15s
  • 后果:假如MAC地址老化时间变成15s,15s后所有交换机删除mac地址表,那么问题来了?
  • 在一个特大型园区网中交换机删除MAC地址,而此时员工要进行数据通信由于没有MAC地址就会产生大量的未知广播帧,从而造成网络拥塞。
  • 现象:网络会持续一段时间卡顿。  解决:配置边缘端口

华为针对STP优化

  • 非根桥可以主动发送BPDU(标准STP没有)
  • 收到次级BPDU立即老化(标准STP没有)
  • 边缘端口(标准STP没有,只在RSTP中存在)

 

RSTP(802.1W)

与STP变化:

  1. 通过端口角色增补
  2. 端口状态重新划分
  3. 配置BPDU格式改变,充分利用了STP协议中flag字段
  4. 配置BPDU处理发生变化
  5. 快递收敛
  6. 增加了保护功能

BPDU有两种

  • RST DPDU
  • TC RST BPDU

RSTP报文格式:

1、通过端口增补

端口角色
描述
   
Root Port
根端口
所在交换机离根交换机最近的端口
转发数据
 
Designated Port
指定端口
发往根交换机方向的数据
从交换机方向发出的数据
转发数据
 
Backup Port
备份端口
DP的备份端口
不转发数据
BP学习到了自己发送的BPDU报文而阻塞的端口
提供了另一条到其他交换机的备用路径
Alternate Port
预备端口
RP的备份端口
不转发数据
AP端口学习到了其他网桥发送的bpdu而阻塞的端口
提供了从指定桥到根交换机另一条可切换路径;

注:指定桥:就是根端口所在的交换机

2、端口状态重新定义

  • discarding   不转发用户流量,不学习MAC地址
  • learning  不转发用户流量,学习MAC地址
  • forwarding   转用户流量,学习MAC地址

3、配置BPDU格式改变,利用flag字段

  • 第1位:Topology Change Acknowledgment(TCA)
  • 第2位:Agreement(和第7位用于P/A机制)
  • 第3位:Forwarding
  • 第4位:Learning
  • 第5  6位:Port Role(端口角色) 00 未知        01:替代/备份端口         10:根端口         11:指定端口
  • 第7位:proposal(第2位用于P/A机制)
  • 第8位:Topology Change(TC)
  

 4、配置BPDU发生变化

  • BPDU发送方式:无论非根桥设备是否接收到根桥发送的BPDU报文,非根桥设备扔按照hello time时间间隔发送配置BPDU报文;每台设备自主(STP非根桥交换机不能发送BPDU)
  • 超时时间:一个端口在超时时间(连续3个hello time的时间)内没有收到上游设备发过来的配置BPDU,那么该邻居认为邻居之间协商失败;不像STP那样需要先等待一个MAX Age
  • 处理次优BPDU:当一个端口收到上游指定桥发来的RST bpdu报文时该端口将自身的RST BPDU与收到的RSTP BPDU 进行比较,如果自身BPDU优于收到的RST BPDU那么该端口直接丢弃,立即回应自身缓存的RST BPDU从未加快收敛速度

5、快递收敛

  1. 边缘端口
    1. 快速进入转发状态
    2. 边缘端口UP/DOWN不会导致交换机发送TCN或者TC BPDU,增强STP网络的稳定性
    3. 一般接服务器、防火墙、路由器等设备
    4. 注意事项:边缘端口也是发送BPDU的
      1. 收到自己发送的BPDU端口会阻塞
      2. 收到其他交换机发送的BPDU,参与普通SPT计算,实现防环;刚接入时有临时环路风险
      3. 边缘端口能发送BPDU能实现一定程度上防环,但是有的场景不能起到防环作用  
  2. P/A机制
    1. P/A机制可以快速收敛(两个hello time)
    2. 链路类型为P2P(全双工),选举RP和DP时才有P/A机制,其他链路类型和端口角色选举按照标准STP 
    3. 选举过程:交换机之间一开始发送RST BPDU,次优的交换机停止发送RST BPDU,此时较优的交换机发送proposal置1的BPDU,次优交换机收到以后,选举自身端口角色并阻塞,选举完成后回复Agreement置1的的BPDU
  3. 根端口快速切换
    1. 根端口失效,网络中最优的AP端口成为根端口进入forwarding状态;通过AP端口连接网段上必然有个指定端口可以通往根桥。

6、增强保护功能

  • 边缘端口配置
    • 边缘端口不参与生成树计算,立刻转发;
    • stp edged-port enable   配置边缘端口,在接口下配置
    • stp edged-port default       配置边缘端口,在全局配置
    • stp edged-port disable       关闭边缘端口,在接口下配置
  • stp loop-protection           
    • 环路保护,接口下配置,软件层次的额外检测
    • 在根端口上和AP端口上配置生效
  • stp bpdu-protection    
    • BPDU保护,在全局下配置,只针对边缘端口有效,当边缘端口收到BPDU后接口关闭
    • error-down auto-recovery cause bpdu-protection interval mnu 边缘端口收到bpdu后接口down
  • stp bpdu-filter enable       
    • BPDU过滤,不接收不发送bpdu;一般配置在边缘端口,否则有环路风险
    • 环路保护 优于 BPDU过滤 优于 BPDU保护
  • stp root-protection           
    • 根保护;在指定口配置
    • 对于使能根保护功能的指定端口,其端口角色只能保持为指定端口。
    • 一旦使能根保护功能的指定端口收到优先级更高的BPDU时,指定端口状态将进入Discarding状态,不再转发报文。
    • 在经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的BPDU,端口会自动恢复到正常的Forwarding状态。
    • Forward Delay的时间可通过命令 stp timer forward-delay 进行设置。
  • stp tc-protection           
    • TC保护;
    • 交换机收到TC-BPDU 后会执行MAC地址表项和ARP表项的删除操作,当人伪造TC-BPDU报文恶意统计交换机时,会频繁删除MAC地址表和ARP 表项,给网络带来很大隐患
    • 开启TC-BPDU 功能后,会在一定时间内处理一次;单位时间为2s。默认2s处理一个

拓扑变更机制

  1. 非边缘端口迁移到forwarding状态时认为拓扑发生改变
  2. 在状态发生改变时非边缘端口发送TC BPDU(发送周期为两倍的hello time)收到TC BPDU的交换机清空所有端口(边缘端口和收到TC 报文的端口除外)的MAC地址并继续泛洪TC BPDU,实现全网MAC地址表的更新

 

MSTP(802.1s)

工作原理与STP一致,快速切换与RSTP一样  

MSTP

1、定义了MSTP域在一个域中的交换机必须配置相同的域名

2、在同一个域中配置相同的修订级别

3、在同一个域中要有相同的instance 映射表

4、激活配置

MSTP特点:

1、 同一个域中基于instance维护生成树

2、 同一个域中不同的instance可以设置不用的根桥

3、 同一个域中可以针对不同的instance配置STP的参数

4、 同一个域中每个instance独立维护自己的STP树

5、 没有加入到instance中的vlan,默认属于instance0,instance 0默认存在

 

COST计算

  • 华为默认计算路径为:802.1t;通过stp pathcost-standard dot1d-1998 命令修改为短路径开销方法

 

posted @ 2021-08-24 13:37  大韩小白  阅读(459)  评论(0)    收藏  举报