STP总结

STP介绍

基于冗余链路中存在的这些问题STP被设计出来用来解决这些问题,下面介绍STP的工作原理。

交换机上有默认的stp版本为mstp(多实例生成树)、stp(生成树)、rstp (快速生成树)。

1.工作原理

STP通过拥塞冗余路径上的一些端口,确保到达任何目标地址只有一条逻辑路径,STP借用交换BPDU(Bridge Protocol Data Unit,桥接数据单元)来阻止环路,BPDU中包含BID(Bridge ID,桥ID)用来识别是哪台计算机发出的BPDU。


在STP运行的情况下,虽然逻辑上没有了环路,但是物理线上还是存在环路的,只是物理线路的一些端口被禁用以阻止环路的发生,如果正在使用的链路出现故障,STP重新计算,部分被禁用的端口重新启用来提供冗余

STP使用STA(Spanning Tree Algorithm,生成树算法)来决定交换机上的哪些端口被堵塞用来阻止环路的发生,STA选择一台交换机作为根交换机,称作根桥(Root Bridge),以该交换机作为参考点计算所有路径。

2.选举:根网桥、根端口、指定端口、非指定端口

① 根网桥(根交换机)—在一棵生成树实例中,有且仅有一台交换机为root

  • 选举:
    比较每台交换机的网桥id (优先级+MAC地址) 越小越优先

  • 默认优先级:32768
    修改优先级的时候要改成4096的倍数
    [系统]stp mode stp 修改stp的模式
    Stp priority 4096 修改优先级

② 根端口—在每台非根网桥上,有且仅有一个接口;本地离根网桥最近的接口(最短、星型),接收来自根网桥的BPDU,转发用户的流量(该接口不阻塞)

选举:

  • 1 路径开销值:比较从根网桥发出后,通过该接口进入时最小的cost值;
  • 2 对端网桥id:入向cost值相同,比较该接口对端设备的BID,小优
  • 3 对端端口id:对端BID也相同,比较该接口对端设备的接口的PID
  • 4 本端端口id(hub):小优
  • 端口ID 接口优先级(0-240,步长16,默认128)接口编号

③ 指定端口—在每一段存在STP的物理链路上,有且仅有一个;转发来自根网桥的BPDU,同时可以转发用户流量(不阻塞);默认根网桥上所有接口为指定端口;

选举:

  • 1 路径开销:比较从根网桥发出后,通过该接口进入这段链路时的cost值最小(出向)
  • 2 本端网桥id
  • 3 本端端口id (端口优先级和端口编号)端口优先级默认是128 接口编号
  • 4 本地端口id,相同,直接阻塞该端口;

④ 非指定端口----剩下的端口就叫做阻塞端口。该接口逻辑阻塞,实际可以接收到信息,但不转发。

3.STP中的报文交互

BPDU 桥协议数据单元

两种BPDU:

① 配置BPDU

作用:用于角色(端口)选举

维护网络拓扑,2秒1次,最多20秒,20秒没有根的回应,则认为根down掉。

只有根网桥可以发送,在交换网络初始状态时,所有交换机均定义本地为根网桥,进行BPDU的发送;使得网络所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥;再所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU;周期2s发送,hold time 20s。

② TCN BPDU—拓扑变化bpdu

作用:当拓扑发生变化时,会发tcn bpdu

本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;之后将TCN逐级转发到根网桥处,由根网桥回复TC消息来逐级回复到所有交换机;使所有交换机临时将MAC表的老换时间修改为15s(默认的,转发延时)。

  • 1 BPDU Flags 标识字段
    Tca位 拓扑变化确认位
    Tc位 拓扑变化位
    发生变化时置1
  • 2 root identifier 根网桥id (Root ID)
  • 3 cost of path 到达根的开销值
  • 4 Bridge ID 本交换机的网桥ID
  • 5 Port ID 端口ID
    0x8001 前面的80 代表优先级128 , 01代表端口号
  • 6 message age 消息寿命 每经过一台交换机 message age+1
  • 7 max age 最大寿命 20秒
  • 8 hello time 2秒
  • 9 forward delay 转发延迟15秒

BPDU的时间有三种:Hello Time、Max Age、Forward Delay:

  • Hello时间控制了发送配置BPDU的时间间隔,默认2秒。这是根交换机生成BPDU并向非根交换机发送的间隔。
  • 非根交换机接收到根交换机发送来的BPDU,再从除接收端口以外的其他端口转发出去,如果在2-20秒里面由于网络故障没有新的BPDU从根交换机发送过来,非根交换机将停止向外发送从根交换机接收到的BPDU。如果这种情况持续20秒,也就是最大存活期,非根交换机就使原储存的BPDU无效,并开始寻找新的根端口。所谓最大存活期就是非根交换机丢弃BPDU前用来备份储存它的时间。
  • 转发延时是交换机在侦听状态到学习状态所花的时间,默认是15秒。

5.端口的状态变化

  • disable 开启stp时 特点:不进行stp计算。
  • blocking 阻塞端口直接进入blocking 状态。
  • listening 非阻塞端口才进入侦听状态 特点:加速mac地址表老化。

    所有交换机进行BPDU收发,选举所有角色;接口角色为非指定端口直接进入阻塞状态;若为指定端口和根端口进入下一状态。

    中间有15秒的间隔时间,目的是为了加速mac地址表老化,mac地址表老化时间300秒

  • learning 学习状态

    指定端口和根端口学习所有接口连接设备的MAC地址,生成MAC表;之后进入下一状态。

    中间有相隔15秒的时间,加速mac地址表的学习。
  • forwarding 转发状态

注:只有到接口进入到转发状态后,才能为用户转发数据报文,之前的30s不能转发任何数据。

收敛时间:

初次收敛—30s = 15侦听+15s学习

结构变化:

1. 存在直连检测:

本地存在阻塞端口,若其他端口断开,该阻塞端口马上进入15是侦听(选举);结果若为启用,那么将再进入15s学习—总30s。

当阻塞端口感觉到拓扑发生变化,发送tcn BPDU,对端会回复一条tca=1拓扑变化确认;当交换机收到根交换机范洪的网络变化tc=1的配置BPDU才能老化原来的路径,学习新的路径。

2. 没有直连检测:

本地不存在阻塞端口,若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s hold time计时,到时时阻塞接口进入15s侦听,15s学习=总50s。

由于线路故障,Sw2 20s后老化了源路径,认为自己是根,向sw3发送bpdu,sw3收到两条bpdu,因此会检测到链路变化,由于链接s1的路径最优,所以向s1发送tcnBPDU,s1回复一条tc=1的配置bpdu,交换机将原来的路径老化,并学习新的路径。

6.STP的缺点

1. 收敛慢

learning到forwarding需要15s学习mac地址,

Listening到learning需要15s 加速老化时间,

无论上述用了多少秒,最大等待时间总是15s,

发送tcnBPDU的时间过长。

2. 链路利用率低

RSTP 快速生成树

  • 备份端口只在华为中提出。
  • 备份端口备份成为指定端口。
  • 预备端口将来预备成为根端口。
  • 预备端口和备份端口的相同点,正常情况下都不进行数据转发。

RSTP中端口状态变成了三种,将stp状态前三种合成一种,因为不学习mac也不转发数据。

三种状态:

  • discarding 不学习mac也不转发数据。
  • learning 不转发数据但是学习mac。
  • forwarding 即学习mac也转发数据。

BPDU stp和rstp的区别:

  • stp:配置BPDU TCN BPDU
  • rstp:RST BPDU(快速生成树bpdu)

标志位

  • Tca位(topology change acknowledgement)拓扑变化确认位。
  • 同意位(agreement)。
  • 转发位(Forwarding)。
  • 学习状态(learning )中间有相隔15秒的时间,加速mac地址表的学习
  • 端口角色(port role)端口角色是11,证明这个端口是指定端口,如果是10则代表是根端口,01代表预备端口或者备份端口,00代表保留。
  • 提议位(proposal)。
  • 拓扑变化位(topology change)

RSTP快速生成树

收敛速度快:

  • 1. 边缘端口:连接终端设备的端口
    优点:不会进行端口角色计算,直接变成forwarding状态
    配置边缘端口
    Interface g0/0/3
    Stp edged-port enable
  • 2. P/A机制 提议/同意机制
    前提条件:点到点链路(全双工链路)交换机先发送一个RST BPDU给根,根收到后作比较,将自己的发给交换机,交换机发现网桥id比自己小比自己优先,就会发一个同意位给根交换机,根交换机上的接口变为指定接口,并直接变为forwarding状态。

Sw3当网络发生变化,马上启动一个TC while计时器:2倍的hellp时间,直接发送tcBPDU给s2,四秒内,老化原来的mac地址,形成新的地址,s2收到后重复上述动作直到发给根交换机。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值