摘要
- RFC 3084 要求一条 COPS-PR DEC 消息中的所有决定共同成功或共同失败;失败时,PEP 回到上一笔成功事务,并向 PDP 发出明确回执。
- 回执只回答一次安装尝试。断线期间设备可以继续使用缓存策略,本地状态也可能变化;重连之后,双方必须重新同步,或承担“缓存仍然正确”这一假设带来的风险。
收到规则的设备并不是一张空白纸
设想策略服务器在同一条 DEC 中先删除旧分类器,再安装新的队列规则。TCP 可靠地把消息送到设备,设备返回 Success。与“命令已经发出”相比,这是一条更强的证据:设备至少承认整笔事务已经执行。
然而,网络行为没有因此被压成一个布尔值。设备还要把抽象实例映射成本地队列、过滤器和调度器;连接可能随后中断;硬件板卡、软件版本或本地能力也可能改变。Success 是策略执行点的协议回执,不是数据包轨迹,更不是应用已经获得预期服务的证明。
2001 年 3 月发布的 RFC 3084 定义了 COPS 的策略供给用法 COPS-PR。策略决策点 PDP 向策略执行点 PEP 下发 Policy Information Base 中的实例。PIB 定义类,PRI 是类的实例,PRID 标识实例。文档刻意不规定唯一的策略数据模型,而是规定不同模型如何传输、安装、删除、报告和同步。
这与既有 RFC 3060 文章的边界不同。PCIM 的核心问题是公共信息结构不能替代本地求值算法;RFC 3084 的核心问题是:即使规则含义已经确定,服务器与设备怎样证明自己对“当前已安装状态”仍然一致。
原子事务给了回滚点,也给不了永久真相
一条 DEC 可以包含多个决定。删除项必须排在安装项之前,这解决的是优先关系,而不是暗示两个动作在时间上彼此独立。整条 DEC 被当作一笔事务:要么全部成功,要么全部失败。若设备无法安装其中一项,就应发回 Failure,并恢复到上一笔成功 DEC 留下的良好状态。
这种设计避免了“旧规则已删、新规则未装”的半成品。每条 DEC 都必须收到一条 solicited RPT;即使是空决定也要回 Success。回执建立了服务器到设备的责任链,却没有越过设备本身。它无法单独说明规则后来是否失效、计数器是否增长,或实际流量是否经过预期路径。
RFC 3084 对异步故障尤其坦率。一个此前成功安装的配置若后来失败,PEP 可以主动报告 Failure,但此时已无法简单回滚,因为在异步条件下“正确的旧状态”可能已经含混。立即失败有明确检查点;运行一段时间后的失败可能牵涉随后发生的合法变化。协议把这两个场景分开,而不是用同一个绿色回执覆盖它们。
版本兼容是有方向的
PIB 会演化。新 PDP 若把旧 PEP 不认识的新 PRC 发过去,PEP 必须报错并退回上一良好状态。反过来,新 PEP 连接旧 PDP,只是收不到新类的实例。被废弃的类还有另一套忽略规则。这些安排限制了损害,但并不证明两个版本拥有相同能力。
COPS-PR 还把一个策略领域的写入权集中到一条连接。RFC 说,PEP 与 PDP 连接时,该策略配置实际上被锁定,连本地控制台也不应成为另一个写入者。单一写者减少冲突,也把服务器身份、连接存活和服务器保存的状态一起变成控制边界。
断线让缓存暂时接管权威
连接丢失后,PEP 先尝试最后一个 PDP,再尝试预先配置的备用 PDP。在此期间,活动 Request-State 继续用于策略决定。重连时,PEP 可以用 LastPDPAddr 告诉对端:自己缓存的是谁的决定。PDP 可发送 SSQ 要求同步;PEP 随后为全部已知 Request-State 重发 REQ,PDP 再用针对单个 PRID 或前缀的删除命令清理差异。
如果 PDP 没有要求同步,PEP 可以假定服务器认识它,并认为当前状态正确。这是一条可用的运行规则,却不是独立核验。断线期间无法上报的变化仍须补报;超过管理设定的时限,PEP 和 PDP 都会删除相应状态,但两端各自启动和执行超时。
后来的历史给出了另一层证据。SPPI 为 PIB 提供描述语言,RFC 3317、3318 和 3483 扩展了 QoS、框架与使用反馈。2016 年,IETF 把 RFC 3084 及相关文档转为 Historic,理由包括部署有限,以及配置管理工作的重心已转向 NETCONF 与 YANG。“有限”不是“从未运行”;标准状态也无法代替对某台设备的检查。
RFC 3084 留下的不是某种产品胜负,而是一条清晰的证据链:PDP 的意图、DEC 的原子接受、PEP 的回执、断线缓存、重同步、本地安装机制与流量结果必须分别保存。规则能够被可靠送达,不代表两端永远记得同一个网络。
来源
- https://www.rfc-editor.org/info/rfc3084
- https://www.rfc-editor.org/rfc/rfc3084.html
- https://datatracker.ietf.org/doc/rfc3084/
- https://www.rfc-editor.org/errata/rfc3084
- https://www.rfc-editor.org/rfc/rfc2748.html
- https://www.rfc-editor.org/rfc/rfc2753.html
- https://www.rfc-editor.org/rfc/rfc3159.html
- https://www.rfc-editor.org/rfc/rfc3198.html
- https://www.rfc-editor.org/rfc/rfc3317.html
- https://www.rfc-editor.org/rfc/rfc3318.html
- https://www.rfc-editor.org/rfc/rfc3483.html
- https://datatracker.ietf.org/doc/status-change-copspr-sppi-to-historic/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
