凌晨三点,专门自身某省运营商的采集机房告警灯闪烁。值班工程师老周登录网管系统,网络发现一台核心路由器出方向流量异常飙升,节点但所有接口的专门自身流量统计都正常。他盯着屏幕想了十分钟,采集最后敲了一行命令——查看设备自身的网络CPU占用率。果然,节点那台路由器正拼命往网管服务器发送SNMP Trap报文,专门自身原因是采集某个进程死循环了。
这个案例揭示了一个常被忽视的网络事实:网络设备自身的流量,和它转发的节点业务流量,根本是专门自身两码事。传统的采集NetFlow或sFlow抓的是“过路车”,而设备自己产生的网络报文——比如BGP Keepalive、OSPF Hello、SNMP响应、SSH登录会话——才是“本地户口”。前者反映网络负载,后者暴露设备健康度。但绝大多数监控系统只盯着前者,后者全靠人工排查,效率极低。
专门采集节点自身流量,技术上有条捷径:利用设备内置的control-plane CPU统计功能。以Cisco IOS为例,show control-plane host能直接列出发往CPU的报文类型和速率。华为设备对应的是display cpu-defend statistics。这些命令输出的数据,恰恰是判断设备是否遭受扫描攻击、路由协议是否震荡、甚至配置下发是否过量的金钥匙。
我见过一个更极端的场景。某银行数据中心做变更,网络团队批量修改了三十台交换机的SNMP Community字符串。改完后,监控平台突然收到海量认证失败告警——每台设备都在疯狂重试连接。从业务流量看,一切正常;但从设备自身发出的SNMP陷阱流量看,整个网络正在经历一场“自残式风暴”。如果没有采集节点自身流量,这个隐患可能要到下次巡检才能发现,而那时核心交换机可能已经因CPU过载而假死。
采集方法并不复杂。轻量级方案是写个Python脚本,定时SSH登录设备执行上述命令,解析输出后推送到InfluxDB。但生产环境更推荐用gRPC或NETCONF的遥测功能——华为的Telemetry能毫秒级推送CPU保护统计,思科的模型驱动遥测(MDT)同样支持。关键在于,得把“设备自身流量”从总流量里单独剥离出来建索引,否则混在一起看,就像用机场总客流判断某架飞机是否超重——毫无意义。
有个细节值得注意:很多网工习惯用SNMP轮询设备CPU利用率,但这和“采集节点自身流量”是两码事。CPU利用率是结果,自身流量是原因。一台设备CPU 80%,可能是被突发的OSPF更新打满,也可能是被某个错误的ACL日志刷爆,甚至可能是网管自己轮询太频繁导致。只有看到具体是哪种报文在冲击控制平面,才能精准定位。
最后说个反直觉的观察。越是高端的设备,自身流量占比越低——核心路由器的转发面和控制面物理分离,自身报文几乎不干扰业务。反倒是那些边缘接入交换机,因为要跑大量STP、LLDP、MAC地址漂移通知,自身流量能占到控制平面带宽的三成以上。所以,别只盯着核心设备,接入层那些“小角色”的自身流量,往往藏着最接地气的故障线索。