摘要

  • RBridge 昵称是对 IS-IS 身份的 16 位动态缩写;结合 M 位后,同一字段还可能表示出口 RBridge 或分发树,孤立的数字没有完整语义。
  • 更高优先级的可达申领者能够迫使原持有者重新选号,哪怕原值来自配置。可靠记录必须保存双方 LSP、修正后的裁决规则、有效时段以及数据面结果。

网络合并前,两个 TRILL campus 都把 0x2A10 视为唯一。边界打开后,两份 LSP 同时进入新的链路状态视图。监控台看到“重复设备编号”,资产库尝试合并记录,协议则开始做另一件事:比较两个申领的优先级,让失败者换号。

三种系统都在处理同一个数字,但只有协议没有把数字当成人。昵称解决的是报头长度与转发引用问题,不是资产认证问题。它可以被重新选择、在重启后尝试复用、因拓扑合并而碰撞,也可能在不同报文语境中承担不同角色。

Donald E. Eastlake 3rd 多次参与这套语义的公开形成。他是 TRILL 基础规范 RFC 6325 的共同作者,领衔撰写规定 TRILL IS-IS 编码的 RFC 7176,并领衔完成纠正昵称裁决规则的 RFC 7780;后来又参与多层 TRILL 唯一昵称方案 RFC 8397。IETF Datatracker 人物页确认其姓名与公开文献记录。这些 RFC 都是集体标准工作,不能被改写成个人发明神话,更不能用来推定他控制某个实际网络。

短编号是关系,不是主体

RFC 6325 将昵称定义为动态分配的 16 位数值,用来缩写 RBridge 的 IS-IS ID。底层身份与短值本来就是两个字段:前者提出申领,后者在特定链路状态中获得含义。

一个 RBridge 通常持有一个昵称,也可以请求多个。成功获得昵称后,设备在重启时“应尝试”复用旧值。这里的动词非常重要:尝试不是保留,更不是对机箱连续性的证明。重启期间,其他可达节点可能已经以更高优先级申领同一数值。

同一字段的意思还受 M 位约束。对已知单播 TRILL Data,M 为 0,出口昵称指向负责解封装并送出原生帧的 RBridge;对多目的流量,M 为 1,出口昵称选择的是一棵分发树。把报文中的 0x2A10 抄进“设备编号”列,会同时丢失它是节点引用还是树引用的区别。

因此,任何昵称观察都至少需要报文类型、M 位、入口或出口位置、申领者、时间与拓扑范围。数字只是索引,语境才是陈述。

一条昵称通告含有两种优先级

RFC 7176 的 Nickname Sub-TLV 让申领变得可核验。每项记录包含 Nickname.Pri、Tree Root Priority 和 16 位 Nickname,外层 LSP 还带来始发 IS、序列与寿命。

两个优先级回答不同问题。Nickname.Pri 用于昵称碰撞时的持有权比较;Tree Root Priority 用于分发树根选择。若数据库只保留一个“priority”,后续人员既无法重算赢家,也无法解释树为什么如此形成。

Nickname.Pri 的最高位表示昵称是否来自配置,低七位承载数值优先级。配置值相对非配置值具有优势,但配置不是产权证。规范明确允许配置昵称在冲突中失败并选择替代值。

真正的最小记录不是“昵称属于设备”,而是“某个 IS-IS 身份在某一 LSP 中、以某个优先级和树根优先级通告了该值”。接收时间与链路状态库版本决定这句话的有效范围。

后续 RFC 改变了应当判谁获胜

RFC 6325 原文中的碰撞裁决句存在错误。RFC 7780 给出修正:数值更高的优先级保留昵称;优先级相同时,再由数值更高的 7 字节 IS-IS ID——伪节点场景为 LAN ID——获胜,另一方必须重新选择。

这不是可以忽略的勘误细节。两个取证工具若分别采用旧句与新句,可能面对同一组字节却给出相反赢家。决策日志必须注明所用规范版本,保留比较输入,而不能只写“冲突已解决”。

参与比较的集合也随可达性变化。RFC 7780 要求碰撞检查忽略 IS-IS 不可达节点的昵称;只要节点在 IS-IS 中可达,就不能因其数据面不可达而忽略申领。控制面有资格参加裁决,并不等于数据面已经能交付流量。

昵称看似稳定后,持有者仍必须监视新到 LSP。若可达节点以更高优先级通告同值,本地节点即使处于 overload 状态也要换号。“已获得”只是一个有起点、也可能有终点的状态。

campus 合并把隐藏的时间轴暴露出来

两个分离的 campus 可以在各自视野中合法使用同一昵称。RFC 6325 直接预见到合并后的暂态碰撞。随着双方 LSP 传播,失败者从本地看来可用的值中重新选择;一些节点可能多次换号,才能消除全部碰撞。

“看来可用”说明决策依赖分布式视图。RBridge、采集器与运维终端不会在同一时刻更新。09:14 的映射可以在当时正确,到 09:15 已不再成立。若资产库只保留最后一行,这一分钟便会从历史中消失。

可复盘的合并记录应保存:合并前的两个范围、边界事件、双方 LSP、控制面可达性、优先级比较、旧值撤回、每次替代选择、FIB 与树计算变化,以及独立观察者何时达到一致。

另一个极端也能证明昵称不是设备身份。RFC 7780 规定,若有效昵称都被更高优先级的可达节点占用,某 RBridge 虽不能成为入口、出口或树根,仍能作为 transit switch 工作。没有可用昵称,不代表设备不存在。

“唯一”永远带着范围

RFC 8397 规定一种多层 TRILL 的唯一昵称方案:各层之间传播单个昵称或昵称块,使整个多层 campus 共用不碰撞的空间。它同时对比另一种聚合区域方案,后者可在不同区域复用昵称,并由边界 RBridge 改写字段。

所以,“唯一”描述的是选定拓扑与分配制度内的性质,不是全球注册、永久绑定或法律所有权。离开范围,结论也必须重新陈述。

多层通告还会把“谁宣布”与“谁持有”分开。边界 RBridge 可以代表区域发布外部或内部昵称可达性,多个边界节点也可能为路由目的宣布同一范围。始发通告者可能只是通往持有者的路径,并非昵称所缩写的那台设备。

把昵称写成有起止时间的绑定

长期资产标识、软件实例 ID 与 IS-IS 身份应分别治理。昵称应建模为它们周围的一段关系:所在 campus、level 或 area,申领者,配置位,数值优先级,树根优先级,来源 LSP,开始时间和结束原因。

碰撞是另一条不可覆盖的记录。保存双方原始申领、修正规则、可达性、赢家与输家、新值以及中间换号。重启记录保存是否尝试复用及结果,而不是因数字相同便自动连接两个生命周期。

最后还要补齐数据面收据:获胜申领是否进入 FIB,字段当时表示出口还是树,RPF 是否接受,哪台 RBridge 解封装,终端是否实际收到。控制面选出昵称,不等于服务已经完成。

来源