摘要

  • RFC 2124 允许外部流准入服务批准、拒绝、重定向或限制连接,但连接仍由交换机发起并落实。
  • 协议为准入、执行错误、实时状态、计数与后续策略变更分别留下回执;每张回执只覆盖一次交接。
  • AMBIGUOUS、NO_SUCH_FLOW 以及完全缺席的安全分析表明,策略权力、设备动作、状态一致性和经济记录必须分开核验。

1997 年 3 月,RFC 2124 的作者试图解决一个尚未标准化的问题:如何让多台 ATM 交换机服从统一的连接准入策略,又不要求每家设备厂商理解每一种组织策略语言。答案是把判断移到外部 Flow Admission Service(FAS),交换机里的 Connection Control Entity(CCE)通过 LFAP 与它交谈。

RFC Editor 记录和 IETF Datatracker 记录都说明这是一份 Informational 备忘录,不是互联网标准。它的历史价值不在于普遍部署,而在于把一个分布式决策过程拆成了可观察的阶段。

请求从交换机发出,因为连接也从交换机开始

所有初始消息都由交换机发起。CCE 在准备建立流之前发送 Flow Admission Request(FAR),其中可包含源和目的地址、服务类型、客户数据、交换机地址、流标识和请求时间。FAS 随后返回 Flow Admission Acknowledge(FAA)。

FAA 可以批准或拒绝,也可以携带可选策略、强制策略和重定向目的地。它表达的是 FAS 基于收到信息作出的裁决,不是已经建立的电路,更不是交换机完成执行的证明。

RFC 2124 特意让执行边界可见。CCE 不理解可选策略时可以忽略;不理解强制策略时必须中止该流,并通过 Flow Admission Update 报告错误。集中式策略因此仍受本地能力约束:FAS 说明必须满足什么,交换机才知道自己能否做到。

第一条证据边界由此形成。FAR 证明某个 CCE 就某个拟建流提出了请求。FAA 的 SUCCESS 证明 FAS 接受了这次请求。只有后续设备状态才能说明交换机究竟建立了什么。

活跃连接产生另一条证据流

连接建立后,CCE 会发送 Flow Update Notification(FUN)。FUN 可以报告交换机时间、流的活动或非活动状态、收发字节数,以及包、信元或帧的数量。它可能按周期发送,也可能因状态变化或 FAS 请求而触发。

计数类型不能丢。累计计数从流建立时开始,增量计数只覆盖上一个 FUN 之后的区间。若不保留类型就把两者相加,系统可能制造出没有任何组件真正断言过的总量。即便计数准确,它也不能单独证明谁有权使用这条流、应用是否收到数据或账单是否有效。

Flow Update Acknowledge(FUA)进一步界定了交接。RFC 2124 规定,SUCCESS 表示相应 FUN 的信息已被接受,并由 FAS 承担责任。这是信息保管责任的转移,不是对交换机计数完整性、持久存储、备用 FAS 一致性或客户服务结果的追溯担保。

准入之后,策略仍可变化

FAS 可以通过 Flow Change Request(FCR)补充或替换运行策略,也可以把流设为非活动状态。交换机用 Flow Change Acknowledge(FCA)回应。停止流时,CCE 还应发送最终统计并回报非活动状态。

确认依然有边界。交换机不支持策略变化时,FCA 可以返回 POLICY_REJECT;交换机已没有相应状态时,则返回 NO_SUCH_FLOW。最初的许可不会自动赋予以后所有控制动作成功执行的事实。策略系统必须不断把自己的模型与持有连接的设备对账。

错误码比成功码更诚实

AMBIGUOUS 防止流标识被方便地挪用。如果重复 Flow ID 对应的 FAR 除 Message ID 外与先前请求完全一致,FAS 可以重放原先答复;只要内容不同,就不能猜测,而必须要求 CCE 选择新标识。幂等性属于整份请求,不属于标签本身。

NO_SUCH_FLOW 揭示两个方向的状态丢失:FAS 可能收到自己从未批准或已经遗忘的连接更新;交换机也可能收到自己已无状态的变更请求。正确反应不是宣布某一端数据库天然正确,而是依据可见分歧重新准入、报告或停止连接。

Flow Identifier Prefix 用于故障切换。FAS 分配前缀,CCE 附加本地标识,目标是在备用 FAS 之间保持全局唯一。若 CCE 不支持前缀,切换之后同一通话可能在汇总点看起来像两次。命名空间降低碰撞风险,却没有证明两个 FAS 的状态一致。

集中化解决的是翻译,不是信任

LFAP 的吸引力真实存在:当策略表示方式尚未标准化时,交换机不用理解所有组织规则。然而同一设计也创造了强大的外部控制点。重定向可以改变目的地,强制策略可以决定连接能否存活,FCR 可以停止正在运行的流。

协议没有说明 FAS 如何证明自己的权力、交换机如何授权这些动作,也没有说明计量证据如何受到保护。安全考虑章节只有一句:本文不讨论安全问题。TCP 会话只是传输,不是策略来源合法性的证明。端口登记也只是协调事实;今天的 IANA 服务名与端口登记表列出 csi-lfap 的 3145 端口,同时注明该端口存在已知未授权使用。

与 BTW 已有文章的边界同样清楚。RFC 2063 描述流量测量架构,已发表文章聚焦异步读表留下的时间空白;RFC 2123 记录 NeTraMet 经验,已发表文章聚焦规则集如何把流量投影成有限记录。RFC 2124 讨论的是另一件事:集中裁决与随后交换机状态从来不是同一张回执。

Heng Lu 的三篇文章为这种边界提供了持续适用的语言。Running-Code Primacy 把可观察运行事实放在制度宣告之前;Minimum Initial Specification, Localized Future Decision 要求共同规则保持狭窄且可本地验证;On Reality Layers 提醒人们不要把行政表述当成可执行现实。

LFAP 是现代策略控制器获得今天名称之前的一次可编程准入尝试。它最有价值的遗产不是“集中决定天然高效”,而是那条消息链:裁决、执行、对账和经济记录必须分别审计。

来源