STP思维导图
STP
-
- STP思维导图
- STP技术概念
-
- 生成树协议概述
- 产生背景
- 冗余拓扑
-
- 环路的影响
- STP技术工作原理
-
- 如何实现
- 选举过程
-
- SPT路径成本
- 每个广播域选择一个根桥
- 每个非根桥上选择一个根端口
- 每个段选择一个指定端口
- 最后选出阻塞端口(非指定端口)
- STP的状态机制
-
- 端口状态
-
- 阻塞状态(Blocking)
- 监听状态(Listening)
- 学习状态(Learning)
- 转发状态(Forwarding)
- STP计时器
-
- Hello时间
- 转发延迟时间
- 最大存活期
- STP的拓扑变更
- STP的特性
-
- port fast
- bpdu guard/bpdu保护
- bpdu filter
- uplink fast
- backbone fast
- RootGuard
STP技术概念
生成树协议概述
IEEE 802.1d STP(生成树协议,Spanning-Tree Protocol)协议:
①使冗余端口置于“阻塞状态”
②网络中的计算机在通信时,只有一条链路生效
③当这个链路出现故障时,将处于“阻塞状态”的端口重新打开,从而确保网络连接稳定可靠
产生背景
网络链路和设备的冗余性(避免网络不够健壮导致的单点故障)
链路的冗余会形成交换网络的环路
冗余拓扑
既要冗余还要无环,使用自动化的形式来实现→STP
物理链路上的冗余,但是逻辑上是要破除二层的环路的
环路的影响
-
广播风暴
概念:广播信息在网络中不断的转发,直至导致交换机出现超负荷运转,最终耗尽所有带宽资源、阻塞全网通信
工程现场:如果发现交换机的灯疯狂闪烁→肯定存在环路
如何解决广播风暴:无解、重启设备
二层的广播报文,没有TTL的限制,会一直存在,并且二层环路,越来越多
交换机的一个接口能对应多个MAC地址,但是,一个MAC地址只能对应一个接口
MAC地址被反复的记录在交换机的不同接口上,引起CAM表的抖动,影响交换机的正常通信
STP技术工作原理
如何实现
- 通过协议:STP IEEE=802.1d
阻塞网络中的某一个接口(从逻辑上),实现物理链路正常链接,逻辑上关闭(down),避免环路的危害 - 具体要阻塞哪一个接口?
交换机之间协商出来的→BDPU报文,交换机通过BPDU中的关键参数,进行选举,选举出来的结果,就是要阻塞的端口
选举过程
SPT路径成本
每个广播域选择一个根桥
- 根桥(Root Bridge):网络中倒数的根,整网络中只存在一个根
- Root bridge 桥=交换机
- 比较BPDU中的关键参数BID(bridge id) 桥优先级(0-65535)+MAC地址
- 根桥是从所有的交换机中选举出来的,BID优先级越小越优先,如果优先级相同比较MAC地址,越小越优先
- 非根桥(Non-Root Bridge):除了根以外的所有桥,都是非根桥
- 修改桥优先级方法1:stp root primary/secondary ———— 将优先级直接改成0
- 修改桥优先级方法2:stp priority <0-61440> ———— 将优先级改成比默认值小的
每个非根桥上选择一个根端口
-
根端口(Root Port):每个非根桥离根桥最近的端口
-
所有非根桥交换机的端口都参加选举
-
cost of path→端口到达根桥路径开销
-
sender bid→这个接口对端交换机的BID,越小越优先
-
sender pid→由优先级(0-255,默认128)+端口编号组成的 优先级和端口编号越小越优先
-
修改根端口的cost值
[Huawei-GigabitEthernet0/0/1]stp cost ? INTEGER<1-200000000> Port path cost -
端口的PID修改方法
[Huawei-GigabitEthernet0/0/1]stp port priority ? INTEGER<0-240> Port priority, in steps of 16
每个段选择一个指定端口
- 指定端口(Design Port):无环路的可以转发数据的端口
- 所有的非根桥交换机空余链路中选出来的指定端口(在两台交换机之间的链路上选举出来的)
- 选举方式:COST值 (此处的COST值是当前接口所在交换机到达根桥的开销)
- 如果开销值一样:local BID:所在根桥的BID local PID:
- 根桥上所有的端口都是指定端口
- 根端口对端交换机的接口也是指定端口
最后选出阻塞端口(非指定端口)
STP的状态机制
端口状态
- disable→不会参加STP的选举(可能端口没有打开,或者没有连线)
阻塞状态(Blocking)
- 概念:不能接收或者传输数据,不能把MAC地址加入地址表,只能接收BPDU
- 在选举之前,所有端口从disable过度到的第一个状态
在选举结束之后,被阻塞的端口,就是阻塞状态
监听状态(Listening)
- 概念:不能接收或者传输数据,也不能把MAC地址加入地址表,但可以接收和发送BPDU
- 在监听状态下,交换机完成STP的角色的选举,选出根桥、根端口、指定端口、非指定端口
- 在选举结束之后,网络拓扑无环,处于一种比较稳定的状态
学习状态(Learning)
- 概念:不能传输数据,但可以发送和接收BPDU,也可以学习MAC地址
- 交换机转发数据,依靠CAM表,交换机的接口开始学习MAC地址来形成CAM表
- 如果交换机接口从监听状态直接跳跃到转发状态,在最开始的时候,交换机的CAM表是空的,在网络中,会有大量的泛洪的数据
转发状态(Forwarding)
- 概念:能够发送和接收数据、学习MAC地址、发送和接收BPDU
STP计时器
- 概念:阻塞到转发状态通常要30-50s(默认50s,即20+15+15),这个时间也可以通过配置生成树计时器来调整
Hello时间
- 概念:根网桥发送配置BPDU的时间间隔 缺省为2s
转发延迟时间
- 概念:侦听到学习状态,或者学习状态转换到转发状态所需要的时间 缺省为15s
最大存活期
- 概念:在丢弃BPDU之前,网桥用来存储BPDU的时间,缺省为20s。如果连续收不到10个bpdu(20s的时间),开始进入listening状态
STP的拓扑变更
- 拓扑变更机制的目的:让其他交换机快速刷新CAM表,将这些无用的信息快速刷新掉,节省计算和带宽资源
- TCN(top change notice)→最先感知到top变化的交换机发送到报文,这个报文最终将要被传递到根桥
- TCN ACK:当交换机收到一个TCN报文的时候,向发送TCN的交换机发出的回复报文
- TC:根桥发出的,用于通知全网交换机,网络拓扑发生了变化(35s)
- 当交换机收到TC的时候,会将自己的CAM表老化时间由原来的500s调整到15是s,快速的将CAM表进行刷新,刷新之后就不再由关于发送故障交换机的MAC地址信息了
STP的特性
port fast
- 链接终端的接口,不会连接其他的交换机,所以也不会出现环路,但是这些接口依然受控于STP,当接口在启用的时候,依然要经历30-50s时间,所以要把连接终端的端口的选举机制去掉,让这些端口在启用后,迅速的进入到转发状态
bpdu guard/bpdu保护
- 只配置portfast的缺陷:当边缘端口/配置了portfast的端口接入交换机的时候,交换机会发送bpdu,则portfast接口会重新参与stp计算,造成环路或者二层的网络动荡
- 当交换机的portfast接口收到BPDU报文的时候,接口会切换到down(huawei)/err-disable(Cisco)的状态
bpdu filter
背景:
-
全局配置BPDU filter
希望这个接口处于边缘接口的角色,但是也可以接入交换机设备,一旦收到BPDU的时候,就会消失掉portfast的特性,成为一个普通的stp的端口 -
在接口情况下配置bpdu filter
相当于关闭了STP的功能,当收到BPDU的时候,可能会导致二层环路
uplink fast
- 主要作用:主动向其他交换机发送自己下联PC的MAC地址信息,让其他交换机快速更新CAM表
backbone fast
- BackboneFast是对UplinkFast的一种补充,
- UplinkFast能够检测直连链路的失效;
- BackboneFast是用来检测间接链路的失效。
- 当启用了BackboneFast的交换机检测到间接链路失效之后,会马上使阻塞的端口进入监听状态,少了20S的老化时间。
RootGuard
- 如果新接入的交换机优先级更低,将抢占原有的根网桥
- Root Guard是一种强制的根保护措施,它的作用是防止意外(或者非法)加入的交换机成为网络中的根桥