大家好,我是小乐,一名普通的网络工程师。
前几天,我看到新闻,说是日本、加拿大等地接连爆出通信网络故障,引发了大规模的网络中断。心惊之余,我也想起,就在不久前,我也遇到了一个非常诡异的网络故障,差点引发重大事故。
这个故障,到现在我还心有余悸。
今天,我就给大家讲讲我的故事——
我所就职的单位,是一家大型国企。平时,我主要负责网络维护的相关工作。
在我单位的网络中,有各种不同的业务,有的业务对网络实时性和可靠性要求很高。
因为年代久远,单位大部分业务所使用的网络设备,是某国外大厂的设备(姑且称之为S司设备吧,下同)。
我们单位的网络规模极其庞大,因S司的私有生成树协议已经先入为主,所以,目前很难将整张网进行国产设备替换。
故障发生在今年疫情中的某一天。
那天,单位轮岗上班,在岗人员较少。临近下班时,我正在执行巡检任务。突然,单位的综合监控系统开始“铛铛铛”的告警,对话框点完一个又出来另一个,冒个没完。
仔细一看,告警的设备一大堆,其中一个提示:某业务核心网络交换机(姑且称之为9型机吧)-B机的IP地址可用性异常!
情况紧急,我和办公室的几个同事赶紧下楼,直奔机房。慌乱之中,同事的鞋都差点跑丢了。
到了机房,值班的同事兴师问罪:
“都快下班了,what are you 弄啥捏?”
“冤枉啊,我们啥也没干!”
来到核心交换机B机的机柜前,定睛一看:我擦,整个设备除了电源灯,其它灯全都不亮了!啥情况这是?!
同事赶紧拿来了笔记本,接上Console线,登陆系统。结果,屏幕上只有“>”符号,根本没有出现熟悉的命令交互界面!
这套系统是A机和B机双机备份。我们赶紧用Console线接A机——谢天谢地,A机一切正常。
这些年,我们定期会对核心设备做切换演练,验证单机独立支撑网络。现在看来,没有白做。
有A机顶着,业务总算没有中断,我们也可以长吁一口气。
心理踏实些之后,我们赶紧就联系了保修公司。在等待之余,我们也在机房想办法,进行一些故障恢复尝试。
坦率地说,我干了十多年的网工,交换机板卡故障遇到了不少,整个设备宕机还是第一次遇到呢。
我先尝试把引擎拔出来,又重新插回去,设备没有反应。干脆,我祭出了重启大法,直接对整个设备进行断电。
薅掉四条电源线,等了半分钟,然后,重新插回去。运气不错,console界面开始显示自检。十多分钟后,设备启动完毕,一切恢复正常!果然……还是重启大法最好用啊!
故障虽然恢复了,问题原因要找到啊。于是,show tech,把日志啊配置啊一堆材料收集齐,发给了保修公司。保修公司再去找S司开“case”(上报问题,建立故障单)。
结果,就在等待反馈的过程中,还没过几天,核心交换机-A机也出问题了!
故障现象完全一致:状态灯全灭,系统无响应。
有了上次的经验,这次我们直接断电重启。十多分钟后,A机恢复正常,生成树切了,热备网关切了,对业务稍稍有影响,但总体可控,影响不大。
这就让人很纳闷了——上次是B机,这次是A机。难不成,这个故障和新冠一样,还会相互传染?A机B机变成了难兄难弟?S司设备现在这么不靠谱了吗?这才用了三年多,怎么就宕机罢工了呢?
当时,我们甚至把原因都想到了太阳身上。
因为,此前曾经有一次,使用S司的另外一型号设备,出现业务板卡故障。“case”给出的结论,就是近期太阳活动频繁,黑子耀斑啥的,造成设备内部信号紊乱,引发业务板卡重启(囧)。为此,我还特意收藏了中科院国家天文台太阳活动预报中心的网站,有事没事就上去看看(又囧)。
一边怪太阳,一边加紧催促S司尽快跟进“case”!
结果,“case”出来了,我们所有人简直无语。
“case”说,这是一个已知BUG,问题出在固态硬盘上。
原来,在这个9型机系列交换机的引擎上,使用了某光的某版本固态硬盘。这个硬盘在累计使用28224小时后,会自动锁死,从而导致引擎宕机。注意,是累计小时,就算关机重启也不会清零。
28224小时,掐指一算,1176天,差不多就是3年多一点的时间。
我们这两个发生故障的核心网络交换机,就是三年前启动的。相差几天宕机,可能是当时进机房加电时间不一样。
用人话来说,就是:“这机器有个定时炸弹,到了三年多的时间,就会爆炸!”
这叫神马玩意?!?!
无语之外,我们赶紧排查了所有的在网运行设备。结果发现,同样还有几台这个系列交换机,正在使用。
我们用case给出的命令,查看了一下累计小时。我勒个去,果然有一对支撑重要业务的交换机,到28224小时还有两天!更要命的是,这对交换机的累计时间是完全一样!也就是说,两天后,两台机器很可能会同时宕机!
这简直是要了我们的命。对于我们的业务运行,是毁灭性的灾难。
赶紧仔细S司的解决方案。S司给出的方案有两个:
1、升级NXOS系统;
2、升级某光SSD的固件。
短时间内对关键交换机进行关停升级是不现实的。于是,我们选择了升级SSD固件的方案。
到了临近28224小时的那天,大伙儿在办公室里如坐针毡,简直就是等待宣判。我坐不住,干脆跑去机房,蹲在机柜前,等着薅电源线。
幸运的是,到了28225小时,系统一切正常!看来,升级固件还是有用的!我们同事瞬时欢呼雀跃!
以上就是故障的整个过程。现在回想起来,我的手心都还在冒汗。
事实上,S司的这个故障隐患是极大的。这个9型机系列交换机,定位就是数据中心级核心网络交换,各大企业都会将它用在非常重要的业务上。
况且,核心设备基本上都是双机同时加电测试。三年内,基本不会主动去升级软件版本。这个重大缺陷,极有可能导致双机同时宕机,带来的危害是难以想象的!
最让人生气的,不是产品缺陷。因为产品有bug也是很正常的事情。
让人生气的是,S司明明知道这个bug,却不告知客户!他们卖出这么多设备,难道就没有建立客户档案吗?就没有进行设备售后跟踪吗?小设备就算了,这种大型关键设备,难道卖出去就啥事也不管了吗?
作为一家正常的公司,在发现缺陷后,应该查看产品或客户销售记录,积极主动通知客户,尽快规避或解决吧?下个通知单,有那么难吗?
我个人认为,通信网络设备也应该像汽车领域一样,建立召回机制。如果发生重大缺陷,厂商应该给国家有关部门备案,然后启动召回机制。
现在,通信网络设备是和水、电一样重要的基础设施,关乎国家安全、企业安全和消费者安全。厂商有义务建立更完善的跟踪和回访机制,监督售出设备的运行健康,保证网络安全。
好了,我的故事就讲到这里吧。
作为一名网络工程师,我讲这个故事,主要是为了分享经验,让大家引以为戒。
此外,也希望外界对我们网工多一些理解,多一些支持。现在网络产品很多,故障现象层出不穷,厂商有时候也有意无意回避一些产品缺陷,给我们挖坑。
我们已经很难了,不要每次出事都让我们背锅,可以嘛?