这网络环路,真不是闹着玩的,说崩就崩,得好好学学,谁也不想摊上这事
有一次,一个单位的网络,直接瘫了,所有人都蒙了,怎么回事,然后一点点查,发现是STP配置出了问题,一个小小的配置错误,整个网络就崩溃了,你说气人不气人,但是也没办法,得解决啊,所有人都觉得以后面对这种问题一定要小心了,所有人脸上都没光。
这环路啊,它可不是个善茬,风险可多了,第一个就是这个根桥选举,默认情况下,谁的设备ID小,谁就是根桥,问题是,有时候一些很小的交换机,可能比核心交换机 ID 还小,那不就乱套了吗,整个网络拓扑都乱了,想想都可怕,所以说啊,核心交换机一定要手动指定为根桥,这个很重要,省的到时候着急上火,但是有的人就是不听劝,就是感觉我自己的没有问题,最后出了问题才知道,当时有多么不听劝。
还有就是接入层设备,你要是不开启 BPDU 防护,那更麻烦,有些不怀好意的人,或者就是不小心,把一个带防火墙的路由器接到网络里,这玩意发个假的 BPDU,说自己是根桥,那接入层的设备就信了,整个网络就开始漂移,想想吧,数据乱窜,网络卡死,用户抱怨,你得背锅,所以说,BPDU 保护一定要开,不开就是给自己找麻烦,但是有的人就是不在乎,出了事就傻眼了。
用户私接设备,也是个大问题,有些人不懂网络,或者觉得自己懂,随便接个交换机或者路由器,形成物理环路,广播风暴直接就来了,网络瞬间瘫痪,所以啊,网络管理一定要规范,禁止私接,发现一个处理一个,不能手软,手软就是对自己残忍,但是好多公司管的很松散,也没人在意,只能等着出事。
STP 协议也得统一,STP、RSTP、MSTP,三种协议混着用,那肯定出问题,邻居都认不出来,阻塞也失效,环路肯定会发生,所以啊,要统一,用同一种协议,省事,省心,不出错,可是有的公司就是喜欢搞特殊,结果把大家都坑了。
这个 `display stp` 命令,可太重要了,得熟练掌握,先说这个 `display stp brief`,能看全局,Root Bridge ID 是不是你预期的核心设备,Bridge ID 是不是你自己的设备,Role 和 State 都得看清楚,万一汇聚或者接入设备被误判为根桥了,赶紧处理,别等着出大事,可是好多人都不会用,就知道瞎蒙,最后把事情搞砸了。
再说说 `display stp interface`,这个命令能看接口状态,Port Role 是根端口还是指定端口,Port State 是转发还是阻塞,Peer Bridge ID 是不是相邻的设备,这些都要搞清楚,如果发现非汇聚或者核心端口处于转发状态,那就要小心了,可能有环路,得赶紧查,但是大多数人都忽略了,以为没事儿,结果就出事了。
`display stp statistics` 也能用得上,看看 BPDU 收发次数有没有异常,如果接入口 BPDU 接收量激增,那可能就是错误的配置或者恶意攻击,汇聚口 BPDU 丢包严重,那可能就是环路导致 BPDU 大量丢失,得赶紧处理,要是你不懂这些,出了问题,两眼一抹黑,根本不知道怎么办,只能等着别人来救你。
防环配置,一定要做好, 首先,手动配置根桥,用这个命令 `stp root primary`,确保核心设备成为根桥,别让小交换机抢了风头。 开启 BPDU 保护,用这些命令 `stp edged-port enable` 和 `stp bpdu-protection`,这样一旦收到 BPDU,自动把端口 shutdown,避免接入设备误成根桥,还有,开启环路检测,用这个命令 `loopback-detect enable`,快速识别本地环路,这些配置,看起来简单,但是真能救命。
真要出了环路,排查流程是这样的,先定位异常现象,全网异常,那就说明问题大了,赶紧用 `display stp brief` 查找根桥信息,判断根桥是不是正常,然后用 `display stp interface...` 检查每个端口的信息,找出可疑端口,找出收到异常 BPDU 的端口,锁定接入设备,最后用 `Loopback-detect` 辅助检查环路口,现场排查,补齐防环机制,这样才能彻底解决问题,但是好多人都是乱排查,根本没有章法,结果越搞越乱。
所以说啊,一定要主动预防,掌握 STP 原理和 `display stp` 命令的运用,指定根桥和 BPDU 防护,这些都是血泪教训换来的,不重视不行啊,只有这样,才能避免网络环路,才能保证网络的稳定运行,不然,出了问题,你想哭都找不到地方。 大家都在想,这到底是怎么一回事, 很多人看完这个故事,都会去想...
