摘要

  • 在 PPP 接入中,IPv6CP 排在 LCP 之后;RADIUS 认证和授权却可能先于地址分配完成。因此 NAS 当时未必知道主机将使用 IPv4、IPv6,还是两者兼用。
  • RFC 3162 允许一条 RADIUS 消息同时带有两种地址族的属性,并由 NAS 只采用客户端能够使用的部分。授权值本身并不能证明地址、前缀、路由或可用服务已经存在。

答复先于问题到来

接入服务器需要先取得策略决定,才能开放用户会话。但当它向 RADIUS 服务器询问是否准入时,主机最终使用的网络层配置可能还没有确定。2001 年 8 月发布的 RFC 3162《RADIUS and IPv6》,最值得注意的正是这个时序。

RFC 3162 处理两项相关却不同的工作:RADIUS 可以运行在 IPv6 上;另一方面,RADIUS 消息也可以携带为用户提供 IPv6 网络接入的属性。RADIUS 服务器使用 IPv6 地址传输消息,不等于已经给订户分配了 IPv6 前缀。标准谈到了这两件事,但这里的关键是第二件事。

文档用 PPP 接入说明时间顺序。链路控制协议(LCP)先于 IPv6 控制协议(IPv6CP);RADIUS 认证和授权可以在地址分配之前结束。因此网络接入服务器(NAS)发出 Access-Request 时,可能尚不知道主机将使用 IPv4、IPv6,还是二者皆用。

这使一种直观做法行不通:先询问用户将使用哪种地址族,再仅返回对应属性。NAS 必须先取得准入决定,之后的协商才能给出答案。RFC 3162 的解法不是猜测,而是允许 IPv4 与 IPv6 相关属性同时出现在同一条 RADIUS 消息中,由 NAS 决定哪些适用。NAS 也应该只分配客户端确实能够使用的地址和前缀。

获得授权不等于完成配置

属性本身也区分了这些位置。NAS-IPv6-Address 标识请求认证的设备。Framed-Interface-Id 涉及 IPv6 接口标识符。Framed-IPv6-Prefix 提供需要为用户配置的 IPv6 前缀及对应路由。Framed-IPv6-Route 提供路由信息;Framed-IPv6-Pool 则指向一个已配置的前缀池。这些是不同的控制点,不能互相替代为“已经连通”的证明。

有些值明确只是提示。如果 IPv6CP 成功协商了 Interface-Identifier 选项,NAS 会在 Access-Request 中带上它偏好的标识符。RADIUS 服务器最好遵从,但没有义务照办。NAS 也可以在请求中偏好某个 IPv6 前缀,服务器同样可以不接受。Access-Accept 是策略答复,不是主机接口接受该偏好、或数据包已经能够到达 Internet 的记录。

RFC 3162 还限制了返回值的适用范围:对仅支持 IPv6 的主机,无需预留 IPv4 地址;仅使用 IPv4 或 6to4 的主机,也无需分配 IPv6 前缀。这个有限的建议指出了责任所在:RADIUS 服务器传递策略属性;NAS 看到已协商的会话状态,应避免配置客户端无法使用的地址族。

因此,这种授权交换容许答案在早期保持较宽,再由掌握更多会话上下文的边缘设备收窄实际使用范围。这不仅是消息格式选择,也是中央策略服务器能提前批准什么、以及接入设备只能在协议协商之后才知道什么之间的边界。

各个层次仍然分开

之后仍有数个步骤:请求可能包含 NAS 的偏好;响应可能授权或返回前缀;IPv6CP 可能协商接口标识符;NAS 可能安装地址或路由。只有后续端到端测试才能说明服务是否可达。RFC 3162 定义了属性及其在交换中的位置,但没有记录某个真实用户会话,也没有替之后的结果作担保。

这一区别很重要,因为认证、授权、计费常被一个词——“接入”——概括。但认证成功答复不等于地址已配置,前缀已安装也不等于服务已连通。运营者检查记录时,需要知道证据究竟覆盖哪一层。

RFC 3162 为 IPv6 相关信息预留了六个 RADIUS 属性编号,即 95 至 100。之后的标准又补充了词汇:RFC 4818 定义委派前缀属性,RFC 6911 增加其他 IPv6 接入属性,RFC 8044 更新 RADIUS 数据类型指南。因此,2001 年的文档不是现代接入配置的完整清单。它的历史贡献更具体:在会话地址族未知时,仍可进行双栈授权。

Lu Heng 的 Note 20 可作为编辑性的观察视角:形式化描述与系统的可观察状态是不同层次。用于理解这份 RFC 时,属性记录的是服务器请求、偏好或授权了什么;它自身不能证明 NAS 安装了什么,也不能证明用户实际可以到达哪里。这是编辑性解释,不是 RFC 3162 作者的主张。

来源

  1. RFC 3162 — RADIUS and IPv6
  2. RFC Editor 的 RFC 3162 记录
  3. RFC 2865 — Remote Authentication Dial In User Service (RADIUS)
  4. RFC 2866 — RADIUS Accounting
  5. RFC 2868 — RADIUS Attributes for Tunnel Protocol Support
  6. RFC 2472 — IP Version 6 over PPP
  7. RFC 2460 — Internet Protocol, Version 6 Specification
  8. RFC 3056 — Connection of IPv6 Domains via IPv4 Clouds
  9. RFC 4818 — RADIUS Delegated-IPv6-Prefix Attribute
  10. RFC 6911 — RADIUS Attributes for IPv6 Access Networks
  11. RFC 8044 — Data Types in RADIUS
  12. RFC 2044 — UTF-8, a Transformation Format of Unicode and ISO 10646
  13. Lu Heng, Note 20 — On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile