摘要

  • RFC 2019 规定:在 FDDI 上收到带非零 LLC 优先级的有效 IPv6 路由器通告、邻居通告或邻居请求,可以作为“这条邻居路径未经过以太网”的有限证据。
  • 这条证据只允许向该邻居单播至 4352 字节;混合介质与组播仍守最小 MTU,RFC 2467 又在 1998 年移除了该方法。

混合局域网最稳妥的办法,是让所有节点都服从最小 MTU。RFC 2019 正是从这个保守底线起步:FDDI 接口的 IPv6 默认 MTU 为 4352 字节;路由器通告或人工配置可以把它调低;高于默认值或人工上限的通告,至多记入日志,除此之外应被忽略。

问题在于,最小值会把一个较小介质的限制施加给所有 FDDI 邻接,即使两个节点之间的实际局部路径根本没有接触那个介质。1996 年的 RFC 没有试图发现完整拓扑,而是读取网桥在帧上留下的痕迹。

启用机制后,FDDI 接口会在三种邻居发现报文上设置非零 LLC 优先级:路由器通告(RA)、邻居通告(NA)和邻居请求(NS)。RFC 2019 的前提是,IEEE 802.1D 网桥把以太网帧转换到 FDDI 时会把该优先级清零。因此,起源于以太网或途中经过以太网的帧,到达 FDDI 时不再带有这枚标记。

若节点 N1 从 N2 收到一份有效且优先级非零的 RA、NA 或 NS,N1 就可以在 RFC 的前提下判断:这一次观察到的邻居路径没有经过以太网。于是,即便接口的共同配置或通告值更小,N1 仍可向 N2 单播最多 4352 字节。N2 既可能是最终目的地,也可能只是下一跳路由器;若是后者,许可到这一跳就结束了。

这里的边界比数值更重要。标记没有证明端到端路径,不保证下一帧沿同一路径,也不证明交付或应用完成。“有效”只是符合当时邻居发现协议的验证条件,并不等于通过身份认证。同期 RFC 1970 还明确区分了“收到未经请求的链路层信息”和“确认双向可达”;后者在其缓存处理里要靠被请求的邻居通告。

组播从未得到同样的放行。RFC 2019 要求组播包不得大于桥接局域网所有介质中的最小 MTU。组播面向一组接收者,不存在一位被标记报文单独证明的邻居,可供双方私下采用更大值。因此,共享投递继续使用共同底线,额外能力只被用于特定邻居的单播。

实现还必须提供关闭该机制的接口选项,虽然默认是开启。关闭后,三种控制报文都以零优先级发送,自然也不能为例外提供证据。RFC 2019 说,优先级本可加在所有 IPv6 包上,但为这项用途只标记三种控制报文已经足够。

这是一种克制的证据消费:边界动作排除一种可能性,接收方只获得一项可回退的许可。它不是拓扑预言机,更不是安全断言。RFC 2019 的“安全考虑”甚至明确说没有处理安全问题;官方资料也没有给出部署率、吞吐收益或时延收益。

1998 年 12 月,RFC 2467 取代 RFC 2019。新文本保留 FDDI 的 4352 字节默认 MTU,也保留桥接较小介质时的保守规则,并继续忽略高于默认或人工上限的通告。然而,它在变更清单中明确移除“FDDI 邻接检测”,理由是 IEEE 802.1p 的近期发展。它还警告:除非已知网桥正确实现有关机制,否则不应依赖跨网桥的路径 MTU 发现。

这不是把 1996 年的设计倒写成失败故事。可核验的历史结论更窄:当承载证据的优先级语义发生变化,继任规范便不再保留原有推断。原来的共同底线仍然有用,依赖边界语义的例外则被撤回。

这枚标记究竟说明什么

观察 RFC 2019 允许的判断或动作 没有得到证明的事项
FDDI 收到非零优先级的有效 RA、NA 或 NS 按 RFC 前提,这次从该邻居观察到的路径未经过以太网 完整路径、长期不变、认证、交付、应用成功
已识别该邻居 可向该邻居或下一跳路由器单播至 4352 字节 组播与后续跳的能力
通告或人工设置更小 MTU 采用保守的共同限制 每个 FDDI 邻居都只能用该值
通告更大 MTU 可以记日志 获准突破默认或人工上限

来源