2. Operation (运行)
当 Client 配置为使用 RADIUS Accounting 时, 在开始向用户交付服务时, 它将生成 Accounting Start (计费开始) 分组, 描述正在交付的服务类型及接收服务的用户, 并将其发送到 RADIUS Accounting Server; 服务器将发回确认, 表明已收到该分组. 在服务交付结束时, Client 将生成 Accounting Stop (计费停止) 分组, 描述已交付的服务类型, 并可选择性地包含统计信息, 例如经过时间, 输入与输出 octet (八位组), 或输入与输出分组数. Client 将其发送到 RADIUS Accounting Server, 服务器将发回确认, 表明已收到该分组.
Accounting-Request (无论是 Start 还是 Stop) 通过网络提交给 RADIUS accounting server. 建议 Client 继续尝试发送 Accounting-Request 分组直至收到确认, 并采用某种退避 (backoff) 机制. 若在一段时长内未返回响应, 则将请求重传若干次. Client 还可以在主服务器宕机或不可达时将请求转发到一个或多个备用服务器. 备用服务器既可以在对主服务器尝试若干次失败后使用, 也可以按轮询 (round-robin) 方式使用. 重试与回退算法是当前研究课题, 本文档不对其做详细规定.
RADIUS accounting server 为满足请求, 可以向其他服务器发起请求, 此时它充当 Client.
若 RADIUS accounting server 无法成功记录 Accounting 分组, 则必须不向 Client 发送 Accounting-Response 确认.
2.1. Proxy (代理)
有关 Proxy RADIUS 的信息见 "RADIUS" RFC [2]. Proxy Accounting RADIUS 的工作方式相同, 如下例所示.
-
NAS 向 forwarding server (转发服务器) 发送 accounting-request.
-
Forwarding server 记录 accounting-request (若需要), 在任意其他 Proxy-State 属性之后添加其 Proxy-State (若需要), 更新 Request Authenticator (请求认证器), 并将请求转发给 remote server (远程服务器).
-
Remote server 记录 accounting-request (若需要), 按顺序原样将请求中的所有 Proxy-State 属性复制到响应分组, 并向 forwarding server 发送 accounting-response.
-
Forwarding server 去掉最后一条 Proxy-State (若其在步骤 2 中添加过), 更新 Response Authenticator (响应认证器), 并向 NAS 发送 accounting-response.
Forwarding server 必须不修改分组中已有的 Proxy-State 或 Class 属性.
Forwarding server 可以按透传 (pass through) 方式执行转发, 即一旦收到重传就立即继续转发; 也可以承担重传责任, 例如在 forwarding server 与 remote server 之间的网络链路与 NAS 和 forwarding server 之间链路特性差异很大的情况下.
在实现承担重传责任的代理服务器时应极其谨慎, 以确保其重传策略健壮且可扩展.