摘要

  • RFC 1270主张SNMP通常应通过UDP/IP传输,因为管理消息必须跨越路由器,并摆脱对某种底层链路技术的依赖。
  • 路由、校验和、复用与分片属于网络栈功能;只针对链路的管理通信可能被困在它要观察的网段内。
  • 这份备忘录属于信息性文件,而非新标准;它没有宣称UDP/IP能在网络彻底失效时保证管理消息送达。

管理路径必须离开本地链路

到1991年,SNMP的任务已经是让管理站点检查和控制网络设备。但如何抵达这些设备,带来了一个实际问题:SNMP消息应直接依附于每一种本地网络技术,还是通过连接不同网络的互联层传输?

RFC 1270为普通互联网使用选择了后者。它的论点始于一个在协议图中容易被忽略的事实:管理站和被监测设备通常不在同一条物理链路上。只适用于以太网的管理交换,可能抵达一个网段里的设备,却无法自行穿过路由器去访问另一个网段。网络层地址和路由路径则可以做到这一点。

这一区别降低了管理平面对本地介质的依赖。不同链路技术可以互联,而IP在其上提供共同的一层。同一种SNMP消息于是可以穿过一串路由器,管理应用不必逐跳了解每一段使用何种链路。

网络层承担的不只是封装

备忘录没有把IP当作装饰性的外壳。它列举了网络管理通信所需的工作,并认为网络层已经提供了其中许多能力:路由可以绕开局部故障区域;IP不依附某一种底层物理介质;IP首部校验和、复用与分用,以及在链路传输单元大小不同时进行分片和重组,也都由现有网络栈承担。

这些能力各自降低一种协调成本。路由让管理可以越过网络边界;介质独立性避免为每种链路重写一套管理传输;复用让管理流量与其他网络协议共存;分片让报文穿过尺寸限制不同的链路。不过,分片也有代价:若一个片段丢失或延迟,完整数据报就无法重组。因此RFC 1270建议在运行不佳的网络上使用较小报文。

这并不意味着IP能在任何故障下维持管理。如果一个区域受损但仍有替代路由,路由机制可能保留一条通往其后设备的路径。如果唯一可用路径或目标设备本身消失,UDP不会创造新路径,也不会保证回复。即使网络负责观察自己,观测能力仍取决于网络。

讨论性备忘录,而非普遍法则

RFC 1270明确说明了自身地位:它是一份信息性备忘录,不规定互联网标准。当时有效的SNMP规范RFC 1157指定用UDP交换SNMP消息;RFC 1270称,UDP当时是唯一已标准化的SNMP传输方式。因此,它对UDP/IP的建议既依托现行标准,也来自对互联网互操作性的判断。

备忘录也保留了例外。专用的带外点到点网络可能不需要IP路由。操作系统如果提供可管理的链路驱动接口,直接访问也可能适合某台设备。这些例外没有推翻一般论点;它们说明,通信服务要由拓扑和被管理对象共同决定。

后来,RFC 1418为UDP/IP不可用的环境规定了SNMP over OSI无连接传输服务,同时仍称UDP/IP更适合大多数互联网环境。这段后续历史提醒我们:1991年的选择并非关于管理协议只能使用一种传输的绝对法则,而是针对当时预期网络的一种务实答案。

查询成功并不能证明什么

为路由管理路径辩护,不等于证明管理操作成功。通过UDP发出请求并不是确认回执。路由地址不能证明回复者就是预期设备。收到回复也不能证明所有中间网段都健康;没有回复更不能说明究竟是节点故障、网络分区、过滤规则、拥塞、分片丢失,还是路由缺失。

RFC 1270设计论证的历史价值正在于此:管理通道必须足够宽,能够穿越网络路由结构;也要足够中立,不受底层链路媒介变化牵制。但通道返回的证据本身有边界。网络可达性、设备状态、请求送达、响应接收和操作员后续行动,是不同的事件。架构扩大了管理消息可到达的范围,却没有把这些事件压缩成同一种证明。

来源:RFC 1270;RFC 1157;RFC 1418。