「思科NA培训」CCNA-7 STP生成树协议部分
关键字:服务器基础、存储技术基础、计算机网络基础、数据库基础、虚拟化技术基础
摘要:掌握STP技术的方法。
STP基础
一 背景
前文我们学到,当三个交换机形成环路时会产生广播风暴。
为此通过生成树协议STP,在提高网络可靠性的同时避免环路带来的各种问题。
生成树算法STA是生成树协议STP的核心,其目标在于构建一个能遍历所有节点的树型无环逻辑拓扑。
二 生成树算法的三个步骤
1、选举根交换机——网桥ID(BID)最小者当选
(1) 网桥ID=优先级+MAC地址
(2)比较方法:
· 优先值越小,BID越小
· MAC地址从左往右,数值越小,BID越小
2、选举根端口RP(Root Port)
在每一个非根交换机选一个RP,一个交换机仅有一个
选举方法:
· BPDU接收端口到根交换机的路径成本最小
· 对端网桥ID最小
· 对端的端口ID最小
在E交换机中,其对端只有一个D,故需通过第三个判断条件,即对端端口最小来判断。
3、选举指定端口DP(Designated Port),并阻塞备用端口
每一个网段有且仅有一个指定端口DP
选取方法:
· 根交换机的所有端口都是指定端口
· 根端口RP的对端端口一定是指定端口
· 到根交换机路径成本最小的为指定端口
· 本端的网桥ID最小
最后剩余的端口成为备用端口AP,将它们阻塞!
1、讲的最好!湖科大教书匠-交换机的生成树协议STP-哔哩哔哩】 https://b23.tv/lZTwcl8
2、【STP选举根桥、根端口、指定端口-哔哩哔哩】 https://b23.tv/dbg8oAC
三 实验测试
1、查看优先级、MAC地址等
四 STP选举过程详解
1、根交换机选举
在最开始的时候,所有交换机都会认为自己是根交换机,都会发送一个配置BPDU报文,BPDU的Root ID都是各自的优先级+MAC地址。
第一轮选举(先认清自己是小弟)
在ABC上半部分,A、B、C各自发送和接收BPDU,B、C先拿自己跟A、D比,比不过(甘当小弟,但大哥未定);
再拿A和D比,发现A更大,是更大的大哥。故选出A的Root ID最小,为根网桥。
B、C的Root ID更改为A的值(认大哥的名头了)。
在BCD下半部分,D在比对自己和B、C后,仍认为自己是根网桥。
第二轮选取(2个大哥的角逐)
在第二轮选举中,D接收到B、C中BPDU含Root ID=A的更小的信息,认怂当二哥,修改自己的Root ID为A。
tips 1:值得注意的是,当拓扑结构越来越复杂,树结构越来越深时,会有更多需要二轮、三轮、四轮的“D”需要选举,这无疑会导致耗时的增多。
tips 2:认了小弟后就只能转发BPDU,只有根交换机才配发送BPDU。
1、【文字选举】https://zhuanlan.zhihu.com/p/139844708
2、【进阶NP讲解】https://www.bilibili.com/video/BV1sy4y1C7TZ?p=10&vd_source=7ca2f78bb398ed8ad30a2d6cdf374471
五 STP的五种端口状态和三种端口角色
STP定义了五种端口状态:Disable、Blocking、Listening、Learning、Forwarding。
STP定义了三种端口角色:根端口、指定端口、阻塞端口
五种接口状态:
Forwarding:接口转发用户流量和BPDU。只有根接口和指定接口才能进入此状态。Learning:为了防止出现临时的二层环路而设置的一个类似于过渡的状态,此时设备会根据收到的用户流量构建MAC地址表而不转发用户流量。
Listening:该状态表示设备正在选举根桥、根接口和指定接口。
Blocking:表示只接受和处理BPDU,不转发用户流量。
Disabled:接口Down(阻塞)掉。
Q:为什么从Listening到Forwarding需要经过learning?
A:当拓扑稳定后,如果发生链路故障,网络会重新进行生成树的计算,逻辑拓扑也会发生相应的变化。但重新计算得到的新的配置消息不一定能够立即传遍整个网络,如果此时新选出的根接口和指定接口立即进入Forwarding的话很可能会造成临时的二层环路。为了防止环路的产生,STP中,新选举出来的根接口和指定接口需要经过两倍的Forward Delay才能进入转发状态。【补充】
在发生拓扑更改时,交换机会发送一种名为TCN BPDU(拓扑更改通知BPDU)。
【TCN详解】https://wenku.baidu.com/view/4cb4e51432126edb6f1aff00bed5b9f3f90f72b3.html
【STP详细-知乎】https://zhuanlan.zhihu.com/p/38982648
RSTP基础
一 为什么RSTP
RSTP,即Rapid STP(快速生成树协议),主要在于弥补STP存在的问题:
拓扑变化收敛机制不灵活
所有交换机发生拓扑变化,都需要根交换机的批准同意。小到村长修条路,只有皇上一个人决策所有。
主机的频繁上下线,产生大量TCN
临时环路问题
当根端口出现问题,转换开启备用(阻塞)端口时,STP需要30s~50s的延迟。因为若直接打开,可能造成临时环路
非相邻链路异常问题
当非相邻链路出现问题时,必须等待C1、C2的通知才能进行调整,开启阻塞备用端口
RSTP和STP的改进之处:
减少了端口状态
增加了端口角色:
- 根端口
阻塞端口改为Alternate替代端口+Backup备份端口
BPDU格式及发送方式不同
当网络拓扑发生改变时,RSTP科更快的恢复网络连通性
Tips:替代端口是根端口的备胎,备份端口是指定端口的备胎
二 RSTP的P/A协商机制
讲的非常形象生动的P/A机制,需要反复观看:
【一秒收敛?快速生成树RSTP就是比STP强,不服来战!-哔哩哔哩】 https://b23.tv/B5wqMM6
三 RSTP的三个快速收敛机制
边缘端口:交换机不知道所连接的是PC还是另一台交换机,故都会进入等待,协商等步骤。而工程师可以手动配置,减少延迟时间。
根端口快速切换:🔍🔥
指定端口快速切换:P/A机制,根据强弱快速切换。(见上文视频)
【十分钟理解RSTP快速生成树 交换技术基础-哔哩哔哩】 https://b23.tv/ErxysfU
MSTP
一 为什么
上文我们学习了STP以及改良过的RSTP,那么为何会又升级为MSTP呢?
STP和RSTP缺陷如下:
- 单生成树:阻断的那路部分的VLAN无法正常通信
- 无法流量分摊:被阻断的链路只能当作备用,而无法利用起来,导致了带宽资源的浪费
- 次优二层路径:由于环路中有阻断的路,所以在通信传输过程中会出现绕远路的情况
1
二 是什么
MSTP(Multi-Instance Spanning TreeProtocol)多实例生成树协议,实例就是多个VLAN的集合。
会根据每个实例具体划分根交换机,且独立计算端口状态。在不同的实例中,生成不同的树,选举不同的根交换机,阻塞不通的端口。
【6.2.5 MSTP&ERPS-哔哩哔哩】 https://b23.tv/5RZ8s3u
三 怎么做
STP Toolkit(STP优化工具包)
【整体介绍的优秀视频】知乎:https://www.zhihu.com/zvideo/1489743415251861504
一 分类
Fast Converge(快速收敛):
· Port Fast:对终端PC手动进行配置
Secure the STP(STP安全):
· Root Guard:保护根交换机不因新增而变动
· BPDU Gurad:
· BPDU Filter
· Port Security
Loop Prevention(防环):
· Loop guard
· UDLD
二 PortFast
1、功能:
2、配置方法:
Globa全局方式:(所有access都会变成portfast)
Switch(config)#spanning-tree portfast default
Interface具体端口配置:
Switch(config)#int fa0/1
Switch(config-if)#spanning-tree portfast
显示效果:
show spanning-tree interface f0/1 portfast
show spanning-tree interface f0/1 details
三 BPDU Filter
1、功能:
Tips:全局和具体端口配置中其具备不同特性!
全局配置特性:
- 只对portfast端口起作用:我们知道global是对一个交换机的所有端口都配置功能,但当有一个端口为non-PF模式时,该配置仅对其他PF端口起作用
- 全局模式下,不会filter接收,只会filter发送:例如A–>B,若在A端口配置BPDU Filter,只会过滤A发给B的BPDU而不会过滤B发给A的BPDU。
- 自动转换:在连接PC时,交换机发送的BPDU会被丢弃,BPDU Filter检测到后就不再发送了。当连接的PC机被换成交换机时,原交换机接收到新的BPDU,便会关闭Filter和PortFast并重新进入生成树。
端口模式配置特性:
- 端口模式下,接收和发送都会filter过滤。
- 与PortFast状态无关:即使不是PortFast状态也可进行过滤
(这种模式较为危险,等同于关掉了生成树,不用!)
(不建议使用BPDU Filter!容易造成环路!)
2、配置方法:
Globa全局方式:
Interface具体端口配置:
显示效果:
四 BPDU Guard
1、功能:
在路由器和PC相连中,若偷偷将PC换成优先级更高的交换机接入,就会打乱原先的所有根交换机等的选举。
为此,通过BPDU Guard,当检测到新的SW4接入时,将与之相连的端口改为error disable状态进行阻断
【【IELAB】一分钟就学会什么是思科生成树 bpdu guard防护 网络工程师一学就会-哔哩哔哩】 https://b23.tv/Kdi6GIm
2、配置练习:
五 Root Guard
1、功能
在已经选举好根交换机的生成树中,若有个黑客接入一个高优先级的交换机,就会改变原有网络结构,同时黑客的交换机变成Root Switch,从而控制流量的转发。
这便需要Root Guard进行防范!(在黑客接入的那个交换机的端口)
2、配置练习
Switch(config-if)#spanning-tree guard root
六 Root Guard VS BPDU Guard
BPDU Guard:只要收到BPDU,就阻断与之相连的端口disable
Root Guard:只有收到更高级别的BPDU,才会把该交换机放入root-unconsistent(不参加树选举的表)中
七 Loop Guard
疑问?
1、一台交换机有几个MAC地址?多个端口也有各自的多个MAC地址吗?
在选举比较网桥BID时比的是哪个MAC地址?
查看MAC地址表
比较全的资料包:https://wenku.baidu.com/view/8242491840323968011ca300a6c30c225901f08f.html