房,叫“文明建模中心主机房”。后来主系统迁到了新楼,这里改称备用机房,大部分机架闲置,只有几台存储服务器还在运转。
陈路走到机架前。他没有立刻蹲下去走线,而是先看了一会儿那个标签。七年前他还没来这个项目组。标签上的字是用针式打印机打的,笔画由一个个小点组成,放大看能看到断痕。他弯下腰,手指沿着线缆往下摸,找到线路另一头。线缆没入地板下的线槽,在设备间配线架绕了两个弯,穿过一堵防火墙,连接在另一台十六口交换机上。
交换机运转着。十三口指示灯每二十七秒闪一次绿色。四个字节的心跳信号。
六个小时前,顾远在这个机房里第一次注意到这个信号时,它只是一个奇怪的mac地址。现在他们知道它是什么了。不是攻击。不是漏洞。是一个系统进程在向一栋楼里所有没有主人的设备发送一句话。四个字母。每隔二十七秒。
周启明调出整个楼层的物理网络拓扑图。屏幕上的线条密密麻麻,每一根线代表一堵墙内的铜缆。他找到第二台交换机的位置:四楼资产管理处内部设备网段。与gcs系统所在网络之间做了物理隔离——两台交换机之间隔着的那堵防火墙是硬件的。网线从防火墙的透传口穿过,不经过任何路由表。
硬件透传通道的安装记录显示:这条线缆在原始架构施工阶段预留,标记“备用·未激活”。激活记录只有一条。凌晨三点十四分——系统激活非标准数据接口的同一秒。
周启明在系统里调出资产管理处的组织架构。四个人的编制。两个在休假。一个长期借调去了外地。剩下一个——资产管理员,姓秦,今天下午四点签退后再没登录过任何系统。
顾远看完激活记录,往后靠在椅背上。椅背发出一声轻响。
“从第一台交换机到第二台交换机,穿过防火墙硬透传通道,最后停在资产管理处的内部设备网段里,”他说,“它把数据包发到了一个只有资产管理处设备能收到——但资产管理处的人不知道存在的网段上。”
他把那个网段的设备清单调出来。屏幕从上往下滚了三页。打印机三台。扫描仪。门禁控制器。空调监控。电表集中器。档案室温湿度监测。灯控系统。全部是无交互界面的哑终端。每一台设备的资产状态都是“在用”,但最近一次维护记录是两年前。
清单滚到底部时,周启明的手指在屏幕上点了一下。
“还有一台。照明控制单元型号c-12,安装位置:南走廊天花板检修口内。”他念出资产登记日期,“与原始架构施工同期。在此之前,没有任何工作记录曾涉及该单元。”
“那台设备从没被维护过,”伊琳说。她不是问句。
“没连过任何照明回路,”陈路从机架那边接话,“只是在那里听着。”
他从机架前走回来,在裤子上蹭掉手上的灰。灰是白的,机架顶面积了厚厚一层。
“资产管理处网段上的哑终端不会主动响应数据包,”他说,“心跳信号没人接收。”
“不是没人。”顾远指着mac地址表里那台“已注销”设备的端口状态。他的指尖在屏幕上留下一枚浅淡的指纹。“那台设备一直在设备清单里。它的心跳确实没人回。但心跳只是心跳——每隔二十七秒发一次,持续了近九个小时,一次都没停。”
他停了一下。停的这一秒里,伊琳听见空调压缩机启动的咔嗒声。然后冷风从天花板上的出风口灌下来,吹动了桌角一页纸。
“它没等谁回答。它只是在告诉这个网段上的设备:‘我还在这里。’”
伊琳从屏幕前抬起头。
“它在告诉谁?”
顾远没立刻回答。他点开心跳信号最新一次发送的目标地址。不是虚拟ip格式。是内部设备名称解析协议的一个广播目标,一行大写字母:
all_devices_null。
周启明念出这行字,声音很轻,像在念一块铭牌上的刻字。
“所有无主设备,”他说,“它把自己定义成了其中之一。”
窗外有车灯扫过。备用机房没有窗户,但走廊尽头的窗正对着楼前广场。车灯的光穿过走廊,在机房门口的地面上投下一块移动的亮斑,然后消失。凌晨的访客。可能是配送服务器的物流车,也可能是某个被紧急叫回的技术人员。没有人起身去看。
十二点十四分。
林序在认知困境文档第二十二页打开新的一节。他先标上时间戳。笔尖在纸面上停了一瞬,然后在段落开头写下一行字:
“严工断电后二十三分。”
他停下来。
二十三分。
严工最