STP技术---生成树技术
作为二层防环的技术还包括smart-link、eth-trunk、堆叠、rrpp等;
STP技术的收敛速度为1-2s rrpp技术的收敛速度 ms单位;
STP技术的优势
1、适应复杂网络; 2、STP机制丰富,能存在多种保护机制等; 说明: STP技术包括:STP、RSTP、MSTP 华为设备开启,默认STP版本为MSTP
二层环路
危害: 1、 广播风暴:数据帧的数量呈指数型增长; 2、 mac地址表震荡:mac地址表不断进行刷新,无法正常地转发数据帧; 3、最终影响设备正常使用。
三大表:
mac地址表:用于指导数据帧(二层) ARP缓存表:用于存储IP地址与mac地址的对应关系(2.5层) 路由表: 用于指导IP数据包进行转发(三层)
STP协议工作原理
通过协议计算(依赖于BPDU报文),从逻辑上阻塞端口,从而实现防环,当链路一旦出现故障时,阻塞端口重新恢复转发。
STP的限制
1、收敛慢,收敛属于秒级; 2、不适用于大型交换网络,网络直径小于等于20; 3、整网的交换设备不能超过50台;
STP的计算过程
1、选举一个根桥
根桥交换机:作为整个交换网络的数据转发中心;
选举要素1
根桥ID:优先级+mac地址 1、比较优先级,默认为32768,数值越小越优先,可调整,只能为4096的倍数; 2、比较mac地址,数值越小越优先。
如果设备收到比本身差的BPDU报文,直接丢弃; 如果设备收到比本身优的BPDU报文,将其放入端口存储并且转发出去。
全网泛洪的BPDU报文的根桥ID一致时说明交换网络中已经选出根桥交换机
2、每个非根交换机选举一个根端口
根端口(RP):转发数据的端口,用于接收最优的BPDU报文,只在非根桥交换机上有且只有一个。
选举要素2
1、根路径开销: 根路径:以一个接口为出方向,去往根桥交换机的最短路径之和,称为根路径; 2、开销: 跟接口的带宽有关;
100M=200000 1GE=20000 10GE=2000
根路径开销越小越优先:
STP的通用规则一:
非根桥交换机与根桥交换机直连接口都为RP端口。
3、每个网段选举一个指定端口
指定端口(DP):转发数据,用于转发最优BPDU,在每个网段上有且仅有一个。
通用规则二:
根桥交换机上的所有端口均为DP端口。
要素3
发送者桥ID 设备在转发BPDU报文,都会将本身的桥ID字段填充到发送者桥ID中;
比较规则与根桥ID比较规则完全一致。
4、阻塞非根、非指定端口
AP,既不是DP也不是RP端口。
要素4
端口ID:优先级+端口编号 优先级:默认为128,数值越小越优先,可调整,只能调整为16的倍数; 端口ID,数值越小越优先。
STP的端口状态机
disable:说明端口未启用STP协议;
blocking:阻塞状态,属于AP端口正常状态,进行根桥的选举;
listening:侦听状态,进行端口角色的确定;
learning:学习状态,学习mac地址表;
forwarding:转发状态,转发数据,学习mac地址;
STP的计时器
hello time:更新计时器,根桥交换机每2秒向外泛洪BPDU报文;
max age:默认为20s,端口中BPDU的老化时间,如果端口到达老化时间,BPDU会被丢弃,等同于拓扑发生变化。
message age:信息延时,时间默认为0秒,每经过一个设备,会加1。
端口真正的老化时间=max age-message age
forward delay:转发延时,默认为15s,在listen--learning-forwarding状态跳转时使用,用于防止临时环路。
STP的收敛规则
当RP端口down掉,非根桥交换机直接认为根桥交换机down 掉,以自身为根桥向外泛洪BPDU报文;
STP针对拓扑改变的刷新机制
(1)由发生拓扑变化的交换机朝着根桥泛洪TCN BPDU报文,上游交换机收到TCN BPDU报文后,先回复TCA BPDU报文,继续朝着根桥泛洪TCN BPDU;
(2)不断重复上述过程,直到根桥交换机收到TCN BPDU,回复TCA BPDU报文为止;
(3)根桥交换机会泛洪TC BPDU报文,泛洪35秒,每2秒泛洪(17个或者18个),当交换机收到TC BPDU报文后,会刷新mac地址表。
RSTP对于STP的改进
(1)BPDU
将STP的flag字段中的6bit使用,分别为agreement(A),forwarding,learning,port role,proposal(P)。
(2)P/A协商
① 所有设备在一启动RSTP时,都认为本设备是根桥,都发送出P置位的的BPDU。
② 经过对比,BPDU较差的设备会停止发送BPDU,同时将收到较优BPDU的接口置为RP端口,进入forwarding,同时会将除了边缘端口以外的其他端口阻塞。
③ RP端口进入forwarding以后,会回复A置位的BPDU。更优的设备在收到了A置位的BPDU以后,会将收到该BPDU的端口置为DP端口,同时进入转发状态。
(3)端口角色
AP:预备端口,阻塞状态,作为RP的备份,当RP出现故障以后,AP马上成为RP端口,并且进入转发状态。收到其他设备发送的BPDU是AP。
BP:备份端口,阻塞状态,作为DP的备份,当DP出现故障以后,BP会在等待一段时间后才成为DP。 收到本设备的BPDU。
(4)对于次优的BPDU会回复处理,通过P/A协商。
(5)边缘端口
不参与STP的计算,只要接口UP,立即进入forwarding状态。当边缘端口收到了BPDU以后,就会丧失边缘端口属性。
配置: stp edged-port enable
(6)拓扑变更机制
直接由发生拓扑变更的设备直接发送出TC置位的BPDU,然后将除了收到TC置位1以外的接口所学到的MAC的老化时间改为15S。
(7)将端口角色由5种变为3种
discarding:在RSTP中的阻塞状态,不学习MAC地址也不转发用户数据。
learning:学习MAC地址但是不转发用户数据。
forwarding:即学习MAC地址也转发用户数据。
(8)保护功能
① BPDU保护:保护边缘端口在收到了BPDU以后,会将该端口error-down,同时通知网管。
只能针对与边缘端口保护
配置:stp bpdu-protection //在全局试图下
② 根保护:当该端口收到更优的RST BPDU后,端口进入Discarding状态,不再转发报文。若一段时间内端口未收到更优的RST BPDU,则会自动恢复到正常的Forwarding状态
只能在指定端口上保护
配置:stp root-protection //在接口试图下
③TC-BPDU泛洪保护:当设备收到TC-BPDU以后,在单位时间内会有一个限制的次数。
配置:在系统视图下stp tc-protection threshold +可处理的报文数量
RSTP快速收敛机制
当交换机的RP端口down掉时,AP端口会立刻成为RP端口,并立刻进入forwarding状态。
BP端口选取规则
当交换机从一个接口收到一份BPDU报文,包含的发送者桥ID为本身交换机的桥ID,同时BPDU比本地接口的BPDU优时,则此接口会被选为BP端口
当DP端口down掉时,BP端口需要等待18s的时间才会成为DP端口
常见问题汇总
问题1:RSTP的BPDU保护?
答:边缘端口直接和用户终端相连,正常情况下,边缘端口不会收到BPDU报文。如果***者伪造BPDU恶意***交换机,当边缘端口接收到BPDU报文时,交换机会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。
通过配置BPDU保护功能可以防止这种***。设备上使能了BPDU保护功能后,如果边缘端口收到BPDU,系统就将这些端口Shutdown。 问题2:stp 选举的四要素有哪些??
答:root id(根桥的优先级+mac地址) cost(到根桥的开销(接口带宽)) 发送者桥id 端口id
问题3:华为交换机如果接口关闭了STP,收到BPDU会如何处理?
答:BPDU报文发送的目的地址为01-80-C2-00-00-00,华为交换机如果接口关闭了STP,那么收到目的MAC地址为:01-80-C2-00-00-00组播数据帧会直接丢弃。
问题4:边缘端口的端口角色是什么角色?
答:DP端口,因为从该端口没有收到更优的BPDU,当一台运行STP的交换机刚启动,端口的角色为DP端口,只有收到比该端口优的BPDU才会迁移成其他的角色,边缘端口一般用于连接非交换机,不会收到BPDU,所以端口角色为DP端口。
问题5:如果一个端口收到比自己还要差的BPDU会怎么处理?
答:华为把这种BPDU称为次优BPDU,华为交换机收到次优BPDU会丢弃该BPDU,并发送自己接口的最优的BPDU。
问题6:STP中为什么要设计转发延迟时间?
答:STP如果没有forward delay带来的临时环路问题:
初始状态下SWA为根交换机,所有的交换机端口中,只有SWD的E0/2端口为Alternate Port,处于不转发状态。假设修改SWC的优先级,使SWC成为新的根交换机,SWD的E0/2接口成为新的根端口,进入转发状态,E0/1接口成为新的指定端口,处于转发状态,SWB的E0/2应当成为新的Alternate Port,进入不转发状态。如果在SWB的E0/2在从转发状态进入不转发状态之前,SWD的E0/2就从不转发状态进入转发状态,则网络中会出现临时环路。
解决临时环路的方法是:在一个端口从不转发状态进入转发状态之前(例如SWD的E0/2端口),需要等待一个足够长的时间,以使需要进入不转发状态的端口有足够时间完成生成树计算,并进入不转发状态 问题7:运行STP的交换机是怎么感知拓扑发送变化的,为什么要发送TC BPDU,不发会怎么样?
答:当一个接口进入转发状态时,就认为拓扑已经发生变化。 如果拓扑发生变化不发TC BPDU会导致,过时的MAC地址表无法被刷新,从而导致数据流量无法继续进行转发,要等300S的MAC地址表老化时间后,才会刷新MAC地址表;
问题8:华为STP有多少个版本?默认是哪个版本?
答:STP,RSTP,MSTP MSTP