摘要

  • RFC 1304 的三级接收计数只纳入无错误 PDU;sipL3Errors 统计因协议处理或比特错误而被丢弃的 PDU,同时排除地址相关错误。
  • 地址语义错误另有计数,目的地址筛选违规又被明确排除并交给订阅 MIB;所以“总数”只在规定的分母内完整,不是全网所有丢弃。
  • 错误表每种类型只保留最近一次记录,RFC 1694 又把若干计数迁往 ifTable;没有对象来源、时间基准和迁移历史的数字不能承担运营结论。

一个消失,三本账

1992 年 2 月发布的 RFC 1304,为 SMDS Interface Protocol,也就是 SIP 接口定义了一组 SNMP 管理对象。它面对的是分层系统:三级 SIP、二级 SIP、物理层汇聚过程,下面还有 DS1 或 DS3。管理责任也随之分开。传输层已有自己的 MIB,订阅和用户—网络接口配置则属于另一份规范。

这种分工直接决定计数的含义。单播地址和组地址的三级接收对象,都只统计没有错误的 PDU。它们并不是“碰过接口的所有包”,而是已经通过某种判断后的集合。

因此,接收数增加可以证明这个集合发生了活动,却不能反推筛选之前的输入总量,更不能告诉读者,包是否抵达应用、是否被应用接受,或者是否产生外部结果。

“总错误”也有边界

sipL3Errors 的描述很具体:从远端收到、被发现存在协议处理错误或比特错误、因而遭到丢弃的三级 PDU。它同时写明,不含地址相关错误。

RFC 1304 随后说明,三级 PDU 的错误合计还要把语法类与语义服务类组合起来。后者包括无法识别的单播目的地址、无法识别的组地址和无效 SMDS 地址类型。看起来,拼图似乎已经完整。

但紧接着,文档划出另一条线:公共 SMDS 网络还可能因为订阅违规丢弃 PDU,相关对象在 SMDS Subscription MIB 中。目的地址筛选违规也不计入“无法识别目的地址”。同一次消失,可以是协议账、地址账或订阅权利账中的一项,不能由其中任何一个维护者单方面宣布原因。

最近一次不是全部历史

RFC 1304 的错误表为十二种三级语法错误保存记录,包括地址格式、长度、头扩展位置、起止标签不一致和接收间隔超时。每个接口、每种错误各有一个位置,里面放被拒绝的源地址、目的地址与时间戳。

这个设计保存的是“最近一次”。下一次同类错误会覆盖上一次。它没有记录每个事件,也没有表达频率、持续时间、修复动作或用户影响。时间戳来自 sysUpTime,必须放回设备自身的运行周期才能理解。

如果时间戳为零,RFC 1304 规定该行没有有效信息。零不是健康证书。它只承认这一个槽位无法作证,并没有替订阅系统、应用或其他错误类别发表意见。

空分支没有执行能力

MIB 树里预留了 SMDS 运营商选择分支,但文档称它只是 placeholder。坐标已经存在,不等于对象已经定义,更不等于设备具备选择逻辑或作过选择。目录位置属于符号层,运行能力属于实施层。

IP-over-SMDS 表又展示了另一种非一一对应。它把 IP 地址、SMDS 个体地址、逻辑 IP 子网的组地址和 ARP 请求目的地关联起来;一个 SMDS 地址可以对应多个 IP 地址,一个用户—网络接口也能属于多个逻辑子网。看到一行,不能自动推出一个唯一客户、一个唯一网络或一个唯一业务。

标准把这些对象定义成只读,同时允许 agent 自行决定把它们做成可写,让“得到适当授权”的管理站修改逻辑子网配置。标准许可、产品实现、身份验证、授权决定、写请求和最终状态,是六份证据。任何一份都不能吞掉其余部分。

数字搬了家,历史不能假装没搬

1994 年的 RFC 1694 废止 RFC 1304,用符合 SMIv2 的模块取代它,并称新旧定义在语义上相同。不过,多项 SIP 计数被弃用,查询入口转到通用的接口表。

这种迁移最容易制造一条过分平滑的曲线。采集器若同时抓取新旧对象,可能重复计数;若突然切换,可能产生人为断点;若丢失接口索引和重启信息,就难以证明两段样本属于同一个观察对象。

RFC 1694 给出规范上的新地址,却没有证明任何 agent、采集器或历史数据库完成了迁移。发布是协调事实,采用则必须在运行系统里验证。

MIB 不拥有业务结果

RFC 1304 没有报告真实计数,也没有点名部署。它的安全章节只说本文不讨论安全问题,因而不能从对象定义推导采集通道可信、报告者已认证或写操作已获授权。

这份旧 MIB 最值得继承的恰恰是边界意识。一个计数器可以严格、完整而有用,同时仍然只回答一个有限问题。把分母、排除项、时间基准、对象标识和管理者一起保存,数字才是证据。只留下“total”,数字就会开始替它无权代表的系统说话。

来源